aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy
diff options
context:
space:
mode:
authorYoav Shai <gergesh@gmail.com>2019-12-06 00:13:20 +0200
committerYoav Shai <gergesh@gmail.com>2019-12-06 00:13:20 +0200
commit4ffa1ed7b6f2c7b385c61f7ac2b3fee12e7a3a4d (patch)
tree55a516845440a1dad618bf84a2fba64dd5c13c22 /mitmproxy
parent056a9024ec53aecb2c9f4f1a0f1ec3d099d80518 (diff)
downloadmitmproxy-4ffa1ed7b6f2c7b385c61f7ac2b3fee12e7a3a4d.tar.gz
mitmproxy-4ffa1ed7b6f2c7b385c61f7ac2b3fee12e7a3a4d.tar.bz2
mitmproxy-4ffa1ed7b6f2c7b385c61f7ac2b3fee12e7a3a4d.zip
Add flow to ContentView metadata
Diffstat (limited to 'mitmproxy')
-rw-r--r--mitmproxy/addons/dumper.py13
-rw-r--r--mitmproxy/contentviews/__init__.py3
-rw-r--r--mitmproxy/tools/console/flowview.py2
-rw-r--r--mitmproxy/tools/web/app.py2
-rw-r--r--mitmproxy/tools/web/static_viewer.py2
5 files changed, 12 insertions, 10 deletions
diff --git a/mitmproxy/addons/dumper.py b/mitmproxy/addons/dumper.py
index dcac6b82..6c9eda90 100644
--- a/mitmproxy/addons/dumper.py
+++ b/mitmproxy/addons/dumper.py
@@ -86,10 +86,11 @@ class Dumper:
)
self.echo(out, ident=4)
- def _echo_message(self, message):
+ def _echo_message(self, message, flow):
_, lines, error = contentviews.get_message_content_view(
ctx.options.dumper_default_contentview,
- message
+ message,
+ flow
)
if error:
ctx.log.debug(error)
@@ -218,14 +219,14 @@ class Dumper:
if ctx.options.flow_detail >= 2:
self._echo_headers(f.request.headers)
if ctx.options.flow_detail >= 3:
- self._echo_message(f.request)
+ self._echo_message(f.request, f)
if f.response:
self._echo_response_line(f)
if ctx.options.flow_detail >= 2:
self._echo_headers(f.response.headers)
if ctx.options.flow_detail >= 3:
- self._echo_message(f.response)
+ self._echo_message(f.response, f)
if f.error:
msg = strutils.escape_control_characters(f.error.msg)
@@ -263,7 +264,7 @@ class Dumper:
if ctx.options.flow_detail >= 3:
message = message.from_state(message.get_state())
message.content = message.content.encode() if isinstance(message.content, str) else message.content
- self._echo_message(message)
+ self._echo_message(message, f)
def websocket_end(self, f):
if self.match(f):
@@ -291,4 +292,4 @@ class Dumper:
direction=direction,
))
if ctx.options.flow_detail >= 3:
- self._echo_message(message)
+ self._echo_message(message, f)
diff --git a/mitmproxy/contentviews/__init__.py b/mitmproxy/contentviews/__init__.py
index 67e00833..fc38543d 100644
--- a/mitmproxy/contentviews/__init__.py
+++ b/mitmproxy/contentviews/__init__.py
@@ -75,7 +75,7 @@ def safe_to_print(lines, encoding="utf8"):
yield clean_line
-def get_message_content_view(viewname, message):
+def get_message_content_view(viewname, message, flow):
"""
Like get_content_view, but also handles message encoding.
"""
@@ -104,6 +104,7 @@ def get_message_content_view(viewname, message):
if isinstance(message, http.Message):
metadata["headers"] = message.headers
metadata["message"] = message
+ metadata["flow"] = flow
description, lines, error = get_content_view(
viewmode, content, **metadata
diff --git a/mitmproxy/tools/console/flowview.py b/mitmproxy/tools/console/flowview.py
index 807c9714..2fa1df1f 100644
--- a/mitmproxy/tools/console/flowview.py
+++ b/mitmproxy/tools/console/flowview.py
@@ -120,7 +120,7 @@ class FlowDetails(tabs.Tabs):
message = self._get_content_view_message
self._get_content_view_message = None
description, lines, error = contentviews.get_message_content_view(
- viewmode, message
+ viewmode, message, self.flow
)
if error:
self.master.log.debug(error)
diff --git a/mitmproxy/tools/web/app.py b/mitmproxy/tools/web/app.py
index a0803755..6bdd7eb1 100644
--- a/mitmproxy/tools/web/app.py
+++ b/mitmproxy/tools/web/app.py
@@ -396,7 +396,7 @@ class FlowContentView(RequestHandler):
message = getattr(self.flow, message)
description, lines, error = contentviews.get_message_content_view(
- content_view.replace('_', ' '), message
+ content_view.replace('_', ' '), message, self.flow
)
# if error:
# add event log
diff --git a/mitmproxy/tools/web/static_viewer.py b/mitmproxy/tools/web/static_viewer.py
index 03156638..31d4b3c0 100644
--- a/mitmproxy/tools/web/static_viewer.py
+++ b/mitmproxy/tools/web/static_viewer.py
@@ -65,7 +65,7 @@ def save_flows_content(path: pathlib.Path, flows: typing.Iterable[flow.Flow]) ->
t = time.time()
if message:
description, lines, error = contentviews.get_message_content_view(
- 'Auto', message
+ 'Auto', message, f
)
else:
description, lines = 'No content.', []