return;
}
#else
- if (ifp->options->options & DHCPCD_ARP) {
- if (ia == NULL) {
- if ((astate = arp_new(ifp, &addr)) != NULL) {
- astate->probed_cb = dhcp_arp_probed;
- astate->conflicted_cb = dhcp_arp_conflicted;
- astate->announced_cb = dhcp_arp_announced;
- /* We need to handle DAD. */
- arp_probe(astate);
- }
- return;
+ if (ifp->options->options & DHCPCD_ARP && ia == NULL) {
+ struct dhcp_lease l;
+
+ get_lease(ifp->ctx, &l, state->offer);
+ logger(ifp->ctx, LOG_INFO, "%s: probing static address %s/%d",
+ ifp->name, inet_ntoa(l.addr), inet_ntocidr(l.net));
+ if ((astate = arp_new(ifp, &addr)) != NULL) {
+ astate->probed_cb = dhcp_arp_probed;
+ astate->conflicted_cb = dhcp_arp_conflicted;
+ astate->announced_cb = dhcp_arp_announced;
+ /* We need to handle DAD. */
+ arp_probe(astate);
}
+ return;
}
#endif
ifo->options |= DHCPCD_STATIC;
if (ifp->flags & IFF_NOARP ||
ifo->options & (DHCPCD_INFORM | DHCPCD_STATIC))
- ifo->options &= ~(DHCPCD_ARP | DHCPCD_IPV4LL);
+ ifo->options &= ~DHCPCD_IPV4LL;
if (ifp->flags & (IFF_POINTOPOINT | IFF_LOOPBACK) ||
!(ifp->flags & IFF_MULTICAST))
ifo->options &= ~DHCPCD_IPV6RS;
ifo->req_mask.s_addr = 0;
}
ifo->options |= DHCPCD_INFORM | DHCPCD_PERSISTENT;
- ifo->options &= ~(DHCPCD_ARP | DHCPCD_STATIC);
+ ifo->options &= ~DHCPCD_STATIC;
break;
case 't':
ifo->timeout = (time_t)strtoi(arg, NULL, 0, 0, INT32_MAX, &e);