parent
8b675fdcc0
commit
f80d9934b9
@ -5,7 +5,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=luci-app-passwall2
|
PKG_NAME:=luci-app-passwall2
|
||||||
PKG_VERSION:=24.12.22
|
PKG_VERSION:=24.12.25
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_CONFIG_DEPENDS:= \
|
PKG_CONFIG_DEPENDS:= \
|
||||||
|
@ -397,7 +397,6 @@ o = s:option(ListValue, _n("transport"), translate("Transport"))
|
|||||||
o:value("raw", "RAW (TCP)")
|
o:value("raw", "RAW (TCP)")
|
||||||
o:value("mkcp", "mKCP")
|
o:value("mkcp", "mKCP")
|
||||||
o:value("ws", "WebSocket")
|
o:value("ws", "WebSocket")
|
||||||
o:value("h2", "HTTP/2")
|
|
||||||
o:value("ds", "DomainSocket")
|
o:value("ds", "DomainSocket")
|
||||||
o:value("quic", "QUIC")
|
o:value("quic", "QUIC")
|
||||||
o:value("grpc", "gRPC")
|
o:value("grpc", "gRPC")
|
||||||
@ -499,25 +498,6 @@ o = s:option(Value, _n("ws_heartbeatPeriod"), translate("HeartbeatPeriod(second)
|
|||||||
o.datatype = "integer"
|
o.datatype = "integer"
|
||||||
o:depends({ [_n("transport")] = "ws" })
|
o:depends({ [_n("transport")] = "ws" })
|
||||||
|
|
||||||
-- [[ HTTP/2部分 ]]--
|
|
||||||
o = s:option(Value, _n("h2_host"), translate("HTTP/2 Host"))
|
|
||||||
o:depends({ [_n("transport")] = "h2" })
|
|
||||||
|
|
||||||
o = s:option(Value, _n("h2_path"), translate("HTTP/2 Path"))
|
|
||||||
o.placeholder = "/"
|
|
||||||
o:depends({ [_n("transport")] = "h2" })
|
|
||||||
|
|
||||||
o = s:option(Flag, _n("h2_health_check"), translate("Health check"))
|
|
||||||
o:depends({ [_n("transport")] = "h2" })
|
|
||||||
|
|
||||||
o = s:option(Value, _n("h2_read_idle_timeout"), translate("Idle timeout"))
|
|
||||||
o.default = "10"
|
|
||||||
o:depends({ [_n("h2_health_check")] = true })
|
|
||||||
|
|
||||||
o = s:option(Value, _n("h2_health_check_timeout"), translate("Health check timeout"))
|
|
||||||
o.default = "15"
|
|
||||||
o:depends({ [_n("h2_health_check")] = true })
|
|
||||||
|
|
||||||
-- [[ DomainSocket部分 ]]--
|
-- [[ DomainSocket部分 ]]--
|
||||||
o = s:option(Value, _n("ds_path"), "Path", translate("A legal file path. This file must not exist before running."))
|
o = s:option(Value, _n("ds_path"), "Path", translate("A legal file path. This file must not exist before running."))
|
||||||
o:depends({ [_n("transport")] = "ds" })
|
o:depends({ [_n("transport")] = "ds" })
|
||||||
|
@ -200,7 +200,6 @@ o = s:option(ListValue, _n("transport"), translate("Transport"))
|
|||||||
o:value("raw", "RAW")
|
o:value("raw", "RAW")
|
||||||
o:value("mkcp", "mKCP")
|
o:value("mkcp", "mKCP")
|
||||||
o:value("ws", "WebSocket")
|
o:value("ws", "WebSocket")
|
||||||
o:value("h2", "HTTP/2")
|
|
||||||
o:value("ds", "DomainSocket")
|
o:value("ds", "DomainSocket")
|
||||||
o:value("quic", "QUIC")
|
o:value("quic", "QUIC")
|
||||||
o:value("grpc", "gRPC")
|
o:value("grpc", "gRPC")
|
||||||
@ -227,13 +226,6 @@ o = s:option(Value, _n("httpupgrade_path"), translate("HttpUpgrade Path"))
|
|||||||
o.placeholder = "/"
|
o.placeholder = "/"
|
||||||
o:depends({ [_n("transport")] = "httpupgrade" })
|
o:depends({ [_n("transport")] = "httpupgrade" })
|
||||||
|
|
||||||
-- [[ HTTP/2部分 ]]--
|
|
||||||
o = s:option(Value, _n("h2_host"), translate("HTTP/2 Host"))
|
|
||||||
o:depends({ [_n("transport")] = "h2" })
|
|
||||||
|
|
||||||
o = s:option(Value, _n("h2_path"), translate("HTTP/2 Path"))
|
|
||||||
o:depends({ [_n("transport")] = "h2" })
|
|
||||||
|
|
||||||
-- [[ SplitHTTP部分 ]]--
|
-- [[ SplitHTTP部分 ]]--
|
||||||
o = s:option(Value, _n("xhttp_host"), translate("XHTTP Host"))
|
o = s:option(Value, _n("xhttp_host"), translate("XHTTP Host"))
|
||||||
o:depends({ [_n("transport")] = "xhttp" })
|
o:depends({ [_n("transport")] = "xhttp" })
|
||||||
|
@ -1065,7 +1065,7 @@ end
|
|||||||
function get_version()
|
function get_version()
|
||||||
local version = sys.exec("opkg list-installed luci-app-passwall2 2>/dev/null | awk '{print $3}'")
|
local version = sys.exec("opkg list-installed luci-app-passwall2 2>/dev/null | awk '{print $3}'")
|
||||||
if not version or #version == 0 then
|
if not version or #version == 0 then
|
||||||
version = sys.exec("apk info luci-app-passwall2 2>/dev/null | awk 'NR == 1 {print $1}' | cut -d'-' -f4-")
|
version = sys.exec("apk info -L luci-app-passwall2 2>/dev/null | awk 'NR == 1 {print $1}' | cut -d'-' -f4-")
|
||||||
end
|
end
|
||||||
return version or ""
|
return version or ""
|
||||||
end
|
end
|
||||||
|
@ -188,12 +188,6 @@ function gen_outbound(flag, node, tag, proxy_table)
|
|||||||
earlyDataHeaderName = (node.ws_earlyDataHeaderName) and node.ws_earlyDataHeaderName or nil,
|
earlyDataHeaderName = (node.ws_earlyDataHeaderName) and node.ws_earlyDataHeaderName or nil,
|
||||||
heartbeatPeriod = tonumber(node.ws_heartbeatPeriod) or nil
|
heartbeatPeriod = tonumber(node.ws_heartbeatPeriod) or nil
|
||||||
} or nil,
|
} or nil,
|
||||||
httpSettings = (node.transport == "h2") and {
|
|
||||||
path = node.h2_path or "/",
|
|
||||||
host = node.h2_host,
|
|
||||||
read_idle_timeout = tonumber(node.h2_read_idle_timeout) or nil,
|
|
||||||
health_check_timeout = tonumber(node.h2_health_check_timeout) or nil
|
|
||||||
} or nil,
|
|
||||||
dsSettings = (node.transport == "ds") and
|
dsSettings = (node.transport == "ds") and
|
||||||
{path = node.ds_path} or nil,
|
{path = node.ds_path} or nil,
|
||||||
quicSettings = (node.transport == "quic") and {
|
quicSettings = (node.transport == "quic") and {
|
||||||
@ -485,9 +479,6 @@ function gen_config_server(node)
|
|||||||
host = node.ws_host or nil,
|
host = node.ws_host or nil,
|
||||||
path = node.ws_path
|
path = node.ws_path
|
||||||
} or nil,
|
} or nil,
|
||||||
httpSettings = (node.transport == "h2") and {
|
|
||||||
path = node.h2_path, host = node.h2_host
|
|
||||||
} or nil,
|
|
||||||
dsSettings = (node.transport == "ds") and {
|
dsSettings = (node.transport == "ds") and {
|
||||||
path = node.ds_path
|
path = node.ds_path
|
||||||
} or nil,
|
} or nil,
|
||||||
|
@ -792,16 +792,22 @@ local api = require "luci.passwall2.api"
|
|||||||
}
|
}
|
||||||
|
|
||||||
queryParam.type = queryParam.type.toLowerCase();
|
queryParam.type = queryParam.type.toLowerCase();
|
||||||
if (queryParam.type === "kcp" || queryParam.type === "mkcp")
|
if (queryParam.type === "kcp" || queryParam.type === "mkcp") {
|
||||||
queryParam.type = "mkcp"
|
queryParam.type = "mkcp";
|
||||||
if (queryParam.type === "h2" || queryParam.type === "http")
|
}
|
||||||
queryParam.type = "h2"
|
if (queryParam.type === "h2" || queryParam.type === "http") {
|
||||||
|
queryParam.type = "http";
|
||||||
|
}
|
||||||
if (dom_prefix == "singbox_" && queryParam.type === "raw") {
|
if (dom_prefix == "singbox_" && queryParam.type === "raw") {
|
||||||
queryParam.type = "tcp";
|
queryParam.type = "tcp";
|
||||||
} else if (dom_prefix == "xray_" && queryParam.type === "tcp") {
|
} else if (dom_prefix == "xray_" && queryParam.type === "tcp") {
|
||||||
queryParam.type = "raw";
|
queryParam.type = "raw";
|
||||||
}
|
}
|
||||||
opt.set(dom_prefix + 'transport', queryParam.type);
|
if (dom_prefix == "xray_" && queryParam.type === "http") {
|
||||||
|
opt.set(dom_prefix + 'transport', "xhttp");
|
||||||
|
} else {
|
||||||
|
opt.set(dom_prefix + 'transport', queryParam.type);
|
||||||
|
}
|
||||||
if (queryParam.type === "raw" || queryParam.type === "tcp") {
|
if (queryParam.type === "raw" || queryParam.type === "tcp") {
|
||||||
opt.set(dom_prefix + 'tcp_guise', queryParam.headerType || "none");
|
opt.set(dom_prefix + 'tcp_guise', queryParam.headerType || "none");
|
||||||
if (queryParam.headerType && queryParam.headerType != "none") {
|
if (queryParam.headerType && queryParam.headerType != "none") {
|
||||||
@ -830,8 +836,14 @@ local api = require "luci.passwall2.api"
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (queryParam.type === "h2" || queryParam.type === "http") {
|
} else if (queryParam.type === "h2" || queryParam.type === "http") {
|
||||||
opt.set(dom_prefix + 'h2_host', queryParam.host || "");
|
if (dom_prefix == "xray_") {
|
||||||
opt.set(dom_prefix + 'h2_path', queryParam.path || "");
|
opt.set(dom_prefix + 'xhttp_mode', "stream-one");
|
||||||
|
opt.set(dom_prefix + 'xhttp_host', queryParam.host || "");
|
||||||
|
opt.set(dom_prefix + 'xhttp_path', queryParam.path || "");
|
||||||
|
} else {
|
||||||
|
opt.set(dom_prefix + 'http_host', queryParam.host || "");
|
||||||
|
opt.set(dom_prefix + 'http_path', queryParam.path || "");
|
||||||
|
}
|
||||||
} else if (queryParam.type === "quic") {
|
} else if (queryParam.type === "quic") {
|
||||||
opt.set(dom_prefix + 'quic_guise', queryParam.headerType || "none");
|
opt.set(dom_prefix + 'quic_guise', queryParam.headerType || "none");
|
||||||
opt.set(dom_prefix + 'quic_security', queryParam.quicSecurity);
|
opt.set(dom_prefix + 'quic_security', queryParam.quicSecurity);
|
||||||
@ -906,16 +918,22 @@ local api = require "luci.passwall2.api"
|
|||||||
opt.set(dom_prefix + 'password', decodeURIComponent(password));
|
opt.set(dom_prefix + 'password', decodeURIComponent(password));
|
||||||
|
|
||||||
queryParam.type = queryParam.type.toLowerCase();
|
queryParam.type = queryParam.type.toLowerCase();
|
||||||
if (queryParam.type === "kcp" || queryParam.type === "mkcp")
|
if (queryParam.type === "kcp" || queryParam.type === "mkcp") {
|
||||||
queryParam.type = "mkcp"
|
queryParam.type = "mkcp";
|
||||||
if (queryParam.type === "h2" || queryParam.type === "http")
|
}
|
||||||
queryParam.type = "h2"
|
if (queryParam.type === "h2" || queryParam.type === "http") {
|
||||||
|
queryParam.type = "http";
|
||||||
|
}
|
||||||
if (dom_prefix == "singbox_" && queryParam.type === "raw") {
|
if (dom_prefix == "singbox_" && queryParam.type === "raw") {
|
||||||
queryParam.type = "tcp";
|
queryParam.type = "tcp";
|
||||||
} else if (dom_prefix == "xray_" && queryParam.type === "tcp") {
|
} else if (dom_prefix == "xray_" && queryParam.type === "tcp") {
|
||||||
queryParam.type = "raw";
|
queryParam.type = "raw";
|
||||||
}
|
}
|
||||||
opt.set(dom_prefix + 'transport', queryParam.type);
|
if (dom_prefix == "xray_" && queryParam.type === "http") {
|
||||||
|
opt.set(dom_prefix + 'transport', "xhttp");
|
||||||
|
} else {
|
||||||
|
opt.set(dom_prefix + 'transport', queryParam.type);
|
||||||
|
}
|
||||||
if (queryParam.type === "raw" || queryParam.type === "tcp") {
|
if (queryParam.type === "raw" || queryParam.type === "tcp") {
|
||||||
opt.set(dom_prefix + 'tcp_guise', queryParam.headerType || "none");
|
opt.set(dom_prefix + 'tcp_guise', queryParam.headerType || "none");
|
||||||
if (queryParam.headerType && queryParam.headerType != "none") {
|
if (queryParam.headerType && queryParam.headerType != "none") {
|
||||||
@ -944,8 +962,14 @@ local api = require "luci.passwall2.api"
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (queryParam.type === "h2" || queryParam.type === "http") {
|
} else if (queryParam.type === "h2" || queryParam.type === "http") {
|
||||||
opt.set(dom_prefix + 'h2_host', queryParam.host || "");
|
if (dom_prefix == "xray_") {
|
||||||
opt.set(dom_prefix + 'h2_path', queryParam.path || "");
|
opt.set(dom_prefix + 'xhttp_mode', "stream-one");
|
||||||
|
opt.set(dom_prefix + 'xhttp_host', queryParam.host || "");
|
||||||
|
opt.set(dom_prefix + 'xhttp_path', queryParam.path || "");
|
||||||
|
} else {
|
||||||
|
opt.set(dom_prefix + 'http_host', queryParam.host || "");
|
||||||
|
opt.set(dom_prefix + 'http_path', queryParam.path || "");
|
||||||
|
}
|
||||||
} else if (queryParam.type === "quic") {
|
} else if (queryParam.type === "quic") {
|
||||||
opt.set(dom_prefix + 'quic_guise', queryParam.headerType || "none");
|
opt.set(dom_prefix + 'quic_guise', queryParam.headerType || "none");
|
||||||
opt.set(dom_prefix + 'quic_security', queryParam.quicSecurity);
|
opt.set(dom_prefix + 'quic_security', queryParam.quicSecurity);
|
||||||
@ -1012,7 +1036,14 @@ local api = require "luci.passwall2.api"
|
|||||||
} else if (dom_prefix == "xray_" && ssm.net === "tcp") {
|
} else if (dom_prefix == "xray_" && ssm.net === "tcp") {
|
||||||
ssm.net = "raw";
|
ssm.net = "raw";
|
||||||
}
|
}
|
||||||
opt.set(dom_prefix + 'transport', ssm.net);
|
if (ssm.net === "h2" || ssm.net === "http") {
|
||||||
|
ssm.net = "http";
|
||||||
|
}
|
||||||
|
if (dom_prefix == "xray_" && ssm.net === "http") {
|
||||||
|
opt.set(dom_prefix + 'transport', "xhttp");
|
||||||
|
} else {
|
||||||
|
opt.set(dom_prefix + 'transport', ssm.net);
|
||||||
|
}
|
||||||
if (ssm.net === "raw" || ssm.net === "tcp") {
|
if (ssm.net === "raw" || ssm.net === "tcp") {
|
||||||
opt.set(dom_prefix + 'tcp_guise', (ssm.host && ssm.path) ? "http" : "none");
|
opt.set(dom_prefix + 'tcp_guise', (ssm.host && ssm.path) ? "http" : "none");
|
||||||
if (ssm.host && ssm.path) {
|
if (ssm.host && ssm.path) {
|
||||||
@ -1040,9 +1071,15 @@ local api = require "luci.passwall2.api"
|
|||||||
opt.set(dom_prefix + 'ws_earlyDataHeaderName', 'Sec-WebSocket-Protocol');
|
opt.set(dom_prefix + 'ws_earlyDataHeaderName', 'Sec-WebSocket-Protocol');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (ssm.net === "h2") {
|
} else if (ssm.net === "http") {
|
||||||
opt.set(dom_prefix + 'h2_host', ssm.host);
|
if (dom_prefix == "xray_") {
|
||||||
opt.set(dom_prefix + 'h2_path', ssm.path);
|
opt.set(dom_prefix + 'xhttp_mode', "stream-one");
|
||||||
|
opt.set(dom_prefix + 'xhttp_host', ssm.host || "");
|
||||||
|
opt.set(dom_prefix + 'xhttp_path', ssm.path || "");
|
||||||
|
} else {
|
||||||
|
opt.set(dom_prefix + 'http_host', ssm.host || "");
|
||||||
|
opt.set(dom_prefix + 'http_path', ssm.path || "");
|
||||||
|
}
|
||||||
} else if (ssm.net === "quic") {
|
} else if (ssm.net === "quic") {
|
||||||
opt.set(dom_prefix + 'quic_security', ssm.securty);
|
opt.set(dom_prefix + 'quic_security', ssm.securty);
|
||||||
opt.set(dom_prefix + 'quic_key', ssm.key);
|
opt.set(dom_prefix + 'quic_key', ssm.key);
|
||||||
@ -1116,16 +1153,22 @@ local api = require "luci.passwall2.api"
|
|||||||
}
|
}
|
||||||
|
|
||||||
queryParam.type = queryParam.type.toLowerCase();
|
queryParam.type = queryParam.type.toLowerCase();
|
||||||
if (queryParam.type === "kcp" || queryParam.type === "mkcp")
|
if (queryParam.type === "kcp" || queryParam.type === "mkcp") {
|
||||||
queryParam.type = "mkcp"
|
queryParam.type = "mkcp";
|
||||||
if (queryParam.type === "h2" || queryParam.type === "http")
|
}
|
||||||
queryParam.type = "h2"
|
if (queryParam.type === "h2" || queryParam.type === "http") {
|
||||||
|
queryParam.type = "http";
|
||||||
|
}
|
||||||
if (dom_prefix == "singbox_" && queryParam.type === "raw") {
|
if (dom_prefix == "singbox_" && queryParam.type === "raw") {
|
||||||
queryParam.type = "tcp";
|
queryParam.type = "tcp";
|
||||||
} else if (dom_prefix == "xray_" && queryParam.type === "tcp") {
|
} else if (dom_prefix == "xray_" && queryParam.type === "tcp") {
|
||||||
queryParam.type = "raw";
|
queryParam.type = "raw";
|
||||||
}
|
}
|
||||||
opt.set(dom_prefix + 'transport', queryParam.type);
|
if (dom_prefix == "xray_" && queryParam.type === "http") {
|
||||||
|
opt.set(dom_prefix + 'transport', "xhttp");
|
||||||
|
} else {
|
||||||
|
opt.set(dom_prefix + 'transport', queryParam.type);
|
||||||
|
}
|
||||||
if (queryParam.type === "raw" || queryParam.type === "tcp") {
|
if (queryParam.type === "raw" || queryParam.type === "tcp") {
|
||||||
opt.set(dom_prefix + 'tcp_guise', queryParam.headerType || "none");
|
opt.set(dom_prefix + 'tcp_guise', queryParam.headerType || "none");
|
||||||
if (queryParam.headerType && queryParam.headerType != "none") {
|
if (queryParam.headerType && queryParam.headerType != "none") {
|
||||||
@ -1154,8 +1197,14 @@ local api = require "luci.passwall2.api"
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (queryParam.type === "h2" || queryParam.type === "http") {
|
} else if (queryParam.type === "h2" || queryParam.type === "http") {
|
||||||
opt.set(dom_prefix + 'h2_host', queryParam.host || "");
|
if (dom_prefix == "xray_") {
|
||||||
opt.set(dom_prefix + 'h2_path', queryParam.path || "");
|
opt.set(dom_prefix + 'xhttp_mode', "stream-one");
|
||||||
|
opt.set(dom_prefix + 'xhttp_host', queryParam.host || "");
|
||||||
|
opt.set(dom_prefix + 'xhttp_path', queryParam.path || "");
|
||||||
|
} else {
|
||||||
|
opt.set(dom_prefix + 'http_host', queryParam.host || "");
|
||||||
|
opt.set(dom_prefix + 'http_path', queryParam.path || "");
|
||||||
|
}
|
||||||
} else if (queryParam.type === "quic") {
|
} else if (queryParam.type === "quic") {
|
||||||
opt.set(dom_prefix + 'quic_guise', queryParam.headerType || "none");
|
opt.set(dom_prefix + 'quic_guise', queryParam.headerType || "none");
|
||||||
opt.set(dom_prefix + 'quic_security', queryParam.quicSecurity);
|
opt.set(dom_prefix + 'quic_security', queryParam.quicSecurity);
|
||||||
|
@ -940,7 +940,7 @@ add_firewall_rule() {
|
|||||||
# 加载ACLS
|
# 加载ACLS
|
||||||
load_acl
|
load_acl
|
||||||
|
|
||||||
filter_direct_node_list
|
filter_direct_node_list > /dev/null 2>&1 &
|
||||||
|
|
||||||
echolog "防火墙规则加载完成!"
|
echolog "防火墙规则加载完成!"
|
||||||
}
|
}
|
||||||
|
@ -990,7 +990,7 @@ add_firewall_rule() {
|
|||||||
# 加载ACLS
|
# 加载ACLS
|
||||||
load_acl
|
load_acl
|
||||||
|
|
||||||
filter_direct_node_list
|
filter_direct_node_list > /dev/null 2>&1 &
|
||||||
|
|
||||||
echolog "防火墙规则加载完成!"
|
echolog "防火墙规则加载完成!"
|
||||||
}
|
}
|
||||||
|
@ -452,7 +452,12 @@ local function processData(szType, content, add_mode, add_from)
|
|||||||
elseif result.type == "Xray" and info.net == "tcp" then
|
elseif result.type == "Xray" and info.net == "tcp" then
|
||||||
info.net = "raw"
|
info.net = "raw"
|
||||||
end
|
end
|
||||||
result.transport = info.net
|
if info.net == 'h2' or info.net == 'http' then
|
||||||
|
info.net = "http"
|
||||||
|
result.transport = (result.type == "Xray") and "xhttp" or "http"
|
||||||
|
else
|
||||||
|
result.transport = info.net
|
||||||
|
end
|
||||||
if info.net == 'ws' then
|
if info.net == 'ws' then
|
||||||
result.ws_host = info.host
|
result.ws_host = info.host
|
||||||
result.ws_path = info.path
|
result.ws_path = info.path
|
||||||
@ -472,9 +477,15 @@ local function processData(szType, content, add_mode, add_from)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if info.net == 'h2' then
|
if info.net == "http" then
|
||||||
result.h2_host = info.host
|
if result.type == "Xray" then
|
||||||
result.h2_path = info.path
|
result.xhttp_mode = "stream-one"
|
||||||
|
result.xhttp_host = info.host
|
||||||
|
result.xhttp_path = info.path
|
||||||
|
else
|
||||||
|
result.http_host = info.host
|
||||||
|
result.http_path = info.path
|
||||||
|
end
|
||||||
end
|
end
|
||||||
if info.net == 'raw' or info.net == 'tcp' then
|
if info.net == 'raw' or info.net == 'tcp' then
|
||||||
if info.type and info.type ~= "http" then
|
if info.type and info.type ~= "http" then
|
||||||
@ -658,7 +669,12 @@ local function processData(szType, content, add_mode, add_from)
|
|||||||
elseif result.type == "Xray" and params.type == "tcp" then
|
elseif result.type == "Xray" and params.type == "tcp" then
|
||||||
params.type = "raw"
|
params.type = "raw"
|
||||||
end
|
end
|
||||||
result.transport = params.type
|
if params.type == "h2" or params.type == "http" then
|
||||||
|
params.type = "http"
|
||||||
|
result.transport = (result.type == "Xray") and "xhttp" or "http"
|
||||||
|
else
|
||||||
|
result.transport = params.type
|
||||||
|
end
|
||||||
if result.type ~= "SS-Rust" and result.type ~= "SS" then
|
if result.type ~= "SS-Rust" and result.type ~= "SS" then
|
||||||
if params.type == 'ws' then
|
if params.type == 'ws' then
|
||||||
result.ws_host = params.host
|
result.ws_host = params.host
|
||||||
@ -679,15 +695,16 @@ local function processData(szType, content, add_mode, add_from)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if params.type == 'h2' or params.type == 'http' then
|
if params.type == "http" then
|
||||||
if result.type == "sing-box" then
|
if result.type == "sing-box" then
|
||||||
result.transport = "http"
|
result.transport = "http"
|
||||||
result.http_host = params.host
|
result.http_host = params.host
|
||||||
result.http_path = params.path
|
result.http_path = params.path
|
||||||
elseif result.type == "xray" then
|
elseif result.type == "Xray" then
|
||||||
result.transport = "h2"
|
result.transport = "xhttp"
|
||||||
result.h2_host = params.host
|
result.xhttp_mode = "stream-one"
|
||||||
result.h2_path = params.path
|
result.xhttp_host = params.host
|
||||||
|
result.xhttp_path = params.path
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if params.type == 'raw' or params.type == 'tcp' then
|
if params.type == 'raw' or params.type == 'tcp' then
|
||||||
@ -809,7 +826,12 @@ local function processData(szType, content, add_mode, add_from)
|
|||||||
elseif result.type == "Xray" and params.type == "tcp" then
|
elseif result.type == "Xray" and params.type == "tcp" then
|
||||||
params.type = "raw"
|
params.type = "raw"
|
||||||
end
|
end
|
||||||
result.transport = params.type
|
if params.type == "h2" or params.type == "http" then
|
||||||
|
params.type = "http"
|
||||||
|
result.transport = (result.type == "Xray") and "xhttp" or "http"
|
||||||
|
else
|
||||||
|
result.transport = params.type
|
||||||
|
end
|
||||||
if params.type == 'ws' then
|
if params.type == 'ws' then
|
||||||
result.ws_host = params.host
|
result.ws_host = params.host
|
||||||
result.ws_path = params.path
|
result.ws_path = params.path
|
||||||
@ -829,15 +851,16 @@ local function processData(szType, content, add_mode, add_from)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if params.type == 'h2' or params.type == 'http' then
|
if params.type == "http" then
|
||||||
if result.type == "sing-box" then
|
if result.type == "sing-box" then
|
||||||
result.transport = "http"
|
result.transport = "http"
|
||||||
result.http_host = params.host
|
result.http_host = params.host
|
||||||
result.http_path = params.path
|
result.http_path = params.path
|
||||||
elseif result.type == "xray" then
|
elseif result.type == "Xray" then
|
||||||
result.transport = "h2"
|
result.transport = "xhttp"
|
||||||
result.h2_host = params.host
|
result.xhttp_mode = "stream-one"
|
||||||
result.h2_path = params.path
|
result.xhttp_host = params.host
|
||||||
|
result.xhttp_path = params.path
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if params.type == 'raw' or params.type == 'tcp' then
|
if params.type == 'raw' or params.type == 'tcp' then
|
||||||
@ -944,7 +967,12 @@ local function processData(szType, content, add_mode, add_from)
|
|||||||
elseif result.type == "Xray" and params.type == "tcp" then
|
elseif result.type == "Xray" and params.type == "tcp" then
|
||||||
params.type = "raw"
|
params.type = "raw"
|
||||||
end
|
end
|
||||||
result.transport = params.type
|
if params.type == "h2" or params.type == "http" then
|
||||||
|
params.type = "http"
|
||||||
|
result.transport = (result.type == "Xray") and "xhttp" or "http"
|
||||||
|
else
|
||||||
|
result.transport = params.type
|
||||||
|
end
|
||||||
if params.type == 'ws' then
|
if params.type == 'ws' then
|
||||||
result.ws_host = params.host
|
result.ws_host = params.host
|
||||||
result.ws_path = params.path
|
result.ws_path = params.path
|
||||||
@ -964,15 +992,16 @@ local function processData(szType, content, add_mode, add_from)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if params.type == 'h2' or params.type == 'http' then
|
if params.type == "http" then
|
||||||
if result.type == "sing-box" then
|
if result.type == "sing-box" then
|
||||||
result.transport = "http"
|
result.transport = "http"
|
||||||
result.http_host = params.host
|
result.http_host = params.host
|
||||||
result.http_path = params.path
|
result.http_path = params.path
|
||||||
elseif result.type == "xray" then
|
elseif result.type == "Xray" then
|
||||||
result.transport = "h2"
|
result.transport = "xhttp"
|
||||||
result.h2_host = params.host
|
result.xhttp_mode = "stream-one"
|
||||||
result.h2_path = params.path
|
result.xhttp_host = params.host
|
||||||
|
result.xhttp_path = params.path
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if params.type == 'raw' or params.type == 'tcp' then
|
if params.type == 'raw' or params.type == 'tcp' then
|
||||||
|
Loading…
Reference in New Issue
Block a user