aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-01-22 23:03:47 +0100
committerMaximilian Hils <git@maximilianhils.com>2016-01-22 23:03:47 +0100
commita60810cc2c0ecf7ae9b630dbe5d9f3bb0c287a41 (patch)
tree2e0f13ae9b0825291d544a393949dcba837bb8ff
parent4024721c7b1762325d90146044f2fdc01d07caa0 (diff)
parentb030ff090ac3a36b2e2bf386fa04c1453bd58140 (diff)
downloadmitmproxy-a60810cc2c0ecf7ae9b630dbe5d9f3bb0c287a41.tar.gz
mitmproxy-a60810cc2c0ecf7ae9b630dbe5d9f3bb0c287a41.tar.bz2
mitmproxy-a60810cc2c0ecf7ae9b630dbe5d9f3bb0c287a41.zip
Merge pull request #891 from ganguera/master
Added CLI argument to enable "follow flow list" mode
-rw-r--r--libmproxy/cmdline.py5
-rw-r--r--libmproxy/console/__init__.py19
-rw-r--r--libmproxy/main.py1
3 files changed, 18 insertions, 7 deletions
diff --git a/libmproxy/cmdline.py b/libmproxy/cmdline.py
index 99b76e68..cd1a8bba 100644
--- a/libmproxy/cmdline.py
+++ b/libmproxy/cmdline.py
@@ -669,6 +669,11 @@ def mitmproxy():
help="Show event log."
)
parser.add_argument(
+ "-f", "--follow",
+ action="store_true", dest="follow",
+ help="Follow flow list."
+ )
+ parser.add_argument(
"--no-mouse",
action="store_true", dest="no_mouse",
help="Disable mouse interaction."
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py
index 31edca81..0df10256 100644
--- a/libmproxy/console/__init__.py
+++ b/libmproxy/console/__init__.py
@@ -105,25 +105,25 @@ class ConsoleState(flow.State):
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 = [
@@ -134,6 +134,7 @@ class Options(object):
"anticomp",
"client_replay",
"eventlog",
+ "follow",
"keepserving",
"kill",
"intercept",
@@ -212,6 +213,7 @@ class ConsoleMaster(flow.FlowMaster):
self.eventlog = options.eventlog
self.eventlist = urwid.SimpleListWalker([])
+ self.follow = options.follow
if options.client_replay:
self.client_playback_path(options.client_replay)
@@ -562,6 +564,9 @@ class ConsoleMaster(flow.FlowMaster):
else:
body = flowlist.FlowListBox(self)
+ if self.follow:
+ self.toggle_follow_flows()
+
signals.push_view_state.send(
self,
window = window.Window(
@@ -604,7 +609,7 @@ 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:
diff --git a/libmproxy/main.py b/libmproxy/main.py
index 3c908ed9..655d573d 100644
--- a/libmproxy/main.py
+++ b/libmproxy/main.py
@@ -54,6 +54,7 @@ def mitmproxy(args=None): # pragma: nocover
console_options.palette = options.palette
console_options.palette_transparent = options.palette_transparent
console_options.eventlog = options.eventlog
+ console_options.follow = options.follow
console_options.intercept = options.intercept
console_options.limit = options.limit
console_options.no_mouse = options.no_mouse