mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-13 21:27:25 +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() {
|
for route in routes.iter() {
|
||||||
let peer = peers.iter().find(|peer| peer.peer_id == route.peer_id);
|
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(),
|
route: route.clone(),
|
||||||
peer: peer.cloned(),
|
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
|
pairs
|
||||||
|
|||||||
Reference in New Issue
Block a user