releases/v2.4.0 (#1145)

* bump version to v2.4.0
* update tauri.
* allow try direct connect to public server
This commit is contained in:
Sijie.Sun
2025-07-25 00:16:15 +08:00
committed by GitHub
parent 8e7a8de5e5
commit 1f6a715939
20 changed files with 1006 additions and 539 deletions
@@ -25,7 +25,6 @@ use crate::{
error::Error,
global_ctx::{ArcGlobalCtx, GlobalCtx, GlobalCtxEvent, NetworkIdentity},
join_joinset_background,
stun::MockStunInfoCollector,
token_bucket::TokenBucket,
PeerId,
},
@@ -33,7 +32,7 @@ use crate::{
peers::route_trait::{Route, RouteInterface},
proto::{
cli::{ForeignNetworkEntryPb, ListForeignNetworkResponse, PeerInfo},
common::{LimiterConfig, NatType},
common::LimiterConfig,
peer_rpc::DirectConnectorRpcServer,
},
tunnel::packet_def::{PacketType, ZCPacket},
@@ -159,9 +158,8 @@ impl ForeignNetworkEntry {
config.set_hostname(Some(format!("PublicServer_{}", global_ctx.get_hostname())));
let foreign_global_ctx = Arc::new(GlobalCtx::new(config));
foreign_global_ctx.replace_stun_info_collector(Box::new(MockStunInfoCollector {
udp_nat_type: NatType::Unknown,
}));
foreign_global_ctx
.replace_stun_info_collector(Box::new(global_ctx.get_stun_info_collector().clone()));
let mut feature_flag = global_ctx.get_feature_flags();
feature_flag.is_public_server = true;
+6 -5
View File
@@ -81,12 +81,13 @@ impl PeerRpcManagerTransport for RpcTransport {
async fn send(&self, mut msg: ZCPacket, dst_peer_id: PeerId) -> Result<(), Error> {
let peers = self.peers.upgrade().ok_or(Error::Unknown)?;
// NOTE: if route info is not exchanged, this will return error. treat it as need relay
if !peers
.need_relay_by_foreign_network(dst_peer_id)
// NOTE: if route info is not exchanged, this will return None. treat it as public server.
let is_dst_peer_public_server = peers
.get_route_peer_info(dst_peer_id)
.await
.unwrap_or(true)
{
.and_then(|x| x.feature_flag.map(|x| x.is_public_server))
.unwrap_or(true);
if !is_dst_peer_public_server {
self.encryptor
.encrypt(&mut msg)
.with_context(|| "encrypt failed")?;