Skip to content

Commit fec9716

Browse files
committed
feat: [#609] add timeout to UDP tracker requests
1 parent b001ffd commit fec9716

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/servers/udp/server.rs

+10-2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use std::io::Cursor;
2121
use std::net::SocketAddr;
2222
use std::sync::Arc;
23+
use std::time::Duration;
2324

2425
use aquatic_udp_protocol::Response;
2526
use derive_more::Constructor;
@@ -240,9 +241,16 @@ impl Udp {
240241
debug!(target: "UDP Tracker", "From: {}", &remote_addr);
241242
debug!(target: "UDP Tracker", "Payload: {:?}", payload);
242243

243-
let response = handle_packet(remote_addr, payload, &tracker).await;
244+
let response_fut = handle_packet(remote_addr, payload, &tracker);
244245

245-
Udp::send_response(socket_clone, remote_addr, response).await;
246+
match tokio::time::timeout(Duration::from_secs(5), response_fut).await {
247+
Ok(response) => {
248+
Udp::send_response(socket_clone, remote_addr, response).await;
249+
}
250+
Err(_) => {
251+
error!("Timeout occurred while processing the UDP request.");
252+
}
253+
}
246254
}
247255
Err(err) => {
248256
error!("Error reading UDP datagram from socket. Error: {:?}", err);

0 commit comments

Comments
 (0)