Small fixes base on comments in PR #261

This commit is contained in:
Ivan 2024-11-09 11:42:48 +01:00 • committed by Igor Katson
parent 42d184ff6b
commit 90a823b3ed
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5

View file

@ -884,7 +884,7 @@ impl TorrentStateLive {
None None
} }
}) })
.take(50) .take(MAX_SENT_PEERS)
.collect::<HashSet<_>>(); .collect::<HashSet<_>>();
let addrs_closed_to_sent = sent_peers_live let addrs_closed_to_sent = sent_peers_live
@ -905,16 +905,23 @@ impl TorrentStateLive {
// and addrs_closed_to_sent are only filtered addresses from sent_peers_live // and addrs_closed_to_sent are only filtered addresses from sent_peers_live
if !addrs_live_to_sent.is_empty() || !addrs_closed_to_sent.is_empty() { if !addrs_live_to_sent.is_empty() || !addrs_closed_to_sent.is_empty() {
debug!("sending PEX with {} live ({:?})and {} closed peers", addrs_live_to_sent.len(), addrs_live_to_sent,addrs_closed_to_sent.len()); debug!(
"sending PEX with {} live ({:?})and {} closed peers",
addrs_live_to_sent.len(),
addrs_live_to_sent,
addrs_closed_to_sent.len()
);
let pex_msg = let pex_msg =
extended::ut_pex::UtPex::from_addrs(&addrs_live_to_sent, &addrs_closed_to_sent); extended::ut_pex::UtPex::from_addrs(&addrs_live_to_sent, &addrs_closed_to_sent);
let ext_msg = extended::ExtendedMessage::UtPex(pex_msg); let ext_msg = extended::ExtendedMessage::UtPex(pex_msg);
let msg = Message::Extended(ext_msg); let msg = Message::Extended(ext_msg);
if tx.send(WriterRequest::Message(msg)).is_ok() { if tx.send(WriterRequest::Message(msg)).is_err() {
sent_peers_live.extend(&addrs_live_to_sent); return Ok(()); // Peer disconnected
sent_peers_live.retain(|addr| !addrs_closed_to_sent.contains(addr));
} }
sent_peers_live.extend(&addrs_live_to_sent);
sent_peers_live.retain(|addr| !addrs_closed_to_sent.contains(addr));
} }
} }
} }
@ -1859,7 +1866,6 @@ impl PeerHandler {
B: AsRef<[u8]> + std::fmt::Debug, B: AsRef<[u8]> + std::fmt::Debug,
{ {
// TODO: this is just first attempt at pex - will need more sophistication on adding peers - BEP 40, check number of live, seen peers ... // TODO: this is just first attempt at pex - will need more sophistication on adding peers - BEP 40, check number of live, seen peers ...
debug!("received PEX message with {} added peers and {} dropped peers", msg.added_peers().count(), msg.dropped_peers().count());
msg.dropped_peers() msg.dropped_peers()
.chain(msg.added_peers()) .chain(msg.added_peers())
.for_each(|peer| { .for_each(|peer| {