Merge pull request #21 from mehlis/fix-nak-by-doing-valid-reply
authorsbyx <steven@midlink.org>
Tue, 12 Aug 2014 13:05:17 +0000 (15:05 +0200)
committersbyx <steven@midlink.org>
Tue, 12 Aug 2014 13:05:17 +0000 (15:05 +0200)
dhcpv4: offer a valid configuration with DHCP NAK

src/dhcpv4.c

index 7b200cded2b5e70725a8427c0c51b71abd98fa5a..d978da8c7fa003416e951efdb65b68c2390e684c 100644 (file)
@@ -334,7 +334,16 @@ static void handle_dhcpv4(void *addr, void *data, size_t len,
        } else if (reqmsg == DHCPV4_MSG_REQUEST && reqaddr.s_addr &&
                        reqaddr.s_addr != htonl(lease->addr)) {
                msg = DHCPV4_MSG_NAK;
-               lease = NULL;
+               /*
+                * DHCP client requested an IP which we can't offer to him. Probably the
+                * client changed the network. The reply type is set to DHCPV4_MSG_NAK,
+                * because the client should not use that IP.
+                *
+                * For modern devices we build an answer that includes a valid IP, like
+                * a DHCPV4_MSG_ACK. The client will use that IP and doesn't need to
+                * perform additional DHCP round trips.
+                *
+                */
        }
 
        if (reqmsg == DHCPV4_MSG_DECLINE || reqmsg == DHCPV4_MSG_RELEASE)