From 76395370ded6cd97812fe504c92a280b3aaf0c19 Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Sun, 14 May 2017 15:01:36 -0700 Subject: [PATCH] Use the right checks to consider an interface up on Windows Fixes #182 Thanks @gvanem! --- src/network_interface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network_interface.cpp b/src/network_interface.cpp index 5f511d0..1dfc97d 100644 --- a/src/network_interface.cpp +++ b/src/network_interface.cpp @@ -143,6 +143,7 @@ struct InterfaceInfoCollector { if (iface_id == uint32_t(iface->IfIndex)) { copy(iface->PhysicalAddress, iface->PhysicalAddress + 6, info->hw_addr.begin()); found_hw = true; + info->is_up = (iface->OperStatus == IfOperStatusUp); IP_ADAPTER_UNICAST_ADDRESS* unicast = iface->FirstUnicastAddress; while (unicast) { int family = ((const struct sockaddr*)unicast->Address.lpSockaddr)->sa_family; @@ -150,7 +151,6 @@ struct InterfaceInfoCollector { info->ip_addr = IPv4Address(((const struct sockaddr_in *)unicast->Address.lpSockaddr)->sin_addr.s_addr); info->netmask = IPv4Address(host_to_be(0xffffffff << (32 - unicast->OnLinkPrefixLength))); info->bcast_addr = IPv4Address((info->ip_addr & info->netmask) | ~info->netmask); - info->is_up = (iface->Flags & IP_ADAPTER_IPV4_ENABLED) != 0; found_ip = true; } else if (family == AF_INET6) {