From d977505cab6d213bf6d492622d1980c365e3bd6c Mon Sep 17 00:00:00 2001 From: Kjell Wooding Date: Fri, 4 Jan 2019 13:16:26 -0500 Subject: [PATCH] on python 2, socket.fp doesn't have a readinto() method. Work around this like limitation like is done elsewhere in this module --- src/future/backports/http/client.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/future/backports/http/client.py b/src/future/backports/http/client.py index 5dd983d8..1a43f013 100644 --- a/src/future/backports/http/client.py +++ b/src/future/backports/http/client.py @@ -696,9 +696,19 @@ def _safe_readinto(self, b): while total_bytes < len(b): if MAXAMOUNT < len(mvb): temp_mvb = mvb[0:MAXAMOUNT] - n = self.fp.readinto(temp_mvb) + if PY2: + data = self.fp.read(len(temp_mvb)) + n = len(data) + temp_mvb[:n] = data + else: + n = self.fp.readinto(temp_mvb) else: - n = self.fp.readinto(mvb) + if PY2: + data = self.fp.read(len(mvb)) + n = len(data) + mvb[:n] = data + else: + n = self.fp.readinto(mvb) if not n: raise IncompleteRead(bytes(mvb[0:total_bytes]), len(b)) mvb = mvb[n:]