From 99f5be29927de6863849441b8af4b794033cc8bd Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Wed, 14 Sep 2016 11:57:31 +0200 Subject: 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. diff --git a/plugins-root/check_dhcp.c b/plugins-root/check_dhcp.c index d8afb17..445ddbc 100644 --- a/plugins-root/check_dhcp.c +++ b/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){ -- cgit v0.10-9-g596f