#17400: correct handling of 100.64.0.0/10, fixing the docs and updating NEWS

This commit is contained in:
Peter Moody 2013-10-24 09:47:10 -07:00
parent a46079e853
commit e5019d5183
4 changed files with 27 additions and 13 deletions

View file

@ -1244,7 +1244,6 @@ class IPv4Address(_BaseV4, _BaseAddress):
"""
return (self in IPv4Network('0.0.0.0/8') or
self in IPv4Network('10.0.0.0/8') or
self in IPv4Network('100.64.0.0/10') or
self in IPv4Network('127.0.0.0/8') or
self in IPv4Network('169.254.0.0/16') or
self in IPv4Network('172.16.0.0/12') or
@ -1258,17 +1257,6 @@ class IPv4Address(_BaseV4, _BaseAddress):
self in IPv4Network('240.0.0.0/4') or
self in IPv4Network('255.255.255.255/32'))
@property
def is_global(self):
"""Test if this address is allocated for public networks.
Returns:
A boolean, True if the address is not reserved per
iana-ipv4-special-registry.
"""
return self in IPv4Network('100.64.0.0/10') or not self.is_private
@property
def is_multicast(self):
@ -1501,6 +1489,21 @@ class IPv4Network(_BaseV4, _BaseNetwork):
if self._prefixlen == (self._max_prefixlen - 1):
self.hosts = self.__iter__
@property
@functools.lru_cache()
def is_global(self):
"""Test if this address is allocated for public networks.
Returns:
A boolean, True if the address is not reserved per
iana-ipv4-special-registry.
"""
return (not (self.network_address in IPv4Network('100.64.0.0/10') and
self.broadcast_address in IPv4Network('100.64.0.0/10')) and
not self.is_private)
class _BaseV6: