aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-04-25 14:38:20 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-04-25 14:38:20 +1200
commit2fe54d17df90b1849f1685e2f6d7aa87e4d67d59 (patch)
treef70168ca89e49cece3a127b769f2ebf57b670126
parentefa98d514c6a8b6670d808f2bddb7158a6741ff0 (diff)
downloadmitmproxy-2fe54d17df90b1849f1685e2f6d7aa87e4d67d59.tar.gz
mitmproxy-2fe54d17df90b1849f1685e2f6d7aa87e4d67d59.tar.bz2
mitmproxy-2fe54d17df90b1849f1685e2f6d7aa87e4d67d59.zip
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.
-rw-r--r--libmproxy/flow.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index 732718d3..2ef56570 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))