diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-04-02 11:01:38 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-04-02 11:01:38 +1200 |
commit | c6ee81347954a1f2b958f1aac901480bafe06cc6 (patch) | |
tree | f4607596e268b58a75b79d7174b1dcfc7a455caf /libmproxy/console/flowview.py | |
parent | 2df2fe0e4c23293de5996d6be018908b6daf7d66 (diff) | |
download | mitmproxy-c6ee81347954a1f2b958f1aac901480bafe06cc6.tar.gz mitmproxy-c6ee81347954a1f2b958f1aac901480bafe06cc6.tar.bz2 mitmproxy-c6ee81347954a1f2b958f1aac901480bafe06cc6.zip |
Only cache the calculated body of a view.
This simplifies the code, and loses no time.
Diffstat (limited to 'libmproxy/console/flowview.py')
-rw-r--r-- | libmproxy/console/flowview.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py index 30697c9c..e21807c8 100644 --- a/libmproxy/console/flowview.py +++ b/libmproxy/console/flowview.py @@ -93,7 +93,7 @@ class FlowViewHeader(common.WWrap): class CallbackCache: - @utils.LRUCache(100) + @utils.LRUCache(200) def _callback(self, method, *args, **kwargs): return getattr(self.obj, method)(*args, **kwargs) @@ -124,14 +124,25 @@ class FlowView(common.WWrap): else: self.view_request() - def _cached_conn_text(self, content, hdrItems, viewmode): + def _cached_content_view(self, viewmode, hdrItems, content): + return contentview.get_content_view(viewmode, hdrItems, content) + + def content_view(self, viewmode, conn): + return cache.callback( + self, "_cached_content_view", + viewmode, + tuple(tuple(i) for i in conn.headers.lst), + conn.content, + ) + + def _conn_text(self, conn, viewmode): txt = common.format_keyvals( - [(h+":", v) for (h, v) in hdrItems], + [(h+":", v) for (h, v) in conn.headers.lst], key = "header", val = "text" ) - if content: - msg, body = contentview.get_content_view(viewmode, hdrItems, content) + if conn.content: + msg, body = self.content_view(viewmode, conn) title = urwid.AttrWrap(urwid.Columns([ urwid.Text( [ @@ -186,14 +197,6 @@ class FlowView(common.WWrap): ) return f - def _conn_text(self, conn, viewmode): - return cache.callback( - self, "_cached_conn_text", - conn.content, - tuple(tuple(i) for i in conn.headers.lst), - viewmode - ) - def view_request(self): self.state.view_flow_mode = common.VIEW_FLOW_REQUEST body = self._conn_text( |