From 0807ce69eead5a35cdb699b61a48bffdf81ebcc4 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sat, 8 Oct 2016 15:43:54 +0200 Subject: [PATCH] setclock: prevent time bacjump by empty rtc batteries This is a work around to prevent not working dns resolution if the time jumps before the DNSSec signing key. Signed-off-by: Arne Fitzenreiter --- config/rootfiles/core/106/filelists/files | 1 + src/initscripts/init.d/setclock | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/config/rootfiles/core/106/filelists/files b/config/rootfiles/core/106/filelists/files index 77f73c88c3..5133da9a5d 100644 --- a/config/rootfiles/core/106/filelists/files +++ b/config/rootfiles/core/106/filelists/files @@ -7,6 +7,7 @@ etc/rc.d/init.d/network etc/rc.d/init.d/networking/red.down/05-update-dns-forwarders etc/rc.d/init.d/networking/red.up/05-update-dns-forwarders etc/rc.d/init.d/ntp +etc/rc.d/init.d/setclock etc/rc.d/init.d/unbound etc/rc.d/rc0.d/K79unbound etc/rc.d/rc3.d/S21unbound diff --git a/src/initscripts/init.d/setclock b/src/initscripts/init.d/setclock index 661e944a42..19fb89168a 100644 --- a/src/initscripts/init.d/setclock +++ b/src/initscripts/init.d/setclock @@ -30,16 +30,20 @@ case ${1} in fi hwclock --hctosys ${CLOCKPARAMS} &>/dev/null - if [ ! ${?} == 0 ]; then - if [ -s /var/log/messages ]; then - boot_mesg -n "No RTC found, set time to last log accesstime ... " - DATE=`stat --format "%y" /var/log/messages | cut -d" " -f1` - TIME=`stat --format "%y" /var/log/messages | sed -e "s|\..*||g" | cut -d" " -f2` - date -s $DATE > /dev/null - date -s $TIME + date + + if [ -s /var/log/messages ]; then + LOGTIMESTAMP=`stat --format "%y" /var/log/messages` + LOGTIME=`date +%s -d "$LOGTIMESTAMP"` + SYSTIME=`date +%s` + if [ $SYSTIME -lt $LOGTIME ]; then + boot_mesg "Warning! clock runs later than last log access. Check battery/rtc!" + date -s "$LOGTIMESTAMP" + echo_warning; + else + echo_ok; fi fi - evaluate_retval ;; stop) -- 2.39.5