diff options
Diffstat (limited to 'libmproxy/proxy')
| -rw-r--r-- | libmproxy/proxy/connection.py | 7 | ||||
| -rw-r--r-- | libmproxy/proxy/server.py | 11 | 
2 files changed, 13 insertions, 5 deletions
diff --git a/libmproxy/proxy/connection.py b/libmproxy/proxy/connection.py index f33e84cd..f92b53aa 100644 --- a/libmproxy/proxy/connection.py +++ b/libmproxy/proxy/connection.py @@ -96,6 +96,9 @@ class ServerConnection(tcp.TCPClient, stateobject.StateObject):          self.timestamp_ssl_setup = None          self.protocol = None +    def __nonzero__(self): +        return bool(self.connection) +      def __repr__(self):          if self.ssl_established and self.sni:              ssl = "[ssl: {0}] ".format(self.sni) @@ -132,8 +135,8 @@ class ServerConnection(tcp.TCPClient, stateobject.StateObject):          d.update(              address={"address": self.address(),                       "use_ipv6": self.address.use_ipv6}, -            source_address= ({"address": self.source_address(), -                              "use_ipv6": self.source_address.use_ipv6} if self.source_address else None), +            source_address=({"address": self.source_address(), +                             "use_ipv6": self.source_address.use_ipv6} if self.source_address else None),              cert=self.cert.to_pem() if self.cert else None          )          return d diff --git a/libmproxy/proxy/server.py b/libmproxy/proxy/server.py index ffca55ee..e23a7d72 100644 --- a/libmproxy/proxy/server.py +++ b/libmproxy/proxy/server.py @@ -80,7 +80,12 @@ class ConnectionHandler2:              self.config,              self.channel          ) -        root_layer = protocol2.HttpProxy(root_context) + +        # FIXME: properly parse config +        if self.config.mode == "upstream": +            root_layer = protocol2.HttpUpstreamProxy(root_context, ("localhost", 8081)) +        else: +            root_layer = protocol2.HttpProxy(root_context)          try:              for message in root_layer(): @@ -302,7 +307,7 @@ class ConnectionHandler:                  if ssl_cert_err is not None:                      self.log(                          "SSL verification failed for upstream server at depth %s with error: %s" % -                            (ssl_cert_err['depth'], ssl_cert_err['errno']), +                        (ssl_cert_err['depth'], ssl_cert_err['errno']),                          "error")                      self.log("Ignoring server verification error, continuing with connection", "error")              except tcp.NetLibError as v: @@ -318,7 +323,7 @@ class ConnectionHandler:                      if ssl_cert_err is not None:                          self.log(                              "SSL verification failed for upstream server at depth %s with error: %s" % -                                (ssl_cert_err['depth'], ssl_cert_err['errno']), +                            (ssl_cert_err['depth'], ssl_cert_err['errno']),                              "error")                          self.log("Aborting connection attempt", "error")                      raise e  | 
