aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/flowview.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-05-16 18:16:44 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-05-16 18:16:44 +1200
commitb3901a76527d9ce0f0429810147e5035f871e36a (patch)
tree7c902fec5047742546115613c9b9d02058801f6b /libmproxy/console/flowview.py
parent0c2d894ceaefef6ae4b39c4f5a672a02672e4f8b (diff)
downloadmitmproxy-b3901a76527d9ce0f0429810147e5035f871e36a.tar.gz
mitmproxy-b3901a76527d9ce0f0429810147e5035f871e36a.tar.bz2
mitmproxy-b3901a76527d9ce0f0429810147e5035f871e36a.zip
Add interface to mark content missing, and extend UI to indicate when content is missing.
Diffstat (limited to 'libmproxy/console/flowview.py')
-rw-r--r--libmproxy/console/flowview.py31
1 files changed, 29 insertions, 2 deletions
diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py
index bc8450b9..ee85884e 100644
--- a/libmproxy/console/flowview.py
+++ b/libmproxy/console/flowview.py
@@ -68,6 +68,7 @@ def _mkhelp():
("v", "view body in external viewer"),
("w", "save all flows matching current limit"),
("W", "save this flow"),
+ ("x", "delete body"),
("X", "view flow details"),
("z", "encode/decode a request/response"),
("tab", "toggle request/response view"),
@@ -153,14 +154,17 @@ class FlowView(common.WWrap):
key = "header",
val = "text"
)
- if conn.content:
+ if conn.content is not None:
override = self.state.get_flow_setting(
self.flow,
(self.state.view_flow_mode, "prettyview"),
)
viewmode = self.state.default_body_view if override is None else override
- msg, body = self.content_view(viewmode, conn)
+ if conn.content == flow.CONTENT_MISSING:
+ msg, body = "", [urwid.Text([("error", "[content missing]")])]
+ else:
+ msg, body = self.content_view(viewmode, conn)
cols = [
urwid.Text(
@@ -184,6 +188,8 @@ class FlowView(common.WWrap):
title = urwid.AttrWrap(urwid.Columns(cols), "heading")
txt.append(title)
txt.extend(body)
+ elif conn.content == flow.CONTENT_MISSING:
+ pass
return urwid.ListBox(txt)
def _tab(self, content, attr):
@@ -390,6 +396,17 @@ class FlowView(common.WWrap):
)
self.master.refresh_flow(self.flow)
+ def delete_body(self, t):
+ if t == "m":
+ val = flow.CONTENT_MISSING
+ else:
+ val = None
+ if self.state.view_flow_mode == common.VIEW_FLOW_REQUEST:
+ self.flow.request.content = val
+ else:
+ self.flow.response.content = val
+ self.master.refresh_flow(self.flow)
+
def keypress(self, size, key):
if key == " ":
self.view_next_flow(self.flow)
@@ -523,6 +540,16 @@ class FlowView(common.WWrap):
"Send flow to script: ", self.state.last_script,
self.master.run_script_once, self.flow
)
+ elif key == "x":
+ self.master.prompt_onekey(
+ "Delete body",
+ (
+ ("completely", "c"),
+ ("mark as missing", "m"),
+ ),
+ self.delete_body
+ )
+ key = None
elif key == "X":
self.master.view_flowdetails(self.flow)
elif key == "z":