From edcea3e1c9c484097060831c99ac2445b457491c Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 10 May 2024 17:07:23 +0100 Subject: [PATCH] unbound-dhcp-leases-bridge: Make Leases hashable and equal by IP address Signed-off-by: Michael Tremer --- config/unbound/unbound-dhcp-leases-bridge | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/config/unbound/unbound-dhcp-leases-bridge b/config/unbound/unbound-dhcp-leases-bridge index 604a172de..c2270fbbd 100644 --- a/config/unbound/unbound-dhcp-leases-bridge +++ b/config/unbound/unbound-dhcp-leases-bridge @@ -488,20 +488,25 @@ class Lease(object): self._properties = properties def __repr__(self): - return "<%s %s for %s (%s)>" % (self.__class__.__name__, - self.ipaddr, self.hwaddr, self.hostname) + return "<%s for %s (%s)>" % (self.__class__.__name__, self.ipaddr, self.hostname) def __eq__(self, other): - return self.ipaddr == other.ipaddr and self.hwaddr == other.hwaddr + if isinstance(other, self.__class__): + return self.ipaddr == other.ipaddr + + return NotImplemented def __gt__(self, other): - if not self.ipaddr == other.ipaddr: - return + if isinstance(other, self.__class__): + if not self.ipaddr == other.ipaddr: + return NotImplemented - if not self.hwaddr == other.hwaddr: - return + return self.time_starts > other.time_starts + + return NotImplemented - return self.time_starts > other.time_starts + def __hash__(self): + return hash(self.ipaddr) @property def binding_state(self): -- 2.39.5