From 928e66eb272943119a69ccccce0f08ace071ab14 Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Sun, 27 Mar 2016 08:21:05 -0700 Subject: [PATCH] Fix issue considering an interface down when it's up --- src/network_interface.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/network_interface.cpp b/src/network_interface.cpp index 3f4264b..2c0e9a1 100644 --- a/src/network_interface.cpp +++ b/src/network_interface.cpp @@ -82,6 +82,7 @@ struct InterfaceInfoCollector { if (addr->ifa_addr->sa_family == AF_LINK && addr_ptr->sdl_index == iface_id) { info->hw_addr = (const uint8_t*)LLADDR(addr_ptr); found_hw = true; + info->is_up = info->is_up || (addr->ifa_flags & IFF_UP); } #else #define TINS_BROADCAST_ADDR(addr) (addr->ifa_broadaddr) @@ -93,6 +94,7 @@ struct InterfaceInfoCollector { if (addr->ifa_addr->sa_family == AF_PACKET && addr_ptr->sll_ifindex == iface_id) { info->hw_addr = addr_ptr->sll_addr; found_hw = true; + info->is_up = info->is_up || (addr->ifa_flags & IFF_UP); } #endif else if (!std::strcmp(addr->ifa_name, iface_name)) { @@ -106,7 +108,6 @@ struct InterfaceInfoCollector { else { info->bcast_addr = 0; } - info->is_up = (addr->ifa_flags & IFF_UP); found_ip = true; } else if (addr->ifa_addr->sa_family == AF_INET6) {