diff options
author | pmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035> | 2011-11-24 21:07:45 +0000 |
---|---|---|
committer | pmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035> | 2011-11-24 21:07:45 +0000 |
commit | 11a89f123eeac66ffa53347077f27a85a5537200 (patch) | |
tree | 9b61d63dc98cf194d0489c18ee805b78698f4e07 /trunk | |
parent | bcbd71a53623d3980c6c54daa3e0ecd99d6160fc (diff) | |
download | ipaddr-py-11a89f123eeac66ffa53347077f27a85a5537200.tar.gz |
fix for i84
git-svn-id: https://ipaddr-py.googlecode.com/svn@236 09200d28-7f98-11dd-ad27-0f66e57d2035
Diffstat (limited to 'trunk')
-rw-r--r-- | trunk/ipaddr.py | 4 | ||||
-rwxr-xr-x | trunk/ipaddr_test.py | 5 |
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))) |