aboutsummaryrefslogtreecommitdiffstats
path: root/test/tservers.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2014-03-10 05:11:51 +0100
committerMaximilian Hils <git@maximilianhils.com>2014-03-10 05:11:51 +0100
commitfe58c1c6eb16fdc14bd24843cb896b3d8a4eefc8 (patch)
tree0587a4a1a7351d313454a72ce237694c6523ff96 /test/tservers.py
parent78750a8b4da217a2b3f3eac23bea92b6c428fc35 (diff)
downloadmitmproxy-fe58c1c6eb16fdc14bd24843cb896b3d8a4eefc8.tar.gz
mitmproxy-fe58c1c6eb16fdc14bd24843cb896b3d8a4eefc8.tar.bz2
mitmproxy-fe58c1c6eb16fdc14bd24843cb896b3d8a4eefc8.zip
add advanced proxying options, add SSL-terminating capability to mitmproxy
Diffstat (limited to 'test/tservers.py')
-rw-r--r--test/tservers.py31
1 files changed, 14 insertions, 17 deletions
diff --git a/test/tservers.py b/test/tservers.py
index addc7011..9ad3b735 100644
--- a/test/tservers.py
+++ b/test/tservers.py
@@ -4,6 +4,7 @@ import shutil, tempfile
import flask
from libmproxy.proxy.config import ProxyConfig
from libmproxy.proxy.server import ProxyServer
+from libmproxy.proxy.primitives import TransparentUpstreamServerResolver
import libpathod.test, libpathod.pathoc
from libmproxy import flow, controller
from libmproxy.cmdline import APP_HOST, APP_PORT
@@ -193,10 +194,7 @@ class TransparentProxTest(ProxTestBase):
ports = [cls.server.port, cls.server2.port]
else:
ports = []
- d["transparent_proxy"] = dict(
- resolver = cls.resolver(cls.server.port),
- sslports = ports
- )
+ d["get_upstream_server"] = TransparentUpstreamServerResolver(cls.resolver(cls.server.port), ports)
d["http_form_in"] = "relative"
d["http_form_out"] = "relative"
return d
@@ -227,11 +225,12 @@ class ReverseProxTest(ProxTestBase):
@classmethod
def get_proxy_config(cls):
d = ProxTestBase.get_proxy_config()
- d["upstream_server"] = (
- "https" if cls.ssl else "http",
- "127.0.0.1",
- cls.server.port
- )
+ d["get_upstream_server"] = lambda c: (
+ True if cls.ssl else False,
+ True if cls.ssl else False,
+ "127.0.0.1",
+ cls.server.port
+ )
d["http_form_in"] = "relative"
d["http_form_out"] = "relative"
return d
@@ -262,19 +261,17 @@ class ChainProxTest(ProxTestBase):
Chain n instances of mitmproxy in a row - because we can.
"""
n = 2
- chain_config = [lambda: ProxyConfig()] * n
+ chain_config = [lambda port: ProxyConfig(
+ get_upstream_server = lambda c: (False, False, "127.0.0.1", port),
+ http_form_in = "absolute",
+ http_form_out = "absolute"
+ )] * n
@classmethod
def setupAll(cls):
super(ChainProxTest, cls).setupAll()
cls.chain = []
for i in range(cls.n):
- config = cls.chain_config[i]()
- config.upstream_server = ("http", "127.0.0.1",
- cls.proxy.port if i == 0 else
- cls.chain[-1].port
- )
- config.http_form_in = "absolute"
- config.http_form_out = "absolute"
+ config = cls.chain_config[i](cls.proxy.port if i == 0 else cls.chain[-1].port)
tmaster = cls.masterclass(config)
tmaster.start_app(APP_HOST, APP_PORT, cls.externalapp)
cls.chain.append(ProxyThread(tmaster))