From 995397eae4a4b96820f52bcd203b2e0bd67be745 Mon Sep 17 00:00:00 2001 From: Jose Celano Date: Thu, 9 Feb 2023 12:56:42 +0000 Subject: [PATCH] refactor(http): [#160] reorganize dirs for Axum and Warp HTTP tracker implementations We are going to start sharing code bettween both implementation (Warp and Axum). We need to keep common code separated because Warp implementation will be removed when Axum implementation is finished. --- .../{axum => axum_implementation}/extractors.rs | 2 +- src/http/{axum => axum_implementation}/handlers.rs | 0 src/http/{axum => axum_implementation}/mod.rs | 0 src/http/{axum => axum_implementation}/query.rs | 2 +- .../{axum => axum_implementation}/resources/mod.rs | 0 .../{axum => axum_implementation}/resources/ok.rs | 0 .../{axum => axum_implementation}/responses.rs | 0 src/http/{axum => axum_implementation}/routes.rs | 0 src/http/{axum => axum_implementation}/server.rs | 0 src/http/mod.rs | 14 +++----------- src/http/{ => warp_implementation}/error.rs | 0 src/http/{ => warp_implementation}/filters.rs | 2 +- src/http/{ => warp_implementation}/handlers.rs | 0 src/http/warp_implementation/mod.rs | 12 ++++++++++++ src/http/{ => warp_implementation}/request.rs | 2 +- src/http/{ => warp_implementation}/response.rs | 0 src/http/{ => warp_implementation}/routes.rs | 0 src/http/{ => warp_implementation}/server.rs | 0 src/jobs/http_tracker.rs | 4 ++-- src/tracker/peer.rs | 4 ++-- 20 files changed, 23 insertions(+), 19 deletions(-) rename src/http/{axum => axum_implementation}/extractors.rs (98%) rename src/http/{axum => axum_implementation}/handlers.rs (100%) rename src/http/{axum => axum_implementation}/mod.rs (100%) rename src/http/{axum => axum_implementation}/query.rs (98%) rename src/http/{axum => axum_implementation}/resources/mod.rs (100%) rename src/http/{axum => axum_implementation}/resources/ok.rs (100%) rename src/http/{axum => axum_implementation}/responses.rs (100%) rename src/http/{axum => axum_implementation}/routes.rs (100%) rename src/http/{axum => axum_implementation}/server.rs (100%) rename src/http/{ => warp_implementation}/error.rs (100%) rename src/http/{ => warp_implementation}/filters.rs (98%) rename src/http/{ => warp_implementation}/handlers.rs (100%) create mode 100644 src/http/warp_implementation/mod.rs rename src/http/{ => warp_implementation}/request.rs (94%) rename src/http/{ => warp_implementation}/response.rs (100%) rename src/http/{ => warp_implementation}/routes.rs (100%) rename src/http/{ => warp_implementation}/server.rs (100%) diff --git a/src/http/axum/extractors.rs b/src/http/axum_implementation/extractors.rs similarity index 98% rename from src/http/axum/extractors.rs rename to src/http/axum_implementation/extractors.rs index 260c3e705..a1f3fad1e 100644 --- a/src/http/axum/extractors.rs +++ b/src/http/axum_implementation/extractors.rs @@ -135,7 +135,7 @@ where #[cfg(test)] mod tests { use super::AnnounceParams; - use crate::http::axum::query::Query; + use crate::http::axum_implementation::query::Query; use crate::protocol::info_hash::InfoHash; use crate::tracker::peer; diff --git a/src/http/axum/handlers.rs b/src/http/axum_implementation/handlers.rs similarity index 100% rename from src/http/axum/handlers.rs rename to src/http/axum_implementation/handlers.rs diff --git a/src/http/axum/mod.rs b/src/http/axum_implementation/mod.rs similarity index 100% rename from src/http/axum/mod.rs rename to src/http/axum_implementation/mod.rs diff --git a/src/http/axum/query.rs b/src/http/axum_implementation/query.rs similarity index 98% rename from src/http/axum/query.rs rename to src/http/axum_implementation/query.rs index 5037d5d0e..c7c20b22d 100644 --- a/src/http/axum/query.rs +++ b/src/http/axum_implementation/query.rs @@ -69,7 +69,7 @@ impl Query { #[cfg(test)] mod tests { use super::Query; - use crate::http::axum::query::Param; + use crate::http::axum_implementation::query::Param; #[test] fn it_should_parse_the_query_params_from_an_url_query_string() { diff --git a/src/http/axum/resources/mod.rs b/src/http/axum_implementation/resources/mod.rs similarity index 100% rename from src/http/axum/resources/mod.rs rename to src/http/axum_implementation/resources/mod.rs diff --git a/src/http/axum/resources/ok.rs b/src/http/axum_implementation/resources/ok.rs similarity index 100% rename from src/http/axum/resources/ok.rs rename to src/http/axum_implementation/resources/ok.rs diff --git a/src/http/axum/responses.rs b/src/http/axum_implementation/responses.rs similarity index 100% rename from src/http/axum/responses.rs rename to src/http/axum_implementation/responses.rs diff --git a/src/http/axum/routes.rs b/src/http/axum_implementation/routes.rs similarity index 100% rename from src/http/axum/routes.rs rename to src/http/axum_implementation/routes.rs diff --git a/src/http/axum/server.rs b/src/http/axum_implementation/server.rs similarity index 100% rename from src/http/axum/server.rs rename to src/http/axum_implementation/server.rs diff --git a/src/http/mod.rs b/src/http/mod.rs index 15f7abb52..039a2067b 100644 --- a/src/http/mod.rs +++ b/src/http/mod.rs @@ -11,18 +11,10 @@ //! use serde::{Deserialize, Serialize}; -pub mod axum; -pub mod error; -pub mod filters; -pub mod handlers; -pub mod percent_encoding; -pub mod request; -pub mod response; -pub mod routes; -pub mod server; -pub type Bytes = u64; -pub type WebResult = std::result::Result; +pub mod axum_implementation; +pub mod percent_encoding; +pub mod warp_implementation; #[derive(Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Debug)] pub enum Version { diff --git a/src/http/error.rs b/src/http/warp_implementation/error.rs similarity index 100% rename from src/http/error.rs rename to src/http/warp_implementation/error.rs diff --git a/src/http/filters.rs b/src/http/warp_implementation/filters.rs similarity index 98% rename from src/http/filters.rs rename to src/http/warp_implementation/filters.rs index e02eac523..176170330 100644 --- a/src/http/filters.rs +++ b/src/http/warp_implementation/filters.rs @@ -7,8 +7,8 @@ use std::sync::Arc; use warp::{reject, Filter, Rejection}; use super::error::Error; -use super::percent_encoding::{percent_decode_info_hash, percent_decode_peer_id}; use super::{request, WebResult}; +use crate::http::percent_encoding::{percent_decode_info_hash, percent_decode_peer_id}; use crate::protocol::common::MAX_SCRAPE_TORRENTS; use crate::protocol::info_hash::InfoHash; use crate::tracker::{self, auth, peer}; diff --git a/src/http/handlers.rs b/src/http/warp_implementation/handlers.rs similarity index 100% rename from src/http/handlers.rs rename to src/http/warp_implementation/handlers.rs diff --git a/src/http/warp_implementation/mod.rs b/src/http/warp_implementation/mod.rs new file mode 100644 index 000000000..4fbfb48fb --- /dev/null +++ b/src/http/warp_implementation/mod.rs @@ -0,0 +1,12 @@ +use warp::Rejection; + +pub mod error; +pub mod filters; +pub mod handlers; +pub mod request; +pub mod response; +pub mod routes; +pub mod server; + +pub type Bytes = u64; +pub type WebResult = std::result::Result; diff --git a/src/http/request.rs b/src/http/warp_implementation/request.rs similarity index 94% rename from src/http/request.rs rename to src/http/warp_implementation/request.rs index bc549b698..f666b48c5 100644 --- a/src/http/request.rs +++ b/src/http/warp_implementation/request.rs @@ -2,7 +2,7 @@ use std::net::IpAddr; use serde::Deserialize; -use crate::http::Bytes; +use crate::http::warp_implementation::Bytes; use crate::protocol::info_hash::InfoHash; use crate::tracker::peer; diff --git a/src/http/response.rs b/src/http/warp_implementation/response.rs similarity index 100% rename from src/http/response.rs rename to src/http/warp_implementation/response.rs diff --git a/src/http/routes.rs b/src/http/warp_implementation/routes.rs similarity index 100% rename from src/http/routes.rs rename to src/http/warp_implementation/routes.rs diff --git a/src/http/server.rs b/src/http/warp_implementation/server.rs similarity index 100% rename from src/http/server.rs rename to src/http/warp_implementation/server.rs diff --git a/src/jobs/http_tracker.rs b/src/jobs/http_tracker.rs index 6b069301d..aa96af884 100644 --- a/src/jobs/http_tracker.rs +++ b/src/jobs/http_tracker.rs @@ -7,8 +7,8 @@ use tokio::sync::oneshot; use tokio::task::JoinHandle; use crate::config::HttpTracker; -use crate::http::axum::server; -use crate::http::server::Http; +use crate::http::axum_implementation::server; +use crate::http::warp_implementation::server::Http; use crate::http::Version; use crate::tracker; diff --git a/src/tracker/peer.rs b/src/tracker/peer.rs index c132d1e2c..04e4cdb45 100644 --- a/src/tracker/peer.rs +++ b/src/tracker/peer.rs @@ -6,7 +6,7 @@ use serde; use serde::Serialize; use thiserror::Error; -use crate::http::request::Announce; +use crate::http::warp_implementation::request::Announce; use crate::protocol::clock::{Current, DurationSinceUnixEpoch, Time}; use crate::protocol::common::{AnnounceEventDef, NumberOfBytesDef}; use crate::protocol::utils::ser_unix_time_value; @@ -599,7 +599,7 @@ mod test { mod torrent_peer_constructor_from_for_http_requests { use std::net::{IpAddr, Ipv4Addr}; - use crate::http::request::Announce; + use crate::http::warp_implementation::request::Announce; use crate::protocol::info_hash::InfoHash; use crate::tracker::peer::{self, Peer};