From 69a909fc4cb3d061cc02649ab78ae055ef08fc67 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Wed, 11 Dec 2019 21:47:46 +0000 Subject: [PATCH] On modification of lists, we should send real-time signal 0 instead of SIGHUP. This also preserves the DNS cache of not-blocked domains. Signed-off-by: DL6ER --- advanced/Scripts/list.sh | 2 +- pihole | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/advanced/Scripts/list.sh b/advanced/Scripts/list.sh index c5bf5b2a..320d4ae8 100755 --- a/advanced/Scripts/list.sh +++ b/advanced/Scripts/list.sh @@ -257,5 +257,5 @@ echo "DONE" fi if [[ "${reload}" != false ]]; then - pihole restartdns reload + pihole restartdns reload-lists fi diff --git a/pihole b/pihole index f0195843..cc7e1b7c 100755 --- a/pihole +++ b/pihole @@ -105,17 +105,25 @@ restartDNS() { svcOption="${1:-restart}" # Determine if we should reload or restart - if [[ "${svcOption}" =~ "reload" ]]; then - # Reload has been requested + if [[ "${svcOption}" =~ "reload-lists" ]]; then + # Reloading of the lists has been requested + # Note: This will NOT re-read any *.conf files + # Note 2: We cannot use killall here as it does + # not know about real-time signals + svc="kill -SIGRTMIN $(pidof ${resolver})" + str="Reloading DNS lists" + elif [[ "${svcOption}" =~ "reload" ]]; then + # Reloading of the DNS cache has been requested # Note: This will NOT re-read any *.conf files svc="killall -s SIGHUP ${resolver}" + str="Flushing DNS cache" else # A full restart has been requested svc="service ${resolver} restart" + str="Restarting DNS server" fi # Print output to Terminal, but not to Web Admin - str="${svcOption^}ing DNS service" [[ -t 1 ]] && echo -ne " ${INFO} ${str}..." output=$( { ${svc}; } 2>&1 )