diff options
| author | Roy Marples <roy@marples.name> | 2012-02-05 19:32:17 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2012-02-05 19:32:17 +0000 |
| commit | 832efb4abf7a1309448e54c7fa2505ac07062475 (patch) | |
| tree | 23de83116efb4519dc72c4f432dd8aaf2997f269 /dhcpcd.c | |
| parent | a46038eab8173fbb9e6cb442f0eea55a95779b16 (diff) | |
| download | dhcpcd-832efb4abf7a1309448e54c7fa2505ac07062475.tar.xz | |
Stop checking for IFF_RUNNING in handle_carrier as it is invalid for BSD
and should already have been checked for Linux.
Diffstat (limited to 'dhcpcd.c')
| -rw-r--r-- | dhcpcd.c | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -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); |
