From 5191c99ef72a557f15de92b96e4702426e68cc99 Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Fri, 12 Nov 2010 20:09:45 +0100 Subject: [PATCH] gdhcp: Send DHCPNAK when receiving a REQUEST before a DISCOVER --- gdhcp/server.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gdhcp/server.c b/gdhcp/server.c index 7322e6e..e6f6d91 100644 --- a/gdhcp/server.c +++ b/gdhcp/server.c @@ -685,7 +685,8 @@ static gboolean listener_event(GIOChannel *channel, GIOCondition condition, send_offer(dhcp_server, &packet, lease, requested_nip); break; case DHCPREQUEST: - debug(dhcp_server, "Received REQUEST"); + debug(dhcp_server, "Received REQUEST NIP %d", + requested_nip); if (requested_nip == 0) { requested_nip = packet.ciaddr; if (requested_nip == 0) @@ -693,13 +694,16 @@ static gboolean listener_event(GIOChannel *channel, GIOCondition condition, } if (lease && requested_nip == lease->lease_nip) { + debug(dhcp_server, "Sending ACK"); send_ACK(dhcp_server, &packet, lease->lease_nip); break; } - if (server_id_option) + if (server_id_option || lease == NULL) { + debug(dhcp_server, "Sending NAK"); send_NAK(dhcp_server, &packet); + } break; case DHCPDECLINE: -- 2.7.4