aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2014-01-12 13:59:32 +1300
committerAldo Cortesi <aldo@nullcube.com>2014-01-12 13:59:32 +1300
commite5776b8be3ea36c065beabe416506871f34892e6 (patch)
tree46da3faa0648588ac60d66b0430f06b06be7fc78 /libmproxy
parent58e1b3a47f392a5f4f16e30318820f163568f54e (diff)
downloadmitmproxy-e5776b8be3ea36c065beabe416506871f34892e6.tar.gz
mitmproxy-e5776b8be3ea36c065beabe416506871f34892e6.tar.bz2
mitmproxy-e5776b8be3ea36c065beabe416506871f34892e6.zip
Clean up and clarify script API
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/console/__init__.py10
-rw-r--r--libmproxy/flow.py21
-rw-r--r--libmproxy/script.py1
3 files changed, 12 insertions, 20 deletions
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py
index b8d4a105..f68084ff 100644
--- a/libmproxy/console/__init__.py
+++ b/libmproxy/console/__init__.py
@@ -446,12 +446,14 @@ class ConsoleMaster(flow.FlowMaster):
if not path:
return
self.add_event("Running script on flow: %s"%path)
- ret = self.get_script(shlex.split(path, posix=(os.name != "nt")))
- if ret[0]:
+
+ try:
+ s = script.Script(shlex.split(path, posix=(os.name != "nt")), self)
+ except script.ScriptError, v:
self.statusbar.message("Error loading script.")
- self.add_event("Error loading script:\n%s"%ret[0])
+ self.add_event("Error loading script:\n%s"%v.args[0])
return
- s = ret[1]
+
if f.request:
self._run_script_method("request", s, f)
if f.response:
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index e88bf985..0aa03198 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -1394,17 +1394,6 @@ class FlowMaster(controller.Master):
"""
pass
- def get_script(self, script_argv):
- """
- Returns an (error, script) tuple.
- """
- s = script.Script(script_argv, self)
- try:
- s.load()
- except script.ScriptError, v:
- return (v.args[0], None)
- return (None, s)
-
def unload_script(self, script):
script.unload()
self.scripts.remove(script)
@@ -1414,11 +1403,11 @@ class FlowMaster(controller.Master):
Loads a script. Returns an error description if something went
wrong.
"""
- r = self.get_script(script_argv)
- if r[0]:
- return r[0]
- else:
- self.scripts.append(r[1])
+ try:
+ s = script.Script(script_argv, self)
+ except script.ScriptError, v:
+ return v.args[0]
+ self.scripts.append(s)
def run_single_script_hook(self, script, name, *args, **kwargs):
if script and not self.pause_scripts:
diff --git a/libmproxy/script.py b/libmproxy/script.py
index 0f1056f6..747d1567 100644
--- a/libmproxy/script.py
+++ b/libmproxy/script.py
@@ -49,6 +49,7 @@ class Script:
self.argv = argv
self.ctx = ScriptContext(master)
self.ns = None
+ self.load()
def load(self):
"""