Skip to content

Commit 1ad751e

Browse files
committed
feat(configuration): define per-package default timeout constants (torrust#1793)
Remove `DEFAULT_TIMEOUT` from `torrust-tracker-configuration` and define context-specific local constants in each consumer package: - `packages/tracker-client`: `DEFAULT_UDP_TIMEOUT` (UDP I/O) - `packages/axum-http-tracker-server`: `DEFAULT_REQUEST_TIMEOUT` (HTTP request processing) - `packages/axum-rest-tracker-api-server`: `DEFAULT_REQUEST_TIMEOUT` (REST API request processing) - `packages/udp-tracker-server`: `DEFAULT_SERVER_LIFECYCLE_TIMEOUT` (server start/stop), `DEFAULT_UDP_TIMEOUT` (UDP test client) - `console/tracker-client`: `DEFAULT_NETWORK_TIMEOUT` (all network operations) Drop `torrust-tracker-configuration` from `Cargo.toml` of `packages/tracker-client` and `console/tracker-client` as the dependency was only needed for this constant. Closes torrust#1793
1 parent e34f1e0 commit 1ad751e

18 files changed

Lines changed: 208 additions & 270 deletions

File tree

Cargo.lock

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

console/tracker-client/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ serde_bytes = "0"
3030
serde_json = { version = "1", features = [ "preserve_order" ] }
3131
thiserror = "2"
3232
tokio = { version = "1", features = [ "macros", "net", "rt-multi-thread", "signal", "sync" ] }
33-
torrust-tracker-configuration = { version = "3.0.0-develop", path = "../../packages/configuration" }
3433
tracing = "0"
3534
tracing-subscriber = { version = "0", features = [ "json" ] }
3635
url = { version = "2", features = [ "serde" ] }

console/tracker-client/src/console/clients/checker/service.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ use std::sync::Arc;
33
use futures::FutureExt as _;
44
use serde::Serialize;
55
use tokio::task::{JoinError, JoinSet};
6-
use torrust_tracker_configuration::DEFAULT_TIMEOUT;
76

87
use super::checks::{health, http, udp};
98
use super::config::Configuration;
109
use super::console::Console;
10+
use crate::DEFAULT_NETWORK_TIMEOUT;
1111
use crate::console::clients::checker::printer::Printer;
1212

1313
pub struct Service {
@@ -38,14 +38,15 @@ impl Service {
3838

3939
let mut checks = JoinSet::new();
4040
checks.spawn(
41-
udp::run(self.config.udp_trackers.clone(), DEFAULT_TIMEOUT).map(|mut f| f.drain(..).map(CheckResult::Udp).collect()),
41+
udp::run(self.config.udp_trackers.clone(), DEFAULT_NETWORK_TIMEOUT)
42+
.map(|mut f| f.drain(..).map(CheckResult::Udp).collect()),
4243
);
4344
checks.spawn(
44-
http::run(self.config.http_trackers.clone(), DEFAULT_TIMEOUT)
45+
http::run(self.config.http_trackers.clone(), DEFAULT_NETWORK_TIMEOUT)
4546
.map(|mut f| f.drain(..).map(CheckResult::Http).collect()),
4647
);
4748
checks.spawn(
48-
health::run(self.config.health_checks.clone(), DEFAULT_TIMEOUT)
49+
health::run(self.config.health_checks.clone(), DEFAULT_NETWORK_TIMEOUT)
4950
.map(|mut f| f.drain(..).map(CheckResult::Health).collect()),
5051
);
5152

console/tracker-client/src/console/clients/http/app.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ use bittorrent_tracker_client::http::client::{Client, requests};
8282
use bittorrent_udp_tracker_protocol::PeerId;
8383
use clap::{Parser, Subcommand, ValueEnum};
8484
use reqwest::Url;
85-
use torrust_tracker_configuration::DEFAULT_TIMEOUT;
85+
86+
use crate::DEFAULT_NETWORK_TIMEOUT;
8687

8788
#[derive(Clone, Copy, Debug, ValueEnum)]
8889
enum CliEvent {
@@ -211,7 +212,7 @@ pub async fn run() -> anyhow::Result<()> {
211212
compact,
212213
output_format: format,
213214
},
214-
DEFAULT_TIMEOUT,
215+
DEFAULT_NETWORK_TIMEOUT,
215216
)
216217
.await?;
217218
}
@@ -220,7 +221,7 @@ pub async fn run() -> anyhow::Result<()> {
220221
info_hashes,
221222
format,
222223
} => {
223-
scrape_command(&tracker_url, &info_hashes, format, DEFAULT_TIMEOUT).await?;
224+
scrape_command(&tracker_url, &info_hashes, format, DEFAULT_NETWORK_TIMEOUT).await?;
224225
}
225226
}
226227

console/tracker-client/src/console/clients/udp/app.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,11 @@ use anyhow::Context;
102102
use bittorrent_primitives::info_hash::InfoHash as TorrustInfoHash;
103103
use bittorrent_udp_tracker_protocol::{AnnounceEvent, Response, TransactionId};
104104
use clap::{Parser, Subcommand, ValueEnum};
105-
use torrust_tracker_configuration::DEFAULT_TIMEOUT;
106105
use tracing::level_filters::LevelFilter;
107106
use url::Url;
108107

109108
use super::Error;
109+
use crate::DEFAULT_NETWORK_TIMEOUT;
110110
use crate::console::clients::udp::checker;
111111
use crate::console::clients::udp::checker::AnnounceParams;
112112
use crate::console::clients::udp::responses::dto::SerializableResponse;
@@ -259,7 +259,7 @@ async fn handle_announce(
259259
) -> Result<Response, Error> {
260260
let transaction_id = TransactionId::new(RANDOM_TRANSACTION_ID);
261261

262-
let client = checker::Client::new(remote_addr, DEFAULT_TIMEOUT).await?;
262+
let client = checker::Client::new(remote_addr, DEFAULT_NETWORK_TIMEOUT).await?;
263263

264264
let connection_id = client.send_connection_request(transaction_id).await?;
265265

@@ -271,7 +271,7 @@ async fn handle_announce(
271271
async fn handle_scrape(remote_addr: SocketAddr, info_hashes: &[TorrustInfoHash]) -> Result<Response, Error> {
272272
let transaction_id = TransactionId::new(RANDOM_TRANSACTION_ID);
273273

274-
let client = checker::Client::new(remote_addr, DEFAULT_TIMEOUT).await?;
274+
let client = checker::Client::new(remote_addr, DEFAULT_NETWORK_TIMEOUT).await?;
275275

276276
let connection_id = client.send_connection_request(transaction_id).await?;
277277

console/tracker-client/src/console/clients/unified/check.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ use clap::{Parser, Subcommand};
88
use futures::FutureExt as _;
99
use serde::Serialize;
1010
use tokio::task::JoinSet;
11-
use torrust_tracker_configuration::DEFAULT_TIMEOUT;
1211
use url::Url;
1312

1413
use super::app::OutputFormat;
14+
use crate::DEFAULT_NETWORK_TIMEOUT;
1515
use crate::console::clients::checker::checks::{health, http, udp};
1616
use crate::console::clients::checker::config::{Configuration, parse_from_json};
1717
use crate::console::clients::checker::error::{AppError, ConfigSource};
@@ -128,14 +128,15 @@ async fn run_checks(config: Arc<Configuration>, output_format: OutputFormat) ->
128128

129129
let mut checks = JoinSet::new();
130130
checks.spawn(
131-
udp::run(config.udp_trackers.clone(), DEFAULT_TIMEOUT).map(|mut f| f.drain(..).map(CheckResult::Udp).collect::<Vec<_>>()),
131+
udp::run(config.udp_trackers.clone(), DEFAULT_NETWORK_TIMEOUT)
132+
.map(|mut f| f.drain(..).map(CheckResult::Udp).collect::<Vec<_>>()),
132133
);
133134
checks.spawn(
134-
http::run(config.http_trackers.clone(), DEFAULT_TIMEOUT)
135+
http::run(config.http_trackers.clone(), DEFAULT_NETWORK_TIMEOUT)
135136
.map(|mut f| f.drain(..).map(CheckResult::Http).collect::<Vec<_>>()),
136137
);
137138
checks.spawn(
138-
health::run(config.health_checks.clone(), DEFAULT_TIMEOUT)
139+
health::run(config.health_checks.clone(), DEFAULT_NETWORK_TIMEOUT)
139140
.map(|mut f| f.drain(..).map(CheckResult::Health).collect::<Vec<_>>()),
140141
);
141142

console/tracker-client/src/console/clients/unified/http.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ use bittorrent_tracker_client::http::client::{Client, requests};
1212
use bittorrent_udp_tracker_protocol::PeerId;
1313
use clap::{Subcommand, ValueEnum};
1414
use reqwest::Url;
15-
use torrust_tracker_configuration::DEFAULT_TIMEOUT;
1615

1716
use super::app::OutputFormat;
17+
use crate::DEFAULT_NETWORK_TIMEOUT;
1818

1919
#[derive(Clone, Copy, Debug, ValueEnum)]
2020
pub enum CliEvent {
@@ -128,7 +128,7 @@ pub async fn run(command: Command) -> anyhow::Result<()> {
128128
compact,
129129
output_format: format,
130130
},
131-
DEFAULT_TIMEOUT,
131+
DEFAULT_NETWORK_TIMEOUT,
132132
)
133133
.await?;
134134
}
@@ -137,7 +137,7 @@ pub async fn run(command: Command) -> anyhow::Result<()> {
137137
info_hashes,
138138
format,
139139
} => {
140-
scrape_command(&tracker_url, &info_hashes, format, DEFAULT_TIMEOUT).await?;
140+
scrape_command(&tracker_url, &info_hashes, format, DEFAULT_NETWORK_TIMEOUT).await?;
141141
}
142142
}
143143

console/tracker-client/src/console/clients/unified/udp.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ use anyhow::Context;
55
use bittorrent_primitives::info_hash::InfoHash as TorrustInfoHash;
66
use bittorrent_udp_tracker_protocol::{AnnounceEvent, Response, TransactionId};
77
use clap::{Subcommand, ValueEnum};
8-
use torrust_tracker_configuration::DEFAULT_TIMEOUT;
98
use url::Url;
109

1110
use super::app::OutputFormat;
11+
use crate::DEFAULT_NETWORK_TIMEOUT;
1212
use crate::console::clients::udp::checker::AnnounceParams;
1313
use crate::console::clients::udp::responses::dto::SerializableResponse;
1414
use crate::console::clients::udp::responses::json::ToJson;
@@ -136,7 +136,7 @@ async fn handle_announce(
136136
) -> Result<Response, Error> {
137137
let transaction_id = TransactionId::new(RANDOM_TRANSACTION_ID);
138138

139-
let client = checker::Client::new(remote_addr, DEFAULT_TIMEOUT).await?;
139+
let client = checker::Client::new(remote_addr, DEFAULT_NETWORK_TIMEOUT).await?;
140140

141141
let connection_id = client.send_connection_request(transaction_id).await?;
142142

@@ -148,7 +148,7 @@ async fn handle_announce(
148148
async fn handle_scrape(remote_addr: SocketAddr, info_hashes: &[TorrustInfoHash]) -> Result<Response, Error> {
149149
let transaction_id = TransactionId::new(RANDOM_TRANSACTION_ID);
150150

151-
let client = checker::Client::new(remote_addr, DEFAULT_TIMEOUT).await?;
151+
let client = checker::Client::new(remote_addr, DEFAULT_NETWORK_TIMEOUT).await?;
152152

153153
let connection_id = client.send_connection_request(transaction_id).await?;
154154

console/tracker-client/src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1+
use std::time::Duration;
2+
13
pub mod console;
4+
5+
pub(crate) const DEFAULT_NETWORK_TIMEOUT: Duration = Duration::from_secs(5);

0 commit comments

Comments
 (0)