aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/websockets.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-04-30 12:10:08 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-04-30 12:10:08 +1200
commit4dce7ee074c242f5b6530ff64879875d98c1d255 (patch)
tree4f242c627cfb2e122faaa4a6cf4ff10932eeb0ad /netlib/websockets.py
parent80860229209b4c6eb8384e1bca3cabdbe062fe6e (diff)
downloadmitmproxy-4dce7ee074c242f5b6530ff64879875d98c1d255.tar.gz
mitmproxy-4dce7ee074c242f5b6530ff64879875d98c1d255.tar.bz2
mitmproxy-4dce7ee074c242f5b6530ff64879875d98c1d255.zip
websockets: more compact and legible human_readable
Diffstat (limited to 'netlib/websockets.py')
-rw-r--r--netlib/websockets.py38
1 files changed, 17 insertions, 21 deletions
diff --git a/netlib/websockets.py b/netlib/websockets.py
index d358ed53..1d02d684 100644
--- a/netlib/websockets.py
+++ b/netlib/websockets.py
@@ -162,16 +162,21 @@ class FrameHeader:
raise ValueError("Masking key must be 4 bytes.")
def human_readable(self):
- return "\n".join([
- ("fin - " + str(self.fin)),
- ("rsv1 - " + str(self.rsv1)),
- ("rsv2 - " + str(self.rsv2)),
- ("rsv3 - " + str(self.rsv3)),
- ("opcode - " + str(self.opcode)),
- ("mask - " + str(self.mask)),
- ("length_code - " + str(self.length_code)),
- ("masking_key - " + repr(str(self.masking_key))),
- ])
+ vals = [
+ "wf:",
+ OPCODE.get_name(self.opcode, hex(self.opcode)).lower()
+ ]
+ flags = []
+ for i in ["fin", "rsv1", "rsv2", "rsv3", "mask"]:
+ if getattr(self, i):
+ flags.append(i)
+ if flags:
+ vals.extend([":", "|".join(flags)])
+ if self.masking_key:
+ vals.append(":key=%s"%repr(self.masking_key))
+ if self.payload_length:
+ vals.append(" %s"%utils.pretty_size(self.payload_length))
+ return "".join(vals)
def to_bytes(self):
first_byte = utils.setbit(0, 7, self.fin)
@@ -308,17 +313,8 @@ class Frame(object):
return cls.from_file(io.BytesIO(bytestring))
def human_readable(self):
- return "\n".join([
- ("fin - " + str(self.header.fin)),
- ("rsv1 - " + str(self.header.rsv1)),
- ("rsv2 - " + str(self.header.rsv2)),
- ("rsv3 - " + str(self.header.rsv3)),
- ("opcode - " + str(self.header.opcode)),
- ("mask - " + str(self.header.mask)),
- ("length_code - " + str(self.header.length_code)),
- ("masking_key - " + repr(str(self.header.masking_key))),
- ("payload - " + repr(str(self.payload))),
- ])
+ hdr = self.header.human_readable()
+ return hdr + "\n" + repr(self.payload)
def to_bytes(self):
"""