diff options
Diffstat (limited to 'libmproxy')
| -rw-r--r-- | libmproxy/proxy.py | 10 | 
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) | 
