summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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();