完善1.2.2

This commit is contained in:
lubeilin
2023-09-03 20:58:48 +08:00
parent a943f5bffc
commit 954f0d2d05
7 changed files with 57 additions and 29 deletions
+4 -3
View File
@@ -10,7 +10,7 @@ pub enum VntStatus {
}
pub struct VntWorker {
_name: String,
name: String,
wg: WaitGroup,
status_s: Arc<Sender<VntStatus>>,
status_r: Receiver<VntStatus>,
@@ -20,7 +20,7 @@ impl VntWorker {
pub fn worker(&self, name: &str) -> Self {
self.wg.add();
VntWorker {
_name: name.to_string(),
name: name.to_string(),
wg: self.wg.clone(),
status_s: self.status_s.clone(),
status_r: self.status_r.clone(),
@@ -30,6 +30,7 @@ impl VntWorker {
impl Drop for VntWorker {
fn drop(&mut self) {
log::info!("任务停止:{}", self.name);
self.wg.done();
}
}
@@ -82,7 +83,7 @@ impl VntStatusManger {
pub fn worker(&self, name: &str) -> VntWorker {
self.wg.add();
VntWorker {
_name: name.to_string(),
name: name.to_string(),
wg: self.wg.clone(),
status_s: self.status_s.clone(),
status_r: self.status_r.clone(),
+25 -6
View File
@@ -178,17 +178,28 @@ async fn start_heartbeat_(
peer.virtual_ip,
);
if let Some(route) = sender.route_one(&peer.virtual_ip) {
let _ = sender
if let Err(e) = sender
.send_by_key(client_packet.buffer(), &route.route_key())
.await;
.await
{
log::warn!("virtual_ip:{},route:{:?},e:{:?}", peer.virtual_ip, route, e);
}
if route.is_p2p() {
continue;
}
} else {
//没有直连路由则发送到网关
let _ = sender
if let Err(e) = sender
.send_main(client_packet.buffer(), current_dev.connect_server)
.await;
.await
{
log::warn!(
"virtual_ip:{},connect_server:{:?},e:{:?}",
peer.virtual_ip,
current_dev.connect_server,
e
);
}
}
//再随机发送到其他地址,看有没有客户端符合转发条件
@@ -201,8 +212,16 @@ async fn start_heartbeat_(
'a: for (peer_ip, route_list) in route_list.iter() {
for route in route_list {
if peer_ip != &peer.virtual_ip && route.is_p2p() {
let _ =
sender.try_send_by_key(client_packet.buffer(), &route.route_key());
if let Err(e) =
sender.try_send_by_key(client_packet.buffer(), &route.route_key())
{
log::warn!(
"virtual_ip:{},route:{:?},e:{:?}",
peer.virtual_ip,
route,
e
);
}
num += 1;
break;
}