diff --git a/Cargo.toml b/Cargo.toml index 0438e54..58ca7ac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,6 +42,7 @@ ipstack = { version = "0.1" } log = { version = "0.4", features = ["std"] } mimalloc = { version = "0.1", default-features = false, optional = true } percent-encoding = "2" +shlex = "1.3.0" socks5-impl = { version = "0.6", default-features = false, features = [ "tokio", ] } @@ -53,7 +54,6 @@ tun = { version = "0.7", features = ["async"] } udp-stream = { version = "0.0.12", default-features = false } unicase = "2" url = "2" -shlex = "1.3.0" [build-dependencies] serde_json = "1" diff --git a/src/general_api.rs b/src/general_api.rs index ba03b71..665026e 100644 --- a/src/general_api.rs +++ b/src/general_api.rs @@ -2,8 +2,8 @@ use crate::{ args::{ArgDns, ArgProxy}, ArgVerbosity, Args, }; -use shlex::split; use std::os::raw::{c_char, c_int, c_ushort}; + static TUN_QUIT: std::sync::Mutex> = std::sync::Mutex::new(None); /// # Safety @@ -88,16 +88,12 @@ pub unsafe extern "C" fn tun2proxy_run_with_cli_args(cli_args: *const c_char, tu let Ok(cli_args) = std::ffi::CStr::from_ptr(cli_args).to_str() else { return -5; }; - match split(cli_args) { - Some(args) => { - let args = ::parse_from(args); - general_run_for_api(args, tun_mtu, packet_information) - } - None => { - log::error!("Failed to split CLI arguments"); - -6 - } - } + let Some(args) = shlex::split(cli_args) else { + log::error!("Failed to split CLI arguments"); + return -6; + }; + let args = ::parse_from(args); + general_run_for_api(args, tun_mtu, packet_information) } pub fn general_run_for_api(args: Args, tun_mtu: u16, packet_information: bool) -> c_int {