mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-04-02 02:35:31 +00:00
udp: request worker: remove layer of branching
This commit is contained in:
parent
9fedf82113
commit
1025391e4f
1 changed files with 16 additions and 10 deletions
|
|
@ -42,27 +42,33 @@ pub fn run_request_worker(
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
if let Ok((sender_index, request, src)) = request_receiver.recv_timeout(timeout) {
|
if let Ok((sender_index, request, src)) = request_receiver.recv_timeout(timeout) {
|
||||||
let response = match request {
|
let response = match (request, src.get().ip()) {
|
||||||
ConnectedRequest::Announce(request) => match src.get().ip() {
|
(ConnectedRequest::Announce(request), IpAddr::V4(ip)) => {
|
||||||
IpAddr::V4(ip) => ConnectedResponse::AnnounceIpv4(handle_announce_request(
|
let response = handle_announce_request(
|
||||||
&config,
|
&config,
|
||||||
&mut rng,
|
&mut rng,
|
||||||
&mut torrents.ipv4,
|
&mut torrents.ipv4,
|
||||||
request,
|
request,
|
||||||
ip,
|
ip,
|
||||||
peer_valid_until,
|
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,
|
&config,
|
||||||
&mut rng,
|
&mut rng,
|
||||||
&mut torrents.ipv6,
|
&mut torrents.ipv6,
|
||||||
request,
|
request,
|
||||||
ip,
|
ip,
|
||||||
peer_valid_until,
|
peer_valid_until,
|
||||||
)),
|
);
|
||||||
},
|
|
||||||
ConnectedRequest::Scrape(request) => {
|
ConnectedResponse::AnnounceIpv6(response)
|
||||||
ConnectedResponse::Scrape(handle_scrape_request(&mut torrents, src, request))
|
}
|
||||||
|
(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(
|
fn handle_scrape_request(
|
||||||
torrents: &mut TorrentMaps,
|
torrents: &mut TorrentMaps,
|
||||||
src: CanonicalSocketAddr,
|
src: IpAddr,
|
||||||
request: PendingScrapeRequest,
|
request: PendingScrapeRequest,
|
||||||
) -> PendingScrapeResponse {
|
) -> PendingScrapeResponse {
|
||||||
const EMPTY_STATS: TorrentScrapeStatistics = create_torrent_scrape_statistics(0, 0);
|
const EMPTY_STATS: TorrentScrapeStatistics = create_torrent_scrape_statistics(0, 0);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue