Skip to content

XKeen SmartRoute v1.2.1

Choose a tag to compare

@github-actions github-actions released this 29 Aug 18:27
· 39 commits to master since this release

Быстрый фикс: на живом роутере, поставленном с нуля прямо этим 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 — защита не только на
    момент установки, но и на всё время работы системы.