diff --git a/blockcheck.sh b/blockcheck.sh index ad47fd8..39d84c3 100755 --- a/blockcheck.sh +++ b/blockcheck.sh @@ -348,6 +348,26 @@ check_system() echo firewall type is $FWTYPE } +zp_already_running() +{ + case "$UNAME" in + CYGWIN) + win_process_exists $PKTWSD || win_process_exists goodbyedpi + ;; + *) + process_exists $PKTWSD || process_exists tpws + esac +} +check_already() +{ + echo \* checking already running zapret processes + if zp_already_running; then + echo "!!! WARNING. some dpi bypass processes already running !!!" + echo "!!! WARNING. blockcheck requires all DPI bypass methods disabled !!!" + echo "!!! WARNING. pls stop all dpi bypass instances that may interfere with blockcheck !!!" + fi +} + freebsd_module_loaded() { # $1 - module name @@ -885,17 +905,17 @@ tpws_curl_test() # $1 - test function # $2 - domain # $3,$4,$5, ... - tpws params - echo - checking tpws $3 $4 $5 $6 $7 $8 $9 $TPWS_EXTRA + echo - checking tpws $3 $4 $5 $6 $7 $8 $9 $TPWS_EXTRA "$TPWS_EXTRA_1" "$TPWS_EXTRA_2" "$TPWS_EXTRA_3" "$TPWS_EXTRA_4" "$TPWS_EXTRA_5" "$TPWS_EXTRA_6" "$TPWS_EXTRA_7" "$TPWS_EXTRA_8" "$TPWS_EXTRA_9" local ALL_PROXY="socks5://127.0.0.1:$SOCKS_PORT" - ws_curl_test tpws_start "$@" $TPWS_EXTRA + ws_curl_test tpws_start "$@" $TPWS_EXTRA "$TPWS_EXTRA_1" "$TPWS_EXTRA_2" "$TPWS_EXTRA_3" "$TPWS_EXTRA_4" "$TPWS_EXTRA_5" "$TPWS_EXTRA_6" "$TPWS_EXTRA_7" "$TPWS_EXTRA_8" "$TPWS_EXTRA_9" } pktws_curl_test() { # $1 - test function # $2 - domain # $3,$4,$5, ... - nfqws/dvtws params - echo - checking $PKTWSD ${WF:+$WF }$3 $4 $5 $6 $7 $8 $9 $PKTWS_EXTRA - ws_curl_test pktws_start "$@" $PKTWS_EXTRA + echo - checking $PKTWSD ${WF:+$WF }$3 $4 $5 $6 $7 $8 $9 $PKTWS_EXTRA "$PKTWS_EXTRA_1" "$PKTWS_EXTRA_2" "$PKTWS_EXTRA_3" "$PKTWS_EXTRA_4" "$PKTWS_EXTRA_5" "$PKTWS_EXTRA_6" "$PKTWS_EXTRA_7" "$PKTWS_EXTRA_8" "$PKTWS_EXTRA_9" + ws_curl_test pktws_start "$@" $PKTWS_EXTRA "$PKTWS_EXTRA_1" "$PKTWS_EXTRA_2" "$PKTWS_EXTRA_3" "$PKTWS_EXTRA_4" "$PKTWS_EXTRA_5" "$PKTWS_EXTRA_6" "$PKTWS_EXTRA_7" "$PKTWS_EXTRA_8" "$PKTWS_EXTRA_9" } xxxws_curl_test_update() { @@ -1796,6 +1816,7 @@ sigsilent() fsleep_setup fix_sbin_path check_system +check_already [ "$UNAME" = CYGWIN ] || require_root check_prerequisites trap sigint_cleanup INT diff --git a/common/base.sh b/common/base.sh index cdfc7d9..7c772ef 100644 --- a/common/base.sh +++ b/common/base.sh @@ -313,6 +313,22 @@ shell_name() } } +process_exists() +{ + if exists pgrep; then + pgrep ^$1$ >/dev/null + elif exists pidof; then + pidof $1 >/dev/null + else + return 1 + fi +} + +win_process_exists() +{ + tasklist /NH /FI "IMAGENAME eq ${1}.exe" | grep -q "^${1}.exe" +} + std_ports() { HTTP_PORTS=${HTTP_PORTS:-80} diff --git a/init.d/openwrt/zapret b/init.d/openwrt/zapret index 208dc67..46cd10b 100755 --- a/init.d/openwrt/zapret +++ b/init.d/openwrt/zapret @@ -185,7 +185,8 @@ start_daemons() } stop_daemons() { - procd_kill "$(basename ${basescript:-$initscript})" "$1" + local svc="$(basename ${basescript:-$initscript})" + procd_running "$svc" "$1" && procd_kill "$svc" "$1" } restart_daemons() {