mirror of
https://github.com/rustdesk/rustdesk-server.git
synced 2026-03-06 12:03:12 +08:00
Feat: listen for unix signal
This commit is contained in:
@@ -170,37 +170,44 @@ impl RendezvousServer {
|
||||
allow_err!(test_hbbs(test_addr).await);
|
||||
});
|
||||
};
|
||||
loop {
|
||||
log::info!("Start");
|
||||
match rs
|
||||
.io_loop(
|
||||
&mut rx,
|
||||
&mut listener,
|
||||
&mut listener2,
|
||||
&mut listener3,
|
||||
&mut socket,
|
||||
&key,
|
||||
)
|
||||
.await
|
||||
{
|
||||
LoopFailure::UdpSocket => {
|
||||
drop(socket);
|
||||
socket = FramedSocket::new_with_buf_size(&addr, rmem).await?;
|
||||
}
|
||||
LoopFailure::Listener => {
|
||||
drop(listener);
|
||||
listener = new_listener(&addr, false).await?;
|
||||
}
|
||||
LoopFailure::Listener2 => {
|
||||
drop(listener2);
|
||||
listener2 = new_listener(&addr2, false).await?;
|
||||
}
|
||||
LoopFailure::Listener3 => {
|
||||
drop(listener3);
|
||||
listener3 = new_listener(&addr3, false).await?;
|
||||
let main_task = async move {
|
||||
loop {
|
||||
log::info!("Start");
|
||||
match rs
|
||||
.io_loop(
|
||||
&mut rx,
|
||||
&mut listener,
|
||||
&mut listener2,
|
||||
&mut listener3,
|
||||
&mut socket,
|
||||
&key,
|
||||
)
|
||||
.await
|
||||
{
|
||||
LoopFailure::UdpSocket => {
|
||||
drop(socket);
|
||||
socket = FramedSocket::new_with_buf_size(&addr, rmem).await?;
|
||||
}
|
||||
LoopFailure::Listener => {
|
||||
drop(listener);
|
||||
listener = new_listener(&addr, false).await?;
|
||||
}
|
||||
LoopFailure::Listener2 => {
|
||||
drop(listener2);
|
||||
listener2 = new_listener(&addr2, false).await?;
|
||||
}
|
||||
LoopFailure::Listener3 => {
|
||||
drop(listener3);
|
||||
listener3 = new_listener(&addr3, false).await?;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
let listen_signal = listen_signal();
|
||||
tokio::select!(
|
||||
res = main_task => res,
|
||||
res = listen_signal => res,
|
||||
)
|
||||
}
|
||||
|
||||
async fn io_loop(
|
||||
|
||||
Reference in New Issue
Block a user