aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2011-08-04 10:52:31 +1200
committerAldo Cortesi <aldo@nullcube.com>2011-08-04 10:54:42 +1200
commit87623a8d7501c6644c4496996876cd7d613a5bf7 (patch)
treecbdf80acddd2e1b78c022ba9b3209193cc9bc490
parentb51aac8a865984b65a84c0da3cb155cb3fbb6875 (diff)
downloadmitmproxy-87623a8d7501c6644c4496996876cd7d613a5bf7.tar.gz
mitmproxy-87623a8d7501c6644c4496996876cd7d613a5bf7.tar.bz2
mitmproxy-87623a8d7501c6644c4496996876cd7d613a5bf7.zip
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.
-rw-r--r--libmproxy/cmdline.py6
-rw-r--r--libmproxy/console.py36
-rw-r--r--libmproxy/dump.py2
-rw-r--r--libmproxy/flow.py1
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,
@@ -51,11 +50,6 @@ def common_options(parser):
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",
help="Show event log."
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))
@@ -1399,10 +1391,6 @@ class ConsoleMaster(flow.FlowMaster):
[("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"):