mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 17:15:38 +08:00
fix(tun): remove Linux-only block that forced tun.stack to mixed
This commit is contained in:
@@ -2,8 +2,6 @@ use serde_yaml_ng::{Mapping, Value};
|
|||||||
|
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
use crate::process::AsyncHandler;
|
use crate::process::AsyncHandler;
|
||||||
#[cfg(target_os = "linux")]
|
|
||||||
use crate::{logging, utils::logging::Type};
|
|
||||||
|
|
||||||
macro_rules! revise {
|
macro_rules! revise {
|
||||||
($map: expr, $key: expr, $val: expr) => {
|
($map: expr, $key: expr, $val: expr) => {
|
||||||
@@ -31,27 +29,6 @@ pub fn use_tun(mut config: Mapping, enable: bool) -> Mapping {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if enable {
|
if enable {
|
||||||
#[cfg(target_os = "linux")]
|
|
||||||
{
|
|
||||||
let stack_key = Value::from("stack");
|
|
||||||
let should_override = match tun_val.get(&stack_key) {
|
|
||||||
Some(value) => value
|
|
||||||
.as_str()
|
|
||||||
.map(|stack| stack.eq_ignore_ascii_case("gvisor"))
|
|
||||||
.unwrap_or(false),
|
|
||||||
None => true,
|
|
||||||
};
|
|
||||||
|
|
||||||
if should_override {
|
|
||||||
revise!(tun_val, "stack", "mixed");
|
|
||||||
logging!(
|
|
||||||
warn,
|
|
||||||
Type::Network,
|
|
||||||
"Warning: gVisor TUN stack detected on Linux; falling back to 'mixed' for compatibility"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 读取DNS配置
|
// 读取DNS配置
|
||||||
let dns_key = Value::from("dns");
|
let dns_key = Value::from("dns");
|
||||||
let dns_val = config.get(&dns_key);
|
let dns_val = config.get(&dns_key);
|
||||||
|
|||||||
Reference in New Issue
Block a user