Using response freshness in ordering

This commit is contained in:
Igor Katson 2023-11-29 23:57:11 +00:00
parent a5ae2988b8
commit 7d02d79ff5
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5

View file

@ -437,7 +437,16 @@ impl<C: RecursiveRequestCallbacks> RecursiveRequest<C> {
let has_returned_peers_desc = Reverse(n.returned_peers);
let has_responded_desc = Reverse(n.last_response.is_some() as u8);
let distance = n.id.distance(&self.info_hash);
(has_returned_peers_desc, has_responded_desc, distance)
let freshest_response = n
.last_response
.map(|r| r.elapsed())
.unwrap_or(Duration::MAX);
(
has_returned_peers_desc,
has_responded_desc,
distance,
freshest_response,
)
});
if closest_nodes.len() > LIMIT {
let popped = closest_nodes.pop().unwrap();