torrust_tracker/console/clients/udp/
mod.rs

1use std::net::SocketAddr;
2
3use aquatic_udp_protocol::Response;
4use serde::Serialize;
5use thiserror::Error;
6
7use crate::shared::bit_torrent::tracker::udp;
8
9pub mod app;
10pub mod checker;
11pub mod responses;
12
13#[derive(Error, Debug, Clone, Serialize)]
14#[serde(into = "String")]
15pub enum Error {
16    #[error("Failed to Connect to: {remote_addr}, with error: {err}")]
17    UnableToBindAndConnect { remote_addr: SocketAddr, err: udp::Error },
18
19    #[error("Failed to send a connection request, with error: {err}")]
20    UnableToSendConnectionRequest { err: udp::Error },
21
22    #[error("Failed to receive a connect response, with error: {err}")]
23    UnableToReceiveConnectResponse { err: udp::Error },
24
25    #[error("Failed to send a announce request, with error: {err}")]
26    UnableToSendAnnounceRequest { err: udp::Error },
27
28    #[error("Failed to receive a announce response, with error: {err}")]
29    UnableToReceiveAnnounceResponse { err: udp::Error },
30
31    #[error("Failed to send a scrape request, with error: {err}")]
32    UnableToSendScrapeRequest { err: udp::Error },
33
34    #[error("Failed to receive a scrape response, with error: {err}")]
35    UnableToReceiveScrapeResponse { err: udp::Error },
36
37    #[error("Failed to receive a response, with error: {err}")]
38    UnableToReceiveResponse { err: udp::Error },
39
40    #[error("Failed to get local address for connection: {err}")]
41    UnableToGetLocalAddr { err: udp::Error },
42
43    #[error("Failed to get a connection response: {response:?}")]
44    UnexpectedConnectionResponse { response: Response },
45}
46
47impl From<Error> for String {
48    fn from(value: Error) -> Self {
49        value.to_string()
50    }
51}