mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-10-25 21:22:20 +08:00
Support the dns-mode field introduced in mihomo v1.19.33. A button group below the stack selector offers Auto/Disabled/Native/Hijack; Auto writes an empty string, which the core treats as the legacy behavior. Adding dns-mode to GUI_KEYS makes the value GUI-authoritative once saved, matching the other TUN dialog fields.
83 lines
2.8 KiB
Rust
83 lines
2.8 KiB
Rust
use std::time::Duration;
|
|
|
|
pub mod network {
|
|
pub const DEFAULT_EXTERNAL_CONTROLLER: &str = "127.0.0.1:9097";
|
|
|
|
pub mod ports {
|
|
#[cfg(not(target_os = "windows"))]
|
|
pub const DEFAULT_REDIR: u16 = 7895;
|
|
#[cfg(target_os = "linux")]
|
|
pub const DEFAULT_TPROXY: u16 = 7896;
|
|
pub const DEFAULT_MIXED: u16 = 7897;
|
|
pub const DEFAULT_SOCKS: u16 = 7898;
|
|
pub const DEFAULT_HTTP: u16 = 7899;
|
|
}
|
|
}
|
|
|
|
pub mod timing {
|
|
use super::Duration;
|
|
|
|
pub const CONFIG_UPDATE_DEBOUNCE: Duration = Duration::from_millis(300);
|
|
pub const STARTUP_ERROR_DELAY: Duration = Duration::from_secs(2);
|
|
|
|
// How long a re-asked staging request is worth waiting for. One that already landed answers in
|
|
// milliseconds; anything slower means the Service is still working, so ReplaceCore beats waiting.
|
|
pub const STAGE_CONFIRM_TIMEOUT: Duration = Duration::from_secs(5);
|
|
|
|
pub const RUNTIME_PROVIDER_SYNC_DELAY: Duration = Duration::from_secs(15);
|
|
pub const RUNTIME_PROVIDER_SYNC_RETRY_DELAY: Duration = Duration::from_secs(15);
|
|
// mihomo rewrites provider caches in place.
|
|
pub const RUNTIME_PROVIDER_SETTLE: Duration = Duration::from_secs(2);
|
|
|
|
// Windows 服务冷启动较慢,避免过早回退 sidecar。
|
|
#[cfg(target_os = "windows")]
|
|
pub const SERVICE_WAIT_MAX: Duration = Duration::from_millis(30000);
|
|
#[cfg(target_os = "windows")]
|
|
pub const SERVICE_WAIT_INTERVAL: Duration = Duration::from_millis(200);
|
|
|
|
// 回退 sidecar 后继续等待服务就绪并尝试交接。
|
|
#[cfg(target_os = "windows")]
|
|
pub const SERVICE_HANDOFF_WINDOW: Duration = Duration::from_secs(120);
|
|
#[cfg(target_os = "windows")]
|
|
pub const SERVICE_HANDOFF_INTERVAL: Duration = Duration::from_secs(2);
|
|
|
|
// 交接时等待 sidecar 释放 ext-controller 通道。
|
|
#[cfg(target_os = "windows")]
|
|
pub const SERVICE_START_RETRIES: usize = 5;
|
|
#[cfg(target_os = "windows")]
|
|
pub const SERVICE_START_RETRY_DELAY: Duration = Duration::from_millis(300);
|
|
}
|
|
|
|
pub mod profile {
|
|
/// Floor, in minutes, for how often a profile may auto-update (24 hours).
|
|
pub const MIN_UPDATE_INTERVAL: u64 = 1440;
|
|
}
|
|
|
|
pub mod files {
|
|
pub const RUNTIME_CONFIG: &str = "clash-verge.yaml";
|
|
pub const CHECK_CONFIG: &str = "clash-verge-check.yaml";
|
|
pub const DNS_CONFIG: &str = "dns_config.yaml";
|
|
pub const WINDOW_STATE: &str = "window_state.json";
|
|
}
|
|
|
|
pub mod tun {
|
|
pub const DEFAULT_STACK: &str = "mips";
|
|
|
|
pub const DNS_HIJACK: &[&str] = &["any:53"];
|
|
|
|
/// Saved dialog fields; `enable` belongs to the verge switch.
|
|
pub const GUI_KEYS: &[&str] = &[
|
|
"stack",
|
|
"device",
|
|
"auto-route",
|
|
"route-exclude-address",
|
|
#[cfg(target_os = "linux")]
|
|
"auto-redirect",
|
|
"auto-detect-interface",
|
|
"dns-hijack",
|
|
"dns-mode",
|
|
"strict-route",
|
|
"mtu",
|
|
];
|
|
}
|