On 26/04/2024 16:09, Michael Tremer wrote:
This change no longer renames the file, but removes the old link and creates a new link for the temporary file. That helps us to jump out of the code at any point without worrying about cleaning up the temporary file.
Signed-off-by: Michael Tremermichael.tremer@ipfire.org
config/unbound/unbound-dhcp-leases-bridge | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/config/unbound/unbound-dhcp-leases-bridge b/config/unbound/unbound-dhcp-leases-bridge index e9f022aff..5d5696af0 100644 --- a/config/unbound/unbound-dhcp-leases-bridge +++ b/config/unbound/unbound-dhcp-leases-bridge @@ -526,16 +526,22 @@ class UnboundConfigWriter(object): def write_dhcp_leases(self, leases): log.debug("Writing DHCP leases...")
with tempfile.NamedTemporaryFile(mode="w", delete=False) as f:
with tempfile.NamedTemporaryFile(mode="w") as f: for l in leases: for rr in l.rrset: f.write("local-data: \"%s\"\n" % " ".join(rr))
# Flush the file
f.flush()
# Make file readable for everyone os.fchmod(f.fileno(), stat.S_IRUSR|stat.S_IWUSR|stat.S_IRGRP|stat.S_IROTH)
# Remove the old file
os.unlink(self.path)
# Move the file to its destination
os.rename(f.name, self.path)
os.link(f.name, self.path)
def _control(self, *args): command = ["unbound-control"]
|Signed-off-by: Nick Howitt nick@howitts.co.uk|