}
if (!(ifo->options & DHCPCD_DHCP)) {
- if (ifo->options & DHCPCD_IPV4LL) {
- if (state->offer && state->offer->cookie != 0) {
- free(state->offer);
- state->offer = NULL;
- }
+ if (ifo->options & DHCPCD_IPV4LL)
ipv4ll_start(ifp);
- }
return;
}
eloop_timeout_add_tv(ifp->ctx->eloop, &tv, dhcp_start1, ifp);
}
+void
+dhcp_abort(struct interface *ifp)
+{
+
+ eloop_timeout_delete(ifp->ctx->eloop, dhcp_start1, ifp);
+}
+
void
dhcp_handleifa(int cmd, struct interface *ifp,
const struct in_addr *addr,
void dhcp_drop(struct interface *, const char *);
void dhcp_start(struct interface *);
-void dhcp_stop(struct interface *);
+void dhcp_abort(struct interface *);
void dhcp_discover(void *);
void dhcp_inform(struct interface *);
void dhcp_bind(struct interface *);
#else
#define dhcp_drop(a, b) {}
#define dhcp_start(a) {}
+#define dhcp_abort(a) {}
#define dhcp_reboot(a, b) (b = b)
#define dhcp_reboot_newopts(a, b) (b = b)
#define dhcp_close(a) {}
script_runreason(ifp, "NOCARRIER");
#ifdef NOCARRIER_PRESERVE_IP
arp_close(ifp);
+ dhcp_abort(ifp);
if_sortinterfaces(ctx);
ipv4_preferanother(ifp);
ipv6nd_expire(ifp, 0);