aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmproxy/proxy.py6
-rw-r--r--test/test_proxy.py8
2 files changed, 13 insertions, 1 deletions
diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py
index e7b2c409..0d1ad692 100644
--- a/libmproxy/proxy.py
+++ b/libmproxy/proxy.py
@@ -423,7 +423,11 @@ class AppRegistry:
"""
Returns an WSGIAdaptor instance if request matches an app, or None.
"""
- return self.apps.get((request.host, request.port), None)
+ if (request.host, request.port) in self.apps:
+ return self.apps[(request.host, request.port)]
+ if "host" in request.headers:
+ host = request.headers["host"][0]
+ return self.apps.get((host, request.port), None)
class DummyServer:
diff --git a/test/test_proxy.py b/test/test_proxy.py
index d4d275b5..10587168 100644
--- a/test/test_proxy.py
+++ b/test/test_proxy.py
@@ -21,3 +21,11 @@ def test_app_registry():
r.port = 81
assert not ar.get(r)
+
+
+ r = tutils.treq()
+ r.host = "domain2"
+ r.port = 80
+ assert not ar.get(r)
+ r.headers["host"] = ["domain"]
+ assert ar.get(r)