Finalize nx9-wg production release

This commit is contained in:
thakares committed 2026-08-18 22:27:36 +05:30
1 parent 4dfe42fe68
commit d704c1e131
30 files changed
+2502 -370

No files matched your search

@@ -13,6 +13,8 @@ pub struct ClientExportState {
pub selected_connection: ConnectionType,
pub selected_nat: NatType,
pub manual_mtu_override: Option<u16>,
pub server_endpoint: Option<String>,
pub is_default_from_settings: bool,
pub resolved_profile: Option<ResolvedClientProfile>,
pub is_override_enabled: bool,
pub qr_view_active: bool,
@@ -26,6 +28,8 @@ impl Default for ClientExportState {
selected_connection: ConnectionType::Web,
selected_nat: NatType::Unknown,
manual_mtu_override: None,
server_endpoint: None,
is_default_from_settings: false,
resolved_profile: None,
is_override_enabled: false,
qr_view_active: false,
@@ -59,6 +63,12 @@ impl ClientExportState {
self.selected_provider = provider;
}
/// Set server endpoint override and whether it was populated from default settings.
pub fn set_server_endpoint(&mut self, endpoint: Option<String>, is_default: bool) {
self.server_endpoint = endpoint;
self.is_default_from_settings = is_default;
}
/// Toggle or set manual MTU override.
pub fn set_manual_mtu(&mut self, mtu: Option<u16>) {
self.manual_mtu_override = mtu;
@@ -95,6 +105,14 @@ impl ClientExportState {
if let Some(m) = self.manual_mtu_override {
params.push(format!("mtu={m}"));
}
if let Some(ep) = self
.server_endpoint
.as_deref()
.filter(|s| !s.trim().is_empty())
{
params.push(format!("endpoint={}", urlencoding(ep.trim())));
}
if let Some(id) = profile_id {
params.push(format!("profile={}", urlencoding(id)));
}
@@ -15,6 +15,9 @@ pub struct SettingsState {
pub default_interface: String,
pub default_mtu: u16,
pub default_listen_port: u16,
pub wireguard_server_host: String,
pub wireguard_server_port: u16,
pub wireguard_server_endpoint_enabled: bool,
// Card 3: Networking
pub nat_enabled: bool,
@@ -46,6 +49,9 @@ impl Default for SettingsState {
default_interface: "wg0".to_string(),
default_mtu: 1420,
default_listen_port: 51820,
wireguard_server_host: String::new(),
wireguard_server_port: 51820,
wireguard_server_endpoint_enabled: true,
nat_enabled: true,
ipv4_forwarding: true,
ipv6_forwarding: false,