diff --git a/cSpell.json b/cSpell.json index 1df69e4e7..c880bf3ae 100644 --- a/cSpell.json +++ b/cSpell.json @@ -34,6 +34,7 @@ "Pando", "Rasterbar", "repr", + "reqwest", "rngs", "rusqlite", "rustfmt", diff --git a/src/api/resources/auth_key_resource.rs b/src/api/resources/auth_key_resource.rs index c38b7cc18..4fc5d0cf9 100644 --- a/src/api/resources/auth_key_resource.rs +++ b/src/api/resources/auth_key_resource.rs @@ -2,10 +2,10 @@ use std::convert::From; use serde::{Deserialize, Serialize}; -use crate::key::AuthKey; use crate::protocol::clock::DurationSinceUnixEpoch; +use crate::tracker::key::AuthKey; -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] pub struct AuthKeyResource { pub key: String, pub valid_until: Option, @@ -36,8 +36,8 @@ mod tests { use std::time::Duration; use super::AuthKeyResource; - use crate::key::AuthKey; use crate::protocol::clock::{DefaultClock, TimeNow}; + use crate::tracker::key::AuthKey; #[test] fn it_should_be_convertible_into_an_auth_key() { diff --git a/src/api/server.rs b/src/api/server.rs index 9f215710e..0f9b60cb5 100644 --- a/src/api/server.rs +++ b/src/api/server.rs @@ -8,8 +8,8 @@ use serde::{Deserialize, Serialize}; use warp::{filters, reply, serve, Filter}; use super::resources::auth_key_resource::AuthKeyResource; -use crate::peer::TorrentPeer; use crate::protocol::common::*; +use crate::tracker::peer::TorrentPeer; use crate::tracker::TorrentTracker; #[derive(Deserialize, Debug)] diff --git a/src/config.rs b/src/config.rs index 8c17070d2..1afc55e54 100644 --- a/src/config.rs +++ b/src/config.rs @@ -10,7 +10,7 @@ use serde_with::{serde_as, NoneAsEmptyString}; use {std, toml}; use crate::databases::database::DatabaseDrivers; -use crate::mode::TrackerMode; +use crate::tracker::mode::TrackerMode; #[derive(Serialize, Deserialize, PartialEq, Eq, Debug)] pub struct UdpTrackerConfig { @@ -161,6 +161,7 @@ impl Configuration { #[cfg(test)] mod tests { + use crate::config::{Configuration, ConfigurationError}; #[cfg(test)] fn default_config_toml() -> String { @@ -205,8 +206,6 @@ mod tests { #[test] fn configuration_should_have_default_values() { - use crate::Configuration; - let configuration = Configuration::default(); let toml = toml::to_string(&configuration).expect("Could not encode TOML value"); @@ -216,8 +215,6 @@ mod tests { #[test] fn configuration_should_contain_the_external_ip() { - use crate::Configuration; - let configuration = Configuration::default(); assert_eq!(configuration.external_ip, Option::Some(String::from("0.0.0.0"))); @@ -229,8 +226,6 @@ mod tests { use uuid::Uuid; - use crate::Configuration; - // Build temp config file path let temp_directory = env::temp_dir(); let temp_file = temp_directory.join(format!("test_config_{}.toml", Uuid::new_v4())); @@ -275,8 +270,6 @@ mod tests { #[test] fn configuration_should_be_loaded_from_a_toml_config_file() { - use crate::Configuration; - let config_file_path = create_temp_config_file_with_default_config(); let configuration = Configuration::load_from_file(&config_file_path).expect("Could not load configuration from file"); @@ -286,8 +279,6 @@ mod tests { #[test] fn configuration_error_could_be_displayed() { - use crate::ConfigurationError; - let error = ConfigurationError::TrackerModeIncompatible; assert_eq!(format!("{}", error), "TrackerModeIncompatible"); diff --git a/src/databases/database.rs b/src/databases/database.rs index c67f39a54..c06e02527 100644 --- a/src/databases/database.rs +++ b/src/databases/database.rs @@ -4,8 +4,8 @@ use serde::{Deserialize, Serialize}; use crate::databases::mysql::MysqlDatabase; use crate::databases::sqlite::SqliteDatabase; +use crate::protocol::common::InfoHash; use crate::tracker::key::AuthKey; -use crate::InfoHash; #[derive(Serialize, Deserialize, PartialEq, Eq, Debug)] pub enum DatabaseDrivers { diff --git a/src/databases/mysql.rs b/src/databases/mysql.rs index a4d870101..711dfa7fc 100644 --- a/src/databases/mysql.rs +++ b/src/databases/mysql.rs @@ -10,8 +10,8 @@ use r2d2_mysql::MysqlConnectionManager; use crate::databases::database; use crate::databases::database::{Database, Error}; +use crate::protocol::common::{InfoHash, AUTH_KEY_LENGTH}; use crate::tracker::key::AuthKey; -use crate::{InfoHash, AUTH_KEY_LENGTH}; pub struct MysqlDatabase { pool: Pool, diff --git a/src/databases/sqlite.rs b/src/databases/sqlite.rs index ef9f12d9c..1584ea0a7 100644 --- a/src/databases/sqlite.rs +++ b/src/databases/sqlite.rs @@ -8,8 +8,8 @@ use r2d2_sqlite::SqliteConnectionManager; use crate::databases::database; use crate::databases::database::{Database, Error}; use crate::protocol::clock::DurationSinceUnixEpoch; +use crate::protocol::common::InfoHash; use crate::tracker::key::AuthKey; -use crate::InfoHash; pub struct SqliteDatabase { pool: Pool, diff --git a/src/http/filters.rs b/src/http/filters.rs index 42d1592ff..d8f5a81f8 100644 --- a/src/http/filters.rs +++ b/src/http/filters.rs @@ -5,10 +5,12 @@ use std::sync::Arc; use warp::{reject, Filter, Rejection}; -use crate::http::{AnnounceRequest, AnnounceRequestQuery, ScrapeRequest, ServerError, WebResult}; +use super::errors::ServerError; +use super::request::{AnnounceRequest, AnnounceRequestQuery, ScrapeRequest}; +use super::WebResult; +use crate::protocol::common::{InfoHash, PeerId, MAX_SCRAPE_TORRENTS}; use crate::tracker::key::AuthKey; use crate::tracker::TorrentTracker; -use crate::{InfoHash, PeerId, MAX_SCRAPE_TORRENTS}; /// Pass Arc along pub fn with_tracker(tracker: Arc) -> impl Filter,), Error = Infallible> + Clone { diff --git a/src/http/handlers.rs b/src/http/handlers.rs index 87d2d51f6..c8b33c6d0 100644 --- a/src/http/handlers.rs +++ b/src/http/handlers.rs @@ -7,16 +7,17 @@ use log::debug; use warp::http::Response; use warp::{reject, Rejection, Reply}; -use crate::http::{ - AnnounceRequest, AnnounceResponse, ErrorResponse, Peer, ScrapeRequest, ScrapeResponse, ScrapeResponseEntry, ServerError, - WebResult, -}; -use crate::peer::TorrentPeer; +use super::errors::ServerError; +use super::request::{AnnounceRequest, ScrapeRequest}; +use super::response::{AnnounceResponse, Peer, ScrapeResponse, ScrapeResponseEntry}; +use crate::http::response::ErrorResponse; +use crate::http::WebResult; +use crate::protocol::common::InfoHash; use crate::tracker::key::AuthKey; +use crate::tracker::peer::TorrentPeer; use crate::tracker::statistics::TrackerStatisticsEvent; use crate::tracker::torrent::{TorrentError, TorrentStats}; use crate::tracker::TorrentTracker; -use crate::InfoHash; /// Authenticate InfoHash using optional AuthKey pub async fn authenticate( diff --git a/src/http/mod.rs b/src/http/mod.rs index 4842c0a25..6e3ce7111 100644 --- a/src/http/mod.rs +++ b/src/http/mod.rs @@ -1,11 +1,3 @@ -pub use self::errors::*; -pub use self::filters::*; -pub use self::handlers::*; -pub use self::request::*; -pub use self::response::*; -pub use self::routes::*; -pub use self::server::*; - pub mod errors; pub mod filters; pub mod handlers; diff --git a/src/http/request.rs b/src/http/request.rs index 6dd025e8c..2d72a1a3c 100644 --- a/src/http/request.rs +++ b/src/http/request.rs @@ -3,7 +3,7 @@ use std::net::IpAddr; use serde::Deserialize; use crate::http::Bytes; -use crate::{InfoHash, PeerId}; +use crate::protocol::common::{InfoHash, PeerId}; #[derive(Deserialize)] pub struct AnnounceRequestQuery { diff --git a/src/http/response.rs b/src/http/response.rs index c87b5e0e8..44387a9f3 100644 --- a/src/http/response.rs +++ b/src/http/response.rs @@ -6,7 +6,7 @@ use std::net::IpAddr; use serde; use serde::Serialize; -use crate::InfoHash; +use crate::protocol::common::InfoHash; #[derive(Serialize)] pub struct Peer { diff --git a/src/http/routes.rs b/src/http/routes.rs index 8bfaf5ed9..f82bf45bc 100644 --- a/src/http/routes.rs +++ b/src/http/routes.rs @@ -3,9 +3,8 @@ use std::sync::Arc; use warp::{Filter, Rejection}; -use crate::http::{ - handle_announce, handle_scrape, send_error, with_announce_request, with_auth_key, with_scrape_request, with_tracker, -}; +use super::filters::{with_announce_request, with_auth_key, with_scrape_request, with_tracker}; +use super::handlers::{handle_announce, handle_scrape, send_error}; use crate::tracker::TorrentTracker; /// All routes diff --git a/src/http/server.rs b/src/http/server.rs index 4e48f97e3..d60387346 100644 --- a/src/http/server.rs +++ b/src/http/server.rs @@ -1,7 +1,7 @@ use std::net::SocketAddr; use std::sync::Arc; -use crate::http::routes; +use super::routes; use crate::tracker::TorrentTracker; /// Server that listens on HTTP, needs a TorrentTracker @@ -17,9 +17,10 @@ impl HttpServer { /// Start the HttpServer pub fn start(&self, socket_addr: SocketAddr) -> impl warp::Future { - let (_addr, server) = warp::serve(routes(self.tracker.clone())).bind_with_graceful_shutdown(socket_addr, async move { - tokio::signal::ctrl_c().await.expect("Failed to listen to shutdown signal."); - }); + let (_addr, server) = + warp::serve(routes::routes(self.tracker.clone())).bind_with_graceful_shutdown(socket_addr, async move { + tokio::signal::ctrl_c().await.expect("Failed to listen to shutdown signal."); + }); server } @@ -31,7 +32,7 @@ impl HttpServer { ssl_cert_path: String, ssl_key_path: String, ) -> impl warp::Future { - let (_addr, server) = warp::serve(routes(self.tracker.clone())) + let (_addr, server) = warp::serve(routes::routes(self.tracker.clone())) .tls() .cert_path(ssl_cert_path) .key_path(ssl_key_path) diff --git a/src/jobs/http_tracker.rs b/src/jobs/http_tracker.rs index 2d8f307b4..8ae9eb3f5 100644 --- a/src/jobs/http_tracker.rs +++ b/src/jobs/http_tracker.rs @@ -4,8 +4,9 @@ use std::sync::Arc; use log::{info, warn}; use tokio::task::JoinHandle; +use crate::config::HttpTrackerConfig; +use crate::http::server::HttpServer; use crate::tracker::TorrentTracker; -use crate::{HttpServer, HttpTrackerConfig}; pub fn start_job(config: &HttpTrackerConfig, tracker: Arc) -> JoinHandle<()> { let bind_addr = config.bind_address.parse::().unwrap(); diff --git a/src/jobs/torrent_cleanup.rs b/src/jobs/torrent_cleanup.rs index 04b064043..3b572d780 100644 --- a/src/jobs/torrent_cleanup.rs +++ b/src/jobs/torrent_cleanup.rs @@ -4,8 +4,8 @@ use chrono::Utc; use log::info; use tokio::task::JoinHandle; +use crate::config::Configuration; use crate::tracker::TorrentTracker; -use crate::Configuration; pub fn start_job(config: &Configuration, tracker: Arc) -> JoinHandle<()> { let weak_tracker = std::sync::Arc::downgrade(&tracker); diff --git a/src/jobs/tracker_api.rs b/src/jobs/tracker_api.rs index 97b1fa3b0..f6d2ca29d 100644 --- a/src/jobs/tracker_api.rs +++ b/src/jobs/tracker_api.rs @@ -4,8 +4,8 @@ use log::info; use tokio::task::JoinHandle; use crate::api::server; +use crate::config::Configuration; use crate::tracker::TorrentTracker; -use crate::Configuration; pub fn start_job(config: &Configuration, tracker: Arc) -> JoinHandle<()> { let bind_addr = config diff --git a/src/jobs/udp_tracker.rs b/src/jobs/udp_tracker.rs index 00fdaddbe..90986455c 100644 --- a/src/jobs/udp_tracker.rs +++ b/src/jobs/udp_tracker.rs @@ -3,8 +3,9 @@ use std::sync::Arc; use log::{error, info, warn}; use tokio::task::JoinHandle; +use crate::config::UdpTrackerConfig; use crate::tracker::TorrentTracker; -use crate::{UdpServer, UdpTrackerConfig}; +use crate::udp::server::UdpServer; pub fn start_job(config: &UdpTrackerConfig, tracker: Arc) -> JoinHandle<()> { let bind_addr = config.bind_address.clone(); diff --git a/src/lib.rs b/src/lib.rs index cf830f108..7e4fe13a7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,11 +1,3 @@ -pub use api::server::*; -pub use http::server::*; -pub use protocol::common::*; -pub use udp::server::*; - -pub use self::config::*; -pub use self::tracker::*; - pub mod api; pub mod config; pub mod databases; diff --git a/src/logging.rs b/src/logging.rs index 5d0efa8a4..7682bace1 100644 --- a/src/logging.rs +++ b/src/logging.rs @@ -3,7 +3,7 @@ use std::sync::Once; use log::{info, LevelFilter}; -use crate::Configuration; +use crate::config::Configuration; static INIT: Once = Once::new(); diff --git a/src/main.rs b/src/main.rs index bf832dbf4..f64354fcf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,10 @@ use std::sync::Arc; use log::info; +use torrust_tracker::config::Configuration; use torrust_tracker::stats::setup_statistics; use torrust_tracker::tracker::TorrentTracker; -use torrust_tracker::{ephemeral_instance_keys, logging, setup, static_time, Configuration}; +use torrust_tracker::{ephemeral_instance_keys, logging, setup, static_time}; #[tokio::main] async fn main() { diff --git a/src/protocol/common.rs b/src/protocol/common.rs index 431521764..d398f2131 100644 --- a/src/protocol/common.rs +++ b/src/protocol/common.rs @@ -94,12 +94,13 @@ impl<'de> serde::de::Deserialize<'de> for InfoHash { #[cfg(test)] mod tests { + use std::str::FromStr; use serde::{Deserialize, Serialize}; use serde_json::json; - use crate::InfoHash; + use super::InfoHash; #[derive(PartialEq, Eq, Debug, Clone, Serialize, Deserialize)] struct ContainingInfoHash { diff --git a/src/setup.rs b/src/setup.rs index 2ecc1c143..243d9c4b1 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -3,9 +3,9 @@ use std::sync::Arc; use log::warn; use tokio::task::JoinHandle; +use crate::config::Configuration; use crate::jobs::{http_tracker, torrent_cleanup, tracker_api, udp_tracker}; use crate::tracker::TorrentTracker; -use crate::Configuration; pub async fn setup(config: &Configuration, tracker: Arc) -> Vec> { let mut jobs: Vec> = Vec::new(); diff --git a/src/stats.rs b/src/stats.rs index 1f387a084..22b74c8d3 100644 --- a/src/stats.rs +++ b/src/stats.rs @@ -1,4 +1,4 @@ -use crate::statistics::{StatsRepository, StatsTracker, TrackerStatisticsEventSender}; +use crate::tracker::statistics::{StatsRepository, StatsTracker, TrackerStatisticsEventSender}; pub fn setup_statistics(tracker_usage_statistics: bool) -> (Option>, StatsRepository) { let mut stats_event_sender = None; diff --git a/src/tracker/key.rs b/src/tracker/key.rs index 1bf0557a1..6d3f3c320 100644 --- a/src/tracker/key.rs +++ b/src/tracker/key.rs @@ -7,7 +7,7 @@ use rand::{thread_rng, Rng}; use serde::Serialize; use crate::protocol::clock::{DefaultClock, DurationSinceUnixEpoch, Time, TimeNow}; -use crate::AUTH_KEY_LENGTH; +use crate::protocol::common::AUTH_KEY_LENGTH; pub fn generate_auth_key(lifetime: Duration) -> AuthKey { let key: String = thread_rng() diff --git a/src/tracker/mod.rs b/src/tracker/mod.rs index 77f51098a..0e850843d 100644 --- a/src/tracker/mod.rs +++ b/src/tracker/mod.rs @@ -13,15 +13,15 @@ use std::time::Duration; use tokio::sync::mpsc::error::SendError; use tokio::sync::{RwLock, RwLockReadGuard}; +use self::mode::TrackerMode; +use self::peer::TorrentPeer; +use self::statistics::{StatsRepository, TrackerStatistics, TrackerStatisticsEvent, TrackerStatisticsEventSender}; +use crate::config::Configuration; use crate::databases::database; use crate::databases::database::Database; -use crate::mode::TrackerMode; -use crate::peer::TorrentPeer; use crate::protocol::common::InfoHash; -use crate::statistics::{StatsRepository, TrackerStatistics, TrackerStatisticsEvent, TrackerStatisticsEventSender}; use crate::tracker::key::AuthKey; use crate::tracker::torrent::{TorrentEntry, TorrentError, TorrentStats}; -use crate::Configuration; pub struct TorrentTracker { pub config: Arc, diff --git a/src/tracker/peer.rs b/src/tracker/peer.rs index 7a2599f82..786e876d3 100644 --- a/src/tracker/peer.rs +++ b/src/tracker/peer.rs @@ -4,7 +4,7 @@ use aquatic_udp_protocol::{AnnounceEvent, NumberOfBytes}; use serde; use serde::Serialize; -use crate::http::AnnounceRequest; +use crate::http::request::AnnounceRequest; use crate::protocol::clock::{DefaultClock, DurationSinceUnixEpoch, Time}; use crate::protocol::common::{AnnounceEventDef, NumberOfBytesDef, PeerId}; use crate::protocol::utils::ser_unix_time_value; @@ -95,9 +95,9 @@ mod test { use aquatic_udp_protocol::{AnnounceEvent, NumberOfBytes}; - use crate::peer::TorrentPeer; use crate::protocol::clock::{DefaultClock, Time}; - use crate::PeerId; + use crate::protocol::common::PeerId; + use crate::tracker::peer::TorrentPeer; #[test] fn it_should_be_serializable() { @@ -129,7 +129,7 @@ mod test { AnnounceEvent, AnnounceRequest, NumberOfBytes, NumberOfPeers, PeerId as AquaticPeerId, PeerKey, Port, TransactionId, }; - use crate::peer::TorrentPeer; + use crate::tracker::peer::TorrentPeer; use crate::udp::connection_cookie::{into_connection_id, make_connection_cookie}; // todo: duplicate functions is PR 82. Remove duplication once both PR are merged. @@ -200,8 +200,8 @@ mod test { use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; use std::str::FromStr; - use crate::peer::test::torrent_peer_constructor_from_udp_requests::AnnounceRequestBuilder; - use crate::peer::TorrentPeer; + use crate::tracker::peer::test::torrent_peer_constructor_from_udp_requests::AnnounceRequestBuilder; + use crate::tracker::peer::TorrentPeer; #[test] fn it_should_use_the_loopback_ip_if_the_server_does_not_have_the_external_ip_configuration() { @@ -241,8 +241,8 @@ mod test { use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; use std::str::FromStr; - use crate::peer::test::torrent_peer_constructor_from_udp_requests::AnnounceRequestBuilder; - use crate::peer::TorrentPeer; + use crate::tracker::peer::test::torrent_peer_constructor_from_udp_requests::AnnounceRequestBuilder; + use crate::tracker::peer::TorrentPeer; #[test] fn it_should_use_the_loopback_ip_if_the_server_does_not_have_the_external_ip_configuration() { @@ -281,9 +281,9 @@ mod test { mod torrent_peer_constructor_from_for_http_requests { use std::net::{IpAddr, Ipv4Addr}; - use crate::http::AnnounceRequest; - use crate::peer::TorrentPeer; - use crate::{InfoHash, PeerId}; + use crate::http::request::AnnounceRequest; + use crate::protocol::common::{InfoHash, PeerId}; + use crate::tracker::peer::TorrentPeer; fn sample_http_announce_request(peer_addr: IpAddr, port: u16) -> AnnounceRequest { AnnounceRequest { diff --git a/src/tracker/statistics.rs b/src/tracker/statistics.rs index ac3889270..50804a5f4 100644 --- a/src/tracker/statistics.rs +++ b/src/tracker/statistics.rs @@ -271,7 +271,7 @@ impl StatsRepository { mod tests { mod stats_tracker { - use crate::statistics::{StatsTracker, TrackerStatistics, TrackerStatisticsEvent}; + use crate::tracker::statistics::{StatsTracker, TrackerStatistics, TrackerStatisticsEvent}; #[tokio::test] async fn should_contain_the_tracker_statistics() { @@ -295,7 +295,7 @@ mod tests { } mod event_handler { - use crate::statistics::{event_handler, StatsRepository, TrackerStatisticsEvent}; + use crate::tracker::statistics::{event_handler, StatsRepository, TrackerStatisticsEvent}; #[tokio::test] async fn should_increase_the_tcp4_announces_counter_when_it_receives_a_tcp4_announce_event() { diff --git a/src/tracker/torrent.rs b/src/tracker/torrent.rs index 4e602d359..c57282239 100644 --- a/src/tracker/torrent.rs +++ b/src/tracker/torrent.rs @@ -4,9 +4,9 @@ use std::time::Duration; use aquatic_udp_protocol::AnnounceEvent; use serde::{Deserialize, Serialize}; -use crate::peer::TorrentPeer; +use super::peer::TorrentPeer; use crate::protocol::clock::{DefaultClock, TimeNow}; -use crate::{PeerId, MAX_SCRAPE_TORRENTS}; +use crate::protocol::common::{PeerId, MAX_SCRAPE_TORRENTS}; #[derive(Serialize, Deserialize, Clone, Debug)] pub struct TorrentEntry { @@ -113,10 +113,10 @@ mod tests { use aquatic_udp_protocol::{AnnounceEvent, NumberOfBytes}; - use crate::peer::TorrentPeer; use crate::protocol::clock::{DefaultClock, DurationSinceUnixEpoch, StoppedClock, StoppedTime, Time, WorkingClock}; - use crate::torrent::TorrentEntry; - use crate::PeerId; + use crate::protocol::common::PeerId; + use crate::tracker::peer::TorrentPeer; + use crate::tracker::torrent::TorrentEntry; struct TorrentPeerBuilder { peer: TorrentPeer, diff --git a/src/udp/connection_cookie.rs b/src/udp/connection_cookie.rs index c40a56959..ef241245a 100644 --- a/src/udp/connection_cookie.rs +++ b/src/udp/connection_cookie.rs @@ -2,8 +2,8 @@ use std::net::SocketAddr; use aquatic_udp_protocol::ConnectionId; +use super::errors::ServerError; use crate::protocol::clock::time_extent::{Extent, TimeExtent}; -use crate::udp::ServerError; pub type Cookie = [u8; 8]; diff --git a/src/udp/handlers.rs b/src/udp/handlers.rs index 5514bc1eb..30b33225c 100644 --- a/src/udp/handlers.rs +++ b/src/udp/handlers.rs @@ -7,13 +7,13 @@ use aquatic_udp_protocol::{ }; use super::connection_cookie::{check_connection_cookie, from_connection_id, into_connection_id, make_connection_cookie}; -use crate::peer::TorrentPeer; +use crate::protocol::common::{InfoHash, MAX_SCRAPE_TORRENTS}; +use crate::tracker::peer::TorrentPeer; use crate::tracker::statistics::TrackerStatisticsEvent; use crate::tracker::torrent::TorrentError; use crate::tracker::TorrentTracker; use crate::udp::errors::ServerError; use crate::udp::request::AnnounceRequestWrapper; -use crate::{InfoHash, MAX_SCRAPE_TORRENTS}; pub async fn authenticate(info_hash: &InfoHash, tracker: Arc) -> Result<(), ServerError> { match tracker.authenticate_request(info_hash, &None).await { @@ -252,12 +252,13 @@ mod tests { use aquatic_udp_protocol::{AnnounceEvent, NumberOfBytes}; - use crate::mode::TrackerMode; - use crate::peer::TorrentPeer; + use crate::config::Configuration; use crate::protocol::clock::{DefaultClock, Time}; - use crate::statistics::StatsTracker; + use crate::protocol::common::PeerId; + use crate::tracker::mode::TrackerMode; + use crate::tracker::peer::TorrentPeer; + use crate::tracker::statistics::StatsTracker; use crate::tracker::TorrentTracker; - use crate::{Configuration, PeerId}; fn default_tracker_config() -> Arc { Arc::new(Configuration::default()) @@ -373,10 +374,10 @@ mod tests { use mockall::predicate::eq; use super::{default_tracker_config, sample_ipv4_socket_address, sample_ipv6_remote_addr}; - use crate::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; + use crate::tracker::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; use crate::tracker::TorrentTracker; use crate::udp::connection_cookie::{into_connection_id, make_connection_cookie}; - use crate::udp::handle_connect; + use crate::udp::handlers::handle_connect; use crate::udp::handlers::tests::{initialized_public_tracker, sample_ipv4_remote_addr}; fn sample_connect_request() -> ConnectRequest { @@ -545,15 +546,15 @@ mod tests { }; use mockall::predicate::eq; - use crate::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; + use crate::protocol::common::PeerId; + use crate::tracker::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; use crate::tracker::TorrentTracker; use crate::udp::connection_cookie::{into_connection_id, make_connection_cookie}; - use crate::udp::handle_announce; + use crate::udp::handlers::handle_announce; use crate::udp::handlers::tests::announce_request::AnnounceRequestBuilder; use crate::udp::handlers::tests::{ default_tracker_config, initialized_public_tracker, sample_ipv4_socket_address, TorrentPeerBuilder, }; - use crate::PeerId; #[tokio::test] async fn an_announced_peer_should_be_added_to_the_tracker() { @@ -716,11 +717,11 @@ mod tests { use aquatic_udp_protocol::{InfoHash as AquaticInfoHash, PeerId as AquaticPeerId}; + use crate::protocol::common::PeerId; use crate::udp::connection_cookie::{into_connection_id, make_connection_cookie}; - use crate::udp::handle_announce; + use crate::udp::handlers::handle_announce; use crate::udp::handlers::tests::announce_request::AnnounceRequestBuilder; use crate::udp::handlers::tests::{initialized_public_tracker, TorrentPeerBuilder}; - use crate::PeerId; #[tokio::test] async fn the_peer_ip_should_be_changed_to_the_external_ip_in_the_tracker_configuration_if_defined() { @@ -770,15 +771,15 @@ mod tests { }; use mockall::predicate::eq; - use crate::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; + use crate::protocol::common::PeerId; + use crate::tracker::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; use crate::tracker::TorrentTracker; use crate::udp::connection_cookie::{into_connection_id, make_connection_cookie}; - use crate::udp::handle_announce; + use crate::udp::handlers::handle_announce; use crate::udp::handlers::tests::announce_request::AnnounceRequestBuilder; use crate::udp::handlers::tests::{ default_tracker_config, initialized_public_tracker, sample_ipv6_remote_addr, TorrentPeerBuilder, }; - use crate::PeerId; #[tokio::test] async fn an_announced_peer_should_be_added_to_the_tracker() { @@ -951,10 +952,10 @@ mod tests { use aquatic_udp_protocol::{InfoHash as AquaticInfoHash, PeerId as AquaticPeerId}; - use crate::statistics::StatsTracker; + use crate::tracker::statistics::StatsTracker; use crate::tracker::TorrentTracker; use crate::udp::connection_cookie::{into_connection_id, make_connection_cookie}; - use crate::udp::handle_announce; + use crate::udp::handlers::handle_announce; use crate::udp::handlers::tests::announce_request::AnnounceRequestBuilder; use crate::udp::handlers::tests::TrackerConfigurationBuilder; @@ -1013,11 +1014,11 @@ mod tests { }; use super::TorrentPeerBuilder; + use crate::protocol::common::PeerId; use crate::tracker::TorrentTracker; use crate::udp::connection_cookie::{into_connection_id, make_connection_cookie}; - use crate::udp::handle_scrape; + use crate::udp::handlers::handle_scrape; use crate::udp::handlers::tests::{initialized_public_tracker, sample_ipv4_remote_addr}; - use crate::PeerId; fn zeroed_torrent_statistics() -> TorrentScrapeStatistics { TorrentScrapeStatistics { @@ -1123,7 +1124,7 @@ mod tests { use aquatic_udp_protocol::InfoHash; - use crate::udp::handle_scrape; + use crate::udp::handlers::handle_scrape; use crate::udp::handlers::tests::scrape_request::{ add_a_sample_seeder_and_scrape, build_scrape_request, match_scrape_response, zeroed_torrent_statistics, }; @@ -1162,7 +1163,7 @@ mod tests { mod with_a_whitelisted_tracker { use aquatic_udp_protocol::{InfoHash, NumberOfDownloads, NumberOfPeers, TorrentScrapeStatistics}; - use crate::udp::handle_scrape; + use crate::udp::handlers::handle_scrape; use crate::udp::handlers::tests::scrape_request::{ add_a_seeder, build_scrape_request, match_scrape_response, zeroed_torrent_statistics, }; @@ -1231,7 +1232,7 @@ mod tests { use mockall::predicate::eq; use super::sample_scrape_request; - use crate::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; + use crate::tracker::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; use crate::tracker::TorrentTracker; use crate::udp::handlers::handle_scrape; use crate::udp::handlers::tests::{default_tracker_config, sample_ipv4_remote_addr}; @@ -1264,7 +1265,7 @@ mod tests { use mockall::predicate::eq; use super::sample_scrape_request; - use crate::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; + use crate::tracker::statistics::{MockTrackerStatisticsEventSender, StatsRepository, TrackerStatisticsEvent}; use crate::tracker::TorrentTracker; use crate::udp::handlers::handle_scrape; use crate::udp::handlers::tests::{default_tracker_config, sample_ipv6_remote_addr}; diff --git a/src/udp/mod.rs b/src/udp/mod.rs index 4c98875c5..327f03eed 100644 --- a/src/udp/mod.rs +++ b/src/udp/mod.rs @@ -1,8 +1,3 @@ -pub use self::errors::*; -pub use self::handlers::*; -pub use self::request::*; -pub use self::server::*; - pub mod connection_cookie; pub mod errors; pub mod handlers; diff --git a/src/udp/request.rs b/src/udp/request.rs index 6531f54b9..67aaeb57f 100644 --- a/src/udp/request.rs +++ b/src/udp/request.rs @@ -1,6 +1,6 @@ use aquatic_udp_protocol::AnnounceRequest; -use crate::InfoHash; +use crate::protocol::common::InfoHash; // struct AnnounceRequest { // pub connection_id: i64, diff --git a/src/udp/server.rs b/src/udp/server.rs index 2f41c3c4d..5c215f9ec 100644 --- a/src/udp/server.rs +++ b/src/udp/server.rs @@ -7,7 +7,8 @@ use log::{debug, info}; use tokio::net::UdpSocket; use crate::tracker::TorrentTracker; -use crate::udp::{handle_packet, MAX_PACKET_SIZE}; +use crate::udp::handlers::handle_packet; +use crate::udp::MAX_PACKET_SIZE; pub struct UdpServer { socket: Arc, diff --git a/tests/api.rs b/tests/api.rs index 38966a81b..f94e866e4 100644 --- a/tests/api.rs +++ b/tests/api.rs @@ -14,11 +14,12 @@ mod tracker_api { use tokio::task::JoinHandle; use tokio::time::{sleep, Duration}; use torrust_tracker::api::resources::auth_key_resource::AuthKeyResource; + use torrust_tracker::config::Configuration; use torrust_tracker::jobs::tracker_api; use torrust_tracker::tracker::key::AuthKey; use torrust_tracker::tracker::statistics::StatsTracker; use torrust_tracker::tracker::TorrentTracker; - use torrust_tracker::{ephemeral_instance_keys, logging, static_time, Configuration}; + use torrust_tracker::{ephemeral_instance_keys, logging, static_time}; use crate::common::ephemeral_random_port; diff --git a/tests/udp.rs b/tests/udp.rs index ab96259c5..7a0d883a5 100644 --- a/tests/udp.rs +++ b/tests/udp.rs @@ -18,11 +18,12 @@ mod udp_tracker_server { }; use tokio::net::UdpSocket; use tokio::task::JoinHandle; + use torrust_tracker::config::Configuration; use torrust_tracker::jobs::udp_tracker; use torrust_tracker::tracker::statistics::StatsTracker; use torrust_tracker::tracker::TorrentTracker; use torrust_tracker::udp::MAX_PACKET_SIZE; - use torrust_tracker::{ephemeral_instance_keys, logging, static_time, Configuration}; + use torrust_tracker::{ephemeral_instance_keys, logging, static_time}; use crate::common::ephemeral_random_port;