mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-03-01 01:20:49 +03:00
sockopt acceptProxyProtocol for h2 , gRPC #773
This commit is contained in:
parent
eaec9e54ad
commit
6066edd510
@ -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,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -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">
|
||||
|
@ -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" }}'>
|
||||
|
Loading…
Reference in New Issue
Block a user