From a948b9c5724561b639ce705d39c3d7b46416977c Mon Sep 17 00:00:00 2001 From: "B. Blechschmidt" Date: Sat, 30 Sep 2023 16:02:55 +0200 Subject: [PATCH] Support TCP on Windows --- src/tun2proxy.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/tun2proxy.rs b/src/tun2proxy.rs index 6dab625..6183123 100644 --- a/src/tun2proxy.rs +++ b/src/tun2proxy.rs @@ -785,8 +785,9 @@ impl<'a> TunToProxy<'a> { udp_associate: bool, ) -> Result { let mut socket = tcp::Socket::new( - tcp::SocketBuffer::new(vec![0; 1024 * 128]), - tcp::SocketBuffer::new(vec![0; 1024 * 128]), + // TODO: Look into how the buffer size affects IP header length and fragmentation + tcp::SocketBuffer::new(vec![0; 1024]), + tcp::SocketBuffer::new(vec![0; 1024]), ); socket.set_ack_delay(None); socket.listen(dst)?; @@ -794,7 +795,7 @@ impl<'a> TunToProxy<'a> { let mut client = TcpStream::connect(server_addr)?; let token = self.new_token(); - let i = Interest::READABLE; + let i = Interest::READABLE | Interest::WRITABLE; self.poll.registry().register(&mut client, token, i)?; let expiry = if udp_associate { @@ -819,7 +820,7 @@ impl<'a> TunToProxy<'a> { proxy_handler, close_state: 0, wait_read: true, - wait_write: false, + wait_write: true, udp_acco_expiry: expiry, udp_socket, udp_token, @@ -887,8 +888,8 @@ impl<'a> TunToProxy<'a> { state.wait_write = true; Self::update_mio_socket_interest(&mut self.poll, state)?; } - Err(error) => { - return Err(error.into()); + Err(_) => { + return Ok(()); } } }