aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/flow.py18
-rw-r--r--libmproxy/script.py14
2 files changed, 19 insertions, 13 deletions
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index 25fa3fc1..e649fbb8 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -15,6 +15,21 @@ class RunException(Exception):
self.errout = errout
+class ScriptContext:
+ def __init__(self, master):
+ self._master = master
+
+ def log(self, *args, **kwargs):
+ """
+ Logs an event.
+
+ How this is handled depends on the front-end. mitmdump will display
+ events if the eventlog flag ("-e") was passed. mitmproxy sends
+ output to the eventlog for display ("v" keyboard shortcut).
+ """
+ self._master.add_event(*args, **kwargs)
+
+
class Headers:
def __init__(self, lst=None):
if lst:
@@ -1055,7 +1070,6 @@ class State(object):
i.kill(master)
-
class FlowMaster(controller.Master):
def __init__(self, server, state):
controller.Master.__init__(self, server)
@@ -1086,7 +1100,7 @@ class FlowMaster(controller.Master):
"""
Returns an (error, script) tuple.
"""
- s = script.Script(path, self)
+ s = script.Script(path, ScriptContext(self))
try:
s.load()
except script.ScriptError, v:
diff --git a/libmproxy/script.py b/libmproxy/script.py
index 03eff958..251d6dea 100644
--- a/libmproxy/script.py
+++ b/libmproxy/script.py
@@ -1,15 +1,8 @@
-import imp, os, traceback
+import imp, os, traceback, flow
class ScriptError(Exception):
pass
-class Context:
- def __init__(self, master, state):
- self.master, self.state = master, state
-
- def log(self, *args, **kwargs):
- self.master.add_event(*args, **kwargs)
-
class Script:
"""
@@ -19,9 +12,8 @@ class Script:
s.load()
s.run("start")
"""
- def __init__(self, path, master):
- self.path = path
- self.ctx = Context(master, master.state)
+ def __init__(self, path, ctx):
+ self.path, self.ctx = path, ctx
self.mod = None
self.ns = None