mirror of
https://github.com/EasyTier/EasyTier.git
synced 2025-09-26 20:51:17 +08:00
set correct route cost for peers relayed by public server (#279)
This commit is contained in:
@@ -114,10 +114,18 @@ pub fn list_peer_route_pair(peers: Vec<PeerInfo>, routes: Vec<Route>) -> Vec<Pee
|
||||
|
||||
for route in routes.iter() {
|
||||
let peer = peers.iter().find(|peer| peer.peer_id == route.peer_id);
|
||||
pairs.push(PeerRoutePair {
|
||||
let has_tunnel = peer.map(|p| !p.conns.is_empty()).unwrap_or(false);
|
||||
let mut pair = PeerRoutePair {
|
||||
route: route.clone(),
|
||||
peer: peer.cloned(),
|
||||
});
|
||||
};
|
||||
|
||||
// it is relayed by public server, adjust the cost
|
||||
if !has_tunnel && pair.route.cost == 1 {
|
||||
pair.route.cost = 2;
|
||||
}
|
||||
|
||||
pairs.push(pair);
|
||||
}
|
||||
|
||||
pairs
|
||||
|
Reference in New Issue
Block a user