Exemplo n.º 1
0
    def read(self, amt=None):
        if not self._readline_buffer:
            return HTTPResponse.read(self, amt)

        if amt is None:
            # Unbounded read: send anything we have buffered plus whatever
            # is left.
            buffered = self._readline_buffer
            self._readline_buffer = ''
            return buffered + HTTPResponse.read(self, amt)
        elif amt <= len(self._readline_buffer):
            # Bounded read that we can satisfy entirely from our buffer
            res = self._readline_buffer[:amt]
            self._readline_buffer = self._readline_buffer[amt:]
            return res
        else:
            # Bounded read that wants more bytes than we have
            smaller_amt = amt - len(self._readline_buffer)
            buf = self._readline_buffer
            self._readline_buffer = ''
            return buf + HTTPResponse.read(self, smaller_amt)
Exemplo n.º 2
0
    def readline(self, size=1024):
        # You'd think Python's httplib would provide this, but it doesn't.
        # It does, however, provide a comment in the HTTPResponse class:
        #
        #  # XXX It would be nice to have readline and __iter__ for this,
        #  # too.
        #
        # Yes, it certainly would.
        while ('\n' not in self._readline_buffer
               and len(self._readline_buffer) < size):
            read_size = size - len(self._readline_buffer)
            chunk = HTTPResponse.read(self, read_size)
            if not chunk:
                break
            self._readline_buffer += chunk

        line, newline, rest = self._readline_buffer.partition('\n')
        self._readline_buffer = rest
        return line + newline
Exemplo n.º 3
0
 def close(self):
     HTTPResponse.close(self)
     self.sock = None
Exemplo n.º 4
0
 def close(self):
     HTTPResponse.close(self)
     self.sock = None
     self._actual_socket = None
Exemplo n.º 5
0
 def read(self, amount=None):
     return HTTPResponse.read(self, amount)
Exemplo n.º 6
0
 def close(self):
     HTTPResponse.close(self)
     self.sock = None
     self._actual_socket = None
Exemplo n.º 7
0
 def read(self, amount=None):
     return HTTPResponse.read(self, amount)
Exemplo n.º 8
0
 def close(self):
     HTTPResponse.close(self)
     self.sock = None