state->new_len = state->offer_len;
get_lease(ifp, &state->lease, state->new, state->new_len);
ipv4_applyaddr(ifp);
- if (ifp->ctx->options & DHCPCD_FORKED)
- return;
state->new = bootp;
state->new_len = len;
}
#endif
- /* If we forked, stop here. */
- if (ifp->ctx->options & DHCPCD_FORKED)
- return;
-
#ifdef IPV4LL
/* Stop IPv4LL now we have a working DHCP address */
ipv4ll_drop(ifp);
dhcp_close(ifp);
ipv4_applyaddr(ifp);
- if (ifp->ctx->options & DHCPCD_FORKED)
- return;
/* If not in master mode, open an address specific socket. */
if (ctx->options & DHCPCD_MASTER ||
loginfox("%s: timed out contacting a DHCP server, using last lease",
ifp->name);
dhcp_bind(ifp);
- /* If we forked, stop here. */
- if (ifp->ctx->options & DHCPCD_FORKED)
- return;
state->interval = 0;
dhcp_discover(ifp);
}
!(ia->addr_flags & IN_IFF_NOTUSEABLE) &&
#endif
dhcp_activeaddr(ifp, &state->lease.addr) == 0)
- {
arp_ifannounceaddr(ifp, &state->lease.addr);
- if (ifp->ctx->options & DHCPCD_FORKED)
- return;
- }
#endif
dhcp_new_xid(ifp);
/* Announce the preferred address to
* kick ARP caches. */
arp_announceaddr(ifp->ctx,&lease->addr);
- if (ifp->ctx->options & DHCPCD_FORKED)
- return;
#endif
}
script_runreason(ifp, state->reason);
#ifdef ARP
arp_announceaddr(ifp->ctx, &state->addr->addr);
- if (ifp->ctx->options & DHCPCD_FORKED)
- return;
#endif
if (state->state == DHS_BOUND) {
}
#endif
- if (ia->dadcallback) {
+ if (ia->dadcallback)
ia->dadcallback(ia);
- if (ctx->options & DHCPCD_FORKED)
- goto out;
- }
if (IN6_IS_ADDR_LINKLOCAL(&ia->addr) &&
!(ia->addr_flags & IN6_IFF_NOTUSEABLE))
cb, next);
cb->callback(cb->arg);
free(cb);
- if (ctx->options & DHCPCD_FORKED)
- goto out;
}
}
}
dhcp6_handleifa(cmd, ia, pid);
#endif
-out:
/* Done with the ia now, so free it. */
if (cmd == RTM_DELADDR)
ipv6_freeaddr(ia);