Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/pi-hole/pi-hole.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/pihole
diff options
context:
space:
mode:
authorChristian König <ckoenig@posteo.de>2022-07-26 15:38:03 +0300
committerChristian König <ckoenig@posteo.de>2022-07-26 15:38:03 +0300
commit7b77d991df712722ae48568e325c5a0bc3df1c65 (patch)
tree188561a37c989f948cb3630de021086280fc2710 /pihole
parentf59749b1c3aa3554b299099588f240cb6d44365e (diff)
Move FTL port and PID functions to utils.sh
Signed-off-by: Christian König <ckoenig@posteo.de>
Diffstat (limited to 'pihole')
-rwxr-xr-xpihole80
1 files changed, 35 insertions, 45 deletions
diff --git a/pihole b/pihole
index 35f6c07b..eb825965 100755
--- a/pihole
+++ b/pihole
@@ -16,7 +16,6 @@ readonly PI_HOLE_SCRIPT_DIR="/opt/pihole"
# error due to modifying a readonly variable.
setupVars="/etc/pihole/setupVars.conf"
PI_HOLE_BIN_DIR="/usr/local/bin"
-readonly FTL_PID_FILE="/run/pihole-FTL.pid"
readonly colfile="${PI_HOLE_SCRIPT_DIR}/COL_TABLE"
source "${colfile}"
@@ -101,25 +100,8 @@ versionFunc() {
exec "${PI_HOLE_SCRIPT_DIR}"/version.sh "$@"
}
-# Get PID of main pihole-FTL process
-getFTLPID() {
- local pid
-
- if [ -s "${FTL_PID_FILE}" ]; then
- # -s: FILE exists and has a size greater than zero
- pid="$(<"$FTL_PID_FILE")"
- # Exploit prevention: unset the variable if there is malicious content
- # Verify that the value read from the file is numeric
- [[ "$pid" =~ [^[:digit:]] ]] && unset pid
- fi
-
- # If FTL is not running, or the PID file contains malicious stuff, substitute
- # negative PID to signal this to the caller
- echo "${pid:=-1}"
-}
-
restartDNS() {
- local svcOption svc str output status pid icon
+ local svcOption svc str output status pid icon FTL_PID_FILE
svcOption="${1:-restart}"
# Determine if we should reload or restart
@@ -128,7 +110,11 @@ restartDNS() {
# Note 1: This will NOT re-read any *.conf files
# Note 2: We cannot use killall here as it does
# not know about real-time signals
- pid="$(getFTLPID)"
+
+ # get the current path to the pihole-FTL.pid
+ FTL_PID_FILE="$(getFTLPIDFile)"
+
+ pid="$(getFTLPID ${FTL_PID_FILE})"
if [[ "$pid" -eq "-1" ]]; then
svc="true"
str="FTL is not running"
@@ -141,7 +127,7 @@ restartDNS() {
elif [[ "${svcOption}" =~ "reload" ]]; then
# Reloading of the DNS cache has been requested
# Note: This will NOT re-read any *.conf files
- pid="$(getFTLPID)"
+ pid="$(getFTLPID ${FTL_PID_FILE})"
if [[ "$pid" -eq "-1" ]]; then
svc="true"
str="FTL is not running"
@@ -316,33 +302,37 @@ analyze_ports() {
}
statusFunc() {
- # Determine if there is pihole-FTL service is listening
- local pid port ftl_api_port
+ # Determine if there is pihole-FTL service is listening
+ local pid port ftl_api_port ftl_pid_file ftl_apiport_file
- pid="$(getFTLPID)"
- ftl_api_port="$(getFTLAPIPort)"
- if [[ "$pid" -eq "-1" ]]; then
- case "${1}" in
- "web") echo "-1";;
- *) echo -e " ${CROSS} DNS service is NOT running";;
- esac
- return 0
- else
- #get the DNS port pihole-FTL is listening on by using FTL's telnet API
- port="$(echo ">dns-port >quit" | nc 127.0.0.1 "$ftl_api_port")"
- if [[ "${port}" == "0" ]]; then
- case "${1}" in
- "web") echo "-1";;
- *) echo -e " ${CROSS} DNS service is NOT listening";;
- esac
- return 0
+ ftl_pid_file="$(getFTLPIDFile)"
+
+ pid="$(getFTLPID ${ftl_pid_file})"
+
+ ftl_apiport_file="${getFTLAPIPortFile}"
+ ftl_api_port="$(getFTLAPIPort ${ftl_apiport_file})"
+ if [[ "$pid" -eq "-1" ]]; then
+ case "${1}" in
+ "web") echo "-1";;
+ *) echo -e " ${CROSS} DNS service is NOT running";;
+ esac
+ return 0
else
- if [[ "${1}" != "web" ]]; then
- echo -e " ${TICK} FTL is listening on port ${port}"
- analyze_ports "${port}"
- fi
+ #get the DNS port pihole-FTL is listening on by using FTL's telnet API
+ port="$(echo ">dns-port >quit" | nc 127.0.0.1 "$ftl_api_port")"
+ if [[ "${port}" == "0" ]]; then
+ case "${1}" in
+ "web") echo "-1";;
+ *) echo -e " ${CROSS} DNS service is NOT listening";;
+ esac
+ return 0
+ else
+ if [[ "${1}" != "web" ]]; then
+ echo -e " ${TICK} FTL is listening on port ${port}"
+ analyze_ports "${port}"
+ fi
+ fi
fi
- fi
# Determine if Pi-hole's blocking is enabled
if grep -q "BLOCKING_ENABLED=false" /etc/pihole/setupVars.conf; then