@@ -14,10 +14,8 @@ use torrust_tracker_configuration::Core;
14
14
use tracing:: { instrument, Level } ;
15
15
use zerocopy:: network_endian:: I32 ;
16
16
17
- use crate :: packages:: udp_tracker_core:: connection_cookie:: check;
18
17
use crate :: packages:: udp_tracker_core:: { self } ;
19
18
use crate :: servers:: udp:: error:: Error ;
20
- use crate :: servers:: udp:: handlers:: gen_remote_fingerprint;
21
19
22
20
/// It handles the `Announce` request. Refer to [`Announce`](crate::servers::udp#announce)
23
21
/// request for more information.
@@ -43,27 +41,16 @@ pub async fn handle_announce(
43
41
44
42
tracing:: trace!( "handle announce" ) ;
45
43
46
- // todo: move authentication to `udp_tracker_core::services::announce::handle_announce`
47
-
48
- check (
49
- & request. connection_id ,
50
- gen_remote_fingerprint ( & remote_addr) ,
51
- cookie_valid_range,
52
- )
53
- . map_err ( |e| ( e. into ( ) , request. transaction_id ) ) ?;
54
-
55
44
let response = udp_tracker_core:: services:: announce:: handle_announce (
56
45
remote_addr,
57
46
request,
58
47
announce_handler,
59
48
whitelist_authorization,
60
49
opt_udp_stats_event_sender,
50
+ cookie_valid_range,
61
51
)
62
52
. await
63
- . map_err ( |e| Error :: TrackerError {
64
- source : ( Arc :: new ( e) as Arc < dyn std:: error:: Error + Send + Sync > ) . into ( ) ,
65
- } )
66
- . map_err ( |e| ( e, request. transaction_id ) ) ?;
53
+ . map_err ( |e| ( e. into ( ) , request. transaction_id ) ) ?;
67
54
68
55
// todo: extract `build_response` function.
69
56
@@ -213,15 +200,15 @@ mod tests {
213
200
use mockall:: predicate:: eq;
214
201
use torrust_tracker_configuration:: Core ;
215
202
216
- use crate :: packages:: udp_tracker_core:: connection_cookie:: make;
203
+ use crate :: packages:: udp_tracker_core:: connection_cookie:: { gen_remote_fingerprint , make} ;
217
204
use crate :: packages:: { self , udp_tracker_core} ;
218
205
use crate :: servers:: udp:: handlers:: announce:: tests:: announce_request:: AnnounceRequestBuilder ;
206
+ use crate :: servers:: udp:: handlers:: handle_announce;
219
207
use crate :: servers:: udp:: handlers:: tests:: {
220
208
initialize_core_tracker_services_for_default_tracker_configuration,
221
209
initialize_core_tracker_services_for_public_tracker, sample_cookie_valid_range, sample_ipv4_socket_address,
222
210
sample_issue_time, MockUdpStatsEventSender , TorrentPeerBuilder ,
223
211
} ;
224
- use crate :: servers:: udp:: handlers:: { gen_remote_fingerprint, handle_announce} ;
225
212
226
213
#[ tokio:: test]
227
214
async fn an_announced_peer_should_be_added_to_the_tracker ( ) {
@@ -447,13 +434,13 @@ mod tests {
447
434
448
435
use aquatic_udp_protocol:: { InfoHash as AquaticInfoHash , PeerId as AquaticPeerId } ;
449
436
450
- use crate :: packages:: udp_tracker_core:: connection_cookie:: make;
437
+ use crate :: packages:: udp_tracker_core:: connection_cookie:: { gen_remote_fingerprint , make} ;
451
438
use crate :: servers:: udp:: handlers:: announce:: tests:: announce_request:: AnnounceRequestBuilder ;
439
+ use crate :: servers:: udp:: handlers:: handle_announce;
452
440
use crate :: servers:: udp:: handlers:: tests:: {
453
441
initialize_core_tracker_services_for_public_tracker, sample_cookie_valid_range, sample_issue_time,
454
442
TorrentPeerBuilder ,
455
443
} ;
456
- use crate :: servers:: udp:: handlers:: { gen_remote_fingerprint, handle_announce} ;
457
444
458
445
#[ tokio:: test]
459
446
async fn the_peer_ip_should_be_changed_to_the_external_ip_in_the_tracker_configuration_if_defined ( ) {
@@ -520,15 +507,15 @@ mod tests {
520
507
use mockall:: predicate:: eq;
521
508
use torrust_tracker_configuration:: Core ;
522
509
523
- use crate :: packages:: udp_tracker_core:: connection_cookie:: make;
510
+ use crate :: packages:: udp_tracker_core:: connection_cookie:: { gen_remote_fingerprint , make} ;
524
511
use crate :: packages:: { self , udp_tracker_core} ;
525
512
use crate :: servers:: udp:: handlers:: announce:: tests:: announce_request:: AnnounceRequestBuilder ;
513
+ use crate :: servers:: udp:: handlers:: handle_announce;
526
514
use crate :: servers:: udp:: handlers:: tests:: {
527
515
initialize_core_tracker_services_for_default_tracker_configuration,
528
516
initialize_core_tracker_services_for_public_tracker, sample_cookie_valid_range, sample_ipv6_remote_addr,
529
517
sample_issue_time, MockUdpStatsEventSender , TorrentPeerBuilder ,
530
518
} ;
531
- use crate :: servers:: udp:: handlers:: { gen_remote_fingerprint, handle_announce} ;
532
519
533
520
#[ tokio:: test]
534
521
async fn an_announced_peer_should_be_added_to_the_tracker ( ) {
@@ -776,12 +763,12 @@ mod tests {
776
763
use mockall:: predicate:: eq;
777
764
778
765
use crate :: packages:: udp_tracker_core;
779
- use crate :: packages:: udp_tracker_core:: connection_cookie:: make;
766
+ use crate :: packages:: udp_tracker_core:: connection_cookie:: { gen_remote_fingerprint , make} ;
780
767
use crate :: servers:: udp:: handlers:: announce:: tests:: announce_request:: AnnounceRequestBuilder ;
768
+ use crate :: servers:: udp:: handlers:: handle_announce;
781
769
use crate :: servers:: udp:: handlers:: tests:: {
782
770
sample_cookie_valid_range, sample_issue_time, MockUdpStatsEventSender , TrackerConfigurationBuilder ,
783
771
} ;
784
- use crate :: servers:: udp:: handlers:: { gen_remote_fingerprint, handle_announce} ;
785
772
786
773
#[ tokio:: test]
787
774
async fn the_peer_ip_should_be_changed_to_the_external_ip_in_the_tracker_configuration ( ) {
0 commit comments