From 2e77da50ee89f0b8ccfbc2d83618219cc2321ea2 Mon Sep 17 00:00:00 2001 From: Zak Estrada Date: Fri, 7 Mar 2025 16:34:56 -0500 Subject: [PATCH] fix regression in ipv6 tcp sockets --- src/guest.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/guest.rs b/src/guest.rs index 749aac7..d481baf 100644 --- a/src/guest.rs +++ b/src/guest.rs @@ -58,7 +58,10 @@ async fn process_client(mut vsock: VsockStream, peer_address: VsockAddr) -> Resu } else if internal_address.ip() == IpAddr::V6([0, 0, 0, 0, 0, 0, 0, 0].into()) { internal_address.set_ip(IpAddr::V6([0, 0, 0, 0, 0, 0, 0, 1].into())); } - let socket = TcpSocket::new_v4().context("unable to create tcp socket")?; + let socket = match internal_address.ip() { + IpAddr::V4(_) => TcpSocket::new_v4().context("unable to create IPv4 TCP socket")?, + IpAddr::V6(_) => TcpSocket::new_v6().context("unable to create IPv6 TCP socket")?, + }; socket.bind(source_address)?; match timeout(CONNECTION_TIMEOUT, socket.connect(internal_address)).await { Ok(Ok(stream)) => {