Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorMHSanaei <ho3ein.sanaei@gmail.com>2023-07-29 15:22:02 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2023-07-29 15:22:02 +0300
commit6066edd510d69b2e92b830ad177b88ae083697d4 (patch)
tree50d337840cfe3d0534e77eb44fb59b195048dab7 /web
parenteaec9e54ad120362cd4f8728db10c36c7a25a4d2 (diff)
sockopt acceptProxyProtocol for h2 , gRPC #773
Diffstat (limited to 'web')
-rw-r--r--web/assets/js/model/xray.js41
-rw-r--r--web/html/xui/form/stream/stream_grpc.html2
-rw-r--r--web/html/xui/form/stream/stream_http.html2
3 files changed, 37 insertions, 8 deletions
diff --git a/web/assets/js/model/xray.js b/web/assets/js/model/xray.js
index 462cc125..94dc4eaa 100644
--- a/web/assets/js/model/xray.js
+++ b/web/assets/js/model/xray.js
@@ -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,
};
}
}
diff --git a/web/html/xui/form/stream/stream_grpc.html b/web/html/xui/form/stream/stream_grpc.html
index f34a3457..1ee57bbf 100644
--- a/web/html/xui/form/stream/stream_grpc.html
+++ b/web/html/xui/form/stream/stream_grpc.html
@@ -1,7 +1,7 @@
{{define "form/streamGRPC"}}
<a-form layout="inline">
<a-form-item label="AcceptProxyProtocol">
- <a-switch v-model="inbound.stream.grpc.sockopt.acceptProxyProtocol"></a-switch>
+ <a-switch v-model="inbound.stream.sockopt.acceptProxyProtocol"></a-switch>
</a-form-item>
<br>
<a-form-item label="ServiceName">
diff --git a/web/html/xui/form/stream/stream_http.html b/web/html/xui/form/stream/stream_http.html
index 17bd3759..e80eef0f 100644
--- a/web/html/xui/form/stream/stream_http.html
+++ b/web/html/xui/form/stream/stream_http.html
@@ -1,7 +1,7 @@
{{define "form/streamHTTP"}}
<a-form layout="inline">
<a-form-item label="AcceptProxyProtocol">
- <a-switch v-model="inbound.stream.http.sockopt.acceptProxyProtocol"></a-switch>
+ <a-switch v-model="inbound.stream.sockopt.acceptProxyProtocol"></a-switch>
</a-form-item>
<br>
<a-form-item label='{{ i18n "path" }}'>