summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-12-01 13:57:06 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-12-03 11:31:35 +0100
commita51c84e78beeb3eb7e6e2c6f89f6889b70f5a9da (patch)
tree6c2ac92f469f59bd48ca93bcbe7656d8115c4e3c
parent9bdef8c490d3897b6e6cd29de48169a08075aa22 (diff)
downloadmullvadvpn-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.kt1
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt1
-rw-r--r--gui/src/main/daemon-rpc.ts2
-rw-r--r--gui/src/shared/daemon-rpc-types.ts7
-rw-r--r--gui/src/shared/notifications/error.ts5
-rw-r--r--mullvad-daemon/src/management_interface.rs3
-rw-r--r--mullvad-jni/src/classes.rs1
-rw-r--r--mullvad-management-interface/proto/management_interface.proto3
-rw-r--r--talpid-core/src/tunnel/mod.rs20
-rw-r--r--talpid-core/src/tunnel/openvpn/mod.rs38
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs26
-rw-r--r--talpid-core/src/winnet.rs70
-rw-r--r--talpid-types/src/tunnel.rs3
-rw-r--r--windows/libshared/src/libshared/network/interfaceutils.cpp72
-rw-r--r--windows/libshared/src/libshared/network/interfaceutils.h7
-rw-r--r--windows/winnet/src/winnet/winnet.cpp108
-rw-r--r--windows/winnet/src/winnet/winnet.def3
-rw-r--r--windows/winnet/src/winnet/winnet.h33
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"