update 2026-07-24 14:21:13

This commit is contained in:
action committed 2026-07-24 14:21:13 +08:00
1 parent b6b3b8467d
commit 2cae7975b1
5 files changed
+22 -45

No files matched your search

+9 -35
View File
@@ -43,35 +43,11 @@ update_cron() {
} }
cleanup_netns() { cleanup_netns() {
if ps w | grep -q "[/]usr/bin/daed run"; then tc qdisc del dev "$DAE_HOST_IFACE" clsact 2>/dev/null || true
logger -t dae "skip dae runtime cleanup while daed is running" ip link del "$DAE_HOST_IFACE" 2>/dev/null || true
return 0 ip link del "$DAE_PEER_IFACE" 2>/dev/null || true
fi ip netns del "$DAE_NETNS_NAME" 2>/dev/null || true
rm -f "$DAENETNS" 2>/dev/null || true
if ip link show "$DAE_HOST_IFACE" >/dev/null 2>&1; then
tc qdisc del dev "$DAE_HOST_IFACE" clsact 2>/dev/null || true
ip link del "$DAE_HOST_IFACE" 2>/dev/null || true
fi
if ip link show "$DAE_PEER_IFACE" >/dev/null 2>&1; then
ip link del "$DAE_PEER_IFACE" 2>/dev/null || true
fi
if [ -e "$DAENETNS" ]; then
ip netns del "$DAE_NETNS_NAME" 2>/dev/null || true
rm -f "$DAENETNS" 2>/dev/null || true
fi
}
wait_dae_exit() {
local i
for i in 1 2 3 4 5 6 7 8 9 10; do
ps w | grep -q "[/]usr/bin/dae run" || return 0
sleep 1
done
return 1
} }
hijack_resolv_conf() { hijack_resolv_conf() {
@@ -146,14 +122,12 @@ start_service() {
stop_service() { stop_service() {
update_cron "remove" update_cron "remove"
restore_resolv_conf restore_resolv_conf
cleanup_netns
} }
service_stopped() { reload_service() {
if wait_dae_exit; then stop
cleanup_netns start
else
logger -t dae "skip dae runtime cleanup because dae is still running"
fi
} }
service_triggers() { service_triggers() {
+1 -1
View File
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall PKG_NAME:=luci-app-passwall
PKG_VERSION:=26.7.16 PKG_VERSION:=26.7.24
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_PO_VERSION:=$(PKG_VERSION) PKG_PO_VERSION:=$(PKG_VERSION)
@@ -150,7 +150,7 @@ o.datatype = "min(1)"
o.default = 1 o.default = 1
o:depends("enable_autoswitch", true) o:depends("enable_autoswitch", true)
o = s:option(Flag, "autoswitch_restore_switch", translate("Restore Switch"), translate("When detects main node is available, switch back to the main node.")) o = s:option(Flag, "autoswitch_restore_switch", translate("Restore Switch"), translate("Immediately switch back to the main node when it becomes available."))
o:depends("enable_autoswitch", true) o:depends("enable_autoswitch", true)
o = s:option(Value, "autoswitch_probe_url", translate("Probe URL"), translate("The URL used to detect the connection status.")) o = s:option(Value, "autoswitch_probe_url", translate("Probe URL"), translate("The URL used to detect the connection status."))
+2 -2
View File
@@ -893,8 +893,8 @@ msgstr "备用节点的列表"
msgid "Restore Switch" msgid "Restore Switch"
msgstr "恢复切换" msgstr "恢复切换"
msgid "When detects main node is available, switch back to the main node." msgid "Immediately switch back to the main node when it becomes available."
msgstr "当检测到主节点可用时,切换回主节点。" msgstr "当主节点可用时,立即切换回主节点。"
msgid "Add nodes to the standby node list by keywords" msgid "Add nodes to the standby node list by keywords"
msgstr "通过关键字添加节点到备用节点列表" msgstr "通过关键字添加节点到备用节点列表"
@@ -125,7 +125,11 @@ test_auto_switch() {
done done
# 如果没找到当前节点,或者当前节点是最后一个,就取第一个节点 # 如果没找到当前节点,或者当前节点是最后一个,就取第一个节点
[ -z "$new_node" ] && new_node="$first_node" [ -z "$new_node" ] && new_node="$first_node"
msg="切换到$([ "$now_node" = "$main_node" ] && echo 备用节点 || echo 下一个备用节点)检测!" if [ "$new_node" = "$main_node" ]; then
msg="切换到主节点检测!"
else
msg="切换到$([ "$now_node" = "$main_node" ] && echo 备用节点 || echo 下一个备用节点)检测!"
fi
else else
# 只有一个后备节点时,与主节点轮询 # 只有一个后备节点时,与主节点轮询
new_node=$([ "$now_node" = "$main_node" ] && echo "$b_nodes" || echo "$main_node") new_node=$([ "$now_node" = "$main_node" ] && echo "$b_nodes" || echo "$main_node")
@@ -134,11 +138,6 @@ test_auto_switch() {
echolog "Socks切换检测:端口[${socks_port}]【$(config_n_get $now_node type):[$(config_n_get $now_node remarks)]】异常,$msg" echolog "Socks切换检测:端口[${socks_port}]【$(config_n_get $now_node type):[$(config_n_get $now_node remarks)]】异常,$msg"
test_node ${new_node} test_node ${new_node}
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
# [ "$restore_switch" = "0" ] && {
# uci set $CONFIG.${id}.node=$new_node
# [ -z "$(echo $b_nodes | grep $main_node)" ] && uci add_list $CONFIG.${id}.autoswitch_backup_node=$main_node
# uci commit $CONFIG
# }
check_process check_process
echolog "Socks切换检测:端口[${socks_port}]【$(config_n_get $new_node type):[$(config_n_get $new_node remarks)]】正常,切换到此节点!" echolog "Socks切换检测:端口[${socks_port}]【$(config_n_get $new_node type):[$(config_n_get $new_node remarks)]】正常,切换到此节点!"
NO_REC_PROCESS=1 $APP_FILE socks_node_switch flag=${id} new_node=${new_node} NO_REC_PROCESS=1 $APP_FILE socks_node_switch flag=${id} new_node=${new_node}
@@ -170,6 +169,10 @@ start() {
echolog " - Socks切换检测:端口[${socks_port}] 后备节点数量:${backup_node_num}" echolog " - Socks切换检测:端口[${socks_port}] 后备节点数量:${backup_node_num}"
if [ "$backup_node_num" -eq 1 ]; then if [ "$backup_node_num" -eq 1 ]; then
[ "$main_node" = "$backup_node" ] && return [ "$main_node" = "$backup_node" ] && return
elif [ "$backup_node_num" -gt 1 ]; then
[ "$restore_switch" != "1" ] && {
[ -z "$(echo $backup_node | grep -F "$main_node")" ] && backup_node="${backup_node} ${main_node}"
}
fi fi
else else
echolog " - Socks切换检测:端口[${socks_port}] 后备节点数量:0" echolog " - Socks切换检测:端口[${socks_port}] 后备节点数量:0"