Skip to content

Commit

Permalink
Merge torrust#610: Add timeout to UDP tracker requests
Browse files Browse the repository at this point in the history
fec9716 feat: [torrust#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
  • Loading branch information
josecelano committed Jan 16, 2024
2 parents b001ffd + fec9716 commit 44e8076
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/servers/udp/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
use std::io::Cursor;
use std::net::SocketAddr;
use std::sync::Arc;
use std::time::Duration;

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

let response = handle_packet(remote_addr, payload, &tracker).await;
let response_fut = handle_packet(remote_addr, payload, &tracker);

Udp::send_response(socket_clone, remote_addr, response).await;
match tokio::time::timeout(Duration::from_secs(5), response_fut).await {
Ok(response) => {
Udp::send_response(socket_clone, remote_addr, response).await;
}
Err(_) => {
error!("Timeout occurred while processing the UDP request.");
}
}
}
Err(err) => {
error!("Error reading UDP datagram from socket. Error: {:?}", err);
Expand Down

0 comments on commit 44e8076

Please sign in to comment.