return NULL;
/* Old lease, but with an address that is out-of-scope? */
- if (lease && ((lease->ipv4.s_addr & iface->dhcpv4_mask.s_addr) !=
- (iface->dhcpv4_start_ip.s_addr & iface->dhcpv4_mask.s_addr)) &&
+ if (lease && ((lease->ipv4.s_addr & iface->dhcpv4_local.netmask) !=
+ (iface->dhcpv4_start_ip.s_addr & iface->dhcpv4_local.netmask)) &&
!(lease->flags & OAF_STATIC)) {
/* Try to reassign to an address that is in-scope */
avl_delete(&iface->dhcpv4_leases, &lease->iface_avl);
reply_serverid.data = fr_serverid;
if (req->ciaddr.s_addr &&
- ((iface->dhcpv4_start_ip.s_addr & iface->dhcpv4_mask.s_addr) !=
- (req->ciaddr.s_addr & iface->dhcpv4_mask.s_addr)))
+ ((iface->dhcpv4_start_ip.s_addr & iface->dhcpv4_local.netmask) !=
+ (req->ciaddr.s_addr & iface->dhcpv4_local.netmask)))
req->ciaddr.s_addr = INADDR_ANY;
}
break;
case DHCPV4_OPT_NETMASK:
if (!lease)
break;
- reply_netmask.data = iface->dhcpv4_mask.s_addr;
+ reply_netmask.data = iface->dhcpv4_local.netmask;
iov[IOV_NETMASK].iov_len = sizeof(reply_netmask);
break;
iface->dhcpv4_end_ip.s_addr = INADDR_ANY;
iface->dhcpv4_own_ip = (struct odhcpd_ipaddr){ .addr.in.s_addr = INADDR_ANY };
iface->dhcpv4_bcast.s_addr = INADDR_ANY;
- iface->dhcpv4_mask.s_addr = INADDR_ANY;
if (iface->no_dynamic_dhcp) {
if (!iface->oaddrs4_cnt)
iface->dhcpv4_own_ip = iface->oaddrs4[0];
iface->dhcpv4_bcast = iface->oaddrs4[0].broadcast;
- iface->dhcpv4_mask.s_addr = iface->oaddrs4[0].netmask;
info("DHCPv4: providing static leases on interface '%s'", iface->name);
return true;
iface->dhcpv4_end_ip.s_addr = (oaddr->addr.in.s_addr & oaddr->netmask) | htonl(pool_end);
iface->dhcpv4_own_ip = *oaddr;
iface->dhcpv4_bcast = oaddr->broadcast;
- iface->dhcpv4_mask.s_addr = oaddr->netmask;
info("DHCPv4: providing dynamic/static leases on interface '%s', pool: %s - %s", iface->name,
inet_ntop(AF_INET, &iface->dhcpv4_start_ip, pool_start_str, sizeof(pool_start_str)),