From 87623a8d7501c6644c4496996876cd7d613a5bf7 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 4 Aug 2011 10:52:31 +1200 Subject: Rip out autodecode We simplify things as follows: - If we're in "pretty" view mode, we autodecode. - Otherwise, we display raw data, and the user can manually encode/decode with z shortcut. --- libmproxy/cmdline.py | 6 ------ libmproxy/console.py | 36 ++++++++++-------------------------- libmproxy/dump.py | 2 -- libmproxy/flow.py | 1 - 4 files changed, 10 insertions(+), 35 deletions(-) diff --git a/libmproxy/cmdline.py b/libmproxy/cmdline.py index 8be419a6..5741970b 100644 --- a/libmproxy/cmdline.py +++ b/libmproxy/cmdline.py @@ -17,7 +17,6 @@ def get_common_options(options): return dict( anticache = options.anticache, anticomp = options.anticomp, - autodecode = options.autodecode, client_replay = options.client_replay, eventlog = options.eventlog, kill = options.kill, @@ -50,11 +49,6 @@ def common_options(parser): action="store", type = "str", dest="confdir", default='~/.mitmproxy', help = "Configuration directory. (~/.mitmproxy)" ) - parser.add_option( - "-d", - action="store_true", dest="autodecode", - help="Automatically decode compressed server responses." - ) parser.add_option( "-e", action="store_true", dest="eventlog", diff --git a/libmproxy/console.py b/libmproxy/console.py index a16837a3..a6501cc1 100644 --- a/libmproxy/console.py +++ b/libmproxy/console.py @@ -343,10 +343,7 @@ class ConnectionView(WWrap): def _conn_text(self, conn, viewmode): if conn: e = conn.headers["content-encoding"] - if e and self.master.autodecode: - e = e[0] - else: - e = "identity" + e = e[0] if e else None return self.master._cached_conn_text( e, conn.content, @@ -716,8 +713,6 @@ class StatusBar(WWrap): opts.append("anticache") if self.master.anticomp: opts.append("anticomp") - if self.master.autodecode: - opts.append("autodecode") if not self.master.refresh_server_playback: opts.append("norefresh") if self.master.killextra: @@ -854,7 +849,6 @@ class Options(object): __slots__ = [ "anticache", "anticomp", - "autodecode", "client_replay", "debug", "eventlog", @@ -979,7 +973,6 @@ class ConsoleMaster(flow.FlowMaster): self.refresh_server_playback = options.refresh_server_playback self.anticache = options.anticache self.anticomp = options.anticomp - self.autodecode = options.autodecode self.killextra = options.kill self.rheaders = options.rheaders @@ -1107,12 +1100,7 @@ class ConsoleMaster(flow.FlowMaster): return self._view_conn_raw(content) @utils.LRUCache(20) - def _cached_conn_text(self, e, rawcontent, hdrItems, viewmode): - content = encoding.decode(e, rawcontent) - if content is None: - content = rawcontent - e = None - + def _cached_conn_text(self, e, content, hdrItems, viewmode): hdr = [] hdr.extend( format_keyvals( @@ -1124,14 +1112,18 @@ class ConsoleMaster(flow.FlowMaster): hdr.append("\n") txt = [urwid.Text(hdr)] - if e and e != "identity": - txt.append( - urwid.Text(("highlight", "Decoded %s data:\n"%e)) - ) if content: if viewmode == VIEW_BODY_HEX: txt.extend(self._view_conn_binary(content)) elif viewmode == VIEW_BODY_PRETTY: + if e: + decoded = encoding.decode(e, content) + if decoded: + content = decoded + if e and e != "identity": + txt.append( + urwid.Text(("highlight", "Decoded %s data:\n"%e)) + ) txt.extend(self._find_pretty_view(content, hdrItems)) else: txt.extend(self._view_conn_raw(content)) @@ -1398,10 +1390,6 @@ class ConsoleMaster(flow.FlowMaster): highlight_key("anticomp", "c") + [("text", ": prevent compressed responses")] ), - (None, - highlight_key("autodecode", "d") + - [("text", ": auto-decode compressed content")] - ), (None, highlight_key("killextra", "k") + [("text", ": kill requests not part of server replay")] @@ -1710,7 +1698,6 @@ class ConsoleMaster(flow.FlowMaster): ( ("anticache", "a"), ("anticomp", "c"), - ("autodecode", "d"), ("killextra", "k"), ("norefresh", "n"), ), @@ -1754,9 +1741,6 @@ class ConsoleMaster(flow.FlowMaster): self.anticache = not self.anticache if a == "c": self.anticomp = not self.anticomp - elif a == "d": - self.autodecode = not self.autodecode - self.refresh_connection(self.currentflow) elif a == "k": self.killextra = not self.killextra elif a == "n": diff --git a/libmproxy/dump.py b/libmproxy/dump.py index 41b5627f..6f544d6a 100644 --- a/libmproxy/dump.py +++ b/libmproxy/dump.py @@ -8,7 +8,6 @@ class Options(object): __slots__ = [ "anticache", "anticomp", - "autodecode", "client_replay", "eventlog", "keepserving", @@ -57,7 +56,6 @@ class DumpMaster(flow.FlowMaster): self.o = options self.anticache = options.anticache self.anticomp = options.anticomp - self.autodecode = options.autodecode self.eventlog = options.eventlog self.refresh_server_playback = options.refresh_server_playback diff --git a/libmproxy/flow.py b/libmproxy/flow.py index 89a91e68..c33a3f1a 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -1087,7 +1087,6 @@ class FlowMaster(controller.Master): self.anticache = False self.anticomp = False - self.autodecode = False self.refresh_server_playback = False def add_event(self, e, level="info"): -- cgit v1.2.3