Fixes issue6169: it was possible for two ipaddr network addresses to compare
as both < and > than eachother.
diff --git a/Lib/ipaddr.py b/Lib/ipaddr.py
index b04a4b8..a2d9e93 100644
--- a/Lib/ipaddr.py
+++ b/Lib/ipaddr.py
@@ -10,7 +10,7 @@
"""
-__version__ = '1.1.0'
+__version__ = '1.1.1'
import struct
@@ -204,17 +204,25 @@
def __lt__(self, other):
try:
- return (self.version < other.version
- or self.ip < other.ip
- or self.netmask < other.netmask)
+ if self.version != other.version:
+ return self.version < other.version
+ if self.ip != other.ip:
+ return self.ip < other.ip
+ if self.netmask != other.netmask:
+ return self.netmask < other.netmask
+ return False
except AttributeError:
return NotImplemented
def __gt__(self, other):
try:
- return (self.version > other.version
- or self.ip > other.ip
- or self.netmask > other.netmask)
+ if self.version != other.version:
+ return self.version > other.version
+ if self.ip != other.ip:
+ return self.ip > other.ip
+ if self.netmask != other.netmask:
+ return self.netmask > other.netmask
+ return False
except AttributeError:
return NotImplemented