mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-06 17:59:11 +00:00
fix latency first route of public server (#1129)
This commit is contained in:
@@ -29,6 +29,7 @@ use crate::{
|
||||
token_bucket::TokenBucket,
|
||||
PeerId,
|
||||
},
|
||||
peer_center::instance::{PeerCenterInstance, PeerMapWithPeerRpcManager},
|
||||
peers::route_trait::{Route, RouteInterface},
|
||||
proto::{
|
||||
cli::{ForeignNetworkEntryPb, ListForeignNetworkResponse, PeerInfo},
|
||||
@@ -73,6 +74,8 @@ struct ForeignNetworkEntry {
|
||||
|
||||
bps_limiter: Arc<TokenBucket>,
|
||||
|
||||
peer_center: Arc<PeerCenterInstance>,
|
||||
|
||||
tasks: Mutex<JoinSet<()>>,
|
||||
|
||||
pub lock: Mutex<()>,
|
||||
@@ -116,6 +119,13 @@ impl ForeignNetworkEntry {
|
||||
.token_bucket_manager()
|
||||
.get_or_create(&network.network_name, limiter_config.into());
|
||||
|
||||
let peer_center = Arc::new(PeerCenterInstance::new(Arc::new(
|
||||
PeerMapWithPeerRpcManager {
|
||||
peer_map: peer_map.clone(),
|
||||
rpc_mgr: peer_rpc.clone(),
|
||||
},
|
||||
)));
|
||||
|
||||
Self {
|
||||
my_peer_id,
|
||||
|
||||
@@ -134,6 +144,8 @@ impl ForeignNetworkEntry {
|
||||
|
||||
tasks: Mutex::new(JoinSet::new()),
|
||||
|
||||
peer_center,
|
||||
|
||||
lock: Mutex::new(()),
|
||||
}
|
||||
}
|
||||
@@ -270,6 +282,10 @@ impl ForeignNetworkEntry {
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
route
|
||||
.set_route_cost_fn(self.peer_center.get_cost_calculator())
|
||||
.await;
|
||||
|
||||
self.peer_map.add_route(Arc::new(Box::new(route))).await;
|
||||
}
|
||||
|
||||
@@ -351,6 +367,7 @@ impl ForeignNetworkEntry {
|
||||
self.prepare_route(accessor).await;
|
||||
self.start_packet_recv().await;
|
||||
self.peer_rpc.run();
|
||||
self.peer_center.init().await;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user