From 72701c9eb3404a5ecbbad50a2a072e665ee92bbb Mon Sep 17 00:00:00 2001 From: "Sijie.Sun" Date: Fri, 10 May 2024 21:40:50 +0800 Subject: [PATCH] start tcp proxy after tun device created (#94) on win 10, tcp proxy listener created before tun device may not accept conn from tun dev. --- easytier/src/instance/instance.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/easytier/src/instance/instance.rs b/easytier/src/instance/instance.rs index 4a895d0..07ea912 100644 --- a/easytier/src/instance/instance.rs +++ b/easytier/src/instance/instance.rs @@ -284,20 +284,21 @@ impl Instance { self.listener_manager.lock().await.run().await?; self.peer_manager.run().await?; - self.run_rpc_server()?; - - self.ip_proxy = Some(IpProxy::new( - self.get_global_ctx(), - self.get_peer_manager(), - )?); - self.ip_proxy.as_ref().unwrap().start().await?; - if let Some(ipv4_addr) = self.global_ctx.get_ipv4() { self.prepare_tun_device().await?; self.assign_ipv4_to_tun_device(ipv4_addr).await?; self.run_proxy_cidrs_route_updater(); } + self.run_rpc_server()?; + + // run after tun device created, so listener can bind to tun device, which may be required by win 10 + self.ip_proxy = Some(IpProxy::new( + self.get_global_ctx(), + self.get_peer_manager(), + )?); + self.ip_proxy.as_ref().unwrap().start().await?; + self.udp_hole_puncher.lock().await.run().await?; self.peer_center.init().await;