aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcelo Glezer <marcelo.glezer@gmail.com>2015-03-03 00:44:31 -0300
committerMarcelo Glezer <marcelo.glezer@gmail.com>2015-03-03 00:44:31 -0300
commitf514eacd7a7aca1eb406cab79c92f730f5143fc4 (patch)
treef462ad0edd792173ad3dcd3708bc0b5932e0a759
parent58dba3f49083288e19f6e9edb7cc60e88dd446e3 (diff)
downloadmitmproxy-f514eacd7a7aca1eb406cab79c92f730f5143fc4.tar.gz
mitmproxy-f514eacd7a7aca1eb406cab79c92f730f5143fc4.tar.bz2
mitmproxy-f514eacd7a7aca1eb406cab79c92f730f5143fc4.zip
added timing information to FlowDetailView
-rw-r--r--libmproxy/console/flowdetailview.py40
1 files changed, 32 insertions, 8 deletions
diff --git a/libmproxy/console/flowdetailview.py b/libmproxy/console/flowdetailview.py
index e1339d77..301be9b8 100644
--- a/libmproxy/console/flowdetailview.py
+++ b/libmproxy/console/flowdetailview.py
@@ -35,14 +35,37 @@ class FlowDetailsView(urwid.ListBox):
title = urwid.AttrWrap(title, "heading")
text.append(title)
- if self.flow.server_conn:
+ cc = self.flow.client_conn
+ sc = self.flow.server_conn
+ req = self.flow.request;
+ resp = self.flow.response;
+
+ timing_parts = []
+ if cc:
+ timing_parts.append(["Client conn. established", utils.format_timestamp_with_milli(cc.timestamp_start) if cc.timestamp_start else "active"])
+ if sc:
+ timing_parts.append(["Server conn. initiated", utils.format_timestamp_with_milli(sc.timestamp_start)])
+ timing_parts.append(["Server conn. TCP handshake", utils.format_timestamp_with_milli(sc.timestamp_tcp_setup) if sc.timestamp_tcp_setup else "active"])
+ if sc.ssl_established:
+ timing_parts.append(["Server conn. SSL handshake", utils.format_timestamp_with_milli(sc.timestamp_ssl_setup) if sc.timestamp_ssl_setup else "active"])
+ if cc:
+ if sc.ssl_established:
+ timing_parts.append(["Client conn. SSL handshake", utils.format_timestamp_with_milli(cc.timestamp_ssl_setup) if cc.timestamp_ssl_setup else "active"])
+
+ timing_parts.append(["First request byte", utils.format_timestamp_with_milli(req.timestamp_start)])
+ timing_parts.append(["Request complete", utils.format_timestamp_with_milli(req.timestamp_end) if req.timestamp_end else "active"])
+
+ if resp:
+ timing_parts.append(["First response byte", utils.format_timestamp_with_milli(resp.timestamp_start)])
+ timing_parts.append(["response complete", utils.format_timestamp_with_milli(resp.timestamp_end) if resp.timestamp_end else "active"])
+
+
+ if sc:
text.append(urwid.Text([("head", "Server Connection:")]))
- sc = self.flow.server_conn
parts = [
["Address", "%s:%s" % sc.address()],
- ["Start time", utils.format_timestamp_with_milli(sc.timestamp_start)],
- ["End time", utils.format_timestamp_with_milli(sc.timestamp_end) if sc.timestamp_end else "active"],
]
+
text.extend(common.format_keyvals(parts, key="key", val="text", indent=4))
c = self.flow.server_conn.cert
@@ -79,15 +102,16 @@ class FlowDetailsView(urwid.ListBox):
)
text.extend(common.format_keyvals(parts, key="key", val="text", indent=4))
- if self.flow.client_conn:
+ if cc:
text.append(urwid.Text([("head", "Client Connection:")]))
- cc = self.flow.client_conn
+
parts = [
["Address", "%s:%s" % cc.address()],
- ["Start time", utils.format_timestamp_with_milli(cc.timestamp_start)],
# ["Requests", "%s"%cc.requestcount],
- ["End time", utils.format_timestamp_with_milli(cc.timestamp_end) if cc.timestamp_end else "active"],
]
+
text.extend(common.format_keyvals(parts, key="key", val="text", indent=4))
+ text.append(urwid.Text([("head", "Timing:")]))
+ text.extend(common.format_keyvals(timing_parts, key="key", val="text", indent=4))
return text