From 852f6b95f5d10847569c1c59453aeaac7a03cef4 Mon Sep 17 00:00:00 2001 From: "Thomas L. Kjeldsen" Date: Fri, 23 Aug 2019 19:49:13 +0200 Subject: [PATCH] Prevent "pihole disable $timeout" from messing up future state changes Signed-off-by: Thomas L. Kjeldsen --- advanced/Scripts/pihole-reenable.sh | 16 ++++++++++++++++ pihole | 5 +++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100755 advanced/Scripts/pihole-reenable.sh diff --git a/advanced/Scripts/pihole-reenable.sh b/advanced/Scripts/pihole-reenable.sh new file mode 100755 index 00000000..dbadc860 --- /dev/null +++ b/advanced/Scripts/pihole-reenable.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# Pi-hole: A black hole for Internet advertisements +# (c) 2019 Pi-hole, LLC (https://pi-hole.net) +# Network-wide ad blocking via your own hardware. +# +# Wrapper script to re-enable Pi-hole after a period of it being disabled. +# +# This script will be aborted by the `pihole enable` command using `killall`. +# As a consequence, the filename of this script is limited to max 15 characters +# and the script does not use `env`. +# +# This file is copyright under the latest version of the EUPL. +# Please see LICENSE file for your rights under this license. + +sleep "${1}" +pihole enable diff --git a/pihole b/pihole index 065fb385..b0ba8473 100755 --- a/pihole +++ b/pihole @@ -164,7 +164,7 @@ Time: local str="Disabling blocking for ${tt} seconds" echo -e " ${INFO} ${str}..." local str="Blocking will be re-enabled in ${tt} seconds" - nohup bash -c "sleep ${tt}; ${PI_HOLE_BIN_DIR}/pihole enable" /dev/null & + nohup "${PI_HOLE_SCRIPT_DIR}"/pihole-reenable.sh ${tt} /dev/null & else local error=true fi @@ -175,7 +175,7 @@ Time: echo -e " ${INFO} ${str}..." local str="Blocking will be re-enabled in ${tt} minutes" tt=$((${tt}*60)) - nohup bash -c "sleep ${tt}; ${PI_HOLE_BIN_DIR}/pihole enable" /dev/null & + nohup "${PI_HOLE_SCRIPT_DIR}"/pihole-reenable.sh ${tt} /dev/null & else local error=true fi @@ -197,6 +197,7 @@ Time: fi else # Enable Pi-hole + killall -q pihole-reenable if grep -cq "BLOCKING_ENABLED=true" "${setupVars}"; then echo -e " ${INFO} Blocking already enabled, nothing to do" exit 0