diff options
Diffstat (limited to 'libmproxy/proxy')
-rw-r--r-- | libmproxy/proxy/config.py | 1 | ||||
-rw-r--r-- | libmproxy/proxy/connection.py | 3 | ||||
-rw-r--r-- | libmproxy/proxy/primitives.py | 10 | ||||
-rw-r--r-- | libmproxy/proxy/server.py | 8 |
4 files changed, 13 insertions, 9 deletions
diff --git a/libmproxy/proxy/config.py b/libmproxy/proxy/config.py index 0a1345fa..94a12bf4 100644 --- a/libmproxy/proxy/config.py +++ b/libmproxy/proxy/config.py @@ -24,6 +24,7 @@ class ProxyConfig: self.http_form_out = http_form_out self.authenticator = authenticator self.confdir = os.path.expanduser(confdir) + self.ca_file = os.path.join(self.confdir, CONF_BASENAME + "-ca.pem") self.certstore = certutils.CertStore.from_store(self.confdir, CONF_BASENAME) for spec, cert in certs: self.certstore.add_cert_file(spec, cert) diff --git a/libmproxy/proxy/connection.py b/libmproxy/proxy/connection.py index 389a14ca..372bee2e 100644 --- a/libmproxy/proxy/connection.py +++ b/libmproxy/proxy/connection.py @@ -69,6 +69,7 @@ class ServerConnection(tcp.TCPClient, stateobject.SimpleStateObject): self.priority = priority self.peername = None + self.sockname = None self.timestamp_start = None self.timestamp_end = None self.timestamp_tcp_setup = None @@ -76,6 +77,7 @@ class ServerConnection(tcp.TCPClient, stateobject.SimpleStateObject): _stateobject_attributes = dict( peername=tuple, + sockname=tuple, timestamp_start=float, timestamp_end=float, timestamp_tcp_setup=float, @@ -117,6 +119,7 @@ class ServerConnection(tcp.TCPClient, stateobject.SimpleStateObject): self.timestamp_start = utils.timestamp() tcp.TCPClient.connect(self) self.peername = self.connection.getpeername() + self.sockname = self.connection.getsockname() self.timestamp_tcp_setup = utils.timestamp() def send(self, message): diff --git a/libmproxy/proxy/primitives.py b/libmproxy/proxy/primitives.py index 691db922..6154749c 100644 --- a/libmproxy/proxy/primitives.py +++ b/libmproxy/proxy/primitives.py @@ -1,12 +1,10 @@ from __future__ import absolute_import -class ProxyError(Exception): - def __init__(self, code, msg, headers=None): - self.code, self.msg, self.headers = code, msg, headers - - def __str__(self): - return "ProxyError(%s, %s)" % (self.code, self.msg) +class ProxyError(Exception): + def __init__(self, code, message, headers=None): + super(ProxyError, self).__init__(self, message) + self.code, self.headers = code, headers class ConnectionTypeChange(Exception): """ diff --git a/libmproxy/proxy/server.py b/libmproxy/proxy/server.py index 1820c881..741e5f93 100644 --- a/libmproxy/proxy/server.py +++ b/libmproxy/proxy/server.py @@ -197,7 +197,8 @@ class ConnectionHandler: cert, key, handle_sni=self.handle_sni, cipher_list=self.config.ciphers, - dhparams=self.config.certstore.dhparams + dhparams=self.config.certstore.dhparams, + ca_file=self.config.ca_file ) def server_reconnect(self, no_ssl=False): @@ -260,11 +261,12 @@ class ConnectionHandler: cert, key, method=SSL.TLSv1_METHOD, cipher_list=self.config.ciphers, - dhparams=self.config.certstore.dhparams + dhparams=self.config.certstore.dhparams, + ca_file=self.config.ca_file ) connection.set_context(new_context) # An unhandled exception in this method will core dump PyOpenSSL, so # make dang sure it doesn't happen. - except Exception, e: # pragma: no cover + except Exception: # pragma: no cover import traceback self.log("Error in handle_sni:\r\n" + traceback.format_exc(), "error")
\ No newline at end of file |