|
@@ -387,12 +387,10 @@ class HttpStreamSettings extends XrayCommonClass {
|
|
|
constructor(
|
|
|
path='/',
|
|
|
host=[''],
|
|
|
- sockopt={acceptProxyProtocol: false}
|
|
|
) {
|
|
|
super();
|
|
|
this.path = path;
|
|
|
this.host = host.length === 0 ? [''] : host;
|
|
|
- this.sockopt = sockopt;
|
|
|
}
|
|
|
|
|
|
addHost(host) {
|
|
@@ -417,7 +415,6 @@ class HttpStreamSettings extends XrayCommonClass {
|
|
|
return {
|
|
|
path: this.path,
|
|
|
host: host,
|
|
|
- sockopt: this.sockopt,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -455,12 +452,10 @@ class GrpcStreamSettings extends XrayCommonClass {
|
|
|
constructor(
|
|
|
serviceName="",
|
|
|
multiMode=false,
|
|
|
- sockopt={acceptProxyProtocol: false}
|
|
|
) {
|
|
|
super();
|
|
|
this.serviceName = serviceName;
|
|
|
this.multiMode = multiMode;
|
|
|
- this.sockopt = sockopt;
|
|
|
}
|
|
|
|
|
|
static fromJson(json={}) {
|
|
@@ -475,7 +470,6 @@ class GrpcStreamSettings extends XrayCommonClass {
|
|
|
return {
|
|
|
serviceName: this.serviceName,
|
|
|
multiMode: this.multiMode,
|
|
|
- sockopt: this.sockopt
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -807,6 +801,27 @@ RealityStreamSettings.Settings = class extends XrayCommonClass {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+class SockoptStreamSettings extends XrayCommonClass {
|
|
|
+ constructor(
|
|
|
+ acceptProxyProtocol = false,
|
|
|
+ ) {
|
|
|
+ super();
|
|
|
+ this.acceptProxyProtocol = acceptProxyProtocol;
|
|
|
+ }
|
|
|
+
|
|
|
+ static fromJson(json = {}) {
|
|
|
+ return new SockoptStreamSettings(
|
|
|
+ json.acceptProxyProtocol,
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ toJson() {
|
|
|
+ return {
|
|
|
+ acceptProxyProtocol: this.acceptProxyProtocol,
|
|
|
+ };
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
class StreamSettings extends XrayCommonClass {
|
|
|
constructor(network='tcp',
|
|
|
security='none',
|
|
@@ -819,6 +834,7 @@ class StreamSettings extends XrayCommonClass {
|
|
|
httpSettings=new HttpStreamSettings(),
|
|
|
quicSettings=new QuicStreamSettings(),
|
|
|
grpcSettings=new GrpcStreamSettings(),
|
|
|
+ sockopt = new SockoptStreamSettings(),
|
|
|
) {
|
|
|
super();
|
|
|
this.network = network;
|
|
@@ -832,6 +848,7 @@ class StreamSettings extends XrayCommonClass {
|
|
|
this.http = httpSettings;
|
|
|
this.quic = quicSettings;
|
|
|
this.grpc = grpcSettings;
|
|
|
+ this.sockopt = sockopt;
|
|
|
}
|
|
|
|
|
|
get isTls() {
|
|
@@ -871,6 +888,16 @@ class StreamSettings extends XrayCommonClass {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ get isSockopt() {
|
|
|
+ return ['http', 'grpc'].indexOf(this.network) !== -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ set isSockopt(isSockopt) {
|
|
|
+ if (isSockopt) {
|
|
|
+ return ['http', 'grpc'].indexOf(this.network) !== -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
static fromJson(json={}) {
|
|
|
|
|
|
return new StreamSettings(
|
|
@@ -885,6 +912,7 @@ class StreamSettings extends XrayCommonClass {
|
|
|
HttpStreamSettings.fromJson(json.httpSettings),
|
|
|
QuicStreamSettings.fromJson(json.quicSettings),
|
|
|
GrpcStreamSettings.fromJson(json.grpcSettings),
|
|
|
+ SockoptStreamSettings.fromJson(json.sockopt),
|
|
|
);
|
|
|
}
|
|
|
|
|
@@ -902,6 +930,7 @@ class StreamSettings extends XrayCommonClass {
|
|
|
httpSettings: network === 'http' ? this.http.toJson() : undefined,
|
|
|
quicSettings: network === 'quic' ? this.quic.toJson() : undefined,
|
|
|
grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined,
|
|
|
+ sockopt: this.isSockopt ? this.sockopt.toJson() : undefined,
|
|
|
};
|
|
|
}
|
|
|
}
|