diff options
| author | Odd Stranne <odd@mullvad.net> | 2019-11-25 22:31:23 +0100 |
|---|---|---|
| committer | Odd Stranne <odd@mullvad.net> | 2019-11-26 13:31:19 +0100 |
| commit | 7419895ed54acd58d068699f1974bc383ff6e8f5 (patch) | |
| tree | b14269f28e728a714aea22fc884ce931144b7e6a | |
| parent | 4d43f1b7db42802b3e88dd987e5b876fc9574f0b (diff) | |
| download | mullvadvpn-7419895ed54acd58d068699f1974bc383ff6e8f5.tar.xz mullvadvpn-7419895ed54acd58d068699f1974bc383ff6e8f5.zip | |
Adjust IsConnectedAdapter()
| -rw-r--r-- | windows/winnet/src/winnet/offlinemonitor.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/windows/winnet/src/winnet/offlinemonitor.cpp b/windows/winnet/src/winnet/offlinemonitor.cpp index 4f93a01def..3e223de0e7 100644 --- a/windows/winnet/src/winnet/offlinemonitor.cpp +++ b/windows/winnet/src/winnet/offlinemonitor.cpp @@ -24,23 +24,39 @@ bool IsConnectedAdapter(const MIB_IF_ROW2 &iface) // // (Windows 10, and possibly others.) + // // The BT adapter is erronously not marked as representing hardware. // By filtering on this we currently do not support BT tethering. // + // Specifically, the following settings are problematic: + // + // InterfaceAndOperStatusFlags.HardwareInterface: 0 + // InterfaceAndOperStatusFlags.ConnectorPresent: 0 + // if (FALSE == iface.InterfaceAndOperStatusFlags.HardwareInterface - || FALSE != iface.InterfaceAndOperStatusFlags.FilterInterface + && FALSE == iface.InterfaceAndOperStatusFlags.ConnectorPresent) + { + return false; + } + + // + // Maybe checking iface.InterfaceAndOperStatusFlags.NotMediaConnected here + // would be a good thing? + // + + if (FALSE != iface.InterfaceAndOperStatusFlags.FilterInterface || 0 == iface.PhysicalAddressLength || FALSE != iface.InterfaceAndOperStatusFlags.EndPointInterface) { return false; } - bool connected = ( + return + ( IfOperStatusUp == iface.OperStatus && MediaConnectStateConnected == iface.MediaConnectState ); - return connected; } } // anonymous namespace |
