Skip to content

Commit ae77ebc

Browse files
committed
refactor: tracker core service only needs the core config
1 parent 014ca38 commit ae77ebc

File tree

5 files changed

+98
-31
lines changed

5 files changed

+98
-31
lines changed

src/core/mod.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,8 @@ use derive_more::Constructor;
445445
use log::debug;
446446
use tokio::sync::mpsc::error::SendError;
447447
use torrust_tracker_clock::clock::Time;
448-
use torrust_tracker_configuration::{AnnouncePolicy, Configuration, TrackerPolicy, TORRENT_PEERS_LIMIT};
448+
use torrust_tracker_configuration::v1::core::Core;
449+
use torrust_tracker_configuration::{AnnouncePolicy, TrackerPolicy, TORRENT_PEERS_LIMIT};
449450
use torrust_tracker_primitives::info_hash::InfoHash;
450451
use torrust_tracker_primitives::swarm_metadata::SwarmMetadata;
451452
use torrust_tracker_primitives::torrent_metrics::TorrentsMetrics;
@@ -540,31 +541,31 @@ impl Tracker {
540541
///
541542
/// Will return a `databases::error::Error` if unable to connect to database. The `Tracker` is responsible for the persistence.
542543
pub fn new(
543-
config: &Configuration,
544+
config: &Core,
544545
stats_event_sender: Option<Box<dyn statistics::EventSender>>,
545546
stats_repository: statistics::Repo,
546547
) -> Result<Tracker, databases::error::Error> {
547-
let database = Arc::new(databases::driver::build(&config.core.db_driver, &config.core.db_path)?);
548+
let database = Arc::new(databases::driver::build(&config.db_driver, &config.db_path)?);
548549

549-
let mode = config.core.mode;
550+
let mode = config.mode;
550551

551552
Ok(Tracker {
552553
//config,
553-
announce_policy: AnnouncePolicy::new(config.core.announce_interval, config.core.min_announce_interval),
554+
announce_policy: AnnouncePolicy::new(config.announce_interval, config.min_announce_interval),
554555
mode,
555556
keys: tokio::sync::RwLock::new(std::collections::HashMap::new()),
556557
whitelist: tokio::sync::RwLock::new(std::collections::HashSet::new()),
557558
torrents: Arc::default(),
558559
stats_event_sender,
559560
stats_repository,
560561
database,
561-
external_ip: config.get_ext_ip(),
562+
external_ip: config.external_ip,
562563
policy: TrackerPolicy::new(
563-
config.core.remove_peerless_torrents,
564-
config.core.max_peer_timeout,
565-
config.core.persistent_torrent_completed_stat,
564+
config.remove_peerless_torrents,
565+
config.max_peer_timeout,
566+
config.persistent_torrent_completed_stat,
566567
),
567-
on_reverse_proxy: config.core.on_reverse_proxy,
568+
on_reverse_proxy: config.on_reverse_proxy,
568569
})
569570
}
570571

src/core/services/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ pub fn tracker_factory(config: &Configuration) -> Tracker {
2424
let (stats_event_sender, stats_repository) = statistics::setup::factory(config.core.tracker_usage_statistics);
2525

2626
// Initialize Torrust tracker
27-
match Tracker::new(&Arc::new(config), stats_event_sender, stats_repository) {
27+
match Tracker::new(&Arc::new(config).core, stats_event_sender, stats_repository) {
2828
Ok(tracker) => tracker,
2929
Err(error) => {
3030
panic!("{}", error)

src/servers/http/v1/services/announce.rs

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,14 @@ mod tests {
135135
.returning(|_| Box::pin(future::ready(Some(Ok(())))));
136136
let stats_event_sender = Box::new(stats_event_sender_mock);
137137

138-
let tracker =
139-
Arc::new(Tracker::new(&configuration::ephemeral(), Some(stats_event_sender), statistics::Repo::new()).unwrap());
138+
let tracker = Arc::new(
139+
Tracker::new(
140+
&configuration::ephemeral().core,
141+
Some(stats_event_sender),
142+
statistics::Repo::new(),
143+
)
144+
.unwrap(),
145+
);
140146

141147
let mut peer = sample_peer_using_ipv4();
142148

@@ -149,7 +155,7 @@ mod tests {
149155
0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x6969,
150156
)));
151157

152-
Tracker::new(&configuration, Some(stats_event_sender), statistics::Repo::new()).unwrap()
158+
Tracker::new(&configuration.core, Some(stats_event_sender), statistics::Repo::new()).unwrap()
153159
}
154160

155161
fn peer_with_the_ipv4_loopback_ip() -> peer::Peer {
@@ -194,8 +200,14 @@ mod tests {
194200
.returning(|_| Box::pin(future::ready(Some(Ok(())))));
195201
let stats_event_sender = Box::new(stats_event_sender_mock);
196202

197-
let tracker =
198-
Arc::new(Tracker::new(&configuration::ephemeral(), Some(stats_event_sender), statistics::Repo::new()).unwrap());
203+
let tracker = Arc::new(
204+
Tracker::new(
205+
&configuration::ephemeral().core,
206+
Some(stats_event_sender),
207+
statistics::Repo::new(),
208+
)
209+
.unwrap(),
210+
);
199211

200212
let mut peer = sample_peer_using_ipv6();
201213

src/servers/http/v1/services/scrape.rs

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,14 @@ mod tests {
146146
.returning(|_| Box::pin(future::ready(Some(Ok(())))));
147147
let stats_event_sender = Box::new(stats_event_sender_mock);
148148

149-
let tracker =
150-
Arc::new(Tracker::new(&configuration::ephemeral(), Some(stats_event_sender), statistics::Repo::new()).unwrap());
149+
let tracker = Arc::new(
150+
Tracker::new(
151+
&configuration::ephemeral().core,
152+
Some(stats_event_sender),
153+
statistics::Repo::new(),
154+
)
155+
.unwrap(),
156+
);
151157

152158
let peer_ip = IpAddr::V4(Ipv4Addr::new(126, 0, 0, 1));
153159

@@ -164,8 +170,14 @@ mod tests {
164170
.returning(|_| Box::pin(future::ready(Some(Ok(())))));
165171
let stats_event_sender = Box::new(stats_event_sender_mock);
166172

167-
let tracker =
168-
Arc::new(Tracker::new(&configuration::ephemeral(), Some(stats_event_sender), statistics::Repo::new()).unwrap());
173+
let tracker = Arc::new(
174+
Tracker::new(
175+
&configuration::ephemeral().core,
176+
Some(stats_event_sender),
177+
statistics::Repo::new(),
178+
)
179+
.unwrap(),
180+
);
169181

170182
let peer_ip = IpAddr::V6(Ipv6Addr::new(0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x6969));
171183

@@ -217,8 +229,14 @@ mod tests {
217229
.returning(|_| Box::pin(future::ready(Some(Ok(())))));
218230
let stats_event_sender = Box::new(stats_event_sender_mock);
219231

220-
let tracker =
221-
Arc::new(Tracker::new(&configuration::ephemeral(), Some(stats_event_sender), statistics::Repo::new()).unwrap());
232+
let tracker = Arc::new(
233+
Tracker::new(
234+
&configuration::ephemeral().core,
235+
Some(stats_event_sender),
236+
statistics::Repo::new(),
237+
)
238+
.unwrap(),
239+
);
222240

223241
let peer_ip = IpAddr::V4(Ipv4Addr::new(126, 0, 0, 1));
224242

@@ -235,8 +253,14 @@ mod tests {
235253
.returning(|_| Box::pin(future::ready(Some(Ok(())))));
236254
let stats_event_sender = Box::new(stats_event_sender_mock);
237255

238-
let tracker =
239-
Arc::new(Tracker::new(&configuration::ephemeral(), Some(stats_event_sender), statistics::Repo::new()).unwrap());
256+
let tracker = Arc::new(
257+
Tracker::new(
258+
&configuration::ephemeral().core,
259+
Some(stats_event_sender),
260+
statistics::Repo::new(),
261+
)
262+
.unwrap(),
263+
);
240264

241265
let peer_ip = IpAddr::V6(Ipv6Addr::new(0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x6969, 0x6969));
242266

src/servers/udp/handlers.rs

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,12 @@ mod tests {
506506
let client_socket_address = sample_ipv4_socket_address();
507507

508508
let torrent_tracker = Arc::new(
509-
core::Tracker::new(&tracker_configuration(), Some(stats_event_sender), statistics::Repo::new()).unwrap(),
509+
core::Tracker::new(
510+
&tracker_configuration().core,
511+
Some(stats_event_sender),
512+
statistics::Repo::new(),
513+
)
514+
.unwrap(),
510515
);
511516
handle_connect(client_socket_address, &sample_connect_request(), &torrent_tracker)
512517
.await
@@ -524,7 +529,12 @@ mod tests {
524529
let stats_event_sender = Box::new(stats_event_sender_mock);
525530

526531
let torrent_tracker = Arc::new(
527-
core::Tracker::new(&tracker_configuration(), Some(stats_event_sender), statistics::Repo::new()).unwrap(),
532+
core::Tracker::new(
533+
&tracker_configuration().core,
534+
Some(stats_event_sender),
535+
statistics::Repo::new(),
536+
)
537+
.unwrap(),
528538
);
529539
handle_connect(sample_ipv6_remote_addr(), &sample_connect_request(), &torrent_tracker)
530540
.await
@@ -768,7 +778,12 @@ mod tests {
768778
let stats_event_sender = Box::new(stats_event_sender_mock);
769779

770780
let tracker = Arc::new(
771-
core::Tracker::new(&tracker_configuration(), Some(stats_event_sender), statistics::Repo::new()).unwrap(),
781+
core::Tracker::new(
782+
&tracker_configuration().core,
783+
Some(stats_event_sender),
784+
statistics::Repo::new(),
785+
)
786+
.unwrap(),
772787
);
773788

774789
handle_announce(
@@ -997,7 +1012,12 @@ mod tests {
9971012
let stats_event_sender = Box::new(stats_event_sender_mock);
9981013

9991014
let tracker = Arc::new(
1000-
core::Tracker::new(&tracker_configuration(), Some(stats_event_sender), statistics::Repo::new()).unwrap(),
1015+
core::Tracker::new(
1016+
&tracker_configuration().core,
1017+
Some(stats_event_sender),
1018+
statistics::Repo::new(),
1019+
)
1020+
.unwrap(),
10011021
);
10021022

10031023
let remote_addr = sample_ipv6_remote_addr();
@@ -1027,7 +1047,7 @@ mod tests {
10271047
let configuration = Arc::new(TrackerConfigurationBuilder::default().with_external_ip("::126.0.0.1").into());
10281048
let (stats_event_sender, stats_repository) = Keeper::new_active_instance();
10291049
let tracker =
1030-
Arc::new(core::Tracker::new(&configuration, Some(stats_event_sender), stats_repository).unwrap());
1050+
Arc::new(core::Tracker::new(&configuration.core, Some(stats_event_sender), stats_repository).unwrap());
10311051

10321052
let loopback_ipv4 = Ipv4Addr::new(127, 0, 0, 1);
10331053
let loopback_ipv6 = Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1);
@@ -1305,7 +1325,12 @@ mod tests {
13051325

13061326
let remote_addr = sample_ipv4_remote_addr();
13071327
let tracker = Arc::new(
1308-
core::Tracker::new(&tracker_configuration(), Some(stats_event_sender), statistics::Repo::new()).unwrap(),
1328+
core::Tracker::new(
1329+
&tracker_configuration().core,
1330+
Some(stats_event_sender),
1331+
statistics::Repo::new(),
1332+
)
1333+
.unwrap(),
13091334
);
13101335

13111336
handle_scrape(remote_addr, &sample_scrape_request(&remote_addr), &tracker)
@@ -1337,7 +1362,12 @@ mod tests {
13371362

13381363
let remote_addr = sample_ipv6_remote_addr();
13391364
let tracker = Arc::new(
1340-
core::Tracker::new(&tracker_configuration(), Some(stats_event_sender), statistics::Repo::new()).unwrap(),
1365+
core::Tracker::new(
1366+
&tracker_configuration().core,
1367+
Some(stats_event_sender),
1368+
statistics::Repo::new(),
1369+
)
1370+
.unwrap(),
13411371
);
13421372

13431373
handle_scrape(remote_addr, &sample_scrape_request(&remote_addr), &tracker)

0 commit comments

Comments
 (0)