Add reality settings to vless outbound

This commit is contained in:
Keivan-sf
2023-10-19 15:26:41 +03:30
parent 95bca7bce5
commit 4776a38926
2 changed files with 23 additions and 1 deletions

View File

@@ -30,6 +30,16 @@ pub struct NonHeaderObject {
pub r#type: String,
}
#[allow(non_snake_case)]
#[derive(Serialize, Deserialize)]
pub struct RealitySettings {
pub fingerprint: String,
pub serverName: String,
pub publicKey: String,
pub shortId: String,
pub spiderX: String,
}
#[allow(non_snake_case)]
#[derive(Serialize, Deserialize)]
pub struct TCPSettings {
@@ -68,6 +78,7 @@ pub struct StreamSettings {
pub tlsSettings: Option<TlsSettings>,
pub wsSettings: Option<WsSettings>,
pub tcpSettings: Option<TCPSettings>,
pub realitySettings: Option<RealitySettings>,
}
#[allow(non_snake_case)]

View File

@@ -21,7 +21,7 @@ fn create_outbound_object(data: models::VlessData) -> Outbound {
disableSystemRoot: None,
preferServerCipherSuites: None,
fingerprint: Some(String::from("")),
serverName: Some(data.query.sni),
serverName: Some(data.query.sni.clone()),
allowInsecure: Some(false),
})
} else {
@@ -45,6 +45,17 @@ fn create_outbound_object(data: models::VlessData) -> Outbound {
} else {
None
},
realitySettings: if data.query.security == String::from("reality") {
Some(RealitySettings {
publicKey: data.query.pbk,
serverName: data.query.sni.clone(),
shortId: data.query.sid,
spiderX: String::from(""),
fingerprint: data.query.fp,
})
} else {
None
},
},
settings: OutboundSettings::Vless(VlessOutboundSettings {
vnext: vec![VlessServerObject {