Skip to content

Commit ff2c35f

Browse files
committedDec 19, 2024
Get default route for macOS
1 parent bed3432 commit ff2c35f

File tree

1 file changed

+13
-4
lines changed
  • mullvad-daemon/src/leak_checker

1 file changed

+13
-4
lines changed
 

‎mullvad-daemon/src/leak_checker/mod.rs

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use anyhow::anyhow;
1+
use anyhow::{anyhow, Context};
22
use futures::{select, FutureExt};
33
use leak_checker::traceroute::TracerouteOpt;
44
pub use leak_checker::LeakInfo;
@@ -189,10 +189,19 @@ async fn check_for_leaks(
189189
#[cfg(target_os = "android")]
190190
let interface = todo!("get default interface");
191191

192-
// TODO (macos):
193-
// get_default_route in route manager
194192
#[cfg(target_os = "macos")]
195-
let interface = todo!("get default interface");
193+
let interface = {
194+
let (v4_route, v6_route) = route_manager.get_default_routes().await
195+
.context("Failed to get default interface")?;
196+
if destination.address.is_ipv4() {
197+
let v4_route = v4_route.context("Missing IPv4 default interface")?;
198+
v4_route.interface.into()
199+
} else {
200+
let v6_route = v6_route.context("Missing IPv6 default interface")?;
201+
v6_route.interface.into()
202+
}
203+
// TODO: use route.interface_index?
204+
};
196205

197206
// TODO (windows):
198207
// Use default route monitor thingy. It should contain interfaces.

0 commit comments

Comments
 (0)
Failed to load comments.