From a102a8bfc752a8b38c239cccb52dad29bf0ba9fa Mon Sep 17 00:00:00 2001 From: "Sijie.Sun" Date: Sun, 21 Sep 2025 21:47:03 +0800 Subject: [PATCH] fix macos bind failed when addr is v6 (#1398) --- easytier/src/tunnel/common.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/easytier/src/tunnel/common.rs b/easytier/src/tunnel/common.rs index 7be61dc..b5ac636 100644 --- a/easytier/src/tunnel/common.rs +++ b/easytier/src/tunnel/common.rs @@ -384,7 +384,11 @@ pub(crate) fn setup_sokcet2_ext( unsafe { let dev_idx = nix::libc::if_nametoindex(dev_name.as_str().as_ptr() as *const i8); tracing::warn!(?dev_idx, ?dev_name, "bind device"); - socket2_socket.bind_device_by_index_v4(std::num::NonZeroU32::new(dev_idx))?; + if bind_addr.is_ipv4() { + socket2_socket.bind_device_by_index_v4(std::num::NonZeroU32::new(dev_idx))?; + } else { + socket2_socket.bind_device_by_index_v6(std::num::NonZeroU32::new(dev_idx))?; + } tracing::warn!(?dev_idx, ?dev_name, "bind device doen"); } }