Merge pull request #1860 from pi-hole/smarterNotHarder

Merge `smarterNotHarder` into `release/3.2.1` again
This commit is contained in:
Dan Schaper 2017-12-21 10:59:55 -08:00 committed by GitHub
commit 7e8d31a62c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -69,7 +69,7 @@ fi
# Determine if DNS resolution is available before proceeding # Determine if DNS resolution is available before proceeding
gravity_DNSLookup() { gravity_DNSLookup() {
local lookupDomain="pi.hole" plural="" local lookupDomain="pi.hole"
# Determine if $localList does not exist # Determine if $localList does not exist
if [[ ! -e "${localList}" ]]; then if [[ ! -e "${localList}" ]]; then
@ -111,11 +111,10 @@ gravity_DNSLookup() {
# Ensure DNS server is given time to be resolvable # Ensure DNS server is given time to be resolvable
secs="120" secs="120"
echo -ne " ${INFO} Waiting up to ${secs} seconds before continuing..." echo -ne " ${INFO} Time until retry: ${secs}"
until timeout 1 getent hosts "${lookupDomain}" &> /dev/null; do until timeout 1 getent hosts "${lookupDomain}" &> /dev/null; do
[[ "${secs:-}" -eq 0 ]] && break [[ "${secs:-}" -eq 0 ]] && break
[[ "${secs:-}" -ne 1 ]] && plural="s" echo -ne "${OVER} ${INFO} Time until retry: ${secs}"
echo -ne "${OVER} ${INFO} Waiting up to ${secs} second${plural} before continuing..."
: $((secs--)) : $((secs--))
sleep 1 sleep 1
done done
@ -406,7 +405,7 @@ gravity_Filter() {
# Format $parsedMatter line total as currency # Format $parsedMatter line total as currency
num=$(printf "%'.0f" "$(wc -l < "${piholeDir}/${parsedMatter}")") num=$(printf "%'.0f" "$(wc -l < "${piholeDir}/${parsedMatter}")")
echo -e "${OVER} ${TICK} ${str} echo -e "${OVER} ${TICK} ${str}
${INFO} ${COL_BLUE}${num}${COL_NC} domains being pulled in by gravity" ${INFO} Number of domains being pulled in by gravity: ${COL_BLUE}${num}${COL_NC}"
str="Removing duplicate domains" str="Removing duplicate domains"
echo -ne " ${INFO} ${str}..." echo -ne " ${INFO} ${str}..."
@ -415,31 +414,30 @@ gravity_Filter() {
# Format $preEventHorizon line total as currency # Format $preEventHorizon line total as currency
num=$(printf "%'.0f" "$(wc -l < "${piholeDir}/${preEventHorizon}")") num=$(printf "%'.0f" "$(wc -l < "${piholeDir}/${preEventHorizon}")")
echo -e " ${INFO} ${COL_BLUE}${num}${COL_NC} unique domains trapped in the Event Horizon" echo -e " ${INFO} Number of unique domains trapped in the Event Horizon: ${COL_BLUE}${num}${COL_NC}"
} }
# Whitelist unique blocklist domain sources # Whitelist unique blocklist domain sources
gravity_WhitelistBLD() { gravity_WhitelistBLD() {
local uniqDomains plural="" str local uniqDomains str
echo "" echo ""
# Create array of unique $sourceDomains # Create array of unique $sourceDomains
mapfile -t uniqDomains <<< "$(awk '{ if(!a[$1]++) { print $1 } }' <<< "$(printf '%s\n' "${sourceDomains[@]}")")" mapfile -t uniqDomains <<< "$(awk '{ if(!a[$1]++) { print $1 } }' <<< "$(printf '%s\n' "${sourceDomains[@]}")")"
[[ "${#uniqDomains[@]}" -ne 1 ]] && plural="s"
str="Adding ${#uniqDomains[@]} blocklist source domain${plural} to the whitelist" str="Number of blocklist source domains being added to the whitelist: ${#uniqDomains[@]}"
echo -ne " ${INFO} ${str}..." echo -ne " ${INFO} ${str}..."
# Whitelist $uniqDomains # Whitelist $uniqDomains
"${PIHOLE_COMMAND}" -w -nr -q ${uniqDomains[*]} &> /dev/null "${PIHOLE_COMMAND}" -w -nr -q ${uniqDomains[*]} &> /dev/null
echo -e "${OVER} ${TICK} ${str}" echo -e "${OVER} ${INFO} ${str}"
} }
# Whitelist user-defined domains # Whitelist user-defined domains
gravity_Whitelist() { gravity_Whitelist() {
local num plural="" str local num str
if [[ ! -f "${whitelistFile}" ]]; then if [[ ! -f "${whitelistFile}" ]]; then
echo -e " ${INFO} Nothing to whitelist!" echo -e " ${INFO} Nothing to whitelist!"
@ -447,24 +445,22 @@ gravity_Whitelist() {
fi fi
num=$(wc -l < "${whitelistFile}") num=$(wc -l < "${whitelistFile}")
[[ "${num}" -ne 1 ]] && plural="s" str="Number of whitelisted domains: ${num}"
str="Whitelisting ${num} domain${plural}"
echo -ne " ${INFO} ${str}..." echo -ne " ${INFO} ${str}..."
# Print everything from preEventHorizon into whitelistMatter EXCEPT domains in $whitelistFile # Print everything from preEventHorizon into whitelistMatter EXCEPT domains in $whitelistFile
grep -F -x -v -f "${whitelistFile}" "${piholeDir}/${preEventHorizon}" > "${piholeDir}/${whitelistMatter}" grep -F -x -v -f "${whitelistFile}" "${piholeDir}/${preEventHorizon}" > "${piholeDir}/${whitelistMatter}"
echo -e "${OVER} ${TICK} ${str}" echo -e "${OVER} ${INFO} ${str}"
} }
# Output count of blacklisted domains and wildcards # Output count of blacklisted domains and wildcards
gravity_ShowBlockCount() { gravity_ShowBlockCount() {
local num plural local num
if [[ -f "${blacklistFile}" ]]; then if [[ -f "${blacklistFile}" ]]; then
num=$(printf "%'.0f" "$(wc -l < "${blacklistFile}")") num=$(printf "%'.0f" "$(wc -l < "${blacklistFile}")")
plural=; [[ "${num}" -ne 1 ]] && plural="s" echo -e " ${INFO} Number of blacklisted domains: ${num}"
echo -e " ${INFO} Blacklisted ${num} domain${plural}"
fi fi
if [[ -f "${wildcardFile}" ]]; then if [[ -f "${wildcardFile}" ]]; then
@ -473,8 +469,7 @@ gravity_ShowBlockCount() {
if [[ -n "${IPV4_ADDRESS}" ]] && [[ -n "${IPV6_ADDRESS}" ]];then if [[ -n "${IPV4_ADDRESS}" ]] && [[ -n "${IPV6_ADDRESS}" ]];then
num=$(( num/2 )) num=$(( num/2 ))
fi fi
plural=; [[ "${num}" -ne 1 ]] && plural="s" echo -e " ${INFO} Number of wildcard blocked domains: ${num}"
echo -e " ${INFO} Wildcard blocked ${num} domain${plural}"
fi fi
} }