mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-11-15 18:53:56 +00:00
variablize all files and directories. also put required files and folders into an arry so we can compare them in later functions by parsing through them
This commit is contained in:
parent
64171fa2a1
commit
b4f1fe08f0
1 changed files with 146 additions and 56 deletions
|
@ -19,31 +19,14 @@ set -o pipefail
|
||||||
#IFS=$'\n\t'
|
#IFS=$'\n\t'
|
||||||
|
|
||||||
######## GLOBAL VARS ########
|
######## GLOBAL VARS ########
|
||||||
SUPPORTED_OS=("Raspbian" "Ubuntu" "Fedora" "Debian" "CentOS")
|
# These variables would normally be next to the other files
|
||||||
|
# but we need them to be first in order to get the colors needed for the script output
|
||||||
VARSFILE="/etc/pihole/setupVars.conf"
|
PIHOLE_SCRIPTS_DIRECTORY="/opt/pihole"
|
||||||
DEBUG_LOG="/var/log/pihole_debug.log"
|
PIHOLE_COLTABLE_FILE="${PIHOLE_SCRIPTS_DIRECTORY}/COL_TABLE"
|
||||||
DNSMASQFILE="/etc/dnsmasq.conf"
|
|
||||||
DNSMASQCONFDIR="/etc/dnsmasq.d"
|
|
||||||
LIGHTTPDFILE="/etc/lighttpd/lighttpd.conf"
|
|
||||||
LIGHTTPDERRFILE="/var/log/lighttpd/error.log"
|
|
||||||
GRAVITYFILE="/etc/pihole/gravity.list"
|
|
||||||
WHITELISTFILE="/etc/pihole/whitelist.txt"
|
|
||||||
BLACKLISTFILE="/etc/pihole/blacklist.txt"
|
|
||||||
ADLISTFILE="/etc/pihole/adlists.list"
|
|
||||||
PIHOLELOG="/var/log/pihole.log"
|
|
||||||
PIHOLEGITDIR="/etc/.pihole/"
|
|
||||||
ADMINGITDIR="/var/www/html/admin/"
|
|
||||||
WHITELISTMATCHES="/tmp/whitelistmatches.list"
|
|
||||||
readonly FTLLOG="/var/log/pihole-FTL.log"
|
|
||||||
coltable=/opt/pihole/COL_TABLE
|
|
||||||
FTL_LOG="/var/log/pihole-FTL.log"
|
|
||||||
FTL_PID="/run/pihole-FTL.pid"
|
|
||||||
FTL_PORT="/run/pihole-FTL.port"
|
|
||||||
|
|
||||||
# These provide the colors we need for making the log more readable
|
# These provide the colors we need for making the log more readable
|
||||||
if [[ -f ${coltable} ]]; then
|
if [[ -f ${PIHOLE_COLTABLE_FILE} ]]; then
|
||||||
source ${coltable}
|
source ${PIHOLE_COLTABLE_FILE}
|
||||||
else
|
else
|
||||||
COL_NC='\e[0m' # No Color
|
COL_NC='\e[0m' # No Color
|
||||||
COL_YELLOW='\e[1;33m'
|
COL_YELLOW='\e[1;33m'
|
||||||
|
@ -56,7 +39,7 @@ else
|
||||||
OVER="\r\033[K"
|
OVER="\r\033[K"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# FAQ URLs
|
# FAQ URLs for use in showing the debug log
|
||||||
FAQ_UPDATE_PI_HOLE="${COL_CYAN}https://discourse.pi-hole.net/t/how-do-i-update-pi-hole/249${COL_NC}"
|
FAQ_UPDATE_PI_HOLE="${COL_CYAN}https://discourse.pi-hole.net/t/how-do-i-update-pi-hole/249${COL_NC}"
|
||||||
FAQ_CHECKOUT_COMMAND="${COL_CYAN}https://discourse.pi-hole.net/t/the-pihole-command-with-examples/738#checkout${COL_NC}"
|
FAQ_CHECKOUT_COMMAND="${COL_CYAN}https://discourse.pi-hole.net/t/the-pihole-command-with-examples/738#checkout${COL_NC}"
|
||||||
FAQ_HARDWARE_REQUIREMENTS="${COL_CYAN}https://discourse.pi-hole.net/t/hardware-software-requirements/273${COL_NC}"
|
FAQ_HARDWARE_REQUIREMENTS="${COL_CYAN}https://discourse.pi-hole.net/t/hardware-software-requirements/273${COL_NC}"
|
||||||
|
@ -64,16 +47,123 @@ FAQ_GATEWAY="${COL_CYAN}https://discourse.pi-hole.net/t/why-is-a-default-gateway
|
||||||
FAQ_ULA="${COL_CYAN}https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127${COL_NC}"
|
FAQ_ULA="${COL_CYAN}https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127${COL_NC}"
|
||||||
FAQ_FTL_COMPATIBILITY="${COL_CYAN}https://github.com/pi-hole/FTL#compatibility-list${COL_NC}"
|
FAQ_FTL_COMPATIBILITY="${COL_CYAN}https://github.com/pi-hole/FTL#compatibility-list${COL_NC}"
|
||||||
|
|
||||||
|
# Other URLs we may use
|
||||||
|
FORUMS_URL="${COL_CYAN}https://discourse.pi-hole.net${COL_NC}"
|
||||||
|
TRICORDER_CONTEST="${COL_CYAN}https://pi-hole.net/2016/11/07/crack-our-medical-tricorder-win-a-raspberry-pi-3/${COL_NC}"
|
||||||
|
|
||||||
|
# Port numbers used for uploading the debug log
|
||||||
|
TRICORDER_NC_PORT_NUMBER=9999
|
||||||
|
TRICORDER_SSL_PORT_NUMBER=9998
|
||||||
|
|
||||||
|
# Directories required by Pi-hole
|
||||||
|
# https://discourse.pi-hole.net/t/what-files-does-pi-hole-use/1684
|
||||||
|
CORE_GIT_DIRECTORY="/etc/.pihole"
|
||||||
|
CRON_D_DIRECTORY="/etc/cron.d"
|
||||||
|
DNSMASQ_D_DIRECTORY="/etc/dnsmasq.d"
|
||||||
|
PIHOLE_DIRECTORY="/etc/pihole"
|
||||||
|
PIHOLE_SCRIPTS_DIRECTORY="/opt/pihole"
|
||||||
|
BIN_DIRECTORY="/usr/local/bin"
|
||||||
|
RUN_DIRECTORY="/run"
|
||||||
|
LOG_DIRECTORY="/var/log"
|
||||||
|
WEB_SERVER_LOG_DIRECTORY="${LOG_DIRECTORY}/lighttpd"
|
||||||
|
WEB_SERVER_CONFIG_DIRECTORY="/etc/lighttpd"
|
||||||
|
HTML_DIRECTORY="/var/www/html"
|
||||||
|
WEB_GIT_DIRECTORY="${HTML_DIRECTORY}/admin"
|
||||||
|
BLOCK_PAGE_DIRECTORY="${HTML_DIRECTORY}/pihole"
|
||||||
|
|
||||||
|
# Files required by Pi-hole
|
||||||
|
# https://discourse.pi-hole.net/t/what-files-does-pi-hole-use/1684
|
||||||
|
PIHOLE_CRON_FILE="${CRON_D_DIRECTORY}/pihole"
|
||||||
|
|
||||||
|
PIHOLE_DNS_CONFIG_FILE="${DNSMASQ_D_DIRECTORY}/01-pihole.conf"
|
||||||
|
PIHOLE_DHCP_CONFIG_FILE="${DNSMASQ_D_DIRECTORY}/02-pihole-dhcp.conf"
|
||||||
|
PIHOLE_WILDCARD_CONFIG_FILE="${DNSMASQ_D_DIRECTORY}/03-wildcard.conf"
|
||||||
|
|
||||||
|
WEB_SERVER_CONFIG_FILE="${WEB_SERVER_CONFIG_DIRECTORY}/lighttpd.conf"
|
||||||
|
|
||||||
|
PIHOLE_DEFAULT_AD_LISTS="${PIHOLE_DIRECTORY}/adlists.default"
|
||||||
|
PIHOLE_USER_DEFINED_AD_LISTS="${PIHOLE_DIRECTORY}/adlists.list"
|
||||||
|
PIHOLE_BLACKLIST_FILE="${PIHOLE_DIRECTORY}/blacklist.txt"
|
||||||
|
PIHOLE_BLOCKLIST_FILE="${PIHOLE_DIRECTORY}/gravity.list"
|
||||||
|
PIHOLE_INSTALL_LOG_FILE="${PIHOLE_DIRECTORY}/install.log"
|
||||||
|
PIHOLE_RAW_BLOCKLIST_FILES=${PIHOLE_DIRECTORY}/list.*
|
||||||
|
PIHOLE_LOCAL_HOSTS_FILE="${PIHOLE_DIRECTORY}/local.list"
|
||||||
|
PIHOLE_LOGROTATE_FILE="${PIHOLE_DIRECTORY}/logrotate"
|
||||||
|
PIHOLE_SETUP_VARS_FILE="${PIHOLE_DIRECTORY}/setupVars.conf"
|
||||||
|
PIHOLE_WHITELIST_FILE="${PIHOLE_DIRECTORY}/whitelist.txt"
|
||||||
|
|
||||||
|
PIHOLE_COMMAND="${BIN_DIRECTORY}/pihole"
|
||||||
|
PIHOLE_COLTABLE_FILE="${BIN_DIRECTORY}/COL_TABLE"
|
||||||
|
|
||||||
|
FTL_PID="${RUN_DIRECTORY}/pihole-FTL.pid"
|
||||||
|
FTL_PORT="${RUN_DIRECTORY}/pihole-FTL.port"
|
||||||
|
|
||||||
|
PIHOLE_LOG="${LOG_DIRECTORY}/pihole.log"
|
||||||
|
PIHOLE_LOG_GZIPS=${LOG_DIRECTORY}/pihole.log.[0-9].*
|
||||||
|
PIHOLE_DEBUG_LOG="${LOG_DIRECTORY}/pihole_debug.log"
|
||||||
|
PIHOLE_FTL_LOG="${LOG_DIRECTORY}/pihole-FTL.log"
|
||||||
|
|
||||||
|
PIHOLE_WEB_SERVER_ACCESS_LOG_FILE="${WEB_SERVER_LOG_DIRECTORY}/access.log"
|
||||||
|
PIHOLE_WEB_SERVER_ERROR_LOG_FILE="${WEB_SERVER_LOG_DIRECTORY}/error.log"
|
||||||
|
|
||||||
|
# An array of operating system "pretty names" that we officialy support
|
||||||
|
# We can loop through the array at any time to see if it matches a value
|
||||||
|
SUPPORTED_OS=("Raspbian" "Ubuntu" "Fedora" "Debian" "CentOS")
|
||||||
|
|
||||||
|
# In a similar fashion, these are the folders Pi-hole needs
|
||||||
|
# https://discourse.pi-hole.net/t/what-files-does-pi-hole-use/1684
|
||||||
|
REQUIRED_DIRECTORIES=(${CORE_GIT_DIRECTORY}
|
||||||
|
${CRON_D_DIRECTORY}
|
||||||
|
${DNSMASQ_D_DIRECTORY}
|
||||||
|
${PIHOLE_DIRECTORY}
|
||||||
|
${PIHOLE_SCRIPTS_DIRECTORY}
|
||||||
|
${BIN_DIRECTORY}
|
||||||
|
${RUN_DIRECTORY}
|
||||||
|
${LOG_DIRECTORY}
|
||||||
|
${WEB_SERVER_LOG_DIRECTORY}
|
||||||
|
${WEB_SERVER_CONFIG_DIRECTORY}
|
||||||
|
${HTML_DIRECTORY}
|
||||||
|
${WEB_GIT_DIRECTORY}
|
||||||
|
${BLOCK_PAGE_DIRECTORY})
|
||||||
|
|
||||||
|
# These are the files Pi-hole needs--also stored in array for parsing through
|
||||||
|
# https://discourse.pi-hole.net/t/what-files-does-pi-hole-use/1684
|
||||||
|
REQUIRED_FILES=(${PIHOLE_CRON_FILE}
|
||||||
|
${PIHOLE_DNS_CONFIG_FILE}
|
||||||
|
${PIHOLE_DHCP_CONFIG_FILE}
|
||||||
|
${PIHOLE_WILDCARD_CONFIG_FILE}
|
||||||
|
${WEB_SERVER_CONFIG_FILE}
|
||||||
|
${PIHOLE_DEFAULT_AD_LISTS}
|
||||||
|
${PIHOLE_USER_DEFINED_AD_LISTS}
|
||||||
|
${PIHOLE_BLACKLIST_FILE}
|
||||||
|
${PIHOLE_BLOCKLIST_FILE}
|
||||||
|
${PIHOLE_INSTALL_LOG_FILE}
|
||||||
|
${PIHOLE_RAW_BLOCKLIST_FILES}
|
||||||
|
${PIHOLE_LOCAL_HOSTS_FILE}
|
||||||
|
${PIHOLE_LOGROTATE_FILE}
|
||||||
|
${PIHOLE_SETUP_VARS_FILE}
|
||||||
|
${PIHOLE_WHITELIST_FILE}
|
||||||
|
${PIHOLE_COMMAND}
|
||||||
|
${PIHOLE_COLTABLE_FILE}
|
||||||
|
${FTL_PID}
|
||||||
|
${FTL_PORT}
|
||||||
|
${PIHOLE_LOG}
|
||||||
|
${PIHOLE_LOG_GZIPS}
|
||||||
|
${PIHOLE_DEBUG_LOG}
|
||||||
|
${PIHOLE_FTL_LOG}
|
||||||
|
${PIHOLE_WEB_SERVER_ACCESS_LOG_FILE}
|
||||||
|
${PIHOLE_WEB_SERVER_ERROR_LOG_FILE})
|
||||||
|
|
||||||
source_setup_variables() {
|
source_setup_variables() {
|
||||||
# Display the current test that is running
|
# Display the current test that is running
|
||||||
log_write "\n${COL_LIGHT_PURPLE}*** [ INITIALIZING ]${COL_NC} Sourcing setup varibles"
|
log_write "\n${COL_LIGHT_PURPLE}*** [ INITIALIZING ]${COL_NC} Sourcing setup variables"
|
||||||
# If the variable file exists,
|
# If the variable file exists,
|
||||||
if_file_exists "${VARSFILE}" && \
|
if_file_exists "${PIHOLE_SETUP_VARS_FILE}" && \
|
||||||
log_write "${INFO} Sourcing ${VARSFILE}...";
|
log_write "${INFO} Sourcing ${PIHOLE_SETUP_VARS_FILE}...";
|
||||||
# source it
|
# source it
|
||||||
source ${VARSFILE} || \
|
source ${PIHOLE_SETUP_VARS_FILE} || \
|
||||||
# If it can't, show an error
|
# If it can't, show an error
|
||||||
log_write "${VARSFILE} ${COL_LIGHT_RED}does not exist or cannot be read.${COL_NC}"
|
log_write "${PIHOLE_SETUP_VARS_FILE} ${COL_LIGHT_RED}does not exist or cannot be read.${COL_NC}"
|
||||||
}
|
}
|
||||||
|
|
||||||
make_temporary_log() {
|
make_temporary_log() {
|
||||||
|
@ -93,7 +183,7 @@ log_write() {
|
||||||
|
|
||||||
copy_to_debug_log() {
|
copy_to_debug_log() {
|
||||||
# Copy the contents of file descriptor 3 into the debug log so it can be uploaded to tricorder
|
# Copy the contents of file descriptor 3 into the debug log so it can be uploaded to tricorder
|
||||||
cat /proc/$$/fd/3 >> "${DEBUG_LOG}"
|
cat /proc/$$/fd/3 >> "${PIHOLE_DEBUG_LOG}"
|
||||||
}
|
}
|
||||||
|
|
||||||
echo_succes_or_fail() {
|
echo_succes_or_fail() {
|
||||||
|
@ -232,9 +322,9 @@ check_ftl_version() {
|
||||||
# Checks the core version of the Pi-hole codebase
|
# Checks the core version of the Pi-hole codebase
|
||||||
check_component_versions() {
|
check_component_versions() {
|
||||||
# Check the Web version, branch, and commit
|
# Check the Web version, branch, and commit
|
||||||
compare_local_version_to_git_version "${PIHOLEGITDIR}" "Core"
|
compare_local_version_to_git_version "${CORE_GIT_DIRECTORY}" "Core"
|
||||||
# Check the Web version, branch, and commit
|
# Check the Web version, branch, and commit
|
||||||
compare_local_version_to_git_version "${ADMINGITDIR}" "Web"
|
compare_local_version_to_git_version "${WEB_GIT_DIRECTORY}" "Web"
|
||||||
# Check the FTL version
|
# Check the FTL version
|
||||||
check_ftl_version
|
check_ftl_version
|
||||||
}
|
}
|
||||||
|
@ -357,9 +447,9 @@ processor_check() {
|
||||||
|
|
||||||
parse_setup_vars() {
|
parse_setup_vars() {
|
||||||
echo_current_diagnostic "Setup variables"
|
echo_current_diagnostic "Setup variables"
|
||||||
if_file_exists "${VARSFILE}" && \
|
if_file_exists "${PIHOLE_SETUP_VARS_FILE}" && \
|
||||||
parse_file "${VARSFILE}" || \
|
parse_file "${PIHOLE_SETUP_VARS_FILE}" || \
|
||||||
log_write "${CROSS} ${COL_LIGHT_RED}Could not read ${VARSFILE}.${COL_NC}"
|
log_write "${CROSS} ${COL_LIGHT_RED}Could not read ${PIHOLE_SETUP_VARS_FILE}.${COL_NC}"
|
||||||
}
|
}
|
||||||
|
|
||||||
does_ip_match_setup_vars() {
|
does_ip_match_setup_vars() {
|
||||||
|
@ -368,16 +458,16 @@ does_ip_match_setup_vars() {
|
||||||
# IP address to check for
|
# IP address to check for
|
||||||
local ip_address="${2}"
|
local ip_address="${2}"
|
||||||
# See what IP is in the setupVars.conf file
|
# See what IP is in the setupVars.conf file
|
||||||
local setup_vars_ip=$(cat ${VARSFILE} | grep IPV${protocol}_ADDRESS | cut -d '=' -f2)
|
local setup_vars_ip=$(cat ${PIHOLE_SETUP_VARS_FILE} | grep IPV${protocol}_ADDRESS | cut -d '=' -f2)
|
||||||
# If it's an IPv6 address
|
# If it's an IPv6 address
|
||||||
if [[ "${protocol}" == "6" ]]; then
|
if [[ "${protocol}" == "6" ]]; then
|
||||||
# Strip off the /
|
# Strip off the /
|
||||||
if [[ "${ip_address%/*}" == "${setup_vars_ip}" ]]; then
|
if [[ "${ip_address%/*}" == "${setup_vars_ip}" ]]; then
|
||||||
# if it matches, show it in green
|
# if it matches, show it in green
|
||||||
log_write " ${COL_LIGHT_GREEN}${ip_address%/*}${COL_NC} matches the IP found in ${VARSFILE}"
|
log_write " ${COL_LIGHT_GREEN}${ip_address%/*}${COL_NC} matches the IP found in ${PIHOLE_SETUP_VARS_FILE}"
|
||||||
else
|
else
|
||||||
# otherwise show it in red with an FAQ URL
|
# otherwise show it in red with an FAQ URL
|
||||||
log_write " ${COL_LIGHT_RED}${ip_address%/*}${COL_NC} does not match the IP found in ${VARSFILE} (${FAQ_ULA})"
|
log_write " ${COL_LIGHT_RED}${ip_address%/*}${COL_NC} does not match the IP found in ${PIHOLE_SETUP_VARS_FILE} (${FAQ_ULA})"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -385,10 +475,10 @@ does_ip_match_setup_vars() {
|
||||||
# since it exists in the setupVars.conf that way
|
# since it exists in the setupVars.conf that way
|
||||||
if [[ "${ip_address}" == "${setup_vars_ip}" ]]; then
|
if [[ "${ip_address}" == "${setup_vars_ip}" ]]; then
|
||||||
# show in green if it matches
|
# show in green if it matches
|
||||||
log_write " ${COL_LIGHT_GREEN}${ip_address}${COL_NC} matches the IP found in ${VARSFILE}"
|
log_write " ${COL_LIGHT_GREEN}${ip_address}${COL_NC} matches the IP found in ${PIHOLE_SETUP_VARS_FILE}"
|
||||||
else
|
else
|
||||||
# otherwise show it in red
|
# otherwise show it in red
|
||||||
log_write " ${COL_LIGHT_RED}${ip_address}${COL_NC} does not match the IP found in ${VARSFILE} (${FAQ_ULA})"
|
log_write " ${COL_LIGHT_RED}${ip_address}${COL_NC} does not match the IP found in ${PIHOLE_SETUP_VARS_FILE} (${FAQ_ULA})"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -423,7 +513,7 @@ detect_ip_addresses() {
|
||||||
if [[ "${protocol}" == "6" ]]; then
|
if [[ "${protocol}" == "6" ]]; then
|
||||||
# let the user know that as long as there is one green address, things should be ok
|
# let the user know that as long as there is one green address, things should be ok
|
||||||
log_write " ^ Please note that you may have more than one IP address listed."
|
log_write " ^ Please note that you may have more than one IP address listed."
|
||||||
log_write " As long as one of them is green, and it matches what is in ${VARSFILE}, there is no need for concern.\n"
|
log_write " As long as one of them is green, and it matches what is in ${PIHOLE_SETUP_VARS_FILE}, there is no need for concern.\n"
|
||||||
log_write " The link to the FAQ is for an issue that sometimes occurs when the IPv6 address changes, which is why we check for it.\n"
|
log_write " The link to the FAQ is for an issue that sometimes occurs when the IPv6 address changes, which is why we check for it.\n"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -616,7 +706,7 @@ dig_at() {
|
||||||
# Find a random blocked url that has not been whitelisted.
|
# Find a random blocked url that has not been whitelisted.
|
||||||
# This helps emulate queries to different domains that a user might query
|
# This helps emulate queries to different domains that a user might query
|
||||||
# It will also give extra assurance that Pi-hole is correctly resolving and blocking domains
|
# It will also give extra assurance that Pi-hole is correctly resolving and blocking domains
|
||||||
local random_url=$(shuf -n 1 "${GRAVITYFILE}" | awk -F ' ' '{ print $2 }')
|
local random_url=$(shuf -n 1 "${PIHOLE_BLOCKLIST_FILE}" | awk -F ' ' '{ print $2 }')
|
||||||
|
|
||||||
# First, do a dig on localhost to see if Pi-hole can use itself to block a domain
|
# First, do a dig on localhost to see if Pi-hole can use itself to block a domain
|
||||||
if local_dig=$(dig +tries=1 +time=2 -"${protocol}" "${random_url}" @${local_address} +short "${record_type}"); then
|
if local_dig=$(dig +tries=1 +time=2 -"${protocol}" "${random_url}" @${local_address} +short "${record_type}"); then
|
||||||
|
@ -783,22 +873,22 @@ show_content_of_files_in_dir() {
|
||||||
|
|
||||||
show_content_of_pihole_files() {
|
show_content_of_pihole_files() {
|
||||||
# Show the content of the files in /etc/dnsmasq.d
|
# Show the content of the files in /etc/dnsmasq.d
|
||||||
show_content_of_files_in_dir "${DNSMASQCONFDIR}"
|
show_content_of_files_in_dir "${DNSMASQ_D_DIRECTORY}"
|
||||||
# Show the content of the files in /etc/lighttpd
|
# Show the content of the files in /etc/lighttpd
|
||||||
show_content_of_files_in_dir "/etc/lighttpd"
|
show_content_of_files_in_dir "/etc/lighttpd"
|
||||||
# Show the content of the files in /etc/lighttpd
|
# Show the content of the files in /etc/lighttpd
|
||||||
show_content_of_files_in_dir "/etc/cron.d"
|
show_content_of_files_in_dir "/etc/cron.d"
|
||||||
# Show the content of the files in /var/www/html
|
# Show the content of the files in /var/www/html
|
||||||
# show_content_of_files_in_dir "${ADMINGITDIR}"
|
# show_content_of_files_in_dir "${WEB_GIT_DIRECTORY}"
|
||||||
}
|
}
|
||||||
|
|
||||||
analyze_gravity_list() {
|
analyze_gravity_list() {
|
||||||
echo_current_diagnostic "Gravity list"
|
echo_current_diagnostic "Gravity list"
|
||||||
# It's helpful to know how big a user's gravity file is
|
# It's helpful to know how big a user's gravity file is
|
||||||
gravity_length=$(grep -c ^ "${GRAVITYFILE}") && \
|
gravity_length=$(grep -c ^ "${PIHOLE_BLOCKLIST_FILE}") && \
|
||||||
log_write "${INFO} ${GRAVITYFILE} is ${gravity_length} lines long." || \
|
log_write "${INFO} ${PIHOLE_BLOCKLIST_FILE} is ${gravity_length} lines long." || \
|
||||||
# If the previous command failed, something is wrong with the file
|
# If the previous command failed, something is wrong with the file
|
||||||
log_write "${CROSS} ${COL_LIGHT_RED}${GRAVITYFILE} not found!${COL_NC}"
|
log_write "${CROSS} ${COL_LIGHT_RED}${PIHOLE_BLOCKLIST_FILE} not found!${COL_NC}"
|
||||||
}
|
}
|
||||||
|
|
||||||
tricorder_use_nc_or_ssl() {
|
tricorder_use_nc_or_ssl() {
|
||||||
|
@ -808,20 +898,20 @@ tricorder_use_nc_or_ssl() {
|
||||||
# If the command exists,
|
# If the command exists,
|
||||||
log_write " * Using ${COL_LIGHT_GREEN}openssl${COL_NC} for transmission."
|
log_write " * Using ${COL_LIGHT_GREEN}openssl${COL_NC} for transmission."
|
||||||
# encrypt and transmit the log and store the token returned in a variable
|
# encrypt and transmit the log and store the token returned in a variable
|
||||||
tricorder_token=$(cat ${DEBUG_LOG} | openssl s_client -quiet -connect tricorder.pi-hole.net:9998 2> /dev/null)
|
tricorder_token=$(cat ${PIHOLE_DEBUG_LOG} | openssl s_client -quiet -connect tricorder.pi-hole.net:${TRICORDER_SSL_PORT_NUMBER} 2> /dev/null)
|
||||||
# Otherwise,
|
# Otherwise,
|
||||||
else
|
else
|
||||||
# use net cat
|
# use net cat
|
||||||
log_write "${INFO} Using ${COL_YELLOW}netcat${COL_NC} for transmission."
|
log_write "${INFO} Using ${COL_YELLOW}netcat${COL_NC} for transmission."
|
||||||
tricorder_token=$(cat ${DEBUG_LOG} | nc tricorder.pi-hole.net 9999)
|
tricorder_token=$(cat ${PIHOLE_DEBUG_LOG} | nc tricorder.pi-hole.net ${TRICORDER_NC_PORT_NUMBER})
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
upload_to_tricorder() {
|
upload_to_tricorder() {
|
||||||
# Set the permissions and owner
|
# Set the permissions and owner
|
||||||
chmod 644 ${DEBUG_LOG}
|
chmod 644 ${PIHOLE_DEBUG_LOG}
|
||||||
chown "$USER":pihole ${DEBUG_LOG}
|
chown "$USER":pihole ${PIHOLE_DEBUG_LOG}
|
||||||
|
|
||||||
# Let the user know debugging is complete
|
# Let the user know debugging is complete
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -829,7 +919,7 @@ upload_to_tricorder() {
|
||||||
|
|
||||||
# Provide information on what they should do with their token
|
# Provide information on what they should do with their token
|
||||||
log_write " * The debug log can be uploaded to tricorder.pi-hole.net for sharing with developers only."
|
log_write " * The debug log can be uploaded to tricorder.pi-hole.net for sharing with developers only."
|
||||||
log_write " * For more information, see: ${COL_CYAN}https://pi-hole.net/2016/11/07/crack-our-medical-tricorder-win-a-raspberry-pi-3/${COL_NC}"
|
log_write " * For more information, see: ${TRICORDER_CONTEST}"
|
||||||
log_write " * If available, we'll use openssl to upload the log, otherwise it will fall back to netcat."
|
log_write " * If available, we'll use openssl to upload the log, otherwise it will fall back to netcat."
|
||||||
# If pihole -d is running automatically (usually throught the dashboard)
|
# If pihole -d is running automatically (usually throught the dashboard)
|
||||||
if [[ "${AUTOMATED}" ]]; then
|
if [[ "${AUTOMATED}" ]]; then
|
||||||
|
@ -838,10 +928,10 @@ upload_to_tricorder() {
|
||||||
# and then decide again which tool to use to submit it
|
# and then decide again which tool to use to submit it
|
||||||
if command -v openssl &> /dev/null; then
|
if command -v openssl &> /dev/null; then
|
||||||
log_write "${INFO} Using ${COL_LIGHT_GREEN}openssl${COL_NC} for transmission."
|
log_write "${INFO} Using ${COL_LIGHT_GREEN}openssl${COL_NC} for transmission."
|
||||||
tricorder_token=$(openssl s_client -quiet -connect tricorder.pi-hole.net:9998 2> /dev/null < /dev/stdin)
|
tricorder_token=$(openssl s_client -quiet -connect tricorder.pi-hole.net:${TRICORDER_SSL_PORT_NUMBER} 2> /dev/null < /dev/stdin)
|
||||||
else
|
else
|
||||||
log_write "${INFO} Using ${COL_YELLOW}netcat${COL_NC} for transmission."
|
log_write "${INFO} Using ${COL_YELLOW}netcat${COL_NC} for transmission."
|
||||||
tricorder_token=$(nc tricorder.pi-hole.net 9999 < /dev/stdin)
|
tricorder_token=$(nc tricorder.pi-hole.net ${TRICORDER_NC_PORT_NUMBER} < /dev/stdin)
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -864,13 +954,13 @@ upload_to_tricorder() {
|
||||||
log_write "${COL_LIGHT_PURPLE}***********************************${COL_NC}"
|
log_write "${COL_LIGHT_PURPLE}***********************************${COL_NC}"
|
||||||
log_write ""
|
log_write ""
|
||||||
log_write " * Provide this token to the Pi-hole team for assistance at"
|
log_write " * Provide this token to the Pi-hole team for assistance at"
|
||||||
log_write " * ${COL_CYAN}https://discourse.pi-hole.net${COL_NC}"
|
log_write " * ${FORUMS_URL}"
|
||||||
log_write " * Your log will self-destruct on our server after ${COL_LIGHT_RED}48 hours${COL_NC}."
|
log_write " * Your log will self-destruct on our server after ${COL_LIGHT_RED}48 hours${COL_NC}."
|
||||||
else
|
else
|
||||||
log_write "${CROSS} ${COL_LIGHT_RED}There was an error uploading your debug log.${COL_NC}"
|
log_write "${CROSS} ${COL_LIGHT_RED}There was an error uploading your debug log.${COL_NC}"
|
||||||
log_write " * Please try again or contact the Pi-hole team for assistance."
|
log_write " * Please try again or contact the Pi-hole team for assistance."
|
||||||
fi
|
fi
|
||||||
log_write " * A local copy of the debug log can be found at: ${COL_CYAN}${DEBUG_LOG}${COL_NC}\n"
|
log_write " * A local copy of the debug log can be found at: ${COL_CYAN}${PIHOLE_DEBUG_LOG}${COL_NC}\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Run through all the functions we made
|
# Run through all the functions we made
|
||||||
|
|
Loading…
Reference in a new issue