summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>2016-05-05 12:25:53 +0100
committerJo-Philipp Wich <jo@mein.io>2016-05-18 22:17:33 +0200
commitd830cb08826dc593406d9003d061016061b6c3c4 (patch)
tree3c9c4a7644af362bd519ec0f4136db6eb0f4e719
parent382779e009af7c1c688fbd98adf71fb19ce66254 (diff)
downloadmaster-31e0f0ae-d830cb08826dc593406d9003d061016061b6c3c4.tar.gz
master-31e0f0ae-d830cb08826dc593406d9003d061016061b6c3c4.tar.bz2
master-31e0f0ae-d830cb08826dc593406d9003d061016061b6c3c4.zip
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.
-rw-r--r--package/network/services/dnsmasq/Makefile2
-rw-r--r--package/network/services/dnsmasq/files/dnsmasqsec-add-conffiles.sh16
2 files changed, 18 insertions, 0 deletions
diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile
index 3f12a40cd3..f0aba1af44 100644
--- a/package/network/services/dnsmasq/Makefile
+++ b/package/network/services/dnsmasq/Makefile
@@ -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
diff --git a/package/network/services/dnsmasq/files/dnsmasqsec-add-conffiles.sh b/package/network/services/dnsmasq/files/dnsmasqsec-add-conffiles.sh
new file mode 100644
index 0000000000..116ab5f8cf
--- /dev/null
+++ b/package/network/services/dnsmasq/files/dnsmasqsec-add-conffiles.sh
@@ -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"