From 22c458163aa1c6d5029c67ec79c763360caf954b Mon Sep 17 00:00:00 2001 From: Luna Yao <40349250+ZnqbuZ@users.noreply.github.com> Date: Mon, 4 May 2026 01:46:37 +0200 Subject: [PATCH] merge --- easytier/src/utils/dns.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/easytier/src/utils/dns.rs b/easytier/src/utils/dns.rs index c2e5c18e..14d3167a 100644 --- a/easytier/src/utils/dns.rs +++ b/easytier/src/utils/dns.rs @@ -233,4 +233,23 @@ mod tests { assert_eq!(2, addrs.len(), "addrs: {:?}", addrs); println!("addrs2: {:?}", addrs); } + + #[tokio::test] + async fn socket_addrs_preserves_explicit_zero_port() { + let cases = [ + ("ws://127.0.0.1:0", 80, 0), + ("wss://127.0.0.1:0", 443, 0), + ("ws://127.0.0.1", 80, 80), + ("wss://127.0.0.1", 443, 443), + ]; + + for (raw_url, default_port, expected_port) in cases { + let url = url::Url::parse(raw_url).unwrap(); + let addrs = socket_addrs(&url, || Some(default_port)).await.unwrap(); + assert_eq!( + addrs, + vec![SocketAddr::from(([127, 0, 0, 1], expected_port))] + ); + } + } }