From: Roy Marples Date: Fri, 17 Oct 2008 21:30:25 +0000 (+0000) Subject: We should send the IP address we decline and the server ID for release. X-Git-Tag: v5.0.0~218 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=08a40a313fd57ceaded511764d4781fea6e513a7;p=thirdparty%2Fdhcpcd.git We should send the IP address we decline and the server ID for release. --- diff --git a/dhcp.c b/dhcp.c index 9c267000..bd360885 100644 --- a/dhcp.c +++ b/dhcp.c @@ -821,6 +821,24 @@ make_message(struct dhcp_message **message, p += iface->clientid[0] + 1; } + if (lease->addr.s_addr && !IN_LINKLOCAL(htonl(lease->addr.s_addr))) { + if (type == DHCP_DECLINE || + type == DHCP_DISCOVER || + (type == DHCP_REQUEST && + lease->addr.s_addr != iface->addr.s_addr)) + { + PUTADDR(DHO_IPADDRESS, lease->addr); + if (lease->server.s_addr) + PUTADDR(DHO_SERVERID, lease->server); + } + } + + if (type == DHCP_RELEASE) { + if (lease->server.s_addr) + PUTADDR(DHO_SERVERID, lease->server); + } + + if (type == DHCP_DISCOVER || type == DHCP_INFORM || type == DHCP_REQUEST) @@ -851,15 +869,6 @@ make_message(struct dhcp_message **message, if (type != DHCP_INFORM) { - if (lease->addr.s_addr && - lease->addr.s_addr != iface->addr.s_addr && - !IN_LINKLOCAL(ntohl(lease->addr.s_addr))) - { - PUTADDR(DHO_IPADDRESS, lease->addr); - if (lease->server.s_addr) - PUTADDR(DHO_SERVERID, lease->server); - } - if (ifo->leasetime != 0) { *p++ = DHO_LEASETIME; *p++ = 4;