Skip to content

Commit 203a1b4

Browse files
committed
refactor: [torrust#1382] merge UDP server stats events with different IP version
1 parent e4c6000 commit 203a1b4

File tree

9 files changed

+120
-280
lines changed

9 files changed

+120
-280
lines changed

packages/udp-tracker-server/src/handlers/announce.rs

+9-21
Original file line numberDiff line numberDiff line change
@@ -41,24 +41,12 @@ pub async fn handle_announce(
4141
tracing::trace!("handle announce");
4242

4343
if let Some(udp_server_stats_event_sender) = opt_udp_server_stats_event_sender.as_deref() {
44-
match client_socket_addr.ip() {
45-
IpAddr::V4(_) => {
46-
udp_server_stats_event_sender
47-
.send_event(server_statistics::event::Event::Udp4Request {
48-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
49-
kind: UdpRequestKind::Announce,
50-
})
51-
.await;
52-
}
53-
IpAddr::V6(_) => {
54-
udp_server_stats_event_sender
55-
.send_event(server_statistics::event::Event::Udp6Request {
56-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
57-
kind: UdpRequestKind::Announce,
58-
})
59-
.await;
60-
}
61-
}
44+
udp_server_stats_event_sender
45+
.send_event(server_statistics::event::Event::UdpRequest {
46+
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
47+
kind: UdpRequestKind::Announce,
48+
})
49+
.await;
6250
}
6351

6452
let announce_data = announce_service
@@ -437,7 +425,7 @@ mod tests {
437425
let mut udp_server_stats_event_sender_mock = MockUdpServerStatsEventSender::new();
438426
udp_server_stats_event_sender_mock
439427
.expect_send_event()
440-
.with(eq(server_statistics::event::Event::Udp4Request {
428+
.with(eq(server_statistics::event::Event::UdpRequest {
441429
context: server_statistics::event::ConnectionContext::new(client_socket_addr, server_socket_addr),
442430
kind: UdpRequestKind::Announce,
443431
}))
@@ -780,7 +768,7 @@ mod tests {
780768
let mut udp_server_stats_event_sender_mock = MockUdpServerStatsEventSender::new();
781769
udp_server_stats_event_sender_mock
782770
.expect_send_event()
783-
.with(eq(server_statistics::event::Event::Udp6Request {
771+
.with(eq(server_statistics::event::Event::UdpRequest {
784772
context: server_statistics::event::ConnectionContext::new(client_socket_addr, server_socket_addr),
785773
kind: UdpRequestKind::Announce,
786774
}))
@@ -873,7 +861,7 @@ mod tests {
873861
let mut udp_server_stats_event_sender_mock = MockUdpServerStatsEventSender::new();
874862
udp_server_stats_event_sender_mock
875863
.expect_send_event()
876-
.with(eq(server_statistics::event::Event::Udp6Request {
864+
.with(eq(server_statistics::event::Event::UdpRequest {
877865
context: server_statistics::event::ConnectionContext::new(client_socket_addr, server_socket_addr),
878866
kind: UdpRequestKind::Announce,
879867
}))

packages/udp-tracker-server/src/handlers/connect.rs

+9-21
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//! UDP tracker connect handler.
2-
use std::net::{IpAddr, SocketAddr};
2+
use std::net::SocketAddr;
33
use std::sync::Arc;
44

55
use aquatic_udp_protocol::{ConnectRequest, ConnectResponse, ConnectionId, Response};
@@ -23,24 +23,12 @@ pub async fn handle_connect(
2323
tracing::trace!("handle connect");
2424

2525
if let Some(udp_server_stats_event_sender) = opt_udp_server_stats_event_sender.as_deref() {
26-
match client_socket_addr.ip() {
27-
IpAddr::V4(_) => {
28-
udp_server_stats_event_sender
29-
.send_event(server_statistics::event::Event::Udp4Request {
30-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
31-
kind: UdpRequestKind::Connect,
32-
})
33-
.await;
34-
}
35-
IpAddr::V6(_) => {
36-
udp_server_stats_event_sender
37-
.send_event(server_statistics::event::Event::Udp6Request {
38-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
39-
kind: UdpRequestKind::Connect,
40-
})
41-
.await;
42-
}
43-
}
26+
udp_server_stats_event_sender
27+
.send_event(server_statistics::event::Event::UdpRequest {
28+
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
29+
kind: UdpRequestKind::Connect,
30+
})
31+
.await;
4432
}
4533

4634
let connection_id = connect_service
@@ -215,7 +203,7 @@ mod tests {
215203
let mut udp_server_stats_event_sender_mock = MockUdpServerStatsEventSender::new();
216204
udp_server_stats_event_sender_mock
217205
.expect_send_event()
218-
.with(eq(server_statistics::event::Event::Udp4Request {
206+
.with(eq(server_statistics::event::Event::UdpRequest {
219207
context: server_statistics::event::ConnectionContext::new(client_socket_addr, server_socket_addr),
220208
kind: UdpRequestKind::Connect,
221209
}))
@@ -256,7 +244,7 @@ mod tests {
256244
let mut udp_server_stats_event_sender_mock = MockUdpServerStatsEventSender::new();
257245
udp_server_stats_event_sender_mock
258246
.expect_send_event()
259-
.with(eq(server_statistics::event::Event::Udp6Request {
247+
.with(eq(server_statistics::event::Event::UdpRequest {
260248
context: server_statistics::event::ConnectionContext::new(client_socket_addr, server_socket_addr),
261249
kind: UdpRequestKind::Connect,
262250
}))

packages/udp-tracker-server/src/handlers/error.rs

+5-16
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,11 @@ pub async fn handle_error(
5858

5959
if e.1.is_some() {
6060
if let Some(udp_server_stats_event_sender) = opt_udp_server_stats_event_sender.as_deref() {
61-
match client_socket_addr {
62-
SocketAddr::V4(_) => {
63-
udp_server_stats_event_sender
64-
.send_event(server_statistics::event::Event::Udp4Error {
65-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
66-
})
67-
.await;
68-
}
69-
SocketAddr::V6(_) => {
70-
udp_server_stats_event_sender
71-
.send_event(server_statistics::event::Event::Udp6Error {
72-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
73-
})
74-
.await;
75-
}
76-
}
61+
udp_server_stats_event_sender
62+
.send_event(server_statistics::event::Event::UdpError {
63+
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
64+
})
65+
.await;
7766
}
7867
}
7968

packages/udp-tracker-server/src/handlers/scrape.rs

+9-21
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//! UDP tracker scrape handler.
2-
use std::net::{IpAddr, SocketAddr};
2+
use std::net::SocketAddr;
33
use std::ops::Range;
44
use std::sync::Arc;
55

@@ -37,24 +37,12 @@ pub async fn handle_scrape(
3737
tracing::trace!("handle scrape");
3838

3939
if let Some(udp_server_stats_event_sender) = opt_udp_server_stats_event_sender.as_deref() {
40-
match client_socket_addr.ip() {
41-
IpAddr::V4(_) => {
42-
udp_server_stats_event_sender
43-
.send_event(server_statistics::event::Event::Udp4Request {
44-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
45-
kind: UdpRequestKind::Scrape,
46-
})
47-
.await;
48-
}
49-
IpAddr::V6(_) => {
50-
udp_server_stats_event_sender
51-
.send_event(server_statistics::event::Event::Udp6Request {
52-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
53-
kind: UdpRequestKind::Scrape,
54-
})
55-
.await;
56-
}
57-
}
40+
udp_server_stats_event_sender
41+
.send_event(server_statistics::event::Event::UdpRequest {
42+
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
43+
kind: UdpRequestKind::Scrape,
44+
})
45+
.await;
5846
}
5947

6048
let scrape_data = scrape_service
@@ -380,7 +368,7 @@ mod tests {
380368
let mut udp_server_stats_event_sender_mock = MockUdpServerStatsEventSender::new();
381369
udp_server_stats_event_sender_mock
382370
.expect_send_event()
383-
.with(eq(server_statistics::event::Event::Udp4Request {
371+
.with(eq(server_statistics::event::Event::UdpRequest {
384372
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
385373
kind: server_statistics::event::UdpRequestKind::Scrape,
386374
}))
@@ -429,7 +417,7 @@ mod tests {
429417
let mut udp_server_stats_event_sender_mock = MockUdpServerStatsEventSender::new();
430418
udp_server_stats_event_sender_mock
431419
.expect_send_event()
432-
.with(eq(server_statistics::event::Event::Udp6Request {
420+
.with(eq(server_statistics::event::Event::UdpRequest {
433421
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
434422
kind: server_statistics::event::UdpRequestKind::Scrape,
435423
}))

packages/udp-tracker-server/src/server/launcher.rs

+6-17
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::net::{IpAddr, SocketAddr};
1+
use std::net::SocketAddr;
22
use std::sync::Arc;
33
use std::time::Duration;
44

@@ -172,22 +172,11 @@ impl Launcher {
172172

173173
if let Some(udp_server_stats_event_sender) = udp_tracker_server_container.udp_server_stats_event_sender.as_deref()
174174
{
175-
match req.from.ip() {
176-
IpAddr::V4(_) => {
177-
udp_server_stats_event_sender
178-
.send_event(statistics::event::Event::Udp4IncomingRequest {
179-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
180-
})
181-
.await;
182-
}
183-
IpAddr::V6(_) => {
184-
udp_server_stats_event_sender
185-
.send_event(statistics::event::Event::Udp6IncomingRequest {
186-
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
187-
})
188-
.await;
189-
}
190-
}
175+
udp_server_stats_event_sender
176+
.send_event(statistics::event::Event::UdpIncomingRequest {
177+
context: ConnectionContext::new(client_socket_addr, server_socket_addr),
178+
})
179+
.await;
191180
}
192181

193182
if udp_tracker_core_container.ban_service.read().await.is_banned(&req.from.ip()) {

packages/udp-tracker-server/src/server/processor.rs

+8-21
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::io::Cursor;
2-
use std::net::{IpAddr, SocketAddr};
2+
use std::net::SocketAddr;
33
use std::sync::Arc;
44
use std::time::Duration;
55

@@ -100,26 +100,13 @@ impl Processor {
100100
if let Some(udp_server_stats_event_sender) =
101101
self.udp_tracker_server_container.udp_server_stats_event_sender.as_deref()
102102
{
103-
match client_socket_addr.ip() {
104-
IpAddr::V4(_) => {
105-
udp_server_stats_event_sender
106-
.send_event(statistics::event::Event::Udp4Response {
107-
context: ConnectionContext::new(client_socket_addr, self.socket.address()),
108-
kind: udp_response_kind,
109-
req_processing_time,
110-
})
111-
.await;
112-
}
113-
IpAddr::V6(_) => {
114-
udp_server_stats_event_sender
115-
.send_event(statistics::event::Event::Udp6Response {
116-
context: ConnectionContext::new(client_socket_addr, self.socket.address()),
117-
kind: udp_response_kind,
118-
req_processing_time,
119-
})
120-
.await;
121-
}
122-
}
103+
udp_server_stats_event_sender
104+
.send_event(statistics::event::Event::UdpResponse {
105+
context: ConnectionContext::new(client_socket_addr, self.socket.address()),
106+
kind: udp_response_kind,
107+
req_processing_time,
108+
})
109+
.await;
123110
}
124111
}
125112
Err(error) => tracing::warn!(%bytes_count, %error, ?payload, "failed to send"),

0 commit comments

Comments
 (0)