aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-08-18 17:51:34 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-08-18 17:51:34 +1200
commit15e234558dc3ca2e7fb3a3ef73211994bf541584 (patch)
treedb4491800b0d8024064d199592784d249d083275 /libmproxy/console
parentb70e91bbd4548d95429db6a7830c988d334e9990 (diff)
downloadmitmproxy-15e234558dc3ca2e7fb3a3ef73211994bf541584.tar.gz
mitmproxy-15e234558dc3ca2e7fb3a3ef73211994bf541584.tar.bz2
mitmproxy-15e234558dc3ca2e7fb3a3ef73211994bf541584.zip
Further content view cleaups.
Diffstat (limited to 'libmproxy/console')
-rw-r--r--libmproxy/console/contentview.py37
1 files changed, 28 insertions, 9 deletions
diff --git a/libmproxy/console/contentview.py b/libmproxy/console/contentview.py
index 359b3d3c..4b934ed5 100644
--- a/libmproxy/console/contentview.py
+++ b/libmproxy/console/contentview.py
@@ -1,4 +1,4 @@
-import re, cStringIO, traceback
+import re, cStringIO, traceback, json
import urwid
from PIL import Image
from PIL.ExifTags import TAGS
@@ -7,6 +7,13 @@ import common
from .. import utils, encoding, flow
from ..contrib import jsbeautifier, html2text
+try:
+ import pyamf
+ from pyamf import remoting
+except ImportError: # pragma nocover
+ pyamf = None
+
+
VIEW_CUTOFF = 1024*50
@@ -230,9 +237,25 @@ class ViewAMF:
prompt = ("amf", "f")
content_types = ["application/x-amf"]
def __call__(self, hdrs, content, limit):
- s = utils.pretty_amf(content)
- if s:
- return "AMF", _view_text(s[:limit], len(s), limit)
+ envelope = remoting.decode(content)
+ if not envelope:
+ return None
+
+ data = {}
+ data['amfVersion'] = envelope.amfVersion
+ for target, message in iter(envelope):
+ one_message = {}
+
+ if hasattr(message, 'status'):
+ one_message['status'] = message.status
+
+ if hasattr(message, 'target'):
+ one_message['target'] = message.target
+
+ one_message['body'] = message.body
+ data[target] = one_message
+ s = json.dumps(data, indent=4)
+ return "AMF", _view_text(s[:limit], len(s), limit)
class ViewJavaScript:
@@ -307,12 +330,8 @@ views = [
ViewMultipart(),
ViewImage(),
]
-try:
- import pyamf
+if pyamf:
views.append(ViewAMF())
-except ImportError: # pragma nocover
- pass
-
content_types_map = {}
for i in views: