|
@@ -8,13 +8,6 @@ const Protocols = {
|
|
|
HTTP: 'http',
|
|
|
};
|
|
|
|
|
|
-const VmessMethods = {
|
|
|
- AES_128_GCM: 'aes-128-gcm',
|
|
|
- CHACHA20_POLY1305: 'chacha20-poly1305',
|
|
|
- AUTO: 'auto',
|
|
|
- NONE: 'none',
|
|
|
-};
|
|
|
-
|
|
|
const SSMethods = {
|
|
|
AES_256_GCM: 'aes-256-gcm',
|
|
|
AES_128_GCM: 'aes-128-gcm',
|
|
@@ -91,7 +84,6 @@ const SNIFFING_OPTION = {
|
|
|
};
|
|
|
|
|
|
Object.freeze(Protocols);
|
|
|
-Object.freeze(VmessMethods);
|
|
|
Object.freeze(SSMethods);
|
|
|
Object.freeze(XTLS_FLOW_CONTROL);
|
|
|
Object.freeze(TLS_FLOW_CONTROL);
|
|
@@ -422,7 +414,7 @@ class HttpStreamSettings extends XrayCommonClass {
|
|
|
}
|
|
|
|
|
|
class QuicStreamSettings extends XrayCommonClass {
|
|
|
- constructor(security=VmessMethods.NONE,
|
|
|
+ constructor(security='none',
|
|
|
key=RandomUtil.randomSeq(10), type='none') {
|
|
|
super();
|
|
|
this.security = security;
|
|
@@ -1163,95 +1155,34 @@ class Inbound extends XrayCommonClass {
|
|
|
}
|
|
|
|
|
|
canEnableTls() {
|
|
|
- switch (this.protocol) {
|
|
|
- case Protocols.VMESS:
|
|
|
- case Protocols.VLESS:
|
|
|
- case Protocols.TROJAN:
|
|
|
- break;
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- switch (this.network) {
|
|
|
- case "tcp":
|
|
|
- case "ws":
|
|
|
- case "http":
|
|
|
- case "quic":
|
|
|
- case "grpc":
|
|
|
- return true;
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
+ if(![Protocols.VMESS, Protocols.VLESS, Protocols.TROJAN].includes(this.protocol)) return false;
|
|
|
+ return ["tcp", "ws", "http", "quic", "grpc"].includes(this.network);
|
|
|
}
|
|
|
|
|
|
canEnableReality() {
|
|
|
- switch (this.protocol) {
|
|
|
- case Protocols.VLESS:
|
|
|
- case Protocols.TROJAN:
|
|
|
- break;
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
- switch (this.network) {
|
|
|
- case "tcp":
|
|
|
- case "http":
|
|
|
- case "grpc":
|
|
|
- return true;
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
+ if(![Protocols.VLESS, Protocols.TROJAN].includes(this.protocol)) return false;
|
|
|
+ return ["tcp", "http", "grpc"].includes(this.network);
|
|
|
}
|
|
|
|
|
|
//this is used for xtls-rprx-vision
|
|
|
canEnableTlsFlow() {
|
|
|
if (((this.stream.security === 'tls') || (this.stream.security === 'reality')) && (this.network === "tcp")) {
|
|
|
- switch (this.protocol) {
|
|
|
- case Protocols.VLESS:
|
|
|
- return true;
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
+ return this.protocol === Protocols.VLESS;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- canSetTls() {
|
|
|
- return this.canEnableTls();
|
|
|
- }
|
|
|
-
|
|
|
canEnableXtls() {
|
|
|
- switch (this.protocol) {
|
|
|
- case Protocols.VLESS:
|
|
|
- case Protocols.TROJAN:
|
|
|
- break;
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
+ if(![Protocols.VLESS, Protocols.TROJAN].includes(this.protocol)) return false;
|
|
|
return this.network === "tcp";
|
|
|
}
|
|
|
|
|
|
canEnableStream() {
|
|
|
- switch (this.protocol) {
|
|
|
- case Protocols.VMESS:
|
|
|
- case Protocols.VLESS:
|
|
|
- case Protocols.TROJAN:
|
|
|
- case Protocols.SHADOWSOCKS:
|
|
|
- return true;
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
+ return [Protocols.VMESS, Protocols.VLESS, Protocols.TROJAN, Protocols.SHADOWSOCKS].includes(this.protocol);
|
|
|
}
|
|
|
|
|
|
canSniffing() {
|
|
|
- switch (this.protocol) {
|
|
|
- case Protocols.VMESS:
|
|
|
- case Protocols.VLESS:
|
|
|
- case Protocols.TROJAN:
|
|
|
- case Protocols.SHADOWSOCKS:
|
|
|
- return true;
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
+ return [Protocols.VMESS, Protocols.VLESS, Protocols.TROJAN, Protocols.SHADOWSOCKS].includes(this.protocol);
|
|
|
}
|
|
|
|
|
|
reset() {
|
|
@@ -1691,7 +1622,7 @@ class Inbound extends XrayCommonClass {
|
|
|
|
|
|
toJson() {
|
|
|
let streamSettings;
|
|
|
- if (this.canEnableStream() || this.protocol === Protocols.TROJAN) {
|
|
|
+ if (this.canEnableStream()) {
|
|
|
streamSettings = this.stream.toJson();
|
|
|
}
|
|
|
return {
|