rendered paste bodyclass BufferedSocket(): """Provide readline() method for socket""" def __init__(self, sock, chunksize=64): self.sock = sock self.chunksize = chunksize self.buffer = "" def readline(self): while True: index = self.buffer.find(CRLF) if not index < 0: line = self.buffer[:index] self.buffer = self.buffer[index + len(CRLF):] return line self.buffer = self.buffer + self.sock.read(self.chunksize) def read(self, amount): while len(self.buffer) < amount: self.buffer = self.buffer + self.sock.read(max([self.chunksize, amount - len(self.buffer)])) return self.buffer[:amount]