diff options
Diffstat (limited to 'libmproxy/console')
-rw-r--r-- | libmproxy/console/__init__.py | 16 | ||||
-rw-r--r-- | libmproxy/console/grideditor.py | 12 |
2 files changed, 28 insertions, 0 deletions
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py index 5d55cf58..d235a327 100644 --- a/libmproxy/console/__init__.py +++ b/libmproxy/console/__init__.py @@ -129,6 +129,10 @@ class StatusBar(common.WWrap): r.append(":%s in file]"%self.master.server_playback.count()) else: r.append(":%s to go]"%self.master.server_playback.count()) + if self.master.get_ignore(): + r.append("[") + r.append(("heading_key", "I")) + r.append("gnore:%d]"%len(self.master.get_ignore())) if self.master.state.intercept_txt: r.append("[") r.append(("heading_key", "i")) @@ -795,6 +799,10 @@ class ConsoleMaster(flow.FlowMaster): for command in commands: self.load_script(command) + def edit_ignore(self, ignore): + patterns = (x[0] for x in ignore) + self.set_ignore(patterns) + def loop(self): changed = True try: @@ -851,6 +859,14 @@ class ConsoleMaster(flow.FlowMaster): self.setheaders.set ) ) + elif k == "I": + self.view_grideditor( + grideditor.IgnoreEditor( + self, + [[x] for x in self.get_ignore()], + self.edit_ignore + ) + ) elif k == "i": self.prompt( "Intercept filter: ", diff --git a/libmproxy/console/grideditor.py b/libmproxy/console/grideditor.py index 642d8638..d629ec82 100644 --- a/libmproxy/console/grideditor.py +++ b/libmproxy/console/grideditor.py @@ -493,3 +493,15 @@ class ScriptEditor(GridEditor): script.Script.parse_command(val) except script.ScriptError, v: return str(v) + + +class IgnoreEditor(GridEditor): + title = "Editing ignore patterns" + columns = 1 + headings = ("Regex (matched on hostname:port / ip:port)",) + + def is_error(self, col, val): + try: + re.compile(val, re.IGNORECASE) + except re.error as e: + return "Invalid regex: %s" % str(e)
\ No newline at end of file |