Skip to content

v1.37.2

Choose a tag to compare

@varyen varyen released this 29 Jul 09:17

detour v1.37.2

Исправлено

  • Лог-мост плодил процессы при каждом перезапуске. /proc/<pid>/comm ядро обрезает до 15 символов, поэтому наши же подоболочки видны там как detour-logbridg, а whitelist в kill_tree сверялся с полным 16-символьным detour-logbridge — совпадения не было никогда. При рестарте умирали только tail и logger (их имена короткие), а подоболочка-follow выживала и через sleep 5 поднимала себе новую пару; одновременно новый run добавлял ещё четыре.

    На референсном роутере за 1 день 22 часа аптайма накопилось 48 tail + 48 logger + 49 подоболочек при 331 процессе всего. Теперь whitelist матчит обрезанное имя, а на старте добавлена зачистка по /proc: CHILDREN_FILE знает только текущее поколение, поэтому всё, что оставил после себя убитый по SIGKILL run, было для него невидимо навсегда.

    Замерено после фикса на живом GL-BE9300: 4/4/5 и не растёт через три перезапуска подряд, пересылка в syslog живая и ровно в одной копии.

  • Матричный фон не перекрашивался при смене темы. toggleTheme() сначала вешает на <html> класс с transition: background-color 0.25s, и только потом меняет data-theme. Наблюдатель срабатывал мгновенно и читал getComputedStyle(...).backgroundColor, который в этот момент возвращал ещё старый цвет — переход только начался. Цвета глифов берутся напрямую из атрибута, поэтому перекрашивались сразу, а фон оставался в прежней теме, причём навсегда: этот же цвет дальше использует затухающая заливка, и починить его мог только ресайз окна. Теперь читается токен --bg (кастомные свойства не анимируются, значение переключается мгновенно), с фолбэком на backgroundColor.

Кросс-платформенность

  • Фикс лог-моста — в общем detour-logbridge, обход /proc платформо-независим и приезжает на обе платформы. ⚠ Проверен на живом OpenWrt (GL-BE9300); на живом Keenetic не проверялся — как и весь Keenetic-путь этого скрипта с момента его появления.
  • Фикс темы — целиком в index.html, исполняется в браузере, одинаков на обеих платформах.

Packages

  • detour_1.37.2_all.ipk — OpenWrt / GL.iNet (BE9300, Flint).
  • detour-keenetic_1.37.2_all.ipk — Keenetic / Entware (mipsel).

Рядом с каждым пакетом лежит .ipk.sig (usign).