From 11b4b3209d734e2cbde84200ed3e0dd5a2b72436 Mon Sep 17 00:00:00 2001 From: Ujjwal Verma Date: Fri, 3 Feb 2017 01:35:53 +0530 Subject: [PATCH] Closes #1960 'Z' removes unmarked flows --- mitmproxy/addons/view.py | 11 +++++++++++ mitmproxy/tools/console/flowlist.py | 3 +++ 2 files changed, 14 insertions(+) diff --git a/mitmproxy/addons/view.py b/mitmproxy/addons/view.py index 8358a0453..d2ab75f3f 100644 --- a/mitmproxy/addons/view.py +++ b/mitmproxy/addons/view.py @@ -230,6 +230,17 @@ class View(collections.Sequence): self.sig_view_refresh.send(self) self.sig_store_refresh.send(self) + def clear_not_marked(self): + """ + Clears only the unmarked flows. + """ + for flow in self._store.copy().values(): + if not flow.marked: + self._store.pop(flow.id) + + self._refilter() + self.sig_store_refresh.send(self) + def add(self, f: mitmproxy.flow.Flow) -> bool: """ Adds a flow to the state. If the flow already exists, it is diff --git a/mitmproxy/tools/console/flowlist.py b/mitmproxy/tools/console/flowlist.py index b26289af6..39811ce10 100644 --- a/mitmproxy/tools/console/flowlist.py +++ b/mitmproxy/tools/console/flowlist.py @@ -35,6 +35,7 @@ def _mkhelp(): ("W", "stream flows to file"), ("X", "kill and delete flow, even if it's mid-intercept"), ("z", "clear flow list or eventlog"), + ("Z", "clear unmarked flows"), ("tab", "tab between eventlog and flow list"), ("enter", "view flow"), ("|", "run script on this flow"), @@ -354,6 +355,8 @@ class FlowListBox(urwid.ListBox): self.master.view.update(f) elif key == "z": self.master.view.clear() + elif key == "Z": + self.master.view.clear_not_marked() elif key == "e": self.master.toggle_eventlog() elif key == "g":