diff --git a/src/config_models/mod.rs b/src/config_models/mod.rs index ce2ad9c..b78454a 100644 --- a/src/config_models/mod.rs +++ b/src/config_models/mod.rs @@ -109,7 +109,7 @@ pub struct WsSettings { #[derive(Serialize, Deserialize)] pub struct TlsSettings { pub alpn: Option>, - pub allowInsecure: Option, + pub allowInsecure: bool, pub serverName: Option, pub enableSessionResumption: Option, pub disableSystemRoot: Option, diff --git a/src/parser/vless/data.rs b/src/parser/vless/data.rs index bd03a36..21916f2 100644 --- a/src/parser/vless/data.rs +++ b/src/parser/vless/data.rs @@ -60,6 +60,7 @@ fn parse_vless_query(raw_query: &str) -> models::VlessQuery { slpn: get_parameter_value(&query, "slpn"), spx: url_decode(get_parameter_value(&query, "spx")), extra: url_decode(get_parameter_value(&query, "extra")), + allowInsecure: get_parameter_value(&query, "allowInsecure"), }; return a; } diff --git a/src/parser/vless/mod.rs b/src/parser/vless/mod.rs index f470d6d..3dcb4ba 100644 --- a/src/parser/vless/mod.rs +++ b/src/parser/vless/mod.rs @@ -4,6 +4,10 @@ use crate::{config_models::*, utils::parse_raw_json}; pub fn create_outbound_object(data: models::VlessData) -> Outbound { let network_type = data.query.r#type.clone().unwrap_or(String::from("")); + + let allow_insecure = data.query.allowInsecure == Some(String::from("true")) + || data.query.allowInsecure == Some(String::from("1")); + return Outbound { protocol: String::from("vless"), tag: String::from("proxy"), @@ -22,7 +26,7 @@ pub fn create_outbound_object(data: models::VlessData) -> Outbound { preferServerCipherSuites: None, fingerprint: data.query.fp.clone(), serverName: data.query.sni.clone(), - allowInsecure: Some(false), + allowInsecure: allow_insecure, }) } else { None diff --git a/src/parser/vless/models.rs b/src/parser/vless/models.rs index c287a3f..363927f 100644 --- a/src/parser/vless/models.rs +++ b/src/parser/vless/models.rs @@ -1,3 +1,4 @@ +#[allow(non_snake_case)] pub struct VlessQuery { pub security: Option, pub sni: Option, @@ -20,6 +21,7 @@ pub struct VlessQuery { pub spx: Option, pub alpn: Option, pub extra: Option, + pub allowInsecure: Option, } pub struct VlessAddress {