base-files: sysfixtime no longer exclude dnsmasq.time
[openwrt/staging/yousong.git] / package / base-files / files / etc / init.d / sysfixtime
index ab946f6518f6f6eb373313a897ca47c9682d5cca..81d1c52442c06422be1e437395c259aa359611b9 100755 (executable)
@@ -10,8 +10,8 @@ HWCLOCK=/sbin/hwclock
 boot() {
        start && exit 0
 
+       local maxtime="$(maxtime)"
        local curtime="$(date +%s)"
-       local maxtime="$(find /etc -type f -exec date -r {} +%s \; | sort -nr | head -n1)"
        [ $curtime -lt $maxtime ] && date -s @$maxtime
 }
 
@@ -23,3 +23,12 @@ stop() {
        [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -w -f $RTC_DEV && \
                logger -t sysfixtime "saved '$(date)' to $RTC_DEV"
 }
+
+maxtime() {
+       local file newest
+
+       for file in $( find /etc -type f ) ; do
+               [ -z "$newest" -o "$newest" -ot "$file" ] && newest=$file
+       done
+       [ "$newest" ] && date -r "$newest" +%s
+}