D2984: keepalive: implement readinto()
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Fri Mar 30 21:16:18 UTC 2018
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
This is part of the standard I/O interface. It is used by the framing
protocol. So we need to implement it so frames can be decoded.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D2984
AFFECTED FILES
mercurial/keepalive.py
CHANGE DETAILS
diff --git a/mercurial/keepalive.py b/mercurial/keepalive.py
--- a/mercurial/keepalive.py
+++ b/mercurial/keepalive.py
@@ -349,7 +349,7 @@
class HTTPResponse(httplib.HTTPResponse):
# we need to subclass HTTPResponse in order to
- # 1) add readline() and readlines() methods
+ # 1) add readline(), readlines(), and readinto() methods
# 2) add close_connection() methods
# 3) add info() and geturl() methods
@@ -522,6 +522,14 @@
break
return list
+ def readinto(self, dest):
+ res = self.read(len(dest))
+ if not res:
+ return 0
+
+ dest[0:len(res)] = res
+ return len(res)
+
def safesend(self, str):
"""Send `str' to the server.
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list