fix(outbound): default VLESS encryption to "none"

A blank encryption field caused Xray to reject the outbound config with
'VLESS users: please add/set "encryption":"none"'. Default the
constructor parameter, coerce empty values, and final-guard toJson so
every code path emits a valid encryption value.
This commit is contained in:
MHSanaei 2026-05-10 23:06:28 +02:00
parent 30469fcd10
commit 737300b14b
No known key found for this signature in database
GPG key ID: 7E4060F2FBE5AB7A

View file

@ -1926,13 +1926,13 @@ Outbound.VmessSettings = class extends CommonClass {
}
};
Outbound.VLESSSettings = class extends CommonClass {
constructor(address, port, id, flow, encryption, reverseTag = '', reverseSniffing = new ReverseSniffing(), testpre = 0, testseed = []) {
constructor(address, port, id, flow, encryption = 'none', reverseTag = '', reverseSniffing = new ReverseSniffing(), testpre = 0, testseed = []) {
super();
this.address = address;
this.port = port;
this.id = id;
this.flow = flow;
this.encryption = encryption;
this.encryption = encryption || 'none';
this.reverseTag = reverseTag;
this.reverseSniffing = reverseSniffing;
this.testpre = testpre;
@ -1966,7 +1966,7 @@ Outbound.VLESSSettings = class extends CommonClass {
port: this.port,
id: this.id,
flow: this.flow,
encryption: this.encryption,
encryption: this.encryption || 'none',
};
if (!ObjectUtil.isEmpty(this.reverseTag)) {
const reverseSniffing = this.reverseSniffing ? this.reverseSniffing.toJson() : {};