This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via b666975ec292fec239aa6023dc79abf5538c9d95 (commit) from 35cdc506b06ed2e5fc8f7ad7fe57239eaadbda58 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit b666975ec292fec239aa6023dc79abf5538c9d95 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Mar 28 12:51:06 2019 +0000
unbound-dhcp-leases-bridge: Replace leases file atomically
When there is a large number of leases, writing the file may take a long time. When unbound is re-reading its configuration in that time, the file might syntactically incorrect.
This change writes the file first and then moves it to the right place in one transaction.
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
-----------------------------------------------------------------------
Summary of changes: config/rootfiles/core/130/filelists/files | 1 + config/unbound/unbound-dhcp-leases-bridge | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-)
Difference in files: diff --git a/config/rootfiles/core/130/filelists/files b/config/rootfiles/core/130/filelists/files index 28a32a7c6..ab1e82fcb 100644 --- a/config/rootfiles/core/130/filelists/files +++ b/config/rootfiles/core/130/filelists/files @@ -18,6 +18,7 @@ usr/local/bin/ipsec-interfaces usr/local/bin/suricatactrl usr/local/bin/update-ids-ruleset usr/sbin/convert-snort +usr/sbin/unbound-dhcp-leases-bridge var/ipfire/backup/bin/backup.pl var/ipfire/backup/include var/ipfire/general-functions.pl diff --git a/config/unbound/unbound-dhcp-leases-bridge b/config/unbound/unbound-dhcp-leases-bridge index 54cd8135b..a8cd837bb 100644 --- a/config/unbound/unbound-dhcp-leases-bridge +++ b/config/unbound/unbound-dhcp-leases-bridge @@ -25,9 +25,11 @@ import daemon import ipaddress import logging import logging.handlers +import os import re import signal import subprocess +import tempfile
import inotify.adapters
@@ -519,11 +521,15 @@ class UnboundConfigWriter(object): self._cached_leases.append(l)
def write_dhcp_leases(self, leases): - with open(self.path, "w") as f: + with tempfile.NamedTemporaryFile(mode="w", delete=False) as f: + filename = f.name + for l in leases: for rr in l.rrset: f.write("local-data: "%s"\n" % " ".join(rr))
+ os.rename(filename, self.path) + def _control(self, *args): command = ["unbound-control"] command.extend(args)
hooks/post-receive -- IPFire 2.x development tree