From 1025391e4fe65caa6ce50362c142c247db5aceb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sat, 16 Apr 2022 02:10:52 +0200 Subject: [PATCH] udp: request worker: remove layer of branching --- aquatic_udp/src/workers/request/mod.rs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/aquatic_udp/src/workers/request/mod.rs b/aquatic_udp/src/workers/request/mod.rs index 4b47f4a..fb83988 100644 --- a/aquatic_udp/src/workers/request/mod.rs +++ b/aquatic_udp/src/workers/request/mod.rs @@ -42,27 +42,33 @@ pub fn run_request_worker( loop { if let Ok((sender_index, request, src)) = request_receiver.recv_timeout(timeout) { - let response = match request { - ConnectedRequest::Announce(request) => match src.get().ip() { - IpAddr::V4(ip) => ConnectedResponse::AnnounceIpv4(handle_announce_request( + let response = match (request, src.get().ip()) { + (ConnectedRequest::Announce(request), IpAddr::V4(ip)) => { + let response = handle_announce_request( &config, &mut rng, &mut torrents.ipv4, request, ip, peer_valid_until, - )), - IpAddr::V6(ip) => ConnectedResponse::AnnounceIpv6(handle_announce_request( + ); + + ConnectedResponse::AnnounceIpv4(response) + } + (ConnectedRequest::Announce(request), IpAddr::V6(ip)) => { + let response = handle_announce_request( &config, &mut rng, &mut torrents.ipv6, request, ip, peer_valid_until, - )), - }, - ConnectedRequest::Scrape(request) => { - ConnectedResponse::Scrape(handle_scrape_request(&mut torrents, src, request)) + ); + + ConnectedResponse::AnnounceIpv6(response) + } + (ConnectedRequest::Scrape(request), ip) => { + ConnectedResponse::Scrape(handle_scrape_request(&mut torrents, ip, request)) } }; @@ -177,7 +183,7 @@ fn calc_max_num_peers_to_take(config: &Config, peers_wanted: i32) -> usize { fn handle_scrape_request( torrents: &mut TorrentMaps, - src: CanonicalSocketAddr, + src: IpAddr, request: PendingScrapeRequest, ) -> PendingScrapeResponse { const EMPTY_STATS: TorrentScrapeStatistics = create_torrent_scrape_statistics(0, 0);