From 7c6410d587e05aa779b12271d5d8f4dc113ae056 Mon Sep 17 00:00:00 2001 From: xyzmean <163691714+xyzmean@users.noreply.github.com> Date: Wed, 23 Sep 2026 22:41:25 +0300 Subject: [PATCH] =?UTF-8?q?steer:=20=D0=B6=D0=B8=D0=B2=D1=8B=D0=B5=20?= =?UTF-8?q?=D1=82=D1=83=D0=BD=D0=BD=D0=B5=D0=BB=D0=B8=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D0=BA=D0=B0=D0=BD=D0=B8=D1=80?= =?UTF-8?q?=D1=83=D1=8E=D1=82=D1=81=D1=8F=20=D0=BD=D0=B0=20=D0=BA=D0=B0?= =?UTF-8?q?=D0=B6=D0=B4=D0=BE=D0=BC=20=C2=AB=D0=9F=D1=80=D0=B8=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=82=D1=8C=C2=BB,=20=D0=B0=D0=B2=D1=82=D0=BE?= =?UTF-8?q?=D0=BE=D0=B1=D1=85=D0=BE=D0=B4=20=D0=BD=D0=B5=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D1=82=20=D0=B8=D1=85=20?= =?UTF-8?q?=D0=B4=D0=B2=D0=B0=D0=B6=D0=B4=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Живой туннель считался негодным, если его колония совпала с соседней, и на каждом применении правил его заново сканировали и переподключали — хотя такую колонию и выбрала разведка, когда другой не нашлось. Автообход вдобавок звал подъём туннелей второй раз через _st_apply, сразу после своего. Развести туннели по колониям заново — «Сменить точки входа». --- ZapretManager_LuCI.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ZapretManager_LuCI.sh b/ZapretManager_LuCI.sh index eb1160d..e5c0792 100644 --- a/ZapretManager_LuCI.sh +++ b/ZapretManager_LuCI.sh @@ -5314,9 +5314,10 @@ _st_warp_up() { # [repick] peer="$(_st_with "$n" _st_warp_field PublicKey)" _st_warp_ready_if "$i" || { _rb_warn "WARP $n: устройство не поднялось"; continue; } got="" - # Живой туннель с прошлого раза не трогаем, если колония у него своя. - if [ "$repick" != repick ] && _st_warp_alive_if "$i" && c="$(_st_colo_of "$i")" && - case " $busy " in *" $c "*) false ;; *) true ;; esac; then + # Живой туннель с прошлого раза не трогаем — даже если колония совпала с соседом: её + # выбрала разведка, когда другой не нашлось, и пересканировать его на каждом «Применить» + # значило бы рвать соединения ради того же результата. Развести заново — «Сменить точки входа». + if [ "$repick" != repick ] && _st_warp_alive_if "$i" && c="$(_st_colo_of "$i")"; then got="$(uci -q get "network.${i}_peer.endpoint_host") $(uci -q get "network.${i}_peer.endpoint_port") $c" _rb_say "WARP $n работает: колония $c" else @@ -6812,7 +6813,8 @@ do_redbtn_run() { done if [ -n "$warp_ids" ]; then _rb_phase steer - _st_apply || _rb_warn "steer не принял правила — загляните на страницу steer" + # Туннели только что подняты и проверены — второй раз не поднимаем. + _st_apply tunnel_ready || _rb_warn "steer не принял правила — загляните на страницу steer" fi else for id in $failed; do _rb_result_write "$id" none; done