aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
authorMarcelo Glezer <mg@tekii.com.ar>2015-03-02 18:30:46 -0300
committerMarcelo Glezer <mg@tekii.com.ar>2015-03-02 18:30:46 -0300
commit91e5a4a4b5bf1beb083afb0731294cfeaca62944 (patch)
treedf980ee82d24929d4d2cc94d7668b88be9fcb49c /libmproxy
parent8008a4336d85f4d34bd9f192c5f3e510f4adf5cd (diff)
downloadmitmproxy-91e5a4a4b5bf1beb083afb0731294cfeaca62944.tar.gz
mitmproxy-91e5a4a4b5bf1beb083afb0731294cfeaca62944.tar.bz2
mitmproxy-91e5a4a4b5bf1beb083afb0731294cfeaca62944.zip
#487 added microsecond support to format_timestamp and used in FlowDetailView. Still WIP.
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/console/flowdetailview.py10
-rw-r--r--libmproxy/utils.py19
2 files changed, 19 insertions, 10 deletions
diff --git a/libmproxy/console/flowdetailview.py b/libmproxy/console/flowdetailview.py
index 51ae8da6..d0326f1a 100644
--- a/libmproxy/console/flowdetailview.py
+++ b/libmproxy/console/flowdetailview.py
@@ -40,8 +40,8 @@ class FlowDetailsView(urwid.ListBox):
sc = self.flow.server_conn
parts = [
["Address", "%s:%s" % sc.address()],
- ["Start time", utils.format_timestamp(sc.timestamp_start)],
- ["End time", utils.format_timestamp(sc.timestamp_end) if sc.timestamp_end else "active"],
+ ["Start time", utils.format_timestamp(sc.timestamp_start, True)],
+ ["End time", utils.format_timestamp(sc.timestamp_end, True) if sc.timestamp_end else "active"],
]
text.extend(common.format_keyvals(parts, key="key", val="text", indent=4))
@@ -84,10 +84,10 @@ class FlowDetailsView(urwid.ListBox):
cc = self.flow.client_conn
parts = [
["Address", "%s:%s" % cc.address()],
- ["Start time", utils.format_timestamp(cc.timestamp_start)],
+ ["Start time", utils.format_timestamp(cc.timestamp_start, True)],
# ["Requests", "%s"%cc.requestcount],
- ["End time", utils.format_timestamp(cc.timestamp_end) if cc.timestamp_end else "active"],
+ ["End time", utils.format_timestamp(cc.timestamp_end, True) if cc.timestamp_end else "active"],
]
text.extend(common.format_keyvals(parts, key="key", val="text", indent=4))
-
+
return text
diff --git a/libmproxy/utils.py b/libmproxy/utils.py
index 76e99c34..a50be7fc 100644
--- a/libmproxy/utils.py
+++ b/libmproxy/utils.py
@@ -10,11 +10,20 @@ def timestamp():
return time.time()
-def format_timestamp(s):
- s = time.localtime(s)
- d = datetime.datetime.fromtimestamp(time.mktime(s))
- return d.strftime("%Y-%m-%d %H:%M:%S")
-
+def format_timestamp(s, include_fractions = False):
+ if type(s) is not float:
+ s = time.localtime(s)
+ d = datetime.datetime.fromtimestamp(time.mktime(s))
+ else:
+ # s is a timestamp(float) can be converted to a datetime without lossing microsecs
+ d = datetime.datetime.fromtimestamp(s)
+ if not include_fractions:
+ format = "%Y-%m-%d %H:%M:%S"
+ else:
+ # this will show 3 miliseconds digits (but will truncate and not round the 4th significant digit
+ # so 600999 microseconds will be 600ms and not 601ms)
+ format = "%Y-%m-%d %H:%M:%S."+str(d.microsecond/1000)
+ return d.strftime(format)
def isBin(s):
"""