aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2013-11-18 17:25:52 +0100
committerMaximilian Hils <git@maximilianhils.com>2013-11-18 17:25:52 +0100
commit675518f8735c3f70e25bc448c804ac0fd506a43c (patch)
tree5d4c8b2a728a6dbed49d6a75839730426bf1e77c
parent38a1135ab8f3ab2e97d07fa8e339067c67722e16 (diff)
downloadmitmproxy-675518f8735c3f70e25bc448c804ac0fd506a43c.tar.gz
mitmproxy-675518f8735c3f70e25bc448c804ac0fd506a43c.tar.bz2
mitmproxy-675518f8735c3f70e25bc448c804ac0fd506a43c.zip
add serverconnect script hook
-rw-r--r--libmproxy/flow.py7
-rw-r--r--libmproxy/proxy.py1
2 files changed, 8 insertions, 0 deletions
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index 24042812..40b7e535 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -1580,6 +1580,13 @@ class FlowMaster(controller.Master):
self.run_script_hook("clientdisconnect", r)
r.reply()
+ def handle_serverconnection(self, sc):
+ # To unify the mitmproxy script API, we call the script hook "serverconnect" rather than "serverconnection".
+ # As things are handled differently in libmproxy (ClientConnect + ClientDisconnect vs ServerConnection class),
+ # there is no "serverdisonnect" event at the moment.
+ self.run_script_hook("serverconnect", sc)
+ sc.reply()
+
def handle_error(self, r):
f = self.state.add_error(r)
if f:
diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py
index 75a54192..94f358bc 100644
--- a/libmproxy/proxy.py
+++ b/libmproxy/proxy.py
@@ -158,6 +158,7 @@ class ProxyHandler(tcp.BaseHandler):
if not self.server_conn:
try:
self.server_conn = ServerConnection(self.config, scheme, host, port, sni)
+ self.channel.ask(self.server_conn)
self.server_conn.connect()
except tcp.NetLibError, v:
raise ProxyError(502, v)