diff --git a/.env.example b/.env.example old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/PROJECT.md b/PROJECT.md old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/install_nfqws.sh b/install_nfqws.sh index 39d398e..2c27ca6 100755 --- a/install_nfqws.sh +++ b/install_nfqws.sh @@ -114,21 +114,36 @@ if [ ! -f "$BUILD_DIR/zapret/nfq/nfqws" ]; then fi # Verify the binary actually runs (catch segfaults early) -if ! "$BUILD_DIR/zapret/nfq/nfqws" --help >/dev/null 2>&1; then - echo "[!] nfqws segfaults with current flags. Rebuilding without strip..." +if ! "$BUILD_DIR/zapret/nfq/nfqws" --help > /dev/null 2>&1; then + echo "[!] nfqws segfaults with current flags. Rebuilding with -O0 (no optimizations)..." + sed -i 's/-Os/-O0/g' nfq/Makefile 2>/dev/null || true sed -E -i 's/(^| )-s($| )/\1\2/g' nfq/Makefile 2>/dev/null || true make -C nfq clean && make -C nfq if [ ! -f "$BUILD_DIR/zapret/nfq/nfqws" ]; then echo "[!] nfqws binary not found after rebuild" exit 1 fi - if ! "$BUILD_DIR/zapret/nfq/nfqws" --help >/dev/null 2>&1; then - echo "[!] nfqws still segfaults. Aborting." - exit 1 + if ! "$BUILD_DIR/zapret/nfq/nfqws" --help > /dev/null 2>&1; then + echo "[!] nfqws still segfaults with -O0. Last attempt: disable LTO + gc-sections..." + make -C nfq clean && CC=gcc CFLAGS="-std=gnu99 -O0 -g" LDFLAGS="" LIBS_LINUX="-lz -lnetfilter_queue -lnfnetlink -lmnl" make -C nfq + if [ ! -f "$BUILD_DIR/zapret/nfq/nfqws" ]; then + echo "[!] nfqws binary not found after rebuild" + exit 1 + fi + if ! "$BUILD_DIR/zapret/nfq/nfqws" --help > /dev/null 2>&1; then + echo "[!] nfqws still segfaults. Aborting." + exit 1 + fi fi fi mkdir -p "$BIN_DIR" + +# Fix: if previous runs created bin/nfqws as a directory, remove it +if [[ -d "$BIN_DIR/nfqws" ]]; then + rm -rf "$BIN_DIR/nfqws" +fi + cp "$BUILD_DIR/zapret/nfq/nfqws" "$BIN_DIR/" chmod +x "$BIN_DIR/nfqws" diff --git a/lib/functions.sh b/lib/functions.sh index d2e37aa..08a4ba2 100755 --- a/lib/functions.sh +++ b/lib/functions.sh @@ -112,8 +112,9 @@ describe_strategy() { esac } +# Verify the binary actually runs (catches segfaults/missing deps) check_nfqws() { - if [[ ! -x "$BIN_DIR/nfqws" ]]; then + if [[ ! -f "$BIN_DIR/nfqws" ]] || [[ ! -x "$BIN_DIR/nfqws" ]]; then echo "" print_red "ERROR: nfqws binary not found!" echo "" @@ -122,8 +123,9 @@ check_nfqws() { echo "" return 1 fi - # Verify the binary actually runs (catches segfaults/missing deps) - if ! "$BIN_DIR/nfqws" --help >/dev/null 2>&1; then + # Verify the binary actually runs (catches segfaults/missing deps). + # Use --version because --help exits with code 1 in zapret. + if ! "$BIN_DIR/nfqws" --version >/dev/null 2>&1; then echo "" print_red "ERROR: nfqws binary exists but does not run (segfault? missing deps?)" echo "" diff --git a/lists/ipset-exclude.txt b/lists/ipset-exclude.txt old mode 100644 new mode 100755 index 805f6a9..7e05757 --- a/lists/ipset-exclude.txt +++ b/lists/ipset-exclude.txt @@ -8,4 +8,4 @@ 100.64.0.0/10 ::1 fc00::/7 -fe80::/10 +fe80::/10 \ No newline at end of file diff --git a/lists/list-google.txt b/lists/list-google.txt old mode 100644 new mode 100755