Mercurial > hg > dhcpcd
changeset 1655:49be5a6df6a4 draft
Stop checking for IFF_RUNNING in handle_carrier as it is invalid for BSD
and should already have been checked for Linux.
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Sun, 05 Feb 2012 19:32:17 +0000 |
| parents | f9e3ecc95eea |
| children | affe9a661be7 |
| files | dhcpcd.c |
| diffstat | 1 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/dhcpcd.c Sat Feb 04 15:45:38 2012 +0000 +++ b/dhcpcd.c Sun Feb 05 19:32:17 2012 +0000 @@ -898,15 +898,16 @@ } 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 @@ } 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);
