diff --git a/dae/Makefile b/dae/Makefile index bf04704ff..d08f5a9d6 100644 --- a/dae/Makefile +++ b/dae/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dae -PKG_VERSION:=0.8.0 +PKG_VERSION:=0.9.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip PKG_SOURCE_URL:=https://github.com/daeuniverse/dae/releases/download/v$(PKG_VERSION)/dae-full-src.zip? -PKG_HASH:=c271f085dc720ba2c7e7f1fe2ccdf795c77f2173057f5f07c26361251b99ff7d +PKG_HASH:=b631e2cc729f28410f5ccf584de18cf6a839c4a313d694df5e326377f6435ab1 PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILE:=LICENSE @@ -21,6 +21,7 @@ PKG_BUILD_PARALLEL:=1 PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/daeuniverse/dae +GO_PKG_EXCLUDES:=control/kern/tests GO_PKG_LDFLAGS_X:= \ $(GO_PKG)/cmd.Version=$(PKG_VERSION) \ $(GO_PKG)/common/consts.MaxMatchSetLen_=64 @@ -81,7 +82,7 @@ endef DAE_CFLAGS:= \ -O2 -Wall -Werror \ - -DMAX_MATCH_SET_LEN=64 \ + -DMAX_MATCH_SET_LEN=1024 \ -I$(BPF_HEADERS_DIR)/tools/lib \ -I$(BPF_HEADERS_DIR)/arch/$(BPF_KARCH)/include/asm/mach-generic diff --git a/dnsproxy/Makefile b/dnsproxy/Makefile index 55864a83d..ea20df417 100644 --- a/dnsproxy/Makefile +++ b/dnsproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dnsproxy -PKG_VERSION:=0.73.3 +PKG_VERSION:=0.73.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/dnsproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=9eb2b1e88e74d3a4237b50977aa52cd19ea1bb6c896535e7dd4b2df4d6aa469c +PKG_HASH:=8a7779900d2449cdc7e9bf1b311a3317c04d78db24efde4186c169cc8a501a5f PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=Apache-2.0 diff --git a/haproxy/Makefile b/haproxy/Makefile index 84142a257..674487433 100644 --- a/haproxy/Makefile +++ b/haproxy/Makefile @@ -10,12 +10,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=haproxy -PKG_VERSION:=3.0.6 -PKG_RELEASE:=2 +PKG_VERSION:=3.0.7 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.haproxy.org/download/3.0/src -PKG_HASH:=cf1bf58b5bc79c48db7b01667596ffd98343adb29a41096f075f00a8f90a7335 +PKG_HASH:=5c5c6b66645278435a89cd6e2a0d39f8e7d2546212d847bd0d236511ff996f11 PKG_MAINTAINER:=Thomas Heil , \ Christian Lachner diff --git a/haproxy/get-latest-patches.sh b/haproxy/get-latest-patches.sh index f649b1ed7..1bc7e970a 100755 --- a/haproxy/get-latest-patches.sh +++ b/haproxy/get-latest-patches.sh @@ -1,7 +1,7 @@ #!/bin/sh CLONEURL=https://git.haproxy.org/git/haproxy-3.0.git -BASE_TAG=v3.0.6 +BASE_TAG=v3.0.7 TMP_REPODIR=tmprepo PATCHESDIR=patches diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua index 7ea652ad4..958ff0aa6 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua @@ -146,6 +146,11 @@ if (has_singbox or has_xray) and #nodes_table > 0 then m:set(shunt_node_id, option, value) end end + local function get_remove(shunt_node_id, option) + return function(self, section) + m:del(shunt_node_id, option) + end + end if #normal_list > 0 then for k, v in pairs(shunt_list) do local vid = v.id @@ -197,6 +202,7 @@ if (has_singbox or has_xray) and #nodes_table > 0 then o = s:taboption("Main", ListValue, node_option, string.format('* %s', api.url("shunt_rules", id), e.remarks)) o.cfgvalue = get_cfgvalue(v.id, id) o.write = get_write(v.id, id) + o.remove = get_remove(v.id, id) o:depends("tcp_node", v.id) o:value("", translate("Close")) o:value("_default", translate("Default")) @@ -206,6 +212,7 @@ if (has_singbox or has_xray) and #nodes_table > 0 then local pt = s:taboption("Main", ListValue, vid .. "-".. id .. "_proxy_tag", string.format('* %s', e.remarks .. " " .. translate("Preproxy"))) pt.cfgvalue = get_cfgvalue(v.id, id .. "_proxy_tag") pt.write = get_write(v.id, id .. "_proxy_tag") + pt.remove = get_remove(v.id, id .. "_proxy_tag") pt:value("", translate("Close")) pt:value("main", translate("Preproxy Node")) for k1, v1 in pairs(socks_list) do @@ -228,6 +235,7 @@ if (has_singbox or has_xray) and #nodes_table > 0 then o = s:taboption("Main", ListValue, vid .. "-" .. id, string.format('* %s', translate("Default"))) o.cfgvalue = get_cfgvalue(v.id, id) o.write = get_write(v.id, id) + o.remove = get_remove(v.id, id) o:depends("tcp_node", v.id) o:value("_direct", translate("Direct Connection")) o:value("_blackhole", translate("Blackhole")) @@ -248,6 +256,7 @@ if (has_singbox or has_xray) and #nodes_table > 0 then o = s:taboption("Main", ListValue, vid .. "-" .. id, string.format('* %s', translate("Default Preproxy")), translate("When using, localhost will connect this node first and then use this node to connect the default node.")) o.cfgvalue = get_cfgvalue(v.id, id) o.write = get_write(v.id, id) + o.remove = get_remove(v.id, id) o:value("", translate("Close")) o:value("main", translate("Preproxy Node")) for k1, v1 in pairs(normal_list) do diff --git a/luci-app-passwall/luasrc/passwall/util_sing-box.lua b/luci-app-passwall/luasrc/passwall/util_sing-box.lua index 5affbcd44..4ce25bc90 100644 --- a/luci-app-passwall/luasrc/passwall/util_sing-box.lua +++ b/luci-app-passwall/luasrc/passwall/util_sing-box.lua @@ -959,7 +959,7 @@ function gen_config(var) rule_outboundTag = "block" elseif _node_id == "_default" and rule_name ~= "default" then rule_outboundTag = "default" - elseif _node_id:find("Socks_") then + elseif _node_id and _node_id:find("Socks_") then local socks_id = _node_id:sub(1 + #"Socks_") local socks_node = uci:get_all(appname, socks_id) or nil if socks_node then diff --git a/luci-app-passwall/luasrc/passwall/util_xray.lua b/luci-app-passwall/luasrc/passwall/util_xray.lua index b31a2cb62..57d392b4e 100644 --- a/luci-app-passwall/luasrc/passwall/util_xray.lua +++ b/luci-app-passwall/luasrc/passwall/util_xray.lua @@ -846,7 +846,7 @@ function gen_config(var) return "blackhole", nil elseif _node_id == "_default" then return "default", nil - elseif _node_id:find("Socks_") then + elseif _node_id and _node_id:find("Socks_") then local socks_id = _node_id:sub(1 + #"Socks_") local socks_node = uci:get_all(appname, socks_id) or nil local socks_tag diff --git a/luci-app-passwall/root/usr/share/passwall/helper_dnsmasq.lua b/luci-app-passwall/root/usr/share/passwall/helper_dnsmasq.lua index 40373ad68..18d01d14b 100644 --- a/luci-app-passwall/root/usr/share/passwall/helper_dnsmasq.lua +++ b/luci-app-passwall/root/usr/share/passwall/helper_dnsmasq.lua @@ -119,7 +119,6 @@ end function copy_instance(var) local LISTEN_PORT = var["-LISTEN_PORT"] - local DNSMASQ_CONF = var["-DNSMASQ_CONF"] local conf_lines = {} local DEFAULT_DNSMASQ_CFGID = sys.exec("echo -n $(uci -q show dhcp.@dnsmasq[0] | awk 'NR==1 {split($0, conf, /[.=]/); print conf[2]}')") for line in io.lines("/tmp/etc/dnsmasq.conf." .. DEFAULT_DNSMASQ_CFGID) do @@ -135,7 +134,11 @@ function copy_instance(var) end end tinsert(conf_lines, "port=" .. LISTEN_PORT) + if var["-return_table"] == "1" then + return conf_lines + end if #conf_lines > 0 then + local DNSMASQ_CONF = var["-DNSMASQ_CONF"] local conf_out = io.open(DNSMASQ_CONF, "a") conf_out:write(table.concat(conf_lines, "\n")) conf_out:close() @@ -616,20 +619,7 @@ function add_rule(var) local conf_lines = {} if LISTEN_PORT then --Copy dnsmasq instance - local DEFAULT_DNSMASQ_CFGID = sys.exec("echo -n $(uci -q show dhcp.@dnsmasq[0] | awk 'NR==1 {split($0, conf, /[.=]/); print conf[2]}')") - for line in io.lines("/tmp/etc/dnsmasq.conf." .. DEFAULT_DNSMASQ_CFGID) do - local filter - if line:find("passwall") then filter = true end - if line:find("ubus") then filter = true end - if line:find("dhcp") then filter = true end - if line:find("server=") == 1 then filter = true end - if line:find("port=") == 1 then filter = true end - if line:find("address=") == 1 or (line:find("server=") == 1 and line:find("/")) then filter = nil end - if not filter then - tinsert(conf_lines, line) - end - end - tinsert(conf_lines, "port=" .. LISTEN_PORT) + conf_lines = copy_instance({["-LISTEN_PORT"] = LISTEN_PORT, ["-return_table"] = "1"}) else --Modify the default dnsmasq service end diff --git a/luci-app-passwall2/Makefile b/luci-app-passwall2/Makefile index 2892f69f3..2ec6533cf 100644 --- a/luci-app-passwall2/Makefile +++ b/luci-app-passwall2/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall2 PKG_VERSION:=24.12.19 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_Iptables_Transparent_Proxy \ diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua index 3b266a42c..bf77992e9 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua @@ -94,6 +94,11 @@ if (has_singbox or has_xray) and #nodes_table > 0 then m:set(shunt_node_id, option, value) end end + local function get_remove(shunt_node_id, option) + return function(self, section) + m:del(shunt_node_id, option) + end + end if #normal_list > 0 then for k, v in pairs(shunt_list) do local vid = v.id @@ -148,8 +153,8 @@ if (has_singbox or has_xray) and #nodes_table > 0 then o = s:taboption("Main", ListValue, node_option, string.format('* %s', api.url("shunt_rules", id), e.remarks)) o.cfgvalue = get_cfgvalue(v.id, id) o.write = get_write(v.id, id) + o.remove = get_remove(v.id, id) o:depends("node", v.id) - o.default = "" o:value("", translate("Close")) o:value("_default", translate("Default")) o:value("_direct", translate("Direct Connection")) @@ -158,7 +163,7 @@ if (has_singbox or has_xray) and #nodes_table > 0 then local pt = s:taboption("Main", ListValue, vid .. "-".. id .. "_proxy_tag", string.format('* %s', e.remarks .. " " .. translate("Preproxy"))) pt.cfgvalue = get_cfgvalue(v.id, id .. "_proxy_tag") pt.write = get_write(v.id, id .. "_proxy_tag") - pt.default = "" + pt.remove = get_remove(v.id, id .. "_proxy_tag") pt:value("", translate("Close")) pt:value("main", translate("Preproxy Node")) for k1, v1 in pairs(socks_list) do @@ -181,6 +186,7 @@ if (has_singbox or has_xray) and #nodes_table > 0 then o = s:taboption("Main", ListValue, vid .. "-" .. id, string.format('* %s', translate("Default"))) o.cfgvalue = get_cfgvalue(v.id, id) o.write = get_write(v.id, id) + o.remove = get_remove(v.id, id) o:depends("node", v.id) o.default = "_direct" o:value("_direct", translate("Direct Connection")) @@ -202,6 +208,7 @@ if (has_singbox or has_xray) and #nodes_table > 0 then o = s:taboption("Main", ListValue, vid .. "-" .. id, string.format('* %s', translate("Default Preproxy")), translate("When using, localhost will connect this node first and then use this node to connect the default node.")) o.cfgvalue = get_cfgvalue(v.id, id) o.write = get_write(v.id, id) + o.remove = get_remove(v.id, id) o:value("", translate("Close")) o:value("main", translate("Preproxy Node")) for k1, v1 in pairs(normal_list) do diff --git a/luci-app-passwall2/luasrc/passwall2/util_sing-box.lua b/luci-app-passwall2/luasrc/passwall2/util_sing-box.lua index 95c1851c9..2fbdd6880 100644 --- a/luci-app-passwall2/luasrc/passwall2/util_sing-box.lua +++ b/luci-app-passwall2/luasrc/passwall2/util_sing-box.lua @@ -950,7 +950,7 @@ function gen_config(var) rule_outboundTag = "block" elseif _node_id == "_default" and rule_name ~= "default" then rule_outboundTag = "default" - elseif _node_id:find("Socks_") then + elseif _node_id and _node_id:find("Socks_") then local socks_id = _node_id:sub(1 + #"Socks_") local socks_node = uci:get_all(appname, socks_id) or nil if socks_node then diff --git a/luci-app-passwall2/luasrc/passwall2/util_xray.lua b/luci-app-passwall2/luasrc/passwall2/util_xray.lua index 5f94df042..981998fa9 100644 --- a/luci-app-passwall2/luasrc/passwall2/util_xray.lua +++ b/luci-app-passwall2/luasrc/passwall2/util_xray.lua @@ -848,7 +848,7 @@ function gen_config(var) return "blackhole", nil elseif _node_id == "_default" then return "default", nil - elseif _node_id:find("Socks_") then + elseif _node_id and _node_id:find("Socks_") then local socks_id = _node_id:sub(1 + #"Socks_") local socks_node = uci:get_all(appname, socks_id) or nil local socks_tag