From: sbyx Date: Tue, 12 Aug 2014 13:10:27 +0000 (+0200) Subject: Merge pull request #22 from mehlis/log-dhcp4-events X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=479cd9f6a5b6c68285004aa30bacfb284121ac8e;p=oweals%2Fodhcpd.git Merge pull request #22 from mehlis/log-dhcp4-events dhcpv4: log requests and replies to syslog --- 479cd9f6a5b6c68285004aa30bacfb284121ac8e diff --cc src/dhcpv4.c index d978da8,7fe5bd8..9b9b528 --- a/src/dhcpv4.c +++ b/src/dhcpv4.c @@@ -334,18 -357,14 +357,23 @@@ static void handle_dhcpv4(void *addr, v } 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. + * + */ } + syslog(LOG_WARNING, "received %s from %x:%x:%x:%x:%x:%x", + dhcpv4_msg_to_string(reqmsg), + req->chaddr[0],req->chaddr[1],req->chaddr[2], + req->chaddr[3],req->chaddr[4],req->chaddr[5]); + if (reqmsg == DHCPV4_MSG_DECLINE || reqmsg == DHCPV4_MSG_RELEASE) return;