From ea84e8310cfd18bf365cb3f669ddc25d27f8d36e Mon Sep 17 00:00:00 2001 From: Sebastian Urban Date: Mon, 5 Feb 2024 19:31:58 +0100 Subject: [PATCH] Fix build on non-Linux. --- aggligator-util/src/bin/raw-speed.rs | 29 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/aggligator-util/src/bin/raw-speed.rs b/aggligator-util/src/bin/raw-speed.rs index 02c8c4a..ded84cc 100644 --- a/aggligator-util/src/bin/raw-speed.rs +++ b/aggligator-util/src/bin/raw-speed.rs @@ -138,23 +138,24 @@ impl RawClientCli { { let mut bound = false; - for ifn in ifaces { + 'ifaces: for ifn in ifaces { if ifn.name.as_bytes() == iface { - let Some(addr) = ifn.addr else { continue }; - match (addr.ip(), target.ip()) { - (IpAddr::V4(_), IpAddr::V4(_)) => (), - (IpAddr::V6(_), IpAddr::V6(_)) => (), - _ => continue, - } + for addr in &ifn.addr { + match (addr.ip(), target.ip()) { + (IpAddr::V4(_), IpAddr::V4(_)) => (), + (IpAddr::V6(_), IpAddr::V6(_)) => (), + _ => continue, + } - if addr.ip().is_loopback() != target.ip().is_loopback() { - continue; - } + if addr.ip().is_loopback() != target.ip().is_loopback() { + continue; + } - tracing::debug!("binding to {addr:?} on interface {}", &ifn.name); - socket.bind(SocketAddr::new(addr.ip(), 0))?; - bound = true; - break; + tracing::debug!("binding to {addr:?} on interface {}", &ifn.name); + socket.bind(SocketAddr::new(addr.ip(), 0))?; + bound = true; + break 'ifaces; + } } }