core: hide default STUN servers from cli (#1334)

This commit is contained in:
fanyang
2025-09-06 15:53:34 +08:00
committed by GitHub
parent b750faa66f
commit 088155f6f3
2 changed files with 22 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ use cidr::IpCidr;
use serde::{Deserialize, Serialize};
use crate::{
common::stun::StunInfoCollector,
proto::{
acl::Acl,
common::{CompressionAlgoPb, PortForwardConfigPb, SocketType},
@@ -833,6 +834,12 @@ impl ConfigLoader for TomlConfigLoader {
let mut config = self.config.lock().unwrap().clone();
config.flags = Some(flag_map);
if config.stun_servers == Some(StunInfoCollector::get_default_servers()) {
config.stun_servers = None;
}
if config.stun_servers_v6 == Some(StunInfoCollector::get_default_servers_v6()) {
config.stun_servers_v6 = None;
}
toml::to_string_pretty(&config).unwrap()
}
}

View File

@@ -1061,6 +1061,18 @@ fn win_service_event_loop(
});
}
fn parse_cli() -> Cli {
let mut cli = Cli::parse();
// for --stun-servers="", we want vec![], but clap will give vec![""], hack for that
if let Some(stun_servers) = &mut cli.network_options.stun_servers {
stun_servers.retain(|s| !s.trim().is_empty());
}
if let Some(stun_servers_v6) = &mut cli.network_options.stun_servers_v6 {
stun_servers_v6.retain(|s| !s.trim().is_empty());
}
cli
}
#[cfg(target_os = "windows")]
fn win_service_main(arg: Vec<std::ffi::OsString>) {
use std::sync::Arc;
@@ -1071,7 +1083,7 @@ fn win_service_main(arg: Vec<std::ffi::OsString>) {
_ = win_service_set_work_dir(&arg[0]);
let cli = Cli::parse();
let cli = parse_cli();
let stop_notify_send = Arc::new(Notify::new());
let stop_notify_recv = Arc::clone(&stop_notify_send);
@@ -1279,7 +1291,8 @@ async fn main() -> ExitCode {
set_prof_active(true);
let _monitor = std::thread::spawn(memory_monitor);
let cli = Cli::parse();
let cli = parse_cli();
if let Some(shell) = cli.gen_autocomplete {
let mut cmd = Cli::command();
easytier::print_completions(shell, &mut cmd, "easytier-core");