Skip to content

Commit

Permalink
refactor: [#1275] move conenction cookie to udp_tracker_core package
Browse files Browse the repository at this point in the history
  • Loading branch information
josecelano committed Feb 18, 2025
1 parent 694621b commit 4fd79b7
Show file tree
Hide file tree
Showing 8 changed files with 28 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,25 @@
use aquatic_udp_protocol::ConnectionId as Cookie;
use cookie_builder::{assemble, decode, disassemble, encode};
use thiserror::Error;
use tracing::instrument;
use zerocopy::AsBytes;

use crate::servers::udp::error::ConnectionCookieError;
use crate::shared::crypto::keys::CipherArrayBlowfish;

/// Error returned when there was an error with the connection cookie.
#[derive(Error, Debug)]
pub enum ConnectionCookieError {
#[error("cookie value is not normal: {not_normal_value}")]
ValueNotNormal { not_normal_value: f64 },

#[error("cookie value is expired: {expired_value}, expected > {min_value}")]
ValueExpired { expired_value: f64, min_value: f64 },

#[error("cookie value is from future: {future_value}, expected < {max_value}")]
ValueFromFuture { future_value: f64, max_value: f64 },
}

/// Generates a new connection cookie.
///
/// # Errors
Expand Down
1 change: 1 addition & 0 deletions src/packages/udp_tracker_core/mod.rs
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
pub mod connection_cookie;
pub mod services;
pub mod statistics;
15 changes: 2 additions & 13 deletions src/servers/udp/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ use derive_more::derive::Display;
use thiserror::Error;
use torrust_tracker_located_error::LocatedError;

use crate::packages::udp_tracker_core::connection_cookie::ConnectionCookieError;

#[derive(Display, Debug)]
#[display(":?")]
pub struct ConnectionCookie(pub ConnectionId);
Expand Down Expand Up @@ -44,19 +46,6 @@ pub enum Error {
TrackerAuthenticationRequired { location: &'static Location<'static> },
}

/// Error returned when there was an error with the connection cookie.
#[derive(Error, Debug)]
pub enum ConnectionCookieError {
#[error("cookie value is not normal: {not_normal_value}")]
ValueNotNormal { not_normal_value: f64 },

#[error("cookie value is expired: {expired_value}, expected > {min_value}")]
ValueExpired { expired_value: f64, min_value: f64 },

#[error("cookie value is from future: {future_value}, expected < {max_value}")]
ValueFromFuture { future_value: f64, max_value: f64 },
}

impl From<RequestParseError> for Error {
fn from(request_parse_error: RequestParseError) -> Self {
Self::RequestParseError { request_parse_error }
Expand Down
12 changes: 6 additions & 6 deletions src/servers/udp/handlers/announce.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ use torrust_tracker_configuration::Core;
use tracing::{instrument, Level};
use zerocopy::network_endian::I32;

use crate::packages::udp_tracker_core::connection_cookie::check;
use crate::packages::udp_tracker_core::{self};
use crate::servers::udp::connection_cookie::check;
use crate::servers::udp::error::Error;
use crate::servers::udp::handlers::gen_remote_fingerprint;

Expand Down Expand Up @@ -134,7 +134,7 @@ mod tests {
PeerId as AquaticPeerId, PeerKey, Port, TransactionId,
};

use crate::servers::udp::connection_cookie::make;
use crate::packages::udp_tracker_core::connection_cookie::make;
use crate::servers::udp::handlers::tests::{sample_ipv4_remote_addr_fingerprint, sample_issue_time};

struct AnnounceRequestBuilder {
Expand Down Expand Up @@ -213,8 +213,8 @@ mod tests {
use mockall::predicate::eq;
use torrust_tracker_configuration::Core;

use crate::packages::udp_tracker_core::connection_cookie::make;
use crate::packages::{self, udp_tracker_core};
use crate::servers::udp::connection_cookie::make;
use crate::servers::udp::handlers::announce::tests::announce_request::AnnounceRequestBuilder;
use crate::servers::udp::handlers::tests::{
initialize_core_tracker_services_for_default_tracker_configuration,
Expand Down Expand Up @@ -447,7 +447,7 @@ mod tests {

use aquatic_udp_protocol::{InfoHash as AquaticInfoHash, PeerId as AquaticPeerId};

use crate::servers::udp::connection_cookie::make;
use crate::packages::udp_tracker_core::connection_cookie::make;
use crate::servers::udp::handlers::announce::tests::announce_request::AnnounceRequestBuilder;
use crate::servers::udp::handlers::tests::{
initialize_core_tracker_services_for_public_tracker, sample_cookie_valid_range, sample_issue_time,
Expand Down Expand Up @@ -520,8 +520,8 @@ mod tests {
use mockall::predicate::eq;
use torrust_tracker_configuration::Core;

use crate::packages::udp_tracker_core::connection_cookie::make;
use crate::packages::{self, udp_tracker_core};
use crate::servers::udp::connection_cookie::make;
use crate::servers::udp::handlers::announce::tests::announce_request::AnnounceRequestBuilder;
use crate::servers::udp::handlers::tests::{
initialize_core_tracker_services_for_default_tracker_configuration,
Expand Down Expand Up @@ -776,7 +776,7 @@ mod tests {
use mockall::predicate::eq;

use crate::packages::udp_tracker_core;
use crate::servers::udp::connection_cookie::make;
use crate::packages::udp_tracker_core::connection_cookie::make;
use crate::servers::udp::handlers::announce::tests::announce_request::AnnounceRequestBuilder;
use crate::servers::udp::handlers::tests::{
sample_cookie_valid_range, sample_issue_time, MockUdpStatsEventSender, TrackerConfigurationBuilder,
Expand Down
4 changes: 2 additions & 2 deletions src/servers/udp/handlers/connect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use aquatic_udp_protocol::{ConnectRequest, ConnectResponse, Response};
use tracing::{instrument, Level};

use crate::packages::udp_tracker_core;
use crate::servers::udp::connection_cookie::make;
use crate::packages::udp_tracker_core::connection_cookie::make;
use crate::servers::udp::handlers::gen_remote_fingerprint;

/// It handles the `Connect` request. Refer to [`Connect`](crate::servers::udp#connect)
Expand Down Expand Up @@ -62,8 +62,8 @@ mod tests {
use aquatic_udp_protocol::{ConnectRequest, ConnectResponse, Response, TransactionId};
use mockall::predicate::eq;

use crate::packages::udp_tracker_core::connection_cookie::make;
use crate::packages::{self, udp_tracker_core};
use crate::servers::udp::connection_cookie::make;
use crate::servers::udp::handlers::handle_connect;
use crate::servers::udp::handlers::tests::{
sample_ipv4_remote_addr, sample_ipv4_remote_addr_fingerprint, sample_ipv4_socket_address, sample_ipv6_remote_addr,
Expand Down
2 changes: 1 addition & 1 deletion src/servers/udp/handlers/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use uuid::Uuid;
use zerocopy::network_endian::I32;

use crate::packages::udp_tracker_core;
use crate::servers::udp::connection_cookie::check;
use crate::packages::udp_tracker_core::connection_cookie::check;
use crate::servers::udp::error::Error;
use crate::servers::udp::handlers::gen_remote_fingerprint;
use crate::servers::udp::UDP_TRACKER_LOG_TARGET;
Expand Down
4 changes: 2 additions & 2 deletions src/servers/udp/handlers/scrape.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use tracing::{instrument, Level};
use zerocopy::network_endian::I32;

use crate::packages::udp_tracker_core;
use crate::servers::udp::connection_cookie::check;
use crate::packages::udp_tracker_core::connection_cookie::check;
use crate::servers::udp::error::Error;
use crate::servers::udp::handlers::gen_remote_fingerprint;

Expand Down Expand Up @@ -94,7 +94,7 @@ mod tests {
use bittorrent_tracker_core::torrent::repository::in_memory::InMemoryTorrentRepository;

use crate::packages;
use crate::servers::udp::connection_cookie::make;
use crate::packages::udp_tracker_core::connection_cookie::make;
use crate::servers::udp::handlers::tests::{
initialize_core_tracker_services_for_public_tracker, sample_cookie_valid_range, sample_ipv4_remote_addr,
sample_issue_time, TorrentPeerBuilder,
Expand Down
1 change: 0 additions & 1 deletion src/servers/udp/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,6 @@
use std::net::SocketAddr;

pub mod connection_cookie;
pub mod error;
pub mod handlers;
pub mod server;
Expand Down

0 comments on commit 4fd79b7

Please sign in to comment.