http: if PeerStatus is Stopped, return empty peer list

This commit is contained in:
Joakim Frostegård 2022-09-25 11:52:55 +02:00
parent ed98327e1a
commit 69c395a702

View file

@ -386,18 +386,22 @@ pub fn upsert_peer_and_get_response_peers<I: Ip>(
::log::debug!("peer request numwant: {:?}", request.numwant); ::log::debug!("peer request numwant: {:?}", request.numwant);
let max_num_peers_to_take = match request.numwant { let response_peers = if let PeerStatus::Stopped = peer_status {
Some(0) | None => config.protocol.max_peers, Vec::new()
Some(numwant) => numwant.min(config.protocol.max_peers), } else {
}; let max_num_peers_to_take = match request.numwant {
Some(0) | None => config.protocol.max_peers,
Some(numwant) => numwant.min(config.protocol.max_peers),
};
let response_peers: Vec<ResponsePeer<I>> = extract_response_peers( extract_response_peers(
rng, rng,
&torrent_data.peers, &torrent_data.peers,
max_num_peers_to_take, max_num_peers_to_take,
peer_map_key, peer_map_key,
Peer::to_response_peer, Peer::to_response_peer,
); )
};
( (
torrent_data.num_seeders, torrent_data.num_seeders,