From a49115a2278186dd116a6bbd27ba8a8f87e04da5 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 5 Jan 2014 14:14:36 +1300 Subject: Remove / binding alias for limit The search and limit functionality is too different. --- libmproxy/console/flowlist.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'libmproxy/console') diff --git a/libmproxy/console/flowlist.py b/libmproxy/console/flowlist.py index 7f11a7e2..6ba97733 100644 --- a/libmproxy/console/flowlist.py +++ b/libmproxy/console/flowlist.py @@ -12,7 +12,6 @@ def _mkhelp(): ("e", "toggle eventlog"), ("F", "toggle follow flow list"), ("l", "set limit filter pattern"), - ("/", "same as above"), ("L", "load saved flows"), ("r", "replay request"), ("V", "revert changes to request"), @@ -245,7 +244,7 @@ class FlowListBox(urwid.ListBox): self.master.clear_flows() elif key == "e": self.master.toggle_eventlog() - elif key == "l" or key == "/": + elif key == "l": self.master.prompt("Limit: ", self.master.state.limit_txt, self.master.set_limit) elif key == "L": self.master.path_prompt( -- cgit v1.2.3 From 1c2e638d533f6a4770322ff2aa120220aa691869 Mon Sep 17 00:00:00 2001 From: Dan Wilbraham Date: Sun, 5 Jan 2014 23:40:02 +0000 Subject: Update ViewProtobuf in contentview.py to also decode as protobuf if the content_type is "application/x-protobuffer" --- libmproxy/console/contentview.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libmproxy/console') diff --git a/libmproxy/console/contentview.py b/libmproxy/console/contentview.py index 70f39d83..a5cb679e 100644 --- a/libmproxy/console/contentview.py +++ b/libmproxy/console/contentview.py @@ -397,7 +397,10 @@ class ViewProtobuf: name = "Protocol Buffer" prompt = ("protobuf", "p") - content_types = ["application/x-protobuf"] + content_types = [ + "application/x-protobuf", + "application/x-protobuffer", + ] @staticmethod def is_available(): -- cgit v1.2.3 From 58e1b3a47f392a5f4f16e30318820f163568f54e Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 12 Jan 2014 12:49:19 +1300 Subject: Start refactoring scripts - Move ScriptContext into script module - Use mock module instead of hand-rolled mock objects in tests --- libmproxy/console/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libmproxy/console') diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py index 210e2b95..b8d4a105 100644 --- a/libmproxy/console/__init__.py +++ b/libmproxy/console/__init__.py @@ -781,6 +781,9 @@ class ConsoleMaster(flow.FlowMaster): else: self.view_flowlist() + def edit_scripts(self, *args, **kwargs): + pass + def loop(self): changed = True try: @@ -883,7 +886,7 @@ class ConsoleMaster(flow.FlowMaster): grideditor.ScriptEditor( self, [[i.argv[0]] for i in self.scripts], - None + self.edit_scripts ) ) #if self.scripts: -- cgit v1.2.3 From e5776b8be3ea36c065beabe416506871f34892e6 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 12 Jan 2014 13:59:32 +1300 Subject: Clean up and clarify script API --- libmproxy/console/__init__.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libmproxy/console') 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: -- cgit v1.2.3 From 42d4a2fae96b8b4ba35d3a88e20f278d79a0ccc6 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 12 Jan 2014 23:01:59 +1300 Subject: Script refactoring: move script command parsing into script module. --- libmproxy/console/__init__.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'libmproxy/console') diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py index f68084ff..536b0bac 100644 --- a/libmproxy/console/__init__.py +++ b/libmproxy/console/__init__.py @@ -442,13 +442,13 @@ class ConsoleMaster(flow.FlowMaster): else: self.add_event("Method %s error: %s"%(method, val[1])) - def run_script_once(self, path, f): - if not path: + def run_script_once(self, command, f): + if not command: return - self.add_event("Running script on flow: %s"%path) + self.add_event("Running script on flow: %s"%command) try: - s = script.Script(shlex.split(path, posix=(os.name != "nt")), self) + s = script.Script(command, self) except script.ScriptError, v: self.statusbar.message("Error loading script.") self.add_event("Error loading script:\n%s"%v.args[0]) @@ -462,15 +462,15 @@ class ConsoleMaster(flow.FlowMaster): self._run_script_method("error", s, f) s.unload() self.refresh_flow(f) - self.state.last_script = path + self.state.last_script = command - def set_script(self, path): - if not path: + def set_script(self, command): + if not command: return - ret = self.load_script(path) + ret = self.load_script(command) if ret: self.statusbar.message(ret) - self.state.last_script = path + self.state.last_script = command def toggle_eventlog(self): self.eventlog = not self.eventlog -- cgit v1.2.3 From 4f69eef8f310b87a45782b8d097dd148e815486a Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Mon, 13 Jan 2014 14:15:17 +1300 Subject: Extract command parsing and use in script grid editor --- libmproxy/console/grideditor.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'libmproxy/console') diff --git a/libmproxy/console/grideditor.py b/libmproxy/console/grideditor.py index fa5142f3..bbdde4e3 100644 --- a/libmproxy/console/grideditor.py +++ b/libmproxy/console/grideditor.py @@ -1,7 +1,7 @@ import copy, re, os import urwid import common -from .. import utils, filt +from .. import utils, filt, script from netlib import http_uastrings @@ -486,8 +486,9 @@ class PathEditor(GridEditor): class ScriptEditor(GridEditor): title = "Editing scripts" columns = 1 - headings = ("Path",) + headings = ("Command",) def is_error(self, col, val): - return False - - + try: + script.Script.parse_command(val) + except script.ScriptError, v: + return str(v) -- cgit v1.2.3