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_returned_peers_desc = Reverse(n.returned_peers);
|
||||||
let has_responded_desc = Reverse(n.last_response.is_some() as u8);
|
let has_responded_desc = Reverse(n.last_response.is_some() as u8);
|
||||||
let distance = n.id.distance(&self.info_hash);
|
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 {
|
if closest_nodes.len() > LIMIT {
|
||||||
let popped = closest_nodes.pop().unwrap();
|
let popped = closest_nodes.pop().unwrap();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue