aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/proxy
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/proxy')
-rw-r--r--libmproxy/proxy/config.py1
-rw-r--r--libmproxy/proxy/connection.py3
-rw-r--r--libmproxy/proxy/primitives.py10
-rw-r--r--libmproxy/proxy/server.py8
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