summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/library/ipaddress.rst6
-rw-r--r--Lib/gzip.py6
-rw-r--r--Lib/ipaddress.py10
-rw-r--r--Lib/test/test_ipaddress.py4
-rw-r--r--Misc/NEWS4
5 files changed, 13 insertions, 17 deletions
diff --git a/Doc/library/ipaddress.rst b/Doc/library/ipaddress.rst
index d555116..fea1724 100644
--- a/Doc/library/ipaddress.rst
+++ b/Doc/library/ipaddress.rst
@@ -390,11 +390,13 @@ so to avoid duplication they are only documented for :class:`IPv4Network`.
.. attribute:: network_address
- The broadcast address for the network.
+ The network address for the network. The network address and the
+ prefix length together uniquely define a network.
.. attribute:: broadcast_address
- The broadcast address for the network.
+ The broadcast address for the network. Packets sent to the broadcast
+ address should be received by every host on the network.
.. attribute:: host mask
diff --git a/Lib/gzip.py b/Lib/gzip.py
index 5bcfe61..b6656a9 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -413,8 +413,10 @@ class GzipFile(io.BufferedIOBase):
if self.fileobj is None:
return b''
try:
- # 1024 is the same buffering heuristic used in read()
- self._read(max(n, 1024))
+ # Ensure that we don't return b"" if we haven't reached EOF.
+ while self.extrasize == 0:
+ # 1024 is the same buffering heuristic used in read()
+ self._read(max(n, 1024))
except EOFError:
pass
offset = self.offset - self.extrastart
diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py
index dfb5944..c9338c5 100644
--- a/Lib/ipaddress.py
+++ b/Lib/ipaddress.py
@@ -1331,10 +1331,6 @@ class IPv4Interface(IPv4Address):
return self._ip ^ self._prefixlen ^ int(self.network.network_address)
@property
- def prefixlen(self):
- return self._prefixlen
-
- @property
def ip(self):
return IPv4Address(self._ip)
@@ -1708,7 +1704,7 @@ class _BaseV6:
hex_str = '%032x' % ip_int
parts = [hex_str[x:x+4] for x in range(0, 32, 4)]
if isinstance(self, (_BaseNetwork, IPv6Interface)):
- return '%s/%d' % (':'.join(parts), self.prefixlen)
+ return '%s/%d' % (':'.join(parts), self._prefixlen)
return ':'.join(parts)
@property
@@ -1947,10 +1943,6 @@ class IPv6Interface(IPv6Address):
return self._ip ^ self._prefixlen ^ int(self.network.network_address)
@property
- def prefixlen(self):
- return self._prefixlen
-
- @property
def ip(self):
return IPv6Address(self._ip)
diff --git a/Lib/test/test_ipaddress.py b/Lib/test/test_ipaddress.py
index 061c866..09b4a5e 100644
--- a/Lib/test/test_ipaddress.py
+++ b/Lib/test/test_ipaddress.py
@@ -731,8 +731,8 @@ class IpaddrUnitTest(unittest.TestCase):
'2001:658:22a:cafe:ffff:ffff:ffff:ffff')
def testGetPrefixlen(self):
- self.assertEqual(self.ipv4_interface.prefixlen, 24)
- self.assertEqual(self.ipv6_interface.prefixlen, 64)
+ self.assertEqual(self.ipv4_interface.network.prefixlen, 24)
+ self.assertEqual(self.ipv6_interface.network.prefixlen, 64)
def testGetSupernet(self):
self.assertEqual(self.ipv4_network.supernet().prefixlen, 23)
diff --git a/Misc/NEWS b/Misc/NEWS
index 92a4d79..53f62a0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -81,8 +81,8 @@ Library
constructor, objects in the ipaddress module no longer implement __index__
(they still implement __int__ as appropriate)
-- Issue #15546: Fix handling of pathological input data in the read1() method of
- the BZ2File, GzipFile and LZMAFile classes.
+- Issue #15546: Fix handling of pathological input data in the peek() and
+ read1() methods of the BZ2File, GzipFile and LZMAFile classes.
- Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog
ended with '\'. Patch by Roger Serwy.