mirror of
https://github.com/tun2proxy/tun2proxy.git
synced 2025-04-21 22:39:08 +00:00
Support TCP on Windows
This commit is contained in:
parent
398d64eb64
commit
a948b9c572
1 changed files with 7 additions and 6 deletions
|
@ -785,8 +785,9 @@ impl<'a> TunToProxy<'a> {
|
||||||
udp_associate: bool,
|
udp_associate: bool,
|
||||||
) -> Result<ConnectionState> {
|
) -> Result<ConnectionState> {
|
||||||
let mut socket = tcp::Socket::new(
|
let mut socket = tcp::Socket::new(
|
||||||
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 * 128]),
|
tcp::SocketBuffer::new(vec![0; 1024]),
|
||||||
|
tcp::SocketBuffer::new(vec![0; 1024]),
|
||||||
);
|
);
|
||||||
socket.set_ack_delay(None);
|
socket.set_ack_delay(None);
|
||||||
socket.listen(dst)?;
|
socket.listen(dst)?;
|
||||||
|
@ -794,7 +795,7 @@ impl<'a> TunToProxy<'a> {
|
||||||
|
|
||||||
let mut client = TcpStream::connect(server_addr)?;
|
let mut client = TcpStream::connect(server_addr)?;
|
||||||
let token = self.new_token();
|
let token = self.new_token();
|
||||||
let i = Interest::READABLE;
|
let i = Interest::READABLE | Interest::WRITABLE;
|
||||||
self.poll.registry().register(&mut client, token, i)?;
|
self.poll.registry().register(&mut client, token, i)?;
|
||||||
|
|
||||||
let expiry = if udp_associate {
|
let expiry = if udp_associate {
|
||||||
|
@ -819,7 +820,7 @@ impl<'a> TunToProxy<'a> {
|
||||||
proxy_handler,
|
proxy_handler,
|
||||||
close_state: 0,
|
close_state: 0,
|
||||||
wait_read: true,
|
wait_read: true,
|
||||||
wait_write: false,
|
wait_write: true,
|
||||||
udp_acco_expiry: expiry,
|
udp_acco_expiry: expiry,
|
||||||
udp_socket,
|
udp_socket,
|
||||||
udp_token,
|
udp_token,
|
||||||
|
@ -887,8 +888,8 @@ impl<'a> TunToProxy<'a> {
|
||||||
state.wait_write = true;
|
state.wait_write = true;
|
||||||
Self::update_mio_socket_interest(&mut self.poll, state)?;
|
Self::update_mio_socket_interest(&mut self.poll, state)?;
|
||||||
}
|
}
|
||||||
Err(error) => {
|
Err(_) => {
|
||||||
return Err(error.into());
|
return Ok(());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue