refactor(set_ipv6): replace recursion with while loop

This commit is contained in:
Sofia
2026-01-11 01:45:10 +08:00
committed by GitHub
parent 093fffee05
commit da11c319b8

View File

@@ -489,36 +489,42 @@ set_firewall_vm(){
setconfig vm_redir $vm_redir setconfig vm_redir $vm_redir
setconfig vm_ipv4 "'$vm_ipv4'" setconfig vm_ipv4 "'$vm_ipv4'"
} }
set_ipv6() { #ipv6设置
[ -z "$ipv6_redir" ] && ipv6_redir=OFF # ipv6设置
[ -z "$ipv6_dns" ] && ipv6_dns=ON set_ipv6() {
echo "-----------------------------------------------" while true; do
echo -e " 1 ipv6透明路由: \033[36m$ipv6_redir\033[0m ——劫持ipv6流量" [ -z "$ipv6_redir" ] && ipv6_redir=OFF
[ "$disoverride" != "1" ] && echo -e " 2 ipv6-DNS解析: \033[36m$ipv6_dns\033[0m ——决定内置DNS是否返回ipv6地址" [ -z "$ipv6_dns" ] && ipv6_dns=ON
echo -e " 0 返回上级菜单" echo "-----------------------------------------------"
echo "-----------------------------------------------" echo -e " 1 ipv6透明路由: \033[36m$ipv6_redir\033[0m ——劫持ipv6流量"
read -p "请输入对应数字 > " num [ "$disoverride" != "1" ] && echo -e " 2 ipv6-DNS解析: \033[36m$ipv6_dns\033[0m ——决定内置DNS是否返回ipv6地址"
case "$num" in echo -e " 0 返回上级菜单"
0) ;; echo "-----------------------------------------------"
1) read -p "请输入对应数字 > " num
if [ "$ipv6_redir" = "OFF" ]; then case "$num" in
ipv6_support=ON "" | 0)
ipv6_redir=ON break
sleep 2 ;;
else 1)
ipv6_redir=OFF if [ "$ipv6_redir" = "OFF" ]; then
fi ipv6_support=ON
setconfig ipv6_redir $ipv6_redir ipv6_redir=ON
setconfig ipv6_support $ipv6_support sleep 2
set_ipv6 else
;; ipv6_redir=OFF
2) fi
[ "$ipv6_dns" = "OFF" ] && ipv6_dns=ON || ipv6_dns=OFF setconfig ipv6_redir $ipv6_redir
setconfig ipv6_dns $ipv6_dns setconfig ipv6_support $ipv6_support
set_ipv6 ;;
;; 2)
*) [ "$ipv6_dns" = "OFF" ] && ipv6_dns=ON || ipv6_dns=OFF
errornum setconfig ipv6_dns $ipv6_dns
;; ;;
esac *)
errornum
sleep 1
break
;;
esac
done
} }