From: Roy Marples Date: Thu, 19 May 2016 20:50:15 +0000 (+0000) Subject: Fix adding static address masks. X-Git-Tag: v6.11.1~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=95feb3bfd0f56bab61968a29d80ddc2eeb4780a7;p=thirdparty%2Fdhcpcd.git Fix adding static address masks. --- diff --git a/dhcp.c b/dhcp.c index 63f31526..ade23e05 100644 --- a/dhcp.c +++ b/dhcp.c @@ -1434,8 +1434,12 @@ get_lease(struct interface *ifp, /* BOOTP does not set yiaddr for replies when ciaddr is set. */ lease->addr.s_addr = bootp->yiaddr ? bootp->yiaddr : bootp->ciaddr; ctx = ifp->ctx; - if (ifp->options->options & DHCPCD_INFORM) { - lease->mask = ifp->options->req_mask; + if (ifp->options->options & (DHCPCD_STATIC | DHCPCD_INFORM)) { + if (ifp->options->req_mask.s_addr == INADDR_ANY) + lease->mask.s_addr = + ipv4_getnetmask(lease->addr.s_addr); + else + lease->mask = ifp->options->req_mask; lease->brd.s_addr = lease->addr.s_addr | ~lease->mask.s_addr; } else { if (get_option_addr(ctx, &lease->mask, bootp, len,