From 832efb4abf7a1309448e54c7fa2505ac07062475 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Sun, 5 Feb 2012 19:32:17 +0000 Subject: [PATCH] Stop checking for IFF_RUNNING in handle_carrier as it is invalid for BSD and should already have been checked for Linux. --- dhcpcd.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/dhcpcd.c b/dhcpcd.c index bc2b4854..6b8382bc 100644 --- a/dhcpcd.c +++ b/dhcpcd.c @@ -898,15 +898,16 @@ handle_carrier(int action, int flags, const char *ifname) } if (!(iface->state->options->options & DHCPCD_LINK)) return; - if (action == 0) - carrier = carrier_status(iface); - else { + + if (action) { carrier = action == 1 ? 1 : 0; iface->flags = flags; - } + } else + carrier = carrier_status(iface); + if (carrier == -1) syslog(LOG_ERR, "%s: carrier_status: %m", ifname); - else if (carrier == 0 || ~iface->flags & (IFF_UP | IFF_RUNNING)) { + else if (carrier == 0 || ~iface->flags & IFF_UP) { if (iface->carrier != LINK_DOWN) { iface->carrier = LINK_DOWN; syslog(LOG_INFO, "%s: carrier lost", iface->name); @@ -919,7 +920,7 @@ handle_carrier(int action, int flags, const char *ifname) } drop_dhcp(iface, "NOCARRIER"); } - } else if (carrier == 1 && !(~iface->flags & (IFF_UP | IFF_RUNNING))) { + } else if (carrier == 1 && !(~iface->flags & IFF_UP)) { if (iface->carrier != LINK_UP) { iface->carrier = LINK_UP; syslog(LOG_INFO, "%s: carrier acquired", iface->name); -- 2.47.2