summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOdd Stranne <odd@mullvad.net>2019-07-04 11:27:09 +0200
committerOdd Stranne <odd@mullvad.net>2019-07-04 11:27:09 +0200
commit759880865294b007361e359472d0aaae80b57f7c (patch)
treef5a4d712164227b7d7e87eee1827edb3d0b0fe19
parent42c6e211e1232d8f655f27605e140b1ad5784390 (diff)
downloadmullvadvpn-759880865294b007361e359472d0aaae80b57f7c.tar.xz
mullvadvpn-759880865294b007361e359472d0aaae80b57f7c.zip
Update NIC filtering logic for online check
-rw-r--r--windows/winnet/src/winnet/netmonitor.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/windows/winnet/src/winnet/netmonitor.cpp b/windows/winnet/src/winnet/netmonitor.cpp
index 4de068f9cd..a6c2903397 100644
--- a/windows/winnet/src/winnet/netmonitor.cpp
+++ b/windows/winnet/src/winnet/netmonitor.cpp
@@ -18,7 +18,8 @@ bool ValidInterfaceType(const MIB_IF_ROW2 &iface)
}
}
- if (FALSE == iface.InterfaceAndOperStatusFlags.ConnectorPresent
+ if (FALSE != iface.InterfaceAndOperStatusFlags.FilterInterface
+ || 0 == iface.PhysicalAddressLength
|| FALSE != iface.InterfaceAndOperStatusFlags.EndPointInterface)
{
return false;
@@ -85,17 +86,17 @@ void NetMonitor::AddCacheEntry(Cache &cache, const MIB_IF_ROW2 &iface)
{
CacheEntry e;
- if (false == ValidInterfaceType(iface))
+ if (ValidInterfaceType(iface))
{
e.luid = iface.InterfaceLuid.Value;
- e.valid = false;
- e.connected = false;
+ e.valid = true;
+ e.connected = (MediaConnectStateConnected == iface.MediaConnectState);
}
else
{
e.luid = iface.InterfaceLuid.Value;
- e.valid = true;
- e.connected = (MediaConnectStateConnected == iface.MediaConnectState);
+ e.valid = false;
+ e.connected = false;
}
cache.insert(std::make_pair(e.luid, e));