diff --git a/leak-checker/src/traceroute/platform/windows.rs b/leak-checker/src/traceroute/platform/windows.rs index 401cb6ee9c30..089fb998c5cc 100644 --- a/leak-checker/src/traceroute/platform/windows.rs +++ b/leak-checker/src/traceroute/platform/windows.rs @@ -31,6 +31,11 @@ pub struct AsyncIcmpSocketImpl(tokio::net::UdpSocket); pub struct AsyncUdpSocketWindows(tokio::net::UdpSocket); /// Implementation of traceroute using `ping.exe` +/// +/// This monstrosity exists because the Windows firewall is not helpful enough to allow us to +/// permit a process (the daemon) to receive ICMP TimeExceeded packets. We can get around this by +/// using `ping.exe`, which does work for some reason. My best guess is that it has special kernel +/// access to be able to do this. pub async fn traceroute_using_ping(opt: &TracerouteOpt) -> anyhow::Result { let interface_ip = get_interface_ip(&opt.interface)?; @@ -44,12 +49,16 @@ pub async fn traceroute_using_ping(opt: &TracerouteOpt) -> anyhow::Result anyhow::Result: TTL expired if !stdout.contains("TTL expired") {