refactor: replace recursion with while loop in settings

This commit is contained in:
Sofia
2026-01-08 20:48:10 +08:00
committed by GitHub
parent da30e623ce
commit b93ac17f2e

View File

@@ -4,12 +4,14 @@
[ -n "$__IS_MODULE_2_SETTINGS_LOADED" ] && return
__IS_MODULE_2_SETTINGS_LOADED=1
settings() { #功能设置
#获取设置默认显示
# 功能设置
settings() {
while true; do
# 获取设置默认显示
[ -z "$skip_cert" ] && skip_cert=ON
[ -z "$sniffer" ] && sniffer=OFF
[ -z "$dns_mod" ] && dns_mod='redir_host'
#
echo "-----------------------------------------------"
echo -e "\033[30;47m欢迎使用功能设置菜单\033[0m"
echo "-----------------------------------------------"
@@ -28,7 +30,8 @@ settings() { #功能设置
echo "-----------------------------------------------"
read -p "请输入对应数字 > " num
case "$num" in
0)
"" | 0)
break
;;
1)
if [ "$USER" != "root" -a "$USER" != "admin" ]; then
@@ -39,17 +42,14 @@ settings() { #功能设置
set_redir_mod
fi
sleep 1
settings
;;
2)
. "$CRASHDIR"/menus/dns.sh && set_dns_mod
sleep 1
settings
;;
3)
. "$CRASHDIR"/menus/fw_filter.sh && set_fw_filter
sleep 1
settings
;;
4)
echo "-----------------------------------------------"
@@ -61,7 +61,6 @@ settings() { #功能设置
skip_cert=OFF
fi
setconfig skip_cert $skip_cert
settings
;;
5)
echo "-----------------------------------------------"
@@ -81,7 +80,6 @@ settings() { #功能设置
sniffer=OFF
fi
setconfig sniffer $sniffer
settings
;;
6)
if [ -n "$(pidof CrashCore)" ]; then
@@ -95,11 +93,9 @@ settings() { #功能设置
else
set_adv_config
fi
settings
;;
8)
set_ipv6
settings
;;
9)
echo "-----------------------------------------------"
@@ -135,8 +131,11 @@ settings() { #功能设置
;;
*)
errornum
sleep 1
break
;;
esac
done
}
set_redir_mod() { #路由模式设置