refactor: replace recursion with while loop in set_redir_mod

This commit is contained in:
Sofia
2026-01-09 19:23:32 +08:00
committed by GitHub
parent 167ab30b29
commit ea0bec152e

View File

@@ -138,13 +138,16 @@ settings() {
done
}
set_redir_mod() { #路由模式设置
set_redir_config() {
setconfig redir_mod $redir_mod
setconfig dns_mod $dns_mod
echo "-----------------------------------------------"
echo -e "\033[36m已设为 $redir_mod \033[0m"
}
# 路由模式设置
set_redir_mod() {
while true; do
[ -n "$(ls /dev/net/tun 2>/dev/null)" ] || ip tuntap >/dev/null 2>&1 || modprobe tun 2>/dev/null && sup_tun=1
[ -z "$firewall_area" ] && firewall_area=1
[ -z "$redir_mod" ] && [ "$USER" = "root" -o "$USER" = "admin" ] && redir_mod='Redir模式'
@@ -173,11 +176,12 @@ set_redir_mod() { #路由模式设置
echo " 0 返回上级菜单"
read -p "请输入对应数字 > " num
case "$num" in
0) ;;
"" | 0)
break
;;
1)
redir_mod=Redir模式
set_redir_config
set_redir_mod
;;
2)
if [ -n "$sup_tun" ]; then
@@ -187,7 +191,6 @@ set_redir_mod() { #路由模式设置
echo -e "\033[31m设备未检测到Tun内核模块请尝试其他模式或者安装相关依赖\033[0m"
sleep 1
fi
set_redir_mod
;;
3)
if [ "$firewall_mod" = "iptables" ]; then
@@ -214,7 +217,6 @@ set_redir_mod() { #路由模式设置
sleep 1
fi
fi
set_redir_mod
;;
4)
if [ -n "$sup_tun" ]; then
@@ -224,25 +226,20 @@ set_redir_mod() { #路由模式设置
echo -e "\033[31m设备未检测到Tun内核模块请尝试其他模式或者安装相关依赖\033[0m"
sleep 1
fi
set_redir_mod
;;
5)
redir_mod='TCP旁路转发'
set_redir_config
set_redir_mod
;;
6)
redir_mod='T&U旁路转发'
set_redir_config
set_redir_mod
;;
7)
set_firewall_area
set_redir_mod
;;
8)
set_firewall_vm
set_redir_mod
;;
9)
if [ "$firewall_mod" = 'iptables' ]; then
@@ -274,13 +271,16 @@ set_redir_mod() { #路由模式设置
fi
sleep 1
setconfig firewall_mod $firewall_mod
set_redir_mod
;;
*)
errornum
sleep 1
break
;;
esac
done
}
set_adv_config() { #端口设置
. "$CFG_PATH" >/dev/null
[ -z "$secret" ] && secret=未设置