diff options
| author | Roy Marples <roy@marples.name> | 2008-12-16 13:28:42 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2008-12-16 13:28:42 +0000 |
| commit | 9c30ffcfd671fd822c970d2d5c3d6de7442aa9c1 (patch) | |
| tree | 9a2247eec27d3e33f986a810ae8a35f671a5b4d5 /dhcp.c | |
| parent | e346dd7ccc9fff2c6d5e3e187601cb9eac696b21 (diff) | |
| download | dhcpcd-9c30ffcfd671fd822c970d2d5c3d6de7442aa9c1.tar.xz | |
Re work the route management so we deal with a changed route table in a renewal/rebind correctly.
Diffstat (limited to 'dhcp.c')
| -rw-r--r-- | dhcp.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -1292,7 +1292,9 @@ get_lease(struct dhcp_lease *lease, const struct dhcp_message *dhcp) else lease->addr.s_addr = dhcp->ciaddr; if (get_option_addr(&lease->net.s_addr, dhcp, DHO_SUBNETMASK) == -1) - lease->net.s_addr = get_netmask(dhcp->yiaddr); + lease->net.s_addr = get_netmask(lease->addr.s_addr); + if (get_option_addr(&lease->brd.s_addr, dhcp, DHO_BROADCAST) == -1) + lease->brd.s_addr = lease->addr.s_addr | ~lease->net.s_addr; if (get_option_uint32(&lease->leasetime, dhcp, DHO_LEASETIME) == 0) { /* Ensure that we can use the lease */ get_monotonic(&now); |
