summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-03-14 10:52:29 +0100
committerDavid Lönnhager <david.l@mullvad.net>2022-03-18 10:34:34 +0100
commite4e23de8587b6699f6c4a472b651bd53ace7f1f5 (patch)
tree46cddeef3769feca56c2c56917682b72e49c781b /talpid-core/src
parenteb937c0ae598b5fbcb0e539f8bc1b300720c17a8 (diff)
downloadmullvadvpn-e4e23de8587b6699f6c4a472b651bd53ace7f1f5.tar.xz
mullvadvpn-e4e23de8587b6699f6c4a472b651bd53ace7f1f5.zip
Log warnings if IPs cannot be obtained for default routes
Diffstat (limited to 'talpid-core/src')
-rw-r--r--talpid-core/src/split_tunnel/windows/mod.rs18
1 files changed, 16 insertions, 2 deletions
diff --git a/talpid-core/src/split_tunnel/windows/mod.rs b/talpid-core/src/split_tunnel/windows/mod.rs
index 01a3d324b5..c7cbbe93a3 100644
--- a/talpid-core/src/split_tunnel/windows/mod.rs
+++ b/talpid-core/src/split_tunnel/windows/mod.rs
@@ -620,13 +620,27 @@ impl SplitTunnelDefaultRouteChangeHandlerContext {
// Identify IP address that gives us Internet access
let internet_ipv4 = get_best_default_route(WinNetAddrFamily::IPV4)
.map_err(Error::ObtainDefaultRoute)?
- .map(|route| interface_luid_to_ip(WinNetAddrFamily::IPV4, route.interface_luid))
+ .map(|route| {
+ interface_luid_to_ip(WinNetAddrFamily::IPV4, route.interface_luid).map(|ip| {
+ ip.or_else(|| {
+ log::warn!("No IPv4 address was found for the default route interface");
+ None
+ })
+ })
+ })
.transpose()
.map_err(Error::LuidToIp)?
.flatten();
let internet_ipv6 = get_best_default_route(WinNetAddrFamily::IPV6)
.map_err(Error::ObtainDefaultRoute)?
- .map(|route| interface_luid_to_ip(WinNetAddrFamily::IPV6, route.interface_luid))
+ .map(|route| {
+ interface_luid_to_ip(WinNetAddrFamily::IPV6, route.interface_luid).map(|ip| {
+ ip.or_else(|| {
+ log::warn!("No IPv6 address was found for the default route interface");
+ None
+ })
+ })
+ })
.transpose()
.map_err(Error::LuidToIp)?
.flatten();