summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-09 12:29:18 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-09 12:29:18 +0300
commit397b7056471f5644e1d9ad32426a2789b96d43d7 (patch)
tree1d4811bc915353a273d5a5e5d12ef420b427fae3
parent7e9182f3aa16f0a7d80edd1362a383fe68f1509c (diff)
downloadmicropython-397b7056471f5644e1d9ad32426a2789b96d43d7.tar.gz
micropython-397b7056471f5644e1d9ad32426a2789b96d43d7.zip
extmod/modwebsocket: Reset mask between packets.
-rw-r--r--extmod/modwebsocket.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/extmod/modwebsocket.c b/extmod/modwebsocket.c
index 9f4e5ee7e8..6cd4f515df 100644
--- a/extmod/modwebsocket.c
+++ b/extmod/modwebsocket.c
@@ -82,6 +82,11 @@ STATIC mp_uint_t websocket_read(mp_obj_t self_in, void *buf, mp_uint_t size, int
switch (self->state) {
case FRAME_HEADER: {
assert(self->buf[0] & 0x80);
+
+ // Reset mask in case someone will use "simplified" protocol
+ // without masks.
+ memset(self->mask, 0, sizeof(self->mask));
+
int to_recv = 0;
size_t sz = self->buf[1] & 0x7f;
if (sz == 126) {