aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/flow.py
diff options
context:
space:
mode:
authorMatthew Shao <me@matshao.com>2015-11-13 21:08:39 +0800
committerMatthew Shao <me@matshao.com>2015-11-13 21:08:39 +0800
commitcd0b9e01be4041275165ab5e90b524ab0b3247f0 (patch)
tree856a4fc440240a9152e02d842413d6e2ed049ef2 /libmproxy/flow.py
parent2522ba69fa5a8acb394c48cba05afdb5e01b4e4a (diff)
downloadmitmproxy-cd0b9e01be4041275165ab5e90b524ab0b3247f0.tar.gz
mitmproxy-cd0b9e01be4041275165ab5e90b524ab0b3247f0.tar.bz2
mitmproxy-cd0b9e01be4041275165ab5e90b524ab0b3247f0.zip
Decouple libmproxy.script from libmproxy.flow
Diffstat (limited to 'libmproxy/flow.py')
-rw-r--r--libmproxy/flow.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index 7cce5193..6f57c1a6 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -642,6 +642,7 @@ class FlowMaster(controller.Master):
self.stream = None
self.apps = AppRegistry()
+ script.sig_script_change.connect(self.script_change)
def start_app(self, host, port):
self.apps.add(
@@ -666,10 +667,6 @@ class FlowMaster(controller.Master):
except script.ScriptError as e:
self.add_event("Script error:\n" + str(e), "error")
self.scripts.remove(script_obj)
-
- def reload_scripts(self):
- for s in self.scripts[:]:
- s.load()
def load_script(self, command):
"""
@@ -1025,6 +1022,9 @@ class FlowMaster(controller.Master):
def handle_accept_intercept(self, f):
self.state.update_flow(f)
+ def handle_script_change(self, script):
+ script.load()
+
def shutdown(self):
self.unload_scripts()
controller.Master.shutdown(self)
@@ -1041,6 +1041,10 @@ class FlowMaster(controller.Master):
self.stream.fo.close()
self.stream = None
+ def script_change(self, script):
+ self.masterq.put(("script_change", script))
+ self.add_event("<{}> reloaded.".format(script.args[0]))
+
def read_flows_from_paths(paths):
"""