diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-07-29 15:22:02 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-07-29 15:22:02 +0300 |
| commit | 6066edd510d69b2e92b830ad177b88ae083697d4 (patch) | |
| tree | 50d337840cfe3d0534e77eb44fb59b195048dab7 /web/assets | |
| parent | eaec9e54ad120362cd4f8728db10c36c7a25a4d2 (diff) | |
sockopt acceptProxyProtocol for h2 , gRPC #773
Diffstat (limited to 'web/assets')
| -rw-r--r-- | web/assets/js/model/xray.js | 41 |
1 files changed, 35 insertions, 6 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, }; } } |
