Add tun2socks-backend conf option

This commit is contained in:
eric
2026-02-21 13:37:20 +08:00
parent 80a8ca918e
commit 87fd7ed149
2 changed files with 6 additions and 19 deletions

View File

@@ -16,7 +16,6 @@ pub struct Tun {
pub netmask: Option<String>,
pub gateway: Option<String>,
pub mtu: Option<i32>,
pub tun2socks: Option<String>,
}
#[derive(Debug, Default)]
@@ -28,9 +27,10 @@ pub struct Nf {
#[derive(Debug, Default)]
pub struct General {
pub tun: Option<Tun>,
pub nf: Option<Nf>,
pub tun_fd: Option<i32>,
pub tun_auto: Option<bool>,
pub tun2socks_backend: Option<String>,
pub nf: Option<Nf>,
pub loglevel: Option<String>,
pub logoutput: Option<String>,
pub logformat: Option<String>,
@@ -353,13 +353,6 @@ pub fn from_lines(lines: Vec<io::Result<String>>) -> Result<Config> {
if let Some(items) = get_char_sep_slice(parts[1], ',') {
if items.len() >= 1 && items[0] == "auto" {
general.tun_auto = Some(true);
if items.len() > 1 {
let tun = Tun {
tun2socks: Some(items[1].clone()),
..Default::default()
};
general.tun = Some(tun);
}
continue;
}
if items.len() < 5 {
@@ -371,15 +364,13 @@ pub fn from_lines(lines: Vec<io::Result<String>>) -> Result<Config> {
netmask: Some(items[2].clone()),
gateway: Some(items[3].clone()),
mtu: get_value::<i32>(&items[4]),
tun2socks: if items.len() > 5 {
Some(items[5].clone())
} else {
None
},
};
general.tun = Some(tun);
}
}
"tun2socks-backend" => {
general.tun2socks_backend = Some(parts[1].to_string());
}
"nf" => {
// nf = driver_name, path/to/nfapi.dll
if let Some(items) = get_char_sep_slice(parts[1], ',') {
@@ -883,7 +874,7 @@ pub fn to_common(conf: &Config) -> Result<common::Config> {
mtu: None,
fake_dns_exclude: ext_general.always_real_ip.clone(),
fake_dns_include: ext_general.always_fake_ip.clone(),
tun2socks: None,
tun2socks: ext_general.tun2socks_backend.clone(),
};
if let Some(fd) = ext_general.tun_fd {
@@ -892,9 +883,6 @@ pub fn to_common(conf: &Config) -> Result<common::Config> {
if auto {
settings.auto = Some(true);
settings.fd = Some(-1);
if let Some(ext_tun) = &ext_general.tun {
settings.tun2socks = ext_tun.tun2socks.clone();
}
}
} else if let Some(ext_tun) = &ext_general.tun {
settings.fd = Some(-1);
@@ -903,7 +891,6 @@ pub fn to_common(conf: &Config) -> Result<common::Config> {
settings.gateway = ext_tun.gateway.clone();
settings.netmask = ext_tun.netmask.clone();
settings.mtu = ext_tun.mtu;
settings.tun2socks = ext_tun.tun2socks.clone();
}
inbounds.push(common::Inbound {