release: NX9-WG v1.0.0
This commit is contained in:
1 parent
c8a9b7cde6
commit
4dfe42fe68
42 files changed
+4689
-336
No files matched your search
@@ -28,6 +28,12 @@ pub struct LiveInterfaceStats {
|
||||
pub listen_port: u16,
|
||||
pub fwmark: u32,
|
||||
pub peers: Vec<LivePeerStats>,
|
||||
#[serde(default)]
|
||||
pub addresses: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub mtu: Option<u32>,
|
||||
#[serde(default)]
|
||||
pub is_up: bool,
|
||||
}
|
||||
|
||||
/// Abstract WireGuard Engine interface for kernel netlink and simulated environments.
|
||||
@@ -82,6 +88,12 @@ impl SimulatedWireGuardEngine {
|
||||
"Peer '{peer_public_key}' on interface '{interface_name}' not found"
|
||||
)))
|
||||
}
|
||||
|
||||
/// Directly inject live interface stats (for testing drift and telemetry scenarios).
|
||||
pub async fn inject_interface_stats(&self, stats: LiveInterfaceStats) {
|
||||
let mut map = self.state.write().await;
|
||||
map.insert(stats.name.clone(), stats);
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait::async_trait]
|
||||
@@ -94,7 +106,7 @@ impl WireGuardEngine for SimulatedWireGuardEngine {
|
||||
.filter(|p| p.state == PeerState::Active)
|
||||
.map(|p| {
|
||||
let allowed_ips: Vec<String> = p
|
||||
.allowed_ips
|
||||
.server_wireguard_allowed_ips()
|
||||
.split(',')
|
||||
.map(|s| s.trim().to_string())
|
||||
.filter(|s| !s.is_empty())
|
||||
@@ -112,12 +124,20 @@ impl WireGuardEngine for SimulatedWireGuardEngine {
|
||||
})
|
||||
.collect();
|
||||
|
||||
let mut addresses = vec![interface.address_v4.to_string()];
|
||||
if let Some(ref v6) = interface.address_v6 {
|
||||
addresses.push(v6.to_string());
|
||||
}
|
||||
|
||||
let stats = LiveInterfaceStats {
|
||||
name: interface.name.clone(),
|
||||
public_key: interface.public_key.as_str().to_string(),
|
||||
listen_port: interface.listen_port,
|
||||
fwmark: 0,
|
||||
peers: live_peers,
|
||||
addresses,
|
||||
mtu: interface.mtu.map(|m| m as u32),
|
||||
is_up: true,
|
||||
};
|
||||
|
||||
map.insert(interface.name.clone(), stats);
|
||||
|
||||
Reference in new issue
Block a user