Compare commits

...

16 Commits

Author SHA1 Message Date
Christian König
304b2d05b1 Use adlist instead of vw_adlist
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-01-03 21:40:28 +01:00
Christian König
1c28ad6f00 Skipp building index if no enabled adlists are present
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-01-03 21:34:37 +01:00
WaLLy3K
5bd7cc9c9d Replace which with command -v (#4499)
Signed-off-by: WaLLy3K WaLLy3K@users.noreply.github.com
2022-01-01 18:02:20 +00:00
DL6ER
886f0c7df3 Merge pull request #4485 from pi-hole/tweak/web_status
Return the port FTL is listening on in pihole status function
2021-12-29 11:13:12 +01:00
Christian König
3989cc19e9 Remove double text output
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-12-28 19:55:42 +01:00
Christian König
bcb59159ed Analyse port also on ports other than 53
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-12-28 19:52:11 +01:00
Christian König
2b52f92647 Inlcude port also in cli output
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-12-28 19:36:32 +01:00
Matthew Nickson
71ed842dfd Fixed path to 404 file when using custom.php (#4488)
Signed-off-by: Computroniks <mnickson@sidingsmedia.com>
2021-12-28 19:32:06 +01:00
Christian König
f45248df80 Use FTL's new dns-port API endpoint
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-12-28 13:42:19 +01:00
Christian König
5729f64ddc Fix missing fi
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-12-28 12:21:31 +01:00
Christian König
2a869419b4 Add netcat to dependencies
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-12-28 12:18:39 +01:00
yubiuser
4a2f4c1bce Fix indention_2
Co-authored-by: DL6ER <DL6ER@users.noreply.github.com>
2021-12-28 12:11:46 +01:00
yubiuser
5ef731fc57 Fix indention
Co-authored-by: DL6ER <DL6ER@users.noreply.github.com>
2021-12-28 12:11:26 +01:00
Christian König
71ebd64f4e mend
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-12-26 18:13:14 +01:00
Christian König
9f0e0dbd37 Fix analyse ports
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-12-26 18:10:36 +01:00
Christian König
ef30a85afb Include port in status function
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-12-26 17:10:48 +01:00
3 changed files with 49 additions and 28 deletions

View File

@@ -287,7 +287,7 @@ package_manager_detect() {
# Packages required to run this install script (stored as an array)
INSTALLER_DEPS=(git iproute2 whiptail ca-certificates)
# Packages required to run Pi-hole (stored as an array)
PIHOLE_DEPS=(cron curl iputils-ping lsof psmisc sudo unzip idn2 sqlite3 libcap2-bin dns-root-data libcap2)
PIHOLE_DEPS=(cron curl iputils-ping lsof psmisc sudo unzip idn2 sqlite3 libcap2-bin dns-root-data libcap2 netcat)
# Packages required for the Web admin interface (stored as an array)
# It's useful to separate this from Pi-hole, since the two repos are also setup separately
PIHOLE_WEB_DEPS=(lighttpd "${phpVer}-common" "${phpVer}-cgi" "${phpVer}-sqlite3" "${phpVer}-xml" "${phpVer}-intl")
@@ -332,7 +332,7 @@ package_manager_detect() {
PKG_COUNT="${PKG_MANAGER} check-update | egrep '(.i686|.x86|.noarch|.arm|.src)' | wc -l"
OS_CHECK_DEPS=(grep bind-utils)
INSTALLER_DEPS=(git iproute newt procps-ng which chkconfig ca-certificates)
PIHOLE_DEPS=(cronie curl findutils sudo unzip libidn2 psmisc sqlite libcap lsof)
PIHOLE_DEPS=(cronie curl findutils sudo unzip libidn2 psmisc sqlite libcap lsof nmap-ncat)
PIHOLE_WEB_DEPS=(lighttpd lighttpd-fastcgi php-common php-cli php-pdo php-xml php-json php-intl)
LIGHTTPD_USER="lighttpd"
LIGHTTPD_GROUP="lighttpd"
@@ -1334,7 +1334,7 @@ installConfigs() {
chmod 644 /etc/lighttpd/external.conf
# If there is a custom block page in the html/pihole directory, replace 404 handler in lighttpd config
if [[ -f "${PI_HOLE_BLOCKPAGE_DIR}/custom.php" ]]; then
sed -i 's/^\(server\.error-handler-404\s*=\s*\).*$/\1"pihole\/custom\.php"/' "${lighttpdConfig}"
sed -i 's/^\(server\.error-handler-404\s*=\s*\).*$/\1"\/pihole\/custom\.php"/' "${lighttpdConfig}"
fi
# Make the directories if they do not exist and set the owners
mkdir -p /run/lighttpd
@@ -2277,7 +2277,7 @@ FTLcheckUpdate() {
printf " %b Checking for existing FTL binary...\\n" "${INFO}"
local ftlLoc
ftlLoc=$(which pihole-FTL 2>/dev/null)
ftlLoc=$(command -v pihole-FTL 2>/dev/null)
local ftlBranch
@@ -2315,7 +2315,7 @@ FTLcheckUpdate() {
# We already have a pihole-FTL binary downloaded.
# Alt branches don't have a tagged version against them, so just confirm the checksum of the local vs remote to decide whether we download or not
remoteSha1=$(curl -sSL --fail "https://ftl.pi-hole.net/${ftlBranch}/${binary}.sha1" | cut -d ' ' -f 1)
localSha1=$(sha1sum "$(which pihole-FTL)" | cut -d ' ' -f 1)
localSha1=$(sha1sum "$(command -v pihole-FTL)" | cut -d ' ' -f 1)
if [[ "${remoteSha1}" != "${localSha1}" ]]; then
printf " %b Checksums do not match, downloading from ftl.pi-hole.net.\\n" "${INFO}"
@@ -2345,7 +2345,7 @@ FTLcheckUpdate() {
printf " %b Latest FTL Binary already installed (%s). Confirming Checksum...\\n" "${INFO}" "${FTLlatesttag}"
remoteSha1=$(curl -sSL --fail "https://github.com/pi-hole/FTL/releases/download/${FTLversion%$'\r'}/${binary}.sha1" | cut -d ' ' -f 1)
localSha1=$(sha1sum "$(which pihole-FTL)" | cut -d ' ' -f 1)
localSha1=$(sha1sum "$(command -v pihole-FTL)" | cut -d ' ' -f 1)
if [[ "${remoteSha1}" != "${localSha1}" ]]; then
printf " %b Corruption detected...\\n" "${INFO}"

View File

@@ -85,19 +85,27 @@ generate_gravity_database() {
# Copy data from old to new database file and swap them
gravity_swap_databases() {
local str copyGravity
str="Building tree"
echo -ne " ${INFO} ${str}..."
local str copyGravity enabled_adlists
# The index is intentionally not UNIQUE as poor quality adlists may contain domains more than once
output=$( { sqlite3 "${gravityTEMPfile}" "CREATE INDEX idx_gravity ON gravity (domain, adlist_id);"; } 2>&1 )
status="$?"
# Only build an index if there are enabled adlists
enabled_adlists="$(sqlite3 "${gravityTEMPfile}" "Select Count(id) from adlist where enabled=1;")"
if [[ enabled_adlists -ge 1 ]]; then
str="Building tree"
echo -ne " ${INFO} ${str}..."
if [[ "${status}" -ne 0 ]]; then
echo -e "\\n ${CROSS} Unable to build gravity tree in ${gravityTEMPfile}\\n ${output}"
return 1
# The index is intentionally not UNIQUE as poor quality adlists may contain domains more than once
output=$( { sqlite3 "${gravityTEMPfile}" "CREATE INDEX idx_gravity ON gravity (domain, adlist_id);"; } 2>&1 )
status="$?"
if [[ "${status}" -ne 0 ]]; then
echo -e "\\n ${CROSS} Unable to build gravity tree in ${gravityTEMPfile}\\n ${output}"
return 1
fi
echo -e "${OVER} ${TICK} ${str}"
else
str="No enabled adlists. Skipping building tree"
echo -ne " ${INFO} ${str}...\\n"
fi
echo -e "${OVER} ${TICK} ${str}"
str="Swapping databases"
echo -ne " ${INFO} ${str}..."

37
pihole
View File

@@ -285,7 +285,6 @@ Options:
analyze_ports() {
# FTL is listening at least on at least one port when this
# function is getting called
echo -e " ${TICK} DNS service is listening"
# Check individual address family/protocol combinations
# For a healthy Pi-hole, they should all be up (nothing printed)
if grep -q "IPv4.*UDP" <<< "${1}"; then
@@ -312,19 +311,32 @@ analyze_ports() {
}
statusFunc() {
# Determine if there is a pihole service is listening on port 53
local listening
listening="$(lsof -Pni:53)"
if grep -q "pihole" <<< "${listening}"; then
if [[ "${1}" != "web" ]]; then
analyze_ports "${listening}"
fi
else
# Determine if there is pihole-FTL service is listening
local listening pid port
pid="$(getFTLPID)"
if [[ "$pid" -eq "-1" ]]; then
case "${1}" in
"web") echo "-1";;
*) echo -e " ${CROSS} DNS service is NOT listening";;
*) echo -e " ${CROSS} DNS service is NOT running";;
esac
return 0
else
#get the port pihole-FTL is listening on by using FTL's telnet API
port="$(echo ">dns-port >quit" | nc 127.0.0.1 4711)"
listening="$(lsof -Pni:${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 "${listening}"
fi
fi
fi
# Determine if Pi-hole's blocking is enabled
@@ -337,18 +349,19 @@ statusFunc() {
elif grep -q "BLOCKING_ENABLED=true" /etc/pihole/setupVars.conf; then
# Configs are set
case "${1}" in
"web") echo 1;;
"web") echo "$port";;
*) echo -e " ${TICK} Pi-hole blocking is enabled";;
esac
else
# No configs were found
case "${1}" in
"web") echo 99;;
"web") echo -2;;
*) echo -e " ${INFO} Pi-hole blocking will be enabled";;
esac
# Enable blocking
"${PI_HOLE_BIN_DIR}"/pihole enable
fi
}
tailFunc() {