From: Roy Marples Date: Fri, 24 Apr 2015 09:18:42 +0000 (+0000) Subject: Add dhcpcd_drop function to reduce code complexity. X-Git-Tag: v6.8.2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2d64035ea0c06e890f97027b3d68a319a8e1d35f;p=thirdparty%2Fdhcpcd.git Add dhcpcd_drop function to reduce code complexity. --- diff --git a/dhcpcd.c b/dhcpcd.c index 3ac50afe..3185a620 100644 --- a/dhcpcd.c +++ b/dhcpcd.c @@ -312,6 +312,17 @@ dhcpcd_daemonise(struct dhcpcd_ctx *ctx) #endif } +static void +dhcpcd_drop(struct interface *ifp, int stop) +{ + + dhcp6_drop(ifp, stop ? NULL : "EXPIRE6"); + ipv6nd_drop(ifp); + ipv6_drop(ifp); + dhcp_drop(ifp, stop ? "STOP" : "EXPIRE"); + arp_close(ifp); +} + static void stop_interface(struct interface *ifp) { @@ -321,11 +332,7 @@ stop_interface(struct interface *ifp) logger(ctx, LOG_INFO, "%s: removing interface", ifp->name); ifp->options->options |= DHCPCD_STOPPING; - dhcp6_drop(ifp, NULL); - ipv6nd_drop(ifp); - ipv6_drop(ifp); - dhcp_drop(ifp, "STOP"); - arp_close(ifp); + dhcpcd_drop(ifp, 1); if (ifp->options->options & DHCPCD_DEPARTED) script_runreason(ifp, "DEPARTED"); else @@ -620,11 +627,7 @@ dhcpcd_handlecarrier(struct dhcpcd_ctx *ctx, int carrier, unsigned int flags, logger(ctx, LOG_INFO, "%s: carrier lost", ifp->name); ifp->carrier = LINK_DOWN; script_runreason(ifp, "NOCARRIER"); - dhcp6_drop(ifp, "EXPIRE6"); - ipv6nd_drop(ifp); - ipv6_drop(ifp); - dhcp_drop(ifp, "EXPIRE"); - arp_close(ifp); + dhcpcd_drop(ifp, 0); } } else if (carrier == LINK_UP && ifp->flags & IFF_UP) { if (ifp->carrier != LINK_UP) {