new_token function

This commit is contained in:
ssrlive 2023-04-15 11:46:54 +08:00 committed by B. Blechschmidt
parent 7442abece5
commit cba6ba7318

View file

@ -244,7 +244,7 @@ pub(crate) trait ConnectionManager {
const TCP_TOKEN: Token = Token(0); const TCP_TOKEN: Token = Token(0);
const UDP_TOKEN: Token = Token(1); 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"; const EXIT_LISTENER: &str = "127.0.0.1:34255";
@ -306,7 +306,7 @@ impl<'a> TunToProxy<'a> {
poll, poll,
iface, iface,
connections: HashMap::default(), connections: HashMap::default(),
next_token: 2, next_token: usize::from(EXIT_TOKEN) + 1,
token_to_connection: HashMap::default(), token_to_connection: HashMap::default(),
connection_managers: Vec::default(), connection_managers: Vec::default(),
sockets: SocketSet::new([]), sockets: SocketSet::new([]),
@ -318,6 +318,12 @@ impl<'a> TunToProxy<'a> {
Ok(tun) 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<dyn ConnectionManager>) { pub(crate) fn add_connection_manager(&mut self, manager: Rc<dyn ConnectionManager>) {
self.connection_managers.push(manager); self.connection_managers.push(manager);
} }
@ -509,8 +515,7 @@ impl<'a> TunToProxy<'a> {
let client = TcpStream::connect(server)?; let client = TcpStream::connect(server)?;
let token = Token(self.next_token); let token = self.new_token();
self.next_token += 1;
let mut state = ConnectionState { let mut state = ConnectionState {
smoltcp_handle: handle, smoltcp_handle: handle,