mercurial/keepalive.py
changeset 37587 192b7ad06932
parent 37297 97eedbd5a56c
child 37665 83250442dc81
equal deleted inserted replaced
37586:b94fecf4cd8c 37587:192b7ad06932
   382         self._host = None    # (same)
   382         self._host = None    # (same)
   383         self._url = None     # (same)
   383         self._url = None     # (same)
   384         self._connection = None # (same)
   384         self._connection = None # (same)
   385 
   385 
   386     _raw_read = httplib.HTTPResponse.read
   386     _raw_read = httplib.HTTPResponse.read
       
   387     _raw_readinto = getattr(httplib.HTTPResponse, 'readinto', None)
   387 
   388 
   388     def close(self):
   389     def close(self):
   389         if self.fp:
   390         if self.fp:
   390             self.fp.close()
   391             self.fp.close()
   391             self.fp = None
   392             self.fp = None
   521             if sizehint and total >= sizehint:
   522             if sizehint and total >= sizehint:
   522                 break
   523                 break
   523         return list
   524         return list
   524 
   525 
   525     def readinto(self, dest):
   526     def readinto(self, dest):
   526         res = self.read(len(dest))
   527         if self._raw_readinto is None:
   527         if not res:
   528             res = self.read(len(dest))
   528             return 0
   529             if not res:
   529 
   530                 return 0
   530         dest[0:len(res)] = res
   531             dest[0:len(res)] = res
   531         return len(res)
   532             return len(res)
       
   533         total = len(dest)
       
   534         have = len(self._rbuf)
       
   535         if have >= total:
       
   536             dest[0:total] = self._rbuf[:total]
       
   537             self._rbuf = self._rbuf[total:]
       
   538             return total
       
   539         mv = memoryview(dest)
       
   540         got = self._raw_readinto(mv[have:total])
       
   541         dest[0:have] = self._rbuf
       
   542         got += len(self._rbuf)
       
   543         self._rbuf = ''
       
   544         return got
   532 
   545 
   533 def safesend(self, str):
   546 def safesend(self, str):
   534     """Send `str' to the server.
   547     """Send `str' to the server.
   535 
   548 
   536     Shamelessly ripped off from httplib to patch a bad behavior.
   549     Shamelessly ripped off from httplib to patch a bad behavior.