This commit is contained in:
Ferdinand Schober
2024-07-12 18:02:32 +02:00
parent d02d8d5ab9
commit 69afbe1674

View File

@@ -178,7 +178,7 @@ impl Server {
tokio::select! {
stream = frontend.accept() => {
match stream {
Ok(s) => join_handles.push(self.clone().handle_frontend_stream(s, request_tx.clone())),
Ok(s) => join_handles.push(handle_frontend_stream(self.notifies.cancel.clone(), s, request_tx.clone())),
Err(e) => log::warn!("error accepting frontend connection: {e}"),
};
self.enumerate();
@@ -351,21 +351,6 @@ impl Server {
false
}
fn handle_frontend_stream(
self,
#[cfg(unix)] stream: ReadHalf<UnixStream>,
#[cfg(windows)] stream: ReadHalf<TcpStream>,
request_channel: Sender<FrontendRequest>,
) -> JoinHandle<()> {
let tx = request_channel.clone();
tokio::task::spawn_local(async move {
tokio::select! {
_ = listen_frontend(tx, stream) => {},
_ = self.cancelled() => {},
}
})
}
fn enumerate(&self) {
let clients = self
.client_manager
@@ -563,3 +548,18 @@ async fn listen_frontend(
}
}
}
fn handle_frontend_stream(
cancel: CancellationToken,
#[cfg(unix)] stream: ReadHalf<UnixStream>,
#[cfg(windows)] stream: ReadHalf<TcpStream>,
request_channel: Sender<FrontendRequest>,
) -> JoinHandle<()> {
let tx = request_channel.clone();
tokio::task::spawn_local(async move {
tokio::select! {
_ = listen_frontend(tx, stream) => {},
_ = cancel.cancelled() => {},
}
})
}