mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-10 23:41:22 +00:00
refactor: replace recursion with while loop in set_redir_mod
This commit is contained in:
@@ -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=未设置
|
||||
|
||||
Reference in New Issue
Block a user