summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035>2011-11-24 21:07:45 +0000
committerpmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035>2011-11-24 21:07:45 +0000
commit11a89f123eeac66ffa53347077f27a85a5537200 (patch)
tree9b61d63dc98cf194d0489c18ee805b78698f4e07
parentbcbd71a53623d3980c6c54daa3e0ecd99d6160fc (diff)
downloadipaddr-py-11a89f123eeac66ffa53347077f27a85a5537200.tar.gz
fix for i84
git-svn-id: https://ipaddr-py.googlecode.com/svn@236 09200d28-7f98-11dd-ad27-0f66e57d2035
-rw-r--r--trunk/ipaddr.py4
-rwxr-xr-xtrunk/ipaddr_test.py5
2 files changed, 9 insertions, 0 deletions
diff --git a/trunk/ipaddr.py b/trunk/ipaddr.py
index 09e4ebd..ef60011 100644
--- a/trunk/ipaddr.py
+++ b/trunk/ipaddr.py
@@ -1323,6 +1323,8 @@ class IPv4Network(_BaseV4, _BaseNet):
if self.ip != self.network:
raise ValueError('%s has host bits set' %
self.ip)
+ if self._prefixlen == (self._max_prefixlen - 1):
+ self.iterhosts = self.__iter__
def _is_hostmask(self, ip_str):
"""Test if the IP string is a hostmask (rather than a netmask).
@@ -1870,6 +1872,8 @@ class IPv6Network(_BaseV6, _BaseNet):
if self.ip != self.network:
raise ValueError('%s has host bits set' %
self.ip)
+ if self._prefixlen == (self._max_prefixlen - 1):
+ self.iterhosts = self.__iter__
def _is_valid_netmask(self, prefixlen):
"""Verify that the netmask/prefixlen is valid.
diff --git a/trunk/ipaddr_test.py b/trunk/ipaddr_test.py
index 24f1fae..47345db 100755
--- a/trunk/ipaddr_test.py
+++ b/trunk/ipaddr_test.py
@@ -333,6 +333,11 @@ class IpaddrUnitTest(unittest.TestCase):
self.assertEqual(self.ipv4.subnet(), list(self.ipv4.iter_subnets()))
self.assertEqual(self.ipv6.subnet(), list(self.ipv6.iter_subnets()))
+ def testIterHosts(self):
+ self.assertEqual([ipaddr.IPv4Address('2.0.0.0'),
+ ipaddr.IPv4Address('2.0.0.1')],
+ list(ipaddr.IPNetwork('2.0.0.0/31').iterhosts()))
+
def testFancySubnetting(self):
self.assertEqual(sorted(self.ipv4.subnet(prefixlen_diff=3)),
sorted(self.ipv4.subnet(new_prefix=27)))