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.
This commit is contained in:
Aldo Cortesi 2011-08-04 10:52:31 +12:00
parent b51aac8a86
commit 87623a8d75
4 changed files with 10 additions and 35 deletions

View File

@ -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",

View File

@ -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":

View File

@ -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

View File

@ -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"):