* [git.ipfire.org] IPFire 2.x development tree branch, next, updated. b666975ec292fec239aa6023dc79abf5538c9d95
@ 2019-03-28 14:05 Michael Tremer
0 siblings, 0 replies; only message in thread
From: Michael Tremer @ 2019-03-28 14:05 UTC (permalink / raw)
To: ipfire-scm
[-- Attachment #1: Type: text/plain, Size: 2953 bytes --]
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(a)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(a)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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-03-28 14:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-28 14:05 [git.ipfire.org] IPFire 2.x development tree branch, next, updated. b666975ec292fec239aa6023dc79abf5538c9d95 Michael Tremer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox