dnsmasq: sysupgrade hook to conditionally preserve dnsmasq.time

conditionally save dnsmasq.time across sysupgrade
dnsmasq uses /etc/dnsmasq.time as record of the last known good
system time to aid its validation of dnssec timestamps.  dnsmasq
updates the timestamp on process start/stop once it considers the system
time as valid. The timestamp file should be preserved across system
upgrade but should not be included as part of normal configuration
backups to prevent restores corrupting the current timestamp.
This commit is contained in:
Kevin Darbyshire-Bryant 2016-05-05 12:25:53 +01:00 committed by Jo-Philipp Wich
parent 382779e009
commit d830cb0882
2 changed files with 18 additions and 0 deletions

View file

@ -151,6 +151,8 @@ $(call Package/dnsmasq/install,$(1))
ifneq ($(CONFIG_PACKAGE_dnsmasq_full_dnssec),) ifneq ($(CONFIG_PACKAGE_dnsmasq_full_dnssec),)
$(INSTALL_DIR) $(1)/usr/share/dnsmasq $(INSTALL_DIR) $(1)/usr/share/dnsmasq
$(INSTALL_DATA) $(PKG_BUILD_DIR)/trust-anchors.conf $(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 endif
endef endef

View file

@ -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"