1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

Fix issue considering an interface down when it's up

This commit is contained in:
Matias Fontanini
2016-03-27 08:21:05 -07:00
parent d80c27de29
commit 928e66eb27

View File

@@ -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) {