diff --git a/Lib/httplib.py b/Lib/httplib.py index 72e8a725398..01fc1eef8f7 100644 --- a/Lib/httplib.py +++ b/Lib/httplib.py @@ -457,10 +457,11 @@ def read(self, amt=None): if amt is None: # unbounded read - if self.will_close: + if self.length is None: s = self.fp.read() else: s = self._safe_read(self.length) + self.length = 0 self.close() # we read everything return s @@ -468,12 +469,13 @@ def read(self, amt=None): if amt > self.length: # clip the read to the "end of response" amt = self.length - self.length -= amt # we do not use _safe_read() here because this may be a .will_close # connection, and the user is reading more bytes than will be provided # (for example, reading in 1k chunks) s = self.fp.read(amt) + if self.length is not None: + self.length -= len(s) return s diff --git a/Misc/ACKS b/Misc/ACKS index 58dd0adbb8e..b2528f7fa98 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -302,6 +302,7 @@ Jiba Orjan Johansen Simon Johnston Richard Jones +Irmen de Jong Lucas de Jonge Jens B. Jorgensen John Jorgensen