Skip to content

Commit 44e8076

Browse files
committed
Merge #610: Add timeout to UDP tracker requests
fec9716 feat: [#609] add timeout to UDP tracker requests (Jose Celano) Pull request description: Add timeout to UDP tracker requests. ACKs for top commit: josecelano: ACK fec9716 Tree-SHA512: 6f7f915007a6a1ba6f0bca512327e2760adb92d6af63ad5d96ab2d635569d85911dcce705acd9cc6b382ef71a57081c112b9ce3d3ef9f864a905bba7e4a7cdf7
2 parents b001ffd + fec9716 commit 44e8076

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)