Using response freshness in ordering
This commit is contained in:
parent
a5ae2988b8
commit
7d02d79ff5
1 changed files with 10 additions and 1 deletions
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue