]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
unbound-dhcp-leases-bridge: Skip updates if not necessary
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 10 May 2024 16:25:13 +0000 (17:25 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 10 May 2024 16:25:13 +0000 (17:25 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/unbound/unbound-dhcp-leases-bridge

index 43f006e9342970b09032d2de33d5e5256f8c1851..40b6c294343ebedaba3d0184200e668f52d29be2 100644 (file)
@@ -219,10 +219,23 @@ class UnboundDHCPLeasesBridge(object):
                        address = message.get("ADDRESS")
                        name    = message.get("NAME")
 
+                       # Find the old lease
+                       old_lease = self._find_lease(address)
+
                        # Create a new lease
                        lease = Lease(address, {
                                "client-hostname" : name,
                        })
+                       self._add_lease(lease)
+
+                       # Can we skip the update?
+                       if old_lease:
+                               if lease.rrset == old_lease.rrset:
+                                       log.debug("Won't update %s as nothing has changed" % lease)
+                                       return
+
+                               # Remove the old lease first
+                               self.unbound.remove_lease(old_lease)
 
                        # Apply the lease
                        self.unbound.apply_lease(lease)