diff --git a/deproxy.py b/deproxy.py index 53e56b7..61c9b86 100755 --- a/deproxy.py +++ b/deproxy.py @@ -378,8 +378,10 @@ def __repr__(self): self.orphaned_handlings)) -def read_body_from_stream(stream, headers): - if ('Transfer-Encoding' in headers and +def read_body_from_stream(stream, headers, method): + if method == "HEAD": # no body + body = None + elif ('Transfer-Encoding' in headers and headers['Transfer-Encoding'] not in ['identity', 'chunked']): # 2 logger.debug('NotImplementedError - Transfer-Encoding not in "identity", "chunked"') @@ -604,7 +606,7 @@ def send_request(self, scheme, host, request): logger.debug(' %s: %s', k, v) logger.debug('Reading body') - body = read_body_from_stream(rfile, response_headers) + body = read_body_from_stream(rfile, response_headers, request.method) logger.debug('Creating Response object') response = Response(code, message, response_headers, body) @@ -1071,7 +1073,7 @@ def parse_request(self, rfile, wfile): persistent_connection = True logger.debug('reading body') - body = read_body_from_stream(rfile, headers) + body = read_body_from_stream(rfile, headers, method) logger.debug('returning') return (Request(method, path, headers, body), persistent_connection)