potentially fixes #1806 by falling back to dig if getent fails

Signed-off-by: Jacob Salmela <github@decoy.email>
This commit is contained in:
Jacob Salmela 2017-12-07 22:38:47 -06:00
parent 472f7725c7
commit 80e17ab721
No known key found for this signature in database
GPG key ID: 1962FF1A5046135E

View file

@ -88,6 +88,19 @@ gravity_DNSLookup() {
exit 1 exit 1
fi fi
# If the /etc/resolv.conf contains resolvers other than 127.0.0.1 then the local dnsmasq will not be queried and pi.hole is NXDOMAIN.
# This means that even though name resolution is working, the getent hosts check fails and the holddown timer keeps ticking and eventualy fails
# So we check the output of the last command and if it failed, attempt to use dig +short as a fallback
if timeout 1 dig +short "${lookupDomain}" &> /dev/null; then
if [[ -n "${secs:-}" ]]; then
echo -e "${OVER} ${TICK} DNS resolution is now available\\n"
fi
return 0
elif [[ -n "${secs:-}" ]]; then
echo -e "${OVER} ${CROSS} DNS resolution is not available"
exit 1
fi
# Determine error output message # Determine error output message
if pidof dnsmasq &> /dev/null; then if pidof dnsmasq &> /dev/null; then
echo -e " ${CROSS} DNS resolution is currently unavailable" echo -e " ${CROSS} DNS resolution is currently unavailable"