def set_body_reader(self): chunked = False content_length = None for (name, value) in self.headers: if name == "CONTENT-LENGTH": if content_length is not None: raise InvalidHeader("CONTENT-LENGTH", req=self) content_length = value elif name == "TRANSFER-ENCODING": if value.lower() == "chunked": chunked = True elif name == "SEC-WEBSOCKET-KEY1": content_length = 8 if chunked: self.body = Body(ChunkedReader(self, self.unreader)) elif content_length is not None: try: content_length = int(content_length) except ValueError: raise InvalidHeader("CONTENT-LENGTH", req=self) if content_length < 0: raise InvalidHeader("CONTENT-LENGTH", req=self) self.body = Body(LengthReader(self.unreader, content_length)) else: self.body = Body(EOFReader(self.unreader))
def set_body_reader(self): chunked = False response_length = None for (name, value) in self.headers: if name == "CONTENT-LENGTH": try: response_length = int(value) except ValueError: response_length = None elif name == "TRANSFER-ENCODING": chunked = value.lower() == "chunked" elif name == "SEC-WEBSOCKET-KEY1": response_length = 8 if response_length is not None or chunked: break if chunked: self.body = Body(ChunkedReader(self, self.unreader)) elif response_length is not None: self.body = Body(LengthReader(self.unreader, response_length)) else: self.body = Body(EOFReader(self.unreader))