Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion package/base-files/files/etc/init.d/sysfixtime
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand All @@ -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 ! -path /etc/dnsmasq.time ) ; do
[ -z "$newest" -o "$newest" -ot "$file"] && newest=$file
done
[ "$newest" ] && date -r "$newest" +%s
}
2 changes: 2 additions & 0 deletions package/network/services/dnsmasq/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,8 @@ $(call Package/dnsmasq/install,$(1))
ifneq ($(CONFIG_PACKAGE_dnsmasq_full_dnssec),)
$(INSTALL_DIR) $(1)/usr/share/dnsmasq
$(INSTALL_DATA) $(PKG_BUILD_DIR)/trust-anchors.conf $(1)/usr/share/dnsmasq
$(INSTALL_DIR) $(1)/lib/upgrade
$(INSTALL_BIN) ./files/dnsmasqsec-add-conffiles.sh $(1)/lib/upgrade
endif
endef

Expand Down
16 changes: 16 additions & 0 deletions package/network/services/dnsmasq/files/dnsmasqsec-add-conffiles.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
add_dnsmasqsec_conffiles()
{
local filelist="$1"

# do NOT include timestamp in a backup, only system upgrade
# dnsmasq restart ensures file timestamp is up to date
if [ -z $NEED_IMAGE ]; then
if [ $(ubus call service list '{"name":"dnsmasq"}' | jsonfilter -e '@.*.instances.instance1.running') = "true" ]; then
/etc/init.d/dnsmasq restart
sleep 1
echo "/etc/dnsmasq.time" >>$filelist
fi
fi
}

sysupgrade_init_conffiles="$sysupgrade_init_conffiles add_dnsmasqsec_conffiles"