diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2011-07-17 10:25:25 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2011-07-17 10:25:25 +1200 |
commit | ce410467866444502368fbc4adb2fb96363a4631 (patch) | |
tree | 1039c1bbfe1c11067a6b52103e8b72a8eebeba66 /libmproxy/console.py | |
parent | 7ec03e45a58d5864d0216f25e59d29d0f90766b5 (diff) | |
download | mitmproxy-ce410467866444502368fbc4adb2fb96363a4631.tar.gz mitmproxy-ce410467866444502368fbc4adb2fb96363a4631.tar.bz2 mitmproxy-ce410467866444502368fbc4adb2fb96363a4631.zip |
Refine encoding support
- Push decoding down into the LRU cache
- Cope gracefully with corrupted data and incorrect encoding headers
Diffstat (limited to 'libmproxy/console.py')
-rw-r--r-- | libmproxy/console.py | 8 |
1 files changed, 6 insertions, 2 deletions
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( |