From: Michael Tremer Date: Fri, 10 May 2024 16:28:58 +0000 (+0100) Subject: unbound-dhcp-leases-bridge: Remove leases to keep the store up to date X-Git-Tag: v2.29-core188~10^2~86^2~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9ff53d57863e26b8dfa2bef0f189f68931d91efa;p=ipfire-2.x.git unbound-dhcp-leases-bridge: Remove leases to keep the store up to date Signed-off-by: Michael Tremer --- diff --git a/config/unbound/unbound-dhcp-leases-bridge b/config/unbound/unbound-dhcp-leases-bridge index 40b6c29434..64a8eef216 100644 --- a/config/unbound/unbound-dhcp-leases-bridge +++ b/config/unbound/unbound-dhcp-leases-bridge @@ -236,6 +236,7 @@ class UnboundDHCPLeasesBridge(object): # Remove the old lease first self.unbound.remove_lease(old_lease) + self._remove_lease(old_lease) # Apply the lease self.unbound.apply_lease(lease) @@ -253,6 +254,7 @@ class UnboundDHCPLeasesBridge(object): # Remove the lease self.unbound.remove_lease(lease) + self._remove_lease(lease) # Raise an error if the event is not supported else: @@ -296,6 +298,9 @@ class UnboundDHCPLeasesBridge(object): elif not lease.active or lease.expired: return + # Remove any previous leases + self._remove_lease(lease) + # Store the lease self.leases.add(lease) @@ -310,6 +315,12 @@ class UnboundDHCPLeasesBridge(object): if lease.ipaddr == ipaddr: return lease + def _remove_lease(self, lease): + try: + self.leases.remove(lease) + except KeyError: + pass + def read_static_hosts(self): log.info("Reading static hosts from %s" % self.hosts_file)