diff --git a/daed/Makefile b/daed/Makefile index 62ffcb5c..f5f0d744 100644 --- a/daed/Makefile +++ b/daed/Makefile @@ -5,10 +5,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=daed -PKG_VERSION:=2026.05.22 +PKG_VERSION:=2026.05.26 DAED_VERSION:=daed-4d6a433 WING_VERSION:=wing-dc50308 -CORE_VERSION:=core-44f8f0d +CORE_VERSION:=core-ab16181 WING_HASH_SHORT:=$(shell echo $(WING_VERSION) | cut -d- -f2) CORE_HASH_SHORT:=$(shell echo $(CORE_VERSION) | cut -d- -f2) PKG_RELEASE:=1 diff --git a/luci-app-passwall/luasrc/controller/passwall.lua b/luci-app-passwall/luasrc/controller/passwall.lua index da4b8a40..909285bc 100644 --- a/luci-app-passwall/luasrc/controller/passwall.lua +++ b/luci-app-passwall/luasrc/controller/passwall.lua @@ -870,6 +870,7 @@ function restore_backup() fp:write(decoded) fp:close() if chunk_index + 1 == total_chunks then + uci:revert(appname) luci.sys.call("echo '' > /tmp/log/passwall.log") api.log(" * PassWall 配置文件上传成功…") local temp_dir = '/tmp/passwall_bak' diff --git a/luci-app-passwall/luasrc/passwall/api.lua b/luci-app-passwall/luasrc/passwall/api.lua index fb54b982..10886cf0 100644 --- a/luci-app-passwall/luasrc/passwall/api.lua +++ b/luci-app-passwall/luasrc/passwall/api.lua @@ -132,12 +132,14 @@ function base64Encode(text) end function UrlEncode(szText) + if type(szText) ~= "string" then return "" end return szText:gsub("([^%w%-_%.%~])", function(c) return string.format("%%%02X", string.byte(c)) end) end function UrlDecode(szText) + if type(szText) ~= "string" then return "" end return szText and szText:gsub("%+", " "):gsub("%%(%x%x)", function(h) return string.char(tonumber(h, 16)) end) or nil diff --git a/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua b/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua index e94afd64..5ad9444b 100644 --- a/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua +++ b/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua @@ -66,10 +66,10 @@ local function build_common(node) local ech_opts = node["ech-opts"] if ech_opts and ech_opts.enable == true then - if ech_opts.config then - o.tls.ech = ech_opts.config - elseif ech_opts["query-server-name"] then + if ech_opts["query-server-name"] then o.tls.ech = ech_opts["query-server-name"] .. "+https://223.5.5.5/dns-query" + elseif ech_opts.config then + o.tls.ech = ech_opts.config end end diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua index f38a0e94..9e140544 100755 --- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua +++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua @@ -683,6 +683,11 @@ local function processData(szType, content, add_mode, group, sub_cfg) result.tls = "0" end + if info.ech and info.ech ~= "" then + result.ech = "1" + result.ech_config = info.ech + end + result.tcp_fast_open = info.tfo info.fm = (info.fm and info.fm ~= "") and UrlDecode(info.fm) or nil