Code

Don't try to set the "SO_BROADCAST" socket option for unicast requests.
[nagiosplug.git] / plugins-root / check_dhcp.c
index 241f13ed90f9daa6c2d7dd897dae9b8e5c0c7a5c..5781f758db2e2f5a3efbc6f2e0ab2c89b90b47a3 100644 (file)
@@ -195,7 +195,6 @@ typedef struct requested_server_struct{
 #define DHCP_INFINITE_TIME              0xFFFFFFFF
 
 #define DHCP_BROADCAST_FLAG 32768
-#define DHCP_UNICAST_FLAG   0
 
 #define DHCP_SERVER_PORT   67
 #define DHCP_CLIENT_PORT   68
@@ -767,7 +766,7 @@ int create_dhcp_socket(void){
                }
 
         /* set the broadcast option - we need this to listen to DHCP broadcast messages */
-        if(setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char *)&flag,sizeof flag)<0){
+        if(!unicast && setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char *)&flag,sizeof flag)<0){
                printf(_("Error: Could not set broadcast option on DHCP socket!\n"));
                exit(STATE_UNKNOWN);
                }