7 Commits

Author SHA1 Message Date
Zapret Bot
33ce39d354 fix(autotest): remove set -e that killed script on ((i++)); add full summary report with working+failed strategies; fix version norm + headless xdg-open 2026-05-11 20:48:14 +04:00
Auto Fix
3c80e67ab4 fix(autotest): stop running zapret.service before testing to free NFQUEUE 2026-05-11 17:45:12 +04:00
Auto Fix
e6551f8954 feat(autotest): --list-all mode; fix GAME placeholders; fix bin refs; docs: new workflow 2026-05-11 17:38:56 +04:00
OpenCode Agent
62ec6c5749 fix(core): critical fixes for service menu, autotest, strategy runner, dependencies
- service.sh: split service_remove into internal (no prompts) and interactive
  versions to prevent 'eternal wait' when installing new strategy.
  Install now calls service_remove_internal > /dev/null instead of service_remove.
  Also filter strategy list to general*.sh only to avoid clutter.
  Systemd ExecStart now points to run_strategy.sh <name> consistently.

- run_strategy.sh: add SIGTERM/SIGINT trap cleanup_strategy() that kills nfqws
  and cleans up firewall. Prevents stale nfqws/firewall rules after autotest kill.
  Also handles nfqws exit gracefully with final cleanup.

- autotest.sh: rewritten to test strategies by config name (not wrapper filename).
  Stop now sends SIGTERM to wrapper (which triggers trap cleanup) instead of
  bare kill. Added extra sleep after stop to let trap fire.
  Auto-install ExecStart fixed to run_strategy.sh <strategy>.

- setup.sh: added libmnl-dev and zlib1g-dev to Ubuntu/Debian dependency install
  to prevent build failures (missing libmnl/libmnl.h and zlib.h).

- general*.sh: removed UTF-8 BOM (0xEF 0xBB 0xBF) that caused 'exec format error'
  when running scripts on Linux. All 19 wrappers cleaned.

- ensure_wrappers.sh: always rewrite wrappers to ensure no stale BOM or paths.

Fixes: eternal wait on menu option 1, nfqws build failure, stale processes after test.
2026-05-10 22:47:48 +04:00
OpenCode Agent
29b9f8caa5 fix: исправления ошибок установки и работы (7 багов)
1. fix(install_nfqws): добавлены libmnl-dev и zlib1g-dev для всех дистрибутивов
   - Ubuntu/Debian: libmnl-dev zlib1g-dev
   - Arch: libmnl zlib
   - Fedora: libmnl-devel zlib-devel
   - Alpine: libmnl-dev zlib-dev
   Исправляет fatal error: libmnl/libmnl.h и zlib.h при сборке nfqws.

2. fix(test_zapret): исправлен вывод результатов теста
   - было: Results: / passed (всегда 1/1)
   - стало: Results: / passed (реальные цифры)

3. fix(autotest): cleanup_firewall перед каждым тестом стратегии
   - Убирает остатки iptables/nftables от предыдущего теста

4. fix(install): корректная обработка exit 2 от sync_from_upstream.sh
   - exit 2 = успешный sync + флаг rebuild, не ошибка
   - Теперь не пишет '[!] Sync failed' при нормальном обновлении

5. fix(service): убран рекурсивный вызов bash $0 remove_services
   - Используется прямой вызов функции service_remove()

6. fix(update): корректная запись версии в .service/version.txt
   - Убран префикс LOCAL_VERSION= из записи
   - Добавлена очистка кавычек через sed/tr

7. fix(service): проверка $DISPLAY перед xdg-open в check_for_updates
   - Предотвращает ошибки 'cannot open display' на headless/SSH
2026-05-10 18:03:40 +04:00
OpenCode Agent
c6d843bd23 fix: critical nfqws startup failures + root-check + strategy bugs
Fixed the following critical issues that prevented zapret from working:

1. strategies/*.conf: Remove --dpi-desync-fake-discord/--dpi-desync-fake-stun
   These are Windows winws.exe parameters that do NOT exist in Linux nfqws.
   nfqws immediately exited with 'unrecognized option', causing the
   infamous 'error 0000' / all strategies failing in autotest.

2. run_strategy.sh: Remove 'set -e' that broke on SIGTERM and empty arrays.
   Remove useless service.sh sub-command calls (status_zapret/check_updates/
   load_game_filter/load_user_lists) that did nothing and could fork bomb.
   Add root check with clear 'sudo ' message.

3. autotest.sh: Fix typo '2&1' -> '2>&1' (bash parse error on cleanup).
   Remove redundant 'sudo' when already root. Properly kill strategy wrapper
   PID before cleanup_firewall to avoid nfqws orphan processes.

4. service.sh: Add root check at main() entry. Remove nested 'sudo' inside
   already-root scripts (systemctl cp/daemon-reload/...). Fix recursive
   'bash  remove_services' -> call service_remove directly.

5. lib/functions.sh: Fix stray space before detect_distro(). Add check_root()
   helper for all scripts. Add missing fake-bin warning in check_nfqws().

6. setup.sh / install_nfqws.sh / install.sh: Add root check. Remove nested
   'sudo' inside package manager calls. Fix EUID portability (use id -u fallback).

26 files changed. All 19 strategy configs now produce valid nfqws arguments.
2026-05-10 17:33:30 +04:00
Stitch505
80e0a116e1 Initial commit: zapret-discord-youtube-linux v1.9.8c-linux 2026-05-10 19:06:04 +04:00