diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-12-01 13:57:06 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-12-03 11:31:35 +0100 |
| commit | a51c84e78beeb3eb7e6e2c6f89f6889b70f5a9da (patch) | |
| tree | 6c2ac92f469f59bd48ca93bcbe7656d8115c4e3c | |
| parent | 9bdef8c490d3897b6e6cd29de48169a08075aa22 (diff) | |
| download | mullvadvpn-a51c84e78beeb3eb7e6e2c6f89f6889b70f5a9da.tar.xz mullvadvpn-a51c84e78beeb3eb7e6e2c6f89f6889b70f5a9da.zip | |
Remove obsolete virtual adapter code and errors
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt | 1 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt | 1 | ||||
| -rw-r--r-- | gui/src/main/daemon-rpc.ts | 2 | ||||
| -rw-r--r-- | gui/src/shared/daemon-rpc-types.ts | 7 | ||||
| -rw-r--r-- | gui/src/shared/notifications/error.ts | 5 | ||||
| -rw-r--r-- | mullvad-daemon/src/management_interface.rs | 3 | ||||
| -rw-r--r-- | mullvad-jni/src/classes.rs | 1 | ||||
| -rw-r--r-- | mullvad-management-interface/proto/management_interface.proto | 3 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/mod.rs | 20 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/openvpn/mod.rs | 38 | ||||
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connecting_state.rs | 26 | ||||
| -rw-r--r-- | talpid-core/src/winnet.rs | 70 | ||||
| -rw-r--r-- | talpid-types/src/tunnel.rs | 3 | ||||
| -rw-r--r-- | windows/libshared/src/libshared/network/interfaceutils.cpp | 72 | ||||
| -rw-r--r-- | windows/libshared/src/libshared/network/interfaceutils.h | 7 | ||||
| -rw-r--r-- | windows/winnet/src/winnet/winnet.cpp | 108 | ||||
| -rw-r--r-- | windows/winnet/src/winnet/winnet.def | 3 | ||||
| -rw-r--r-- | windows/winnet/src/winnet/winnet.h | 33 |
18 files changed, 15 insertions, 388 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt index 1f04a081d9..d352b3fc2a 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt @@ -63,7 +63,6 @@ class TunnelStateNotification( is ErrorStateCause.SetDnsError -> R.string.set_dns_error is ErrorStateCause.StartTunnelError -> R.string.start_tunnel_error is ErrorStateCause.IsOffline -> R.string.is_offline - is ErrorStateCause.VirtualAdapterProblem -> R.string.virtual_adapter_problem is ErrorStateCause.TunnelParameterError -> { when (cause.error) { ParameterGenerationError.NoMatchingRelay -> R.string.no_matching_relay diff --git a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt index 1448984ec6..e65f70be63 100644 --- a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt @@ -8,6 +8,5 @@ sealed class ErrorStateCause { class StartTunnelError : ErrorStateCause() class TunnelParameterError(val error: ParameterGenerationError) : ErrorStateCause() class IsOffline : ErrorStateCause() - class VirtualAdapterProblem : ErrorStateCause() class VpnPermissionDenied : ErrorStateCause() } diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts index ffb455365c..7f9e6d629b 100644 --- a/gui/src/main/daemon-rpc.ts +++ b/gui/src/main/daemon-rpc.ts @@ -776,8 +776,6 @@ function convertFromTunnelStateErrorCause( return { reason: 'ipv6_unavailable' }; case grpcTypes.ErrorState.Cause.START_TUNNEL_ERROR: return { reason: 'start_tunnel_error' }; - case grpcTypes.ErrorState.Cause.VIRTUAL_ADAPTER_PROBLEM: - return { reason: 'virtual_adapter_problem' }; case grpcTypes.ErrorState.Cause.SET_FIREWALL_POLICY_ERROR: return { reason: 'set_firewall_policy_error', diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts index 95d8758088..597220e6c8 100644 --- a/gui/src/shared/daemon-rpc-types.ts +++ b/gui/src/shared/daemon-rpc-types.ts @@ -33,12 +33,7 @@ export type TunnelParameterError = export type ErrorStateCause = | { - reason: - | 'ipv6_unavailable' - | 'set_dns_error' - | 'start_tunnel_error' - | 'is_offline' - | 'virtual_adapter_problem'; + reason: 'ipv6_unavailable' | 'set_dns_error' | 'start_tunnel_error' | 'is_offline'; } | { reason: 'set_firewall_policy_error'; details: FirewallPolicyError } | { reason: 'tunnel_parameter_error'; details: TunnelParameterError } diff --git a/gui/src/shared/notifications/error.ts b/gui/src/shared/notifications/error.ts index 672dc27b94..d580bf1f1e 100644 --- a/gui/src/shared/notifications/error.ts +++ b/gui/src/shared/notifications/error.ts @@ -117,11 +117,6 @@ function getMessage(errorDetails: IErrorState, accountExpiry?: string): string { 'notifications', "Your device is offline. Try connecting when it's back online.", ); - case 'virtual_adapter_problem': - return messages.pgettext( - 'notifications', - 'Unable to detect a working virtual adapter on this device. Try enabling it. Otherwise, please reinstall the app.', - ); } } } diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs index 57d063c6a9..4fe5b3aee1 100644 --- a/mullvad-daemon/src/management_interface.rs +++ b/mullvad-daemon/src/management_interface.rs @@ -1370,9 +1370,6 @@ fn convert_state(state: TunnelState) -> types::TunnelState { i32::from(ProtoErrorCause::TunnelParameterError) } ErrorStateCause::IsOffline => i32::from(ProtoErrorCause::IsOffline), - ErrorStateCause::VirtualAdapterProblem => { - i32::from(ProtoErrorCause::VirtualAdapterProblem) - } #[cfg(target_os = "android")] ErrorStateCause::VpnPermissionDenied => { i32::from(ProtoErrorCause::VpnPermissionDenied) diff --git a/mullvad-jni/src/classes.rs b/mullvad-jni/src/classes.rs index eeddad8432..068e75f63c 100644 --- a/mullvad-jni/src/classes.rs +++ b/mullvad-jni/src/classes.rs @@ -55,7 +55,6 @@ pub const CLASSES: &[&str] = &[ "net/mullvad/talpid/tunnel/ErrorStateCause$StartTunnelError", "net/mullvad/talpid/tunnel/ErrorStateCause$TunnelParameterError", "net/mullvad/talpid/tunnel/ErrorStateCause$IsOffline", - "net/mullvad/talpid/tunnel/ErrorStateCause$VirtualAdapterProblem", "net/mullvad/talpid/tunnel/ErrorStateCause$VpnPermissionDenied", "net/mullvad/talpid/tunnel/ParameterGenerationError", "net/mullvad/talpid/ConnectivityListener", diff --git a/mullvad-management-interface/proto/management_interface.proto b/mullvad-management-interface/proto/management_interface.proto index 817d97cd95..755703c3ee 100644 --- a/mullvad-management-interface/proto/management_interface.proto +++ b/mullvad-management-interface/proto/management_interface.proto @@ -96,8 +96,7 @@ message ErrorState { START_TUNNEL_ERROR = 4; TUNNEL_PARAMETER_ERROR = 5; IS_OFFLINE = 6; - VIRTUAL_ADAPTER_PROBLEM = 7; - VPN_PERMISSION_DENIED = 8; + VPN_PERMISSION_DENIED = 7; } enum GenerationError { diff --git a/talpid-core/src/tunnel/mod.rs b/talpid-core/src/tunnel/mod.rs index 1dca634f00..b2a8292bf2 100644 --- a/talpid-core/src/tunnel/mod.rs +++ b/talpid-core/src/tunnel/mod.rs @@ -242,23 +242,21 @@ impl TunnelMonitor { #[cfg(target_os = "windows")] if options.enable_ipv6 { - try_enabling_ipv6(tunnel_parameters) + try_enabling_ipv6() } else { Ok(()) } #[cfg(not(target_os = "windows"))] - { - if options.enable_ipv6 { - let enabled = is_ipv6_enabled_in_os()?; - if enabled { - Ok(()) - } else { - Err(Error::EnableIpv6Error) - } - } else { + if options.enable_ipv6 { + let enabled = is_ipv6_enabled_in_os()?; + if enabled { Ok(()) + } else { + Err(Error::EnableIpv6Error) } + } else { + Ok(()) } } @@ -364,7 +362,7 @@ impl InternalTunnelMonitor { #[cfg(target_os = "windows")] -fn try_enabling_ipv6(tunnel_parameters: &TunnelParameters) -> Result<()> { +fn try_enabling_ipv6() -> Result<()> { use winreg::{enums::*, RegKey}; const IPV6_DISABLED_ON_TUNNELS_MASK: u32 = 0x01; diff --git a/talpid-core/src/tunnel/openvpn/mod.rs b/talpid-core/src/tunnel/openvpn/mod.rs index 3ab8e8dc30..c413c8235a 100644 --- a/talpid-core/src/tunnel/openvpn/mod.rs +++ b/talpid-core/src/tunnel/openvpn/mod.rs @@ -12,8 +12,8 @@ use crate::{ }; #[cfg(target_os = "linux")] use ipnetwork::IpNetwork; +#[cfg(windows)] use lazy_static::lazy_static; -use regex::Regex; use std::{ collections::HashMap, fs, @@ -44,12 +44,9 @@ use winapi::shared::{guiddef::GUID, winerror::ERROR_FILE_NOT_FOUND}; mod windows; +#[cfg(windows)] lazy_static! { - static ref ENV_ROUTE_ENTRY: Regex = Regex::new(r"route_(ipv6_)?(\w+)_(\d+)").unwrap(); - - #[cfg(windows)] static ref ADAPTER_ALIAS: U16CString = U16CString::from_str("Mullvad").unwrap(); - #[cfg(windows)] static ref ADAPTER_POOL: U16CString = U16CString::from_str("Mullvad").unwrap(); } @@ -90,16 +87,6 @@ pub enum Error { #[error(display = "The OpenVPN event dispatcher exited unexpectedly")] EventDispatcherExited, - /// No virtual adapter was detected - #[cfg(windows)] - #[error(display = "No virtual adapter was detected")] - MissingVirtualAdapter, - - /// virtual adapter seems to be disabled - #[cfg(windows)] - #[error(display = "The virtual adapter appears to be disabled")] - DisabledVirtualAdapter, - /// cannot load wintun.dll #[cfg(windows)] #[error(display = "Failed to load wintun.dll")] @@ -535,7 +522,7 @@ impl<C: OpenVpnBuilder + 'static> OpenVpnMonitor<C> { Ok(()) } else { log::error!("OpenVPN died unexpectedly with status: {}", exit_status); - Err(self.postmortem()) + Err(Error::ChildProcessDied) } } WaitResult::Child(Err(e), _) => { @@ -583,25 +570,6 @@ impl<C: OpenVpnBuilder + 'static> OpenVpnMonitor<C> { result } - /// Performs a postmortem analysis to attempt to provide a more detailed error result. - fn postmortem(&mut self) -> Error { - #[cfg(windows)] - { - if let Some(log_path) = self.log_path.take() { - if let Ok(log) = fs::read_to_string(log_path) { - if log.contains("There are no TAP-Windows adapters on this system") { - return Error::MissingVirtualAdapter; - } - if log.contains("CreateFile failed on TAP device") { - return Error::DisabledVirtualAdapter; - } - } - } - } - - Error::ChildProcessDied - } - fn create_proxy_auth_file( proxy_settings: &Option<openvpn::ProxySettings>, ) -> std::result::Result<Option<mktemp::TempFile>, io::Error> { diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs index 60e836a4da..146d7c293a 100644 --- a/talpid-core/src/tunnel_state_machine/connecting_state.rs +++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs @@ -151,23 +151,6 @@ impl ConnectingState { match tunnel_monitor.wait() { Ok(_) => None, Err(error) => match error { - #[cfg(windows)] - error - @ - tunnel::Error::OpenVpnTunnelMonitoringError( - tunnel::openvpn::Error::DisabledVirtualAdapter, - ) - | error - @ - tunnel::Error::OpenVpnTunnelMonitoringError( - tunnel::openvpn::Error::MissingVirtualAdapter, - ) => { - warn!( - "{}", - error.display_chain_with_msg("Virtual adapter problem detected") - ); - Some(ErrorStateCause::VirtualAdapterProblem) - } tunnel::Error::WireguardTunnelMonitoringError( tunnel::wireguard::Error::TimeoutError, ) => { @@ -428,15 +411,6 @@ impl TunnelState for ConnectingState { tunnel::Error::EnableIpv6Error => { ErrorStateCause::Ipv6Unavailable } - #[cfg(windows)] - tunnel::Error::OpenVpnTunnelMonitoringError( - tunnel::openvpn::Error::WinnetError( - crate::winnet::Error::GetVirtualAdapterAlias, - ), - ) - | tunnel::Error::WinnetError( - crate::winnet::Error::GetVirtualAdapterAlias, - ) => ErrorStateCause::VirtualAdapterProblem, #[cfg(target_os = "android")] tunnel::Error::WireguardTunnelMonitoringError( tunnel::wireguard::Error::TunnelError( diff --git a/talpid-core/src/winnet.rs b/talpid-core/src/winnet.rs index e78fd5f03b..3c036e95e7 100644 --- a/talpid-core/src/winnet.rs +++ b/talpid-core/src/winnet.rs @@ -2,9 +2,8 @@ use self::api::*; pub use self::api::{WinNet_ActivateConnectivityMonitor, WinNet_DeactivateConnectivityMonitor}; use crate::{logging::windows::log_sink, routing::Node}; use ipnetwork::IpNetwork; -use libc::{c_void, wchar_t}; +use libc::c_void; use std::{ - ffi::{OsStr, OsString}, net::{IpAddr, Ipv4Addr, Ipv6Addr}, ptr, }; @@ -25,10 +24,6 @@ pub enum Error { #[error(display = "Failed to enable IPv6 on the network interface")] EnableIpv6, - /// Failed to enable IPv6 on the network interface. - #[error(display = "Failed to obtain GUID for the network interface")] - GetInterfaceGuid, - /// Failed to get the current default route. #[error(display = "Failed to obtain default route")] GetDefaultRoute, @@ -41,10 +36,6 @@ pub enum Error { #[error(display = "Failed to read IPv6 status on the TAP network interface")] GetIpv6Status, - /// Failed to determine alias of virtual adapter. - #[error(display = "Failed to determine alias of virtual adapter")] - GetVirtualAdapterAlias, - /// Can't establish whether host is connected to a non-virtual network #[error(display = "Network connectivity undecideable")] ConnectivityUnkown, @@ -102,47 +93,6 @@ pub fn enable_ipv6_for_adapter(interface_guid: &str) -> Result<(), Error> { } } -/// Dynamically determines the alias of the virtual adapter. -pub fn get_interface_alias() -> Result<OsString, Error> { - let mut alias_ptr: *mut wchar_t = ptr::null_mut(); - let status = unsafe { - WinNet_GetInterfaceAlias(&mut alias_ptr as *mut _, Some(log_sink), logging_context()) - }; - - if !status { - return Err(Error::GetVirtualAdapterAlias); - } - - let alias = unsafe { WideCString::from_ptr_str(alias_ptr) }; - unsafe { WinNet_ReleaseString(alias_ptr) }; - - Ok(alias.to_os_string()) -} - -/// Determines the interface guid for a given adapter alias. -pub fn interface_alias_to_guid(interface_alias: &OsStr) -> Result<String, Error> { - let interface_alias = - WideCString::from_os_str(interface_alias).map_err(Error::InvalidInterfaceAlias)?; - let mut guid_ptr: *mut wchar_t = ptr::null_mut(); - let status = unsafe { - WinNet_InterfaceAliasToGuid( - interface_alias.as_ptr(), - &mut guid_ptr as *mut _, - Some(log_sink), - logging_context(), - ) - }; - - if !status { - return Err(Error::GetInterfaceGuid); - } - - let guid = unsafe { WideCString::from_ptr_str(guid_ptr) }; - unsafe { WinNet_ReleaseString(guid_ptr) }; - - Ok(guid.to_string_lossy()) -} - #[allow(dead_code)] #[repr(u32)] pub enum WinNetAddrFamily { @@ -521,24 +471,6 @@ mod api { sink_context: *const u8, ) -> WinNetStatus; - #[link_name = "WinNet_GetInterfaceAlias"] - pub fn WinNet_GetInterfaceAlias( - tunnel_interface_alias: *mut *mut wchar_t, - sink: Option<LogSink>, - sink_context: *const u8, - ) -> bool; - - #[link_name = "WinNet_InterfaceAliasToGuid"] - pub fn WinNet_InterfaceAliasToGuid( - interface_alias: *const wchar_t, - interface_guid: *mut *mut wchar_t, - sink: Option<LogSink>, - sink_context: *const u8, - ) -> bool; - - #[link_name = "WinNet_ReleaseString"] - pub fn WinNet_ReleaseString(string: *mut wchar_t); - #[link_name = "WinNet_ActivateConnectivityMonitor"] pub fn WinNet_ActivateConnectivityMonitor( callback: Option<ConnectivityCallback>, diff --git a/talpid-types/src/tunnel.rs b/talpid-types/src/tunnel.rs index fd476e14c6..5a0dfd0b3c 100644 --- a/talpid-types/src/tunnel.rs +++ b/talpid-types/src/tunnel.rs @@ -96,8 +96,6 @@ pub enum ErrorStateCause { TunnelParameterError(ParameterGenerationError), /// This device is offline, no tunnels can be established. IsOffline, - /// A problem with the virtual adapter has been detected. - VirtualAdapterProblem, /// The Android VPN permission was denied. #[cfg(target_os = "android")] VpnPermissionDenied, @@ -177,7 +175,6 @@ impl fmt::Display for ErrorStateCause { return write!(f, "Failure to generate tunnel parameters: {}", err); } IsOffline => "This device is offline, no tunnels can be established", - VirtualAdapterProblem => "A problem with the virtual adapter has been detected", #[cfg(target_os = "android")] VpnPermissionDenied => "The Android VPN permission was denied when creating the tunnel", }; diff --git a/windows/libshared/src/libshared/network/interfaceutils.cpp b/windows/libshared/src/libshared/network/interfaceutils.cpp index 26588206b3..b5b65d3d61 100644 --- a/windows/libshared/src/libshared/network/interfaceutils.cpp +++ b/windows/libshared/src/libshared/network/interfaceutils.cpp @@ -121,76 +121,4 @@ void InterfaceUtils::AddDeviceIpAddresses(NET_LUID device, const std::vector<SOC } } -//static -std::set<InterfaceUtils::NetworkAdapter> -InterfaceUtils::GetVirtualAdapters(const std::set<NetworkAdapter>& adapters) -{ - std::set<NetworkAdapter> virtualAdapters; - - for (const auto& adapter : adapters) - { - for (size_t i = 0; i < ARRAYSIZE(TUNNEL_INTERFACE_DESCS); i++) - { - if (nullptr != wcsstr(adapter.raw().Description, TUNNEL_INTERFACE_DESCS[i])) - { - virtualAdapters.insert(adapter); - } - } - } - - return virtualAdapters; -} - -//static -std::wstring InterfaceUtils::GetInterfaceAlias() -{ - // - // Look for virtual adapter with alias "Mullvad". - // - - using shared::network::InterfaceUtils; - - auto adapters = InterfaceUtils::GetVirtualAdapters(InterfaceUtils::GetAllAdapters( - AF_INET, - GAA_FLAG_SKIP_UNICAST | GAA_FLAG_SKIP_ANYCAST | GAA_FLAG_SKIP_MULTICAST - )); - - auto findByAlias = [](const std::set<InterfaceUtils::NetworkAdapter>& adapters, const std::wstring& alias) - { - const auto it = std::find_if(adapters.begin(), adapters.end(), [&alias](const InterfaceUtils::NetworkAdapter& candidate) - { - return 0 == _wcsicmp(candidate.alias().c_str(), alias.c_str()); - }); - - return it != adapters.end(); - }; - - static const wchar_t baseAlias[] = L"Mullvad"; - - if (findByAlias(adapters, baseAlias)) - { - return baseAlias; - } - - // - // Look for virtual adapter with alias "Mullvad-1", "Mullvad-2", etc. - // - - for (auto i = 0; i < 10; ++i) - { - std::wstringstream ss; - - ss << baseAlias << L"-" << i; - - const auto alias = ss.str(); - - if (findByAlias(adapters, alias)) - { - return alias; - } - } - - THROW_ERROR("Unable to find virtual adapter"); -} - } diff --git a/windows/libshared/src/libshared/network/interfaceutils.h b/windows/libshared/src/libshared/network/interfaceutils.h index e29b2fbcb2..b23eb88475 100644 --- a/windows/libshared/src/libshared/network/interfaceutils.h +++ b/windows/libshared/src/libshared/network/interfaceutils.h @@ -67,13 +67,6 @@ public: static std::set<NetworkAdapter> GetAllAdapters(ULONG family, ULONG flags); static void AddDeviceIpAddresses(NET_LUID device, const std::vector<SOCKADDR_INET> &addresses); - - static std::set<NetworkAdapter> GetVirtualAdapters(const std::set<NetworkAdapter> &adapters); - - // - // Determines alias of primary virtual adapter. - // - static std::wstring GetInterfaceAlias(); }; } diff --git a/windows/winnet/src/winnet/winnet.cpp b/windows/winnet/src/winnet/winnet.cpp index bccf5561d8..e52662c7a2 100644 --- a/windows/winnet/src/winnet/winnet.cpp +++ b/windows/winnet/src/winnet/winnet.cpp @@ -215,114 +215,6 @@ extern "C" WINNET_LINKAGE
bool
WINNET_API
-WinNet_GetInterfaceAlias(
- wchar_t **alias,
- MullvadLogSink logSink,
- void *logSinkContext
-)
-{
- try
- {
- if (nullptr == alias)
- {
- THROW_ERROR("Invalid argument: alias");
- }
-
- const auto currentAlias = InterfaceUtils::GetInterfaceAlias();
-
- auto stringBuffer = new wchar_t[currentAlias.size() + 1];
- wcscpy(stringBuffer, currentAlias.c_str());
-
- *alias = stringBuffer;
-
- return true;
- }
- catch (const std::exception &err)
- {
- shared::logging::UnwindAndLog(logSink, logSinkContext, err);
- return false;
- }
- catch (...)
- {
- return false;
- }
-}
-
-extern "C"
-WINNET_LINKAGE
-bool
-WINNET_API
-WinNet_InterfaceAliasToGuid(
- const wchar_t *alias,
- wchar_t **guid,
- MullvadLogSink logSink,
- void *logSinkContext
-)
-{
- try
- {
- if (nullptr == guid)
- {
- THROW_ERROR("Invalid argument: guid");
- }
- if (nullptr == alias)
- {
- THROW_ERROR("Invalid argument: alias");
- }
-
- GUID tempGuid = { 0 };
- NET_LUID luid = { 0 };
-
- if (NO_ERROR != ConvertInterfaceAliasToLuid(alias, &luid))
- {
- THROW_ERROR("ConvertInterfaceAliasToLuid: invalid parameter");
- }
-
- if (NO_ERROR != ConvertInterfaceLuidToGuid(&luid, &tempGuid))
- {
- THROW_ERROR("ConvertInterfaceLuidToGuid: invalid parameter");
- }
-
- const auto guidStr = common::string::FormatGuid(tempGuid);
-
- auto guidBuffer = new wchar_t[guidStr.size() + 1];
- wcscpy(guidBuffer, guidStr.c_str());
- *guid = guidBuffer;
-
- return true;
- }
- catch (const std::exception & err)
- {
- shared::logging::UnwindAndLog(logSink, logSinkContext, err);
- return false;
- }
- catch (...)
- {
- return false;
- }
-}
-
-extern "C"
-WINNET_LINKAGE
-void
-WINNET_API
-WinNet_ReleaseString(
- wchar_t *str
-)
-{
- try
- {
- delete[] str;
- }
- catch (...)
- {
- }
-}
-
-extern "C"
-WINNET_LINKAGE
-bool
-WINNET_API
WinNet_ActivateConnectivityMonitor(
WinNetConnectivityMonitorCallback callback,
void *callbackContext,
diff --git a/windows/winnet/src/winnet/winnet.def b/windows/winnet/src/winnet/winnet.def index 34d3c4e59d..82cb952790 100644 --- a/windows/winnet/src/winnet/winnet.def +++ b/windows/winnet/src/winnet/winnet.def @@ -1,10 +1,7 @@ LIBRARY winnet EXPORTS WinNet_EnsureBestMetric - WinNet_InterfaceAliasToGuid WinNet_EnableIpv6ForAdapter - WinNet_GetInterfaceAlias - WinNet_ReleaseString WinNet_ActivateConnectivityMonitor WinNet_DeactivateConnectivityMonitor WinNet_ActivateRouteManager diff --git a/windows/winnet/src/winnet/winnet.h b/windows/winnet/src/winnet/winnet.h index 5634298a93..2d3c579e60 100644 --- a/windows/winnet/src/winnet/winnet.h +++ b/windows/winnet/src/winnet/winnet.h @@ -43,39 +43,6 @@ WinNet_EnableIpv6ForAdapter( void *logSinkContext ); -extern "C" -WINNET_LINKAGE -bool -WINNET_API -WinNet_GetInterfaceAlias( - wchar_t **alias, - MullvadLogSink logSink, - void *logSinkContext -); - -extern "C" -WINNET_LINKAGE -bool -WINNET_API -WinNet_InterfaceAliasToGuid( - const wchar_t *alias, - wchar_t **guid, - MullvadLogSink logSink, - void *logSinkContext -); - -// -// This is a companion function to the above function. -// Generically named in case we need other functions here that return strings. -// -extern "C" -WINNET_LINKAGE -void -WINNET_API -WinNet_ReleaseString( - wchar_t *str -); - typedef void (WINNET_API *WinNetConnectivityMonitorCallback)(bool connected, void *context); extern "C" |
