aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/proxy.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-06-15 09:20:10 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-06-15 09:20:10 +1200
commita9495dc02fa0942d82e1247f875bb962872e8802 (patch)
treec52e505036f15650e78c2c327e8f617f30c6a289 /libmproxy/proxy.py
parent176d819559e01125c6fe2a34c86cb47c62f49b27 (diff)
downloadmitmproxy-a9495dc02fa0942d82e1247f875bb962872e8802.tar.gz
mitmproxy-a9495dc02fa0942d82e1247f875bb962872e8802.tar.bz2
mitmproxy-a9495dc02fa0942d82e1247f875bb962872e8802.zip
Refactor test suite to make room for transparent mode tests.
Diffstat (limited to 'libmproxy/proxy.py')
-rw-r--r--libmproxy/proxy.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py
index ea38b1e8..fa8d1062 100644
--- a/libmproxy/proxy.py
+++ b/libmproxy/proxy.py
@@ -34,7 +34,8 @@ class ProxyError(Exception):
class ProxyConfig:
- def __init__(self, certfile = None, cacert = None, clientcerts = None, cert_wait_time=0, upstream_cert=False, body_size_limit = None, reverse_proxy=None):
+ def __init__(self, certfile = None, cacert = None, clientcerts = None, cert_wait_time=0, upstream_cert=False, body_size_limit = None, reverse_proxy=None, transparent_mode=None):
+ assert not (reverse_proxy and transparent_mode)
self.certfile = certfile
self.cacert = cacert
self.clientcerts = clientcerts
@@ -43,6 +44,7 @@ class ProxyConfig:
self.upstream_cert = upstream_cert
self.body_size_limit = body_size_limit
self.reverse_proxy = reverse_proxy
+ self.transparent_mode = transparent_mode
def read_headers(fp):
@@ -239,7 +241,7 @@ class FileLike:
def flush(self):
pass
-
+
def read(self, length):
result = ''
while len(result) < length:
@@ -488,7 +490,9 @@ class ProxyHandler(SocketServer.StreamRequestHandler):
if line == "":
return None
- if self.config.reverse_proxy:
+ if self.config.transparent_mode:
+ pass
+ elif self.config.reverse_proxy:
scheme, host, port = self.config.reverse_proxy
method, path, httpversion = parse_init_http(line)
headers = read_headers(self.rfile)