aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/__init__.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-06-12 13:53:07 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-06-12 13:53:07 +1200
commit85e1ae7543e903d7f703e9d07515929513381687 (patch)
tree32bac45c82523c56f60142a612ddfa17e4d1cba4 /libmproxy/console/__init__.py
parentd389b9c59d7f4a4918a15b5a40d771ccc154d751 (diff)
parent946030367fee0d624a29ba57a11d5f2d1dea4105 (diff)
downloadmitmproxy-85e1ae7543e903d7f703e9d07515929513381687.tar.gz
mitmproxy-85e1ae7543e903d7f703e9d07515929513381687.tar.bz2
mitmproxy-85e1ae7543e903d7f703e9d07515929513381687.zip
Merge pull request #624 from drahosj/master
Added flow marking functionality in the console
Diffstat (limited to 'libmproxy/console/__init__.py')
-rw-r--r--libmproxy/console/__init__.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py
index 052ac7dd..3d20947b 100644
--- a/libmproxy/console/__init__.py
+++ b/libmproxy/console/__init__.py
@@ -48,6 +48,7 @@ class ConsoleState(flow.State):
self.set_focus(0)
elif self.follow_focus:
self.set_focus(len(self.view) - 1)
+ self.set_flow_marked(f, False)
return f
def update_flow(self, f):
@@ -100,9 +101,29 @@ class ConsoleState(flow.State):
return ret
def clear(self):
- self.focus = None
+ marked_flows = []
+ for f in self.flows:
+ if self.flow_marked(f):
+ marked_flows.append(f)
+
super(ConsoleState, self).clear()
-
+
+ for f in marked_flows:
+ self.add_flow(f)
+ self.set_flow_marked(f, True)
+
+ if len(self.flows.views) == 0:
+ self.focus = None
+ else:
+ self.focus = 0
+ self.set_focus(self.focus)
+
+ def flow_marked(self, flow):
+ return self.get_flow_setting(flow, "marked", False)
+
+ def set_flow_marked(self, flow, marked):
+ self.add_flow_setting(flow, "marked", marked)
+
class Options(object):
attributes = [
@@ -591,6 +612,13 @@ class ConsoleMaster(flow.FlowMaster):
def save_flows(self, path):
return self._write_flows(path, self.state.view)
+
+ def save_marked_flows(self, path):
+ marked_flows = []
+ for f in self.state.view:
+ if self.state.flow_marked(f):
+ marked_flows.append(f)
+ return self._write_flows(path, marked_flows)
def load_flows_callback(self, path):
if not path: