From cba6ba7318a7f3d41143326c1a72916cb2fd587d Mon Sep 17 00:00:00 2001 From: ssrlive <30760636+ssrlive@users.noreply.github.com> Date: Sat, 15 Apr 2023 11:46:54 +0800 Subject: [PATCH] new_token function --- src/tun2proxy.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/tun2proxy.rs b/src/tun2proxy.rs index 4e17711..7ceb256 100644 --- a/src/tun2proxy.rs +++ b/src/tun2proxy.rs @@ -244,7 +244,7 @@ pub(crate) trait ConnectionManager { const TCP_TOKEN: Token = Token(0); const UDP_TOKEN: Token = Token(1); -const EXIT_TOKEN: Token = Token(34255); +const EXIT_TOKEN: Token = Token(2); const EXIT_LISTENER: &str = "127.0.0.1:34255"; @@ -306,7 +306,7 @@ impl<'a> TunToProxy<'a> { poll, iface, connections: HashMap::default(), - next_token: 2, + next_token: usize::from(EXIT_TOKEN) + 1, token_to_connection: HashMap::default(), connection_managers: Vec::default(), sockets: SocketSet::new([]), @@ -318,6 +318,12 @@ impl<'a> TunToProxy<'a> { Ok(tun) } + fn new_token(&mut self) -> Token { + let token = Token(self.next_token); + self.next_token += 1; + token + } + pub(crate) fn add_connection_manager(&mut self, manager: Rc) { self.connection_managers.push(manager); } @@ -509,8 +515,7 @@ impl<'a> TunToProxy<'a> { let client = TcpStream::connect(server)?; - let token = Token(self.next_token); - self.next_token += 1; + let token = self.new_token(); let mut state = ConnectionState { smoltcp_handle: handle,