@ -1,4 +1,5 @@
#!/bin/bash
#!/bin/bash
# Pi-hole: A black hole for Internet advertisements
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
# Network-wide ad blocking via your own hardware.
@ -8,11 +9,11 @@
# This file is copyright under the latest version of the EUPL.
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
# Please see LICENSE file for your rights under this license.
colfile="/opt/pihole/COL_TABLE"
source ${colfile}
readonly PI_HOLE_SCRIPT_DIR="/opt/pihole"
readonly PI_HOLE_SCRIPT_DIR="/opt/pihole"
readonly wildcardlist="/etc/dnsmasq.d/03-pihole-wildcard.conf"
readonly wildcardlist="/etc/dnsmasq.d/03-pihole-wildcard.conf"
readonly colfile="${PI_HOLE_SCRIPT_DIR}/COL_TABLE"
source ${colfile}
# Must be root to use this tool
# Must be root to use this tool
if [[ ! $EUID -eq 0 ]];then
if [[ ! $EUID -eq 0 ]];then
@ -481,41 +482,41 @@ Options:
echo -e "${OVER} ${TICK} ${str}"
echo -e "${OVER} ${TICK} ${str}"
}
}
piholeStatus() {
statusFunc() {
if [[ "$(netstat -plnt | grep -c ':53 ')" -gt "0" ]]; then
local addnConfigs
if [[ "${1}" != "web" ]]; then
echo -e " ${TICK} DNS service is running"
# Determine if service is running on port 53
fi
if nc -z 127.0.0.1 53; then
[[ "${1}" != "web" ]] && echo -e " ${TICK} DNS service is running"
else
else
if [[ "${1}" == "web" ]]; then
case "${1}" in
echo "-1";
"web") echo "-1";;
else
*) echo -e " ${CROSS} DNS service is NOT running";;
echo -e " ${CROSS} DNS service is NOT running"
esac
fi
return 0
return
fi
fi
if [[ "$(grep -i "^#addn-hosts=/" /etc/dnsmasq.d/01-pihole.conf)" ]]; then
# Determine if any of Pi-hole's addn-hosts configs are commented out
# List is commented out
addnConfigs=$(grep -i "addn-hosts=/" /etc/dnsmasq.d/01-pihole.conf)
if [[ "${1}" == "web" ]]; then
echo 0;
if [[ "${addnConfigs}" =~ "#" ]]; then
else
# A config is commented out
echo -e " ${CROSS} Pi-hole blocking is Disabled";
case "${1}" in
fi
"web") echo 0;;
elif [[ "$(grep -i "^addn-hosts=/" /etc/dnsmasq.d/01-pihole.conf)" ]]; then
*) echo -e " ${CROSS} Pi-hole blocking is Disabled";;
# List set
esac
if [[ "${1}" == "web" ]]; then
elif [[ -n "${addnConfigs}" ]]; then
echo 1;
# Configs are set
else
case "${1}" in
echo -e " ${TICK} Pi-hole blocking is Enabled";
"web") echo 1;;
fi
*) echo -e " ${TICK} Pi-hole blocking is Enabled";;
esac
else
else
# Addn-host not found
# No configs were found
if [[ "${1}" == "web" ]]; then
case "${1}" in
echo 99
"web") echo 99;;
else
*) echo -e " ${INFO} No hosts file linked to dnsmasq, adding it in enabled state";;
echo -e " ${INFO} No hosts file linked to dnsmasq, adding it in enabled state"
esac
fi
# Add addn-host= to dnsmasq
# Add addn-host= to dnsmasq
echo "addn-hosts=/etc/pihole/gravity.list" >> /etc/dnsmasq.d/01-pihole.conf
echo "addn-hosts=/etc/pihole/gravity.list" >> /etc/dnsmasq.d/01-pihole.conf
restartDNS
restartDNS
@ -651,7 +652,7 @@ case "${1}" in
"uninstall" ) uninstallFunc;;
"uninstall" ) uninstallFunc;;
"enable" ) piholeEnable 1;;
"enable" ) piholeEnable 1;;
"disable" ) piholeEnable 0 "$2";;
"disable" ) piholeEnable 0 "$2";;
"status" ) piholeStatus "$2";;
"status" ) statusFunc "$2";;
"restartdns" ) restartDNS;;
"restartdns" ) restartDNS;;
"-a" | "admin" ) webpageFunc "$@";;
"-a" | "admin" ) webpageFunc "$@";;
"-t" | "tail" ) tailFunc;;
"-t" | "tail" ) tailFunc;;