From 2fe54d17df90b1849f1685e2f6d7aa87e4d67d59 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Wed, 25 Apr 2012 14:38:20 +1200 Subject: [PATCH] Don't specify Content-Length on empty content. Sometimes, mitmproxy would specify a content-length header value of 0 when content was empty. Some rare servers (like piratebay.org) would barf on this. --- libmproxy/flow.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libmproxy/flow.py b/libmproxy/flow.py index 732718d36..2ef565707 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -528,10 +528,10 @@ class Request(HTTPMsg): if not 'host' in headers: headers["host"] = [utils.hostport(self.scheme, self.host, self.port)] content = self.content - if content is None: - content = "" - else: + if content: headers["content-length"] = [str(len(content))] + else: + content = "" if self.close: headers["connection"] = ["close"] if not _proxy: @@ -698,10 +698,10 @@ class Response(HTTPMsg): ['proxy-connection', 'connection', 'keep-alive', 'transfer-encoding'] ) content = self.content - if content is None: - content = "" - else: + if content: headers["content-length"] = [str(len(content))] + else: + content = "" if self.request.client_conn.close: headers["connection"] = ["close"] proto = "HTTP/1.1 %s %s"%(self.code, str(self.msg))