From ce410467866444502368fbc4adb2fb96363a4631 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 17 Jul 2011 10:25:25 +1200 Subject: Refine encoding support - Push decoding down into the LRU cache - Cope gracefully with corrupted data and incorrect encoding headers --- libmproxy/console.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'libmproxy/console.py') diff --git a/libmproxy/console.py b/libmproxy/console.py index c1e14b33..02f824ac 100644 --- a/libmproxy/console.py +++ b/libmproxy/console.py @@ -306,7 +306,8 @@ class ConnectionView(WWrap): else: e = "identity" return self.master._cached_conn_text( - encoding.decode(e, conn.content), + e, + conn.content, tuple([tuple(i) for i in conn.headers.lst]), viewmode ) @@ -965,7 +966,10 @@ class ConsoleMaster(flow.FlowMaster): return self._view_conn_raw(content, txt) @utils.LRUCache(20) - def _cached_conn_text(self, content, hdrItems, viewmode): + def _cached_conn_text(self, e, rawcontent, hdrItems, viewmode): + content = encoding.decode(e, rawcontent) + if content is None: + content = rawcontent hdr = [] hdr.extend( format_keyvals( -- cgit v1.2.3