summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2008-04-04 17:48:50 -0700
committerStephen Hemminger <stephen.hemminger@vyatta.com>2008-04-04 17:48:50 -0700
commitca566018882bbec4fbc26ba6921062db18bfcf40 (patch)
tree052660595c063ca7795b92b5151adbb526bd8625
parent1f52d5148d3191f970f7af8ed0704b5e0c7ac06b (diff)
downloadquagga-ca566018882bbec4fbc26ba6921062db18bfcf40.tar.bz2
quagga-ca566018882bbec4fbc26ba6921062db18bfcf40.tar.xz
interface running status fix
The IFF_RUNNING flag is indeterminate if interface is not IFF_UP. Basically the carrier state is driver dependent and wrong when the interface is admin down.
-rw-r--r--watchlink/netlink_event.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/watchlink/netlink_event.cc b/watchlink/netlink_event.cc
index 1ab1a6ab..7bda70bb 100644
--- a/watchlink/netlink_event.cc
+++ b/watchlink/netlink_event.cc
@@ -156,7 +156,7 @@ NetlinkEventManager::parse_msg(const struct nlmsghdr *nlHdr)
//link state flag
enabled = ifInfo->ifi_flags & IFF_UP;
- running = ifInfo->ifi_flags & IFF_RUNNING;
+ running = enabled && (ifInfo->ifi_flags & IFF_RUNNING);
index = ifInfo->ifi_index;
struct rtattr* rtAttr = (struct rtattr *)IFLA_RTA(ifInfo);