Przeglądaj źródła

check_dhcp: Don't peek before reading response

Omit a recvfrom(3) call which has the MSG_PEEK flag set and should have
no effect at all.  According to a comment in the code, this call was
meant to be a workaround to an opaque issue.  If anyone runs into that
issue, we should fix it properly instead.
Holger Weiss 9 lat temu
rodzic
commit
99f5be2992
1 zmienionych plików z 1 dodań i 7 usunięć
  1. 1 7
      plugins-root/check_dhcp.c

+ 1 - 7
plugins-root/check_dhcp.c

@@ -692,17 +692,11 @@ int receive_dhcp_packet(void *buffer, int buffer_size, int sock, int timeout, st
                 }
 
         else{
-
-		/* why do we need to peek first?  i don't know, its a hack.  without it, the source address of the first packet received was
-		   not being interpreted correctly.  sigh... */
 		bzero(&source_address,sizeof(source_address));
 		address_size=sizeof(source_address);
                 recv_result=recvfrom(sock,(char *)buffer,buffer_size,MSG_PEEK,(struct sockaddr *)&source_address,&address_size);
 		if(verbose)
-			printf("recv_result_1: %d\n",recv_result);
-                recv_result=recvfrom(sock,(char *)buffer,buffer_size,0,(struct sockaddr *)&source_address,&address_size);
-		if(verbose)
-			printf("recv_result_2: %d\n",recv_result);
+			printf("recv_result: %d\n",recv_result);
 
                 if(recv_result==-1){
 			if(verbose){