@@ -11,6 +11,7 @@ use log::{debug, info};
1111use  torrust_tracker_located_error:: DynError ; 
1212
1313use  super :: connection_cookie:: { check,  from_connection_id,  into_connection_id,  make} ; 
14+ use  super :: UdpRequest ; 
1415use  crate :: core:: { statistics,  ScrapeData ,  Tracker } ; 
1516use  crate :: servers:: udp:: error:: Error ; 
1617use  crate :: servers:: udp:: peer_builder; 
@@ -27,10 +28,13 @@ use crate::shared::bit_torrent::info_hash::InfoHash;
2728/// type. 
2829/// 
2930/// It will return an `Error` response if the request is invalid. 
30- pub  async  fn  handle_packet ( remote_addr :  SocketAddr ,  payload :  Vec < u8 > ,  tracker :  & Tracker )  -> Response  { 
31-     match  Request :: from_bytes ( & payload[ ..payload. len ( ) ] ,  MAX_SCRAPE_TORRENTS ) . map_err ( |e| Error :: InternalServer  { 
32-         message :  format ! ( "{e:?}" ) , 
33-         location :  Location :: caller ( ) , 
31+ pub ( crate )  async  fn  handle_packet ( udp_request :  UdpRequest ,  tracker :  & Arc < Tracker > )  -> Response  { 
32+     debug ! ( "Handling Packets: {udp_request:?}" ) ; 
33+     match  Request :: from_bytes ( & udp_request. payload [ ..udp_request. payload . len ( ) ] ,  MAX_SCRAPE_TORRENTS ) . map_err ( |e| { 
34+         Error :: InternalServer  { 
35+             message :  format ! ( "{e:?}" ) , 
36+             location :  Location :: caller ( ) , 
37+         } 
3438    } )  { 
3539        Ok ( request)  => { 
3640            let  transaction_id = match  & request { 
@@ -39,7 +43,7 @@ pub async fn handle_packet(remote_addr: SocketAddr, payload: Vec<u8>, tracker: &
3943                Request :: Scrape ( scrape_request)  => scrape_request. transaction_id , 
4044            } ; 
4145
42-             match  handle_request ( request,  remote_addr ,  tracker) . await  { 
46+             match  handle_request ( request,  udp_request . from ,  tracker) . await  { 
4347                Ok ( response)  => response, 
4448                Err ( e)  => handle_error ( & e,  transaction_id) , 
4549            } 
@@ -60,6 +64,8 @@ pub async fn handle_packet(remote_addr: SocketAddr, payload: Vec<u8>, tracker: &
6064/// 
6165/// If a error happens in the `handle_request` function, it will just return the  `ServerError`. 
6266pub  async  fn  handle_request ( request :  Request ,  remote_addr :  SocketAddr ,  tracker :  & Tracker )  -> Result < Response ,  Error >  { 
67+     debug ! ( "Handling Request: {request:?} to: {remote_addr:?}" ) ; 
68+ 
6369    match  request { 
6470        Request :: Connect ( connect_request)  => handle_connect ( remote_addr,  & connect_request,  tracker) . await , 
6571        Request :: Announce ( announce_request)  => handle_announce ( remote_addr,  & announce_request,  tracker) . await , 
0 commit comments