mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-28 11:43:25 +02:00
unbound: Try to set time when DNS is not working
Since DNSSEC relies on time to validate its signatures, a common problem is that some systems (usually those without a working RTC) are not being able to reach their time server. Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org> Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
@@ -52,22 +52,6 @@ read_name_servers() {
|
|||||||
done < /var/ipfire/dns/servers
|
done < /var/ipfire/dns/servers
|
||||||
}
|
}
|
||||||
|
|
||||||
check_red_has_carrier_and_ip() {
|
|
||||||
# Interface configured ?
|
|
||||||
[ ! -e "/var/ipfire/red/iface" ] && return 0;
|
|
||||||
|
|
||||||
# Interface present ?
|
|
||||||
[ ! -e "/sys/class/net/$(</var/ipfire/red/iface)" ] && return 0;
|
|
||||||
|
|
||||||
# has carrier ?
|
|
||||||
[ ! "$(</sys/class/net/$(</var/ipfire/red/iface)/carrier)" = "1" ] && return 0;
|
|
||||||
|
|
||||||
# has ip ?
|
|
||||||
[ "$(ip address show dev $(</var/ipfire/red/iface) | grep "inet")" = "" ] && return 0;
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
config_header() {
|
config_header() {
|
||||||
echo "# This file is automatically generated and any changes"
|
echo "# This file is automatically generated and any changes"
|
||||||
echo "# will be overwritten. DO NOT EDIT!"
|
echo "# will be overwritten. DO NOT EDIT!"
|
||||||
@@ -276,17 +260,15 @@ get_memory_amount() {
|
|||||||
done < /proc/meminfo
|
done < /proc/meminfo
|
||||||
}
|
}
|
||||||
|
|
||||||
fix_time_if_dns_fail() {
|
fix_time_if_dns_fails() {
|
||||||
# If DNS still not work try to init ntp with
|
# If DNS is working, everything is fine
|
||||||
# hardcoded ntp.ipfire.org (81.3.27.46)
|
if resolve "ping.ipfire.org" &>/dev/null; then
|
||||||
check_red_has_carrier_and_ip
|
return 0
|
||||||
if [ -e "/var/ipfire/red/iface" -a "${?}" = "1" ]; then
|
|
||||||
host 0.ipfire.pool.ntp.org > /dev/null 2>&1
|
|
||||||
if [ "${?}" != "0" ]; then
|
|
||||||
boot_mesg "DNS still not functioning... Trying to sync time with ntp.ipfire.org (81.3.27.46)..."
|
|
||||||
loadproc /usr/local/bin/settime 81.3.27.46
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Try to sync time with a known time server
|
||||||
|
boot_mesg "DNS not functioning... Trying to sync time with ntp.ipfire.org (81.3.27.46)..."
|
||||||
|
loadproc /usr/local/bin/settime 81.3.27.46
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve() {
|
resolve() {
|
||||||
@@ -596,8 +578,6 @@ case "$1" in
|
|||||||
|
|
||||||
# Update hosts
|
# Update hosts
|
||||||
update_hosts
|
update_hosts
|
||||||
|
|
||||||
fix_time_if_dns_fail
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
stop)
|
stop)
|
||||||
@@ -618,6 +598,9 @@ case "$1" in
|
|||||||
update-forwarders)
|
update-forwarders)
|
||||||
update_forwarders
|
update_forwarders
|
||||||
|
|
||||||
|
# Make sure DNS works at this point
|
||||||
|
fix_time_if_dns_fails
|
||||||
|
|
||||||
# Update Safe Search settings
|
# Update Safe Search settings
|
||||||
update_safe_search
|
update_safe_search
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user