fix bin
This commit is contained in:
1 parent
538aef71d1
commit
af7d7f0b02
3 files changed
+114
-2
No files matched your search
@@ -95,6 +95,7 @@ enum LoopFailure {
|
||||
Listener3,
|
||||
Listener2,
|
||||
Listener,
|
||||
ConsoleListener,
|
||||
}
|
||||
|
||||
impl RendezvousServer {
|
||||
@@ -157,6 +158,7 @@ impl RendezvousServer {
|
||||
let mut listener = create_tcp_listener(bind_addr, port).await?;
|
||||
let mut listener2 = create_tcp_listener(bind_addr, nat_port).await?;
|
||||
let mut listener3 = create_tcp_listener(bind_addr, ws_port).await?;
|
||||
let mut listener_console = listen_console(bind_addr, nat_port as _).await?;
|
||||
log::info!("Listening on tcp/udp {}", listener.local_addr()?);
|
||||
log::info!(
|
||||
"Listening on tcp {}, extra port for NAT test",
|
||||
@@ -206,6 +208,7 @@ impl RendezvousServer {
|
||||
&mut listener,
|
||||
&mut listener2,
|
||||
&mut listener3,
|
||||
&mut listener_console,
|
||||
&mut socket,
|
||||
&key,
|
||||
)
|
||||
@@ -223,6 +226,10 @@ impl RendezvousServer {
|
||||
drop(listener2);
|
||||
listener2 = create_tcp_listener(bind_addr, nat_port).await?;
|
||||
}
|
||||
LoopFailure::ConsoleListener => {
|
||||
drop(listener_console.take());
|
||||
listener_console = listen_console(bind_addr, nat_port as _).await?;
|
||||
}
|
||||
LoopFailure::Listener3 => {
|
||||
drop(listener3);
|
||||
listener3 = create_tcp_listener(bind_addr, ws_port).await?;
|
||||
@@ -243,6 +250,7 @@ impl RendezvousServer {
|
||||
listener: &mut TcpListener,
|
||||
listener2: &mut TcpListener,
|
||||
listener3: &mut TcpListener,
|
||||
listener_console: &mut Option<TcpListener>,
|
||||
socket: &mut FramedSocket,
|
||||
key: &str,
|
||||
) -> LoopFailure {
|
||||
@@ -294,6 +302,18 @@ impl RendezvousServer {
|
||||
}
|
||||
}
|
||||
}
|
||||
res = accept_or_pending(listener_console.as_ref()) => {
|
||||
match res {
|
||||
Ok((stream, addr)) => {
|
||||
stream.set_nodelay(true).ok();
|
||||
self.handle_listener2(stream, addr).await;
|
||||
}
|
||||
Err(err) => {
|
||||
log::error!("console listener.accept failed: {}", err);
|
||||
return LoopFailure::ConsoleListener;
|
||||
}
|
||||
}
|
||||
}
|
||||
res = listener3.accept() => {
|
||||
match res {
|
||||
Ok((stream, addr)) => {
|
||||
|
||||
Reference in new issue
Block a user