XKeen SmartRoute v1.2.1
Быстрый фикс: на живом роутере, поставленном с нуля прямо этим install.sh,
обнаружились два независимых бага, из-за которых стек не заработал сразу
после установки — оба воспроизведены и исправлены вживую в одной сессии.
Исправлено
-
rpcd-бэкенд LuCI-плагина не находилjq— в отличие от
lib/*.sh,luci.xkeen-smartrouteне прописывалPATHдо
Entware'овских/opt/sbin//opt/bin, аrpcdисполняет
script-protocol бэкенды с голым системнымPATH. Все ~100 прямых
вызововjqв файле (включаяwrap_array) падали с «not found», а
wrap_arrayэту ошибку проглатывал и отдавал пустой массив вместо
ошибки — «Подписок пока нет» (и то же для серверов/профилей/категорий)
в LuCI выглядело как отсутствие данных, хотя реальное состояние на
диске было корректным. Добавлен тот жеexport PATH, что уже был у
lib/common.sh, с той же причиной. -
Xray не запускался вообще после установки с нуля. Два независимых
бага в одном и том же блокеinstall.sh(«xkeen ещё не установлен»),
пропускаемом при повторном/незавершённом запуске — та же категория, что
и три бага переустановки, найденные 24.08, просто на других шагах:- Неймификация
02_transport.json(устаревший глобальный формат
transport, который новый Xray-core уже не поддерживает — «Global
transport config has been removed») не происходила, и Xray отказывал
в старте на валидации конфига. - Создание пользователя
xkeen(нуженS24xray'омуsu) тоже не
происходило —suпадал с «No passwd entry for user 'xkeen'», Xray
не запускался вообще, а это маскировалось под ранее известную гонку
чтения-confdir(0 из 10 файлов вместо обычного «одного потерянного»).
Оба шага (плюс переустановка Entware-сборки Xray) вынесены из
одноразового блока в секцию, которая выполняется при каждом запуске
install.sh— как раньше уже сделали для00_api.smartroute.json.
Заодноlib/common.sh(_sr_xray_validate) теперь сам проверяет и
чинит оба состояния при каждом рестарте Xray — защита не только на
момент установки, но и на всё время работы системы. - Неймификация