From: Roy Marples Date: Thu, 21 Feb 2008 20:50:01 +0000 (+0000) Subject: Fix rebinding. X-Git-Tag: v3.2.3~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4695df5739cf74f3b7c78ea2dc4331f1885e7c31;p=thirdparty%2Fdhcpcd.git Fix rebinding. --- diff --git a/client.c b/client.c index 2876f491..8ce27211 100644 --- a/client.c +++ b/client.c @@ -758,6 +758,7 @@ static int handle_timeout (state_t *state, const options_t *options) do_socket (state, SOCKET_OPEN); if (state->xid == 0) state->xid = (uint32_t) random (); + dhcp->serveraddress.s_addr = 0; _send_message (state, DHCP_REQUEST, options); state->timeout = dhcp->leasetime - dhcp->rebindtime; state->state = STATE_REQUESTING; diff --git a/dhcp.c b/dhcp.c index 9cb174bc..f7826dcb 100644 --- a/dhcp.c +++ b/dhcp.c @@ -220,8 +220,9 @@ ssize_t send_message (const interface_t *iface, const dhcp_t *dhcp, iface->previous_address.s_addr) { PUTADDR (DHCP_ADDRESS, dhcp->address); - PUTADDR (DHCP_SERVERIDENTIFIER, - dhcp->serveraddress); + if (dhcp->serveraddress.s_addr) + PUTADDR (DHCP_SERVERIDENTIFIER, + dhcp->serveraddress); } } #undef PUTADDR