aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/protocol
diff options
context:
space:
mode:
authoriroiro123 <user1@cygwin>2015-06-18 23:53:27 +0900
committeriroiro123 <user1@cygwin>2015-06-18 23:53:27 +0900
commit59ec291b6cff1dfa83b316401418b6308df93aac (patch)
tree23a7b348104f17366518f28bc6bea71b97864912 /libmproxy/protocol
parente9fecbf83077ec18b764b2b4c0065698a023f762 (diff)
downloadmitmproxy-59ec291b6cff1dfa83b316401418b6308df93aac.tar.gz
mitmproxy-59ec291b6cff1dfa83b316401418b6308df93aac.tar.bz2
mitmproxy-59ec291b6cff1dfa83b316401418b6308df93aac.zip
HTTP Transparent Proxy
Diffstat (limited to 'libmproxy/protocol')
-rw-r--r--libmproxy/protocol/http.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/libmproxy/protocol/http.py b/libmproxy/protocol/http.py
index 9c143386..c7479b76 100644
--- a/libmproxy/protocol/http.py
+++ b/libmproxy/protocol/http.py
@@ -1328,7 +1328,20 @@ class HTTPHandler(ProtocolHandler):
# value at flow.server_conn
self.c.set_server_address((request.host, request.port))
flow.server_conn = self.c.server_conn
-
+
+ elif request.form_in == "relative":
+ if self.c.config.mode == "httptransparent":
+ h = request.headers.get_first("host")
+ if h is None:
+ raise http.HttpError(
+ 400,
+ "Invalid request: No Host header"
+ )
+ p = http.parse_url("http://" + h)
+ request.host, request.port = p[1], p[2]
+ self.c.set_server_address((request.host, request.port))
+ flow.server_conn = self.c.server_conn
+
return None
raise http.HttpError(
400, "Invalid HTTP request form (expected: %s, got: %s)" % (