aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Kriechbaumer <thomas@kriechbaumer.name>2018-06-11 13:24:08 +0200
committerThomas Kriechbaumer <thomas@kriechbaumer.name>2018-06-11 13:28:28 +0200
commitbe26958ea83adedcfdd6af7dc713e7f83ffd1314 (patch)
tree82a61d7e4f178897e1a99fb7a8821a328f5170f5
parent9047c4f2a58d6e6b08d8066fb890b2a13de21fb3 (diff)
downloadmitmproxy-be26958ea83adedcfdd6af7dc713e7f83ffd1314.tar.gz
mitmproxy-be26958ea83adedcfdd6af7dc713e7f83ffd1314.tar.bz2
mitmproxy-be26958ea83adedcfdd6af7dc713e7f83ffd1314.zip
improve websocket frame masking api
-rw-r--r--mitmproxy/net/websockets/frame.py2
-rw-r--r--test/mitmproxy/net/websockets/test_frame.py2
-rw-r--r--test/pathod/language/test_websockets.py6
3 files changed, 2 insertions, 8 deletions
diff --git a/mitmproxy/net/websockets/frame.py b/mitmproxy/net/websockets/frame.py
index ac6a0812..7b93bc24 100644
--- a/mitmproxy/net/websockets/frame.py
+++ b/mitmproxy/net/websockets/frame.py
@@ -71,7 +71,7 @@ class FrameHeader:
else:
self.length_code = length_code
- if mask is DEFAULT and masking_key is DEFAULT:
+ if (mask is DEFAULT and masking_key is DEFAULT) or mask == 0 or mask is False:
self.mask = False
self.masking_key = b""
elif mask is DEFAULT:
diff --git a/test/mitmproxy/net/websockets/test_frame.py b/test/mitmproxy/net/websockets/test_frame.py
index 2a5bd556..f5c29c21 100644
--- a/test/mitmproxy/net/websockets/test_frame.py
+++ b/test/mitmproxy/net/websockets/test_frame.py
@@ -122,7 +122,7 @@ class TestFrameHeader:
f = websockets.FrameHeader(masking_key=b"foob", mask=0)
assert not f.mask
- assert f.masking_key
+ assert not f.masking_key
class TestFrame:
diff --git a/test/pathod/language/test_websockets.py b/test/pathod/language/test_websockets.py
index ed766bca..64ff024c 100644
--- a/test/pathod/language/test_websockets.py
+++ b/test/pathod/language/test_websockets.py
@@ -123,12 +123,6 @@ class TestWebsocketFrame:
assert not frm.header.mask
assert not frm.header.masking_key
- frm = self.fr("wf:b'foo':-mask:k'abcd'", is_client=True)
- assert not frm.header.mask
- # We're reading back a corrupted frame - the first 3 characters of the
- # mask is mis-interpreted as the payload
- assert frm.payload == b"abc"
-
def test_knone(self):
with pytest.raises(Exception, match="Expected 4 bytes"):
self.fr("wf:b'foo':mask:knone")