From b859327b8ad84dd2b44b9bd3a336a63646833701 Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Tue, 3 Dec 2024 22:24:34 +0100 Subject: [PATCH] splithttp to xhttp --- sub/subService.go | 48 ++++++------- web/assets/js/model/inbound.js | 68 +++++++++---------- web/assets/js/model/outbound.js | 24 +++---- web/html/xui/form/outbound.html | 12 ++-- web/html/xui/form/stream/stream_settings.html | 8 +-- ...tream_splithttp.html => stream_xhttp.html} | 38 +++++------ web/html/xui/inbound_info_modal.html | 6 +- 7 files changed, 102 insertions(+), 102 deletions(-) rename web/html/xui/form/stream/{stream_splithttp.html => stream_xhttp.html} (55%) diff --git a/sub/subService.go b/sub/subService.go index 1659b98bc9..84846241ac 100644 --- a/sub/subService.go +++ b/sub/subService.go @@ -229,16 +229,16 @@ func (s *SubService) genVmessLink(inbound *model.Inbound, email string) string { headers, _ := httpupgrade["headers"].(map[string]interface{}) obj["host"] = searchHost(headers) } - case "splithttp": - splithttp, _ := stream["splithttpSettings"].(map[string]interface{}) - obj["path"] = splithttp["path"].(string) - if host, ok := splithttp["host"].(string); ok && len(host) > 0 { + case "xhttp": + xhttp, _ := stream["xhttpSettings"].(map[string]interface{}) + obj["path"] = xhttp["path"].(string) + if host, ok := xhttp["host"].(string); ok && len(host) > 0 { obj["host"] = host } else { - headers, _ := splithttp["headers"].(map[string]interface{}) + headers, _ := xhttp["headers"].(map[string]interface{}) obj["host"] = searchHost(headers) } - obj["mode"] = splithttp["mode"].(string) + obj["mode"] = xhttp["mode"].(string) } security, _ := stream["security"].(string) obj["tls"] = security @@ -381,16 +381,16 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string { headers, _ := httpupgrade["headers"].(map[string]interface{}) params["host"] = searchHost(headers) } - case "splithttp": - splithttp, _ := stream["splithttpSettings"].(map[string]interface{}) - params["path"] = splithttp["path"].(string) - if host, ok := splithttp["host"].(string); ok && len(host) > 0 { + case "xhttp": + xhttp, _ := stream["xhttpSettings"].(map[string]interface{}) + params["path"] = xhttp["path"].(string) + if host, ok := xhttp["host"].(string); ok && len(host) > 0 { params["host"] = host } else { - headers, _ := splithttp["headers"].(map[string]interface{}) + headers, _ := xhttp["headers"].(map[string]interface{}) params["host"] = searchHost(headers) } - params["mode"] = splithttp["mode"].(string) + params["mode"] = xhttp["mode"].(string) } security, _ := stream["security"].(string) if security == "tls" { @@ -579,16 +579,16 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string headers, _ := httpupgrade["headers"].(map[string]interface{}) params["host"] = searchHost(headers) } - case "splithttp": - splithttp, _ := stream["splithttpSettings"].(map[string]interface{}) - params["path"] = splithttp["path"].(string) - if host, ok := splithttp["host"].(string); ok && len(host) > 0 { + case "xhttp": + xhttp, _ := stream["xhttpSettings"].(map[string]interface{}) + params["path"] = xhttp["path"].(string) + if host, ok := xhttp["host"].(string); ok && len(host) > 0 { params["host"] = host } else { - headers, _ := splithttp["headers"].(map[string]interface{}) + headers, _ := xhttp["headers"].(map[string]interface{}) params["host"] = searchHost(headers) } - params["mode"] = splithttp["mode"].(string) + params["mode"] = xhttp["mode"].(string) } security, _ := stream["security"].(string) if security == "tls" { @@ -777,16 +777,16 @@ func (s *SubService) genShadowsocksLink(inbound *model.Inbound, email string) st headers, _ := httpupgrade["headers"].(map[string]interface{}) params["host"] = searchHost(headers) } - case "splithttp": - splithttp, _ := stream["splithttpSettings"].(map[string]interface{}) - params["path"] = splithttp["path"].(string) - if host, ok := splithttp["host"].(string); ok && len(host) > 0 { + case "xhttp": + xhttp, _ := stream["xhttpSettings"].(map[string]interface{}) + params["path"] = xhttp["path"].(string) + if host, ok := xhttp["host"].(string); ok && len(host) > 0 { params["host"] = host } else { - headers, _ := splithttp["headers"].(map[string]interface{}) + headers, _ := xhttp["headers"].(map[string]interface{}) params["host"] = searchHost(headers) } - params["mode"] = splithttp["mode"].(string) + params["mode"] = xhttp["mode"].(string) } security, _ := stream["security"].(string) diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js index 35f9dc3a98..e8c3ab5d18 100644 --- a/web/assets/js/model/inbound.js +++ b/web/assets/js/model/inbound.js @@ -525,7 +525,7 @@ class HTTPUpgradeStreamSettings extends XrayCommonClass { } } -class SplitHTTPStreamSettings extends XrayCommonClass { +class xHTTPStreamSettings extends XrayCommonClass { constructor( path = '/', host = '', @@ -567,7 +567,7 @@ class SplitHTTPStreamSettings extends XrayCommonClass { } static fromJson(json = {}) { - return new SplitHTTPStreamSettings( + return new xHTTPStreamSettings( json.path, json.host, XrayCommonClass.toHeaders(json.headers), @@ -961,7 +961,7 @@ class StreamSettings extends XrayCommonClass { httpSettings = new HttpStreamSettings(), grpcSettings = new GrpcStreamSettings(), httpupgradeSettings = new HTTPUpgradeStreamSettings(), - splithttpSettings = new SplitHTTPStreamSettings(), + xhttpSettings = new xHTTPStreamSettings(), sockopt = undefined, ) { super(); @@ -976,7 +976,7 @@ class StreamSettings extends XrayCommonClass { this.http = httpSettings; this.grpc = grpcSettings; this.httpupgrade = httpupgradeSettings; - this.splithttp = splithttpSettings; + this.xhttp = xhttpSettings; this.sockopt = sockopt; } @@ -1026,7 +1026,7 @@ class StreamSettings extends XrayCommonClass { HttpStreamSettings.fromJson(json.httpSettings), GrpcStreamSettings.fromJson(json.grpcSettings), HTTPUpgradeStreamSettings.fromJson(json.httpupgradeSettings), - SplitHTTPStreamSettings.fromJson(json.splithttpSettings), + xHTTPStreamSettings.fromJson(json.xhttpSettings), SockoptStreamSettings.fromJson(json.sockopt), ); } @@ -1045,7 +1045,7 @@ class StreamSettings extends XrayCommonClass { httpSettings: network === 'http' ? this.http.toJson() : undefined, grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined, httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined, - splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined, + xhttpSettings: network === 'xhttp' ? this.xhttp.toJson() : undefined, sockopt: this.sockopt != undefined ? this.sockopt.toJson() : undefined, }; } @@ -1182,8 +1182,8 @@ class Inbound extends XrayCommonClass { return this.network === "httpupgrade"; } - get isSplithttp() { - return this.network === "splithttp"; + get isXHTTP() { + return this.network === "xhttp"; } // Shadowsocks @@ -1226,8 +1226,8 @@ class Inbound extends XrayCommonClass { return this.stream.http.host[0]; } else if (this.isHttpupgrade) { return this.stream.httpupgrade.host?.length > 0 ? this.stream.httpupgrade.host : this.getHeader(this.stream.httpupgrade, 'host'); - } else if (this.isSplithttp) { - return this.stream.splithttp.host?.length > 0 ? this.stream.splithttp.host : this.getHeader(this.stream.splithttp, 'host'); + } else if (this.isXHTTP) { + return this.stream.xhttp.host?.length > 0 ? this.stream.xhttp.host : this.getHeader(this.stream.xhttp, 'host'); } return null; } @@ -1241,8 +1241,8 @@ class Inbound extends XrayCommonClass { return this.stream.http.path; } else if (this.isHttpupgrade) { return this.stream.httpupgrade.path; - } else if (this.isSplithttp) { - return this.stream.splithttp.path; + } else if (this.isXHTTP) { + return this.stream.xhttp.path; } return null; } @@ -1266,7 +1266,7 @@ class Inbound extends XrayCommonClass { canEnableTls() { if (![Protocols.VMESS, Protocols.VLESS, Protocols.TROJAN, Protocols.SHADOWSOCKS].includes(this.protocol)) return false; - return ["tcp", "ws", "http", "grpc", "httpupgrade", "splithttp"].includes(this.network); + return ["tcp", "ws", "http", "grpc", "httpupgrade", "xhttp"].includes(this.network); } //this is used for xtls-rprx-vision @@ -1279,7 +1279,7 @@ class Inbound extends XrayCommonClass { canEnableReality() { if (![Protocols.VLESS, Protocols.TROJAN].includes(this.protocol)) return false; - return ["tcp", "http", "grpc", "splithttp"].includes(this.network); + return ["tcp", "http", "grpc", "xhttp"].includes(this.network); } canEnableStream() { @@ -1345,11 +1345,11 @@ class Inbound extends XrayCommonClass { const httpupgrade = this.stream.httpupgrade; obj.path = httpupgrade.path; obj.host = httpupgrade.host?.length > 0 ? httpupgrade.host : this.getHeader(httpupgrade, 'host'); - } else if (network === 'splithttp') { - const splithttp = this.stream.splithttp; - obj.path = splithttp.path; - obj.host = splithttp.host?.length > 0 ? splithttp.host : this.getHeader(splithttp, 'host'); - obj.mode = splithttp.mode; + } else if (network === 'xhttp') { + const xhttp = this.stream.xhttp; + obj.path = xhttp.path; + obj.host = xhttp.host?.length > 0 ? xhttp.host : this.getHeader(xhttp, 'host'); + obj.mode = xhttp.mode; } if (security === 'tls') { @@ -1418,11 +1418,11 @@ class Inbound extends XrayCommonClass { params.set("path", httpupgrade.path); params.set("host", httpupgrade.host?.length > 0 ? httpupgrade.host : this.getHeader(httpupgrade, 'host')); break; - case "splithttp": - const splithttp = this.stream.splithttp; - params.set("path", splithttp.path); - params.set("host", splithttp.host?.length > 0 ? splithttp.host : this.getHeader(splithttp, 'host')); - params.set("mode", splithttp.mode); + case "xhttp": + const xhttp = this.stream.xhttp; + params.set("path", xhttp.path); + params.set("host", xhttp.host?.length > 0 ? xhttp.host : this.getHeader(xhttp, 'host')); + params.set("mode", xhttp.mode); break; } @@ -1522,11 +1522,11 @@ class Inbound extends XrayCommonClass { params.set("path", httpupgrade.path); params.set("host", httpupgrade.host?.length > 0 ? httpupgrade.host : this.getHeader(httpupgrade, 'host')); break; - case "splithttp": - const splithttp = this.stream.splithttp; - params.set("path", splithttp.path); - params.set("host", splithttp.host?.length > 0 ? splithttp.host : this.getHeader(splithttp, 'host')); - params.set("mode", splithttp.mode); + case "xhttp": + const xhttp = this.stream.xhttp; + params.set("path", xhttp.path); + params.set("host", xhttp.host?.length > 0 ? xhttp.host : this.getHeader(xhttp, 'host')); + params.set("mode", xhttp.mode); break; } @@ -1605,11 +1605,11 @@ class Inbound extends XrayCommonClass { params.set("path", httpupgrade.path); params.set("host", httpupgrade.host?.length > 0 ? httpupgrade.host : this.getHeader(httpupgrade, 'host')); break; - case "splithttp": - const splithttp = this.stream.splithttp; - params.set("path", splithttp.path); - params.set("host", splithttp.host?.length > 0 ? splithttp.host : this.getHeader(splithttp, 'host')); - params.set("mode", splithttp.mode); + case "xhttp": + const xhttp = this.stream.xhttp; + params.set("path", xhttp.path); + params.set("host", xhttp.host?.length > 0 ? xhttp.host : this.getHeader(xhttp, 'host')); + params.set("mode", xhttp.mode); break; } diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js index c9400efc12..5a7722e330 100644 --- a/web/assets/js/model/outbound.js +++ b/web/assets/js/model/outbound.js @@ -335,7 +335,7 @@ class HttpUpgradeStreamSettings extends CommonClass { } } -class SplitHTTPStreamSettings extends CommonClass { +class xHTTPStreamSettings extends CommonClass { constructor( path = '/', host = '', @@ -348,7 +348,7 @@ class SplitHTTPStreamSettings extends CommonClass { } static fromJson(json = {}) { - return new SplitHTTPStreamSettings( + return new xHTTPStreamSettings( json.path, json.host, json.mode, @@ -482,7 +482,7 @@ class StreamSettings extends CommonClass { quicSettings = new QuicStreamSettings(), grpcSettings = new GrpcStreamSettings(), httpupgradeSettings = new HttpUpgradeStreamSettings(), - splithttpSettings = new SplitHTTPStreamSettings(), + xhttpSettings = new xHTTPStreamSettings(), sockopt = undefined, ) { super(); @@ -496,7 +496,7 @@ class StreamSettings extends CommonClass { this.http = httpSettings; this.grpc = grpcSettings; this.httpupgrade = httpupgradeSettings; - this.splithttp = splithttpSettings; + this.xhttp = xhttpSettings; this.sockopt = sockopt; } @@ -529,7 +529,7 @@ class StreamSettings extends CommonClass { QuicStreamSettings.fromJson(json.quicSettings), GrpcStreamSettings.fromJson(json.grpcSettings), HttpUpgradeStreamSettings.fromJson(json.httpupgradeSettings), - SplitHTTPStreamSettings.fromJson(json.splithttpSettings), + xHTTPStreamSettings.fromJson(json.xhttpSettings), SockoptStreamSettings.fromJson(json.sockopt), ); } @@ -547,7 +547,7 @@ class StreamSettings extends CommonClass { httpSettings: network === 'http' ? this.http.toJson() : undefined, grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined, httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined, - splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined, + xhttpSettings: network === 'xhttp' ? this.xhttp.toJson() : undefined, sockopt: this.sockopt != undefined ? this.sockopt.toJson() : undefined, }; } @@ -612,7 +612,7 @@ class Outbound extends CommonClass { canEnableTls() { if (![Protocols.VMess, Protocols.VLESS, Protocols.Trojan, Protocols.Shadowsocks].includes(this.protocol)) return false; - return ["tcp", "ws", "http", "grpc", "httpupgrade", "splithttp"].includes(this.stream.network); + return ["tcp", "ws", "http", "grpc", "httpupgrade", "xhttp"].includes(this.stream.network); } //this is used for xtls-rprx-vision @@ -625,7 +625,7 @@ class Outbound extends CommonClass { canEnableReality() { if (![Protocols.VLESS, Protocols.Trojan].includes(this.protocol)) return false; - return ["tcp", "http", "grpc", "splithttp"].includes(this.stream.network); + return ["tcp", "http", "grpc", "xhttp"].includes(this.stream.network); } canEnableStream() { @@ -732,8 +732,8 @@ class Outbound extends CommonClass { stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi'); } else if (network === 'httpupgrade') { stream.httpupgrade = new HttpUpgradeStreamSettings(json.path, json.host); - } else if (network === 'splithttp') { - stream.splithttp = new SplitHTTPStreamSettings(json.path, json.host, json.mode); + } else if (network === 'xhttp') { + stream.xhttp = new xHTTPStreamSettings(json.path, json.host, json.mode); } if (json.tls && json.tls == 'tls') { @@ -776,8 +776,8 @@ class Outbound extends CommonClass { url.searchParams.get('mode') == 'multi'); } else if (type === 'httpupgrade') { stream.httpupgrade = new HttpUpgradeStreamSettings(path, host); - } else if (type === 'splithttp') { - stream.splithttp = new SplitHTTPStreamSettings(path, host, mode); + } else if (type === 'xhttp') { + stream.xhttp = new xHTTPStreamSettings(path, host, mode); } if (security == 'tls') { diff --git a/web/html/xui/form/outbound.html b/web/html/xui/form/outbound.html index a337ab28f5..e6d12ee44b 100644 --- a/web/html/xui/form/outbound.html +++ b/web/html/xui/form/outbound.html @@ -273,7 +273,7 @@ HTTP gRPC HTTPUpgrade - SplitHTTP (XHTTP) + XHTTP - -