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.
This commit is contained in:
+9
-1
@@ -23,7 +23,15 @@ print_yellow(){ echo -e "${YELLOW}$1${NC}"; }
|
||||
print_cyan() { echo -e "${CYAN}$1${NC}"; }
|
||||
|
||||
# Detect package manager
|
||||
detect_distro() {
|
||||
check_root() {
|
||||
if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
|
||||
print_red "[!] This script must be run as root (or with sudo)"
|
||||
echo " sudo $0"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
detect_distro() {
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
echo "$ID"
|
||||
|
||||
Reference in New Issue
Block a user