summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extmod/modwebsocket.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/extmod/modwebsocket.c b/extmod/modwebsocket.c
index 6640dbe42..6a35dc1db 100644
--- a/extmod/modwebsocket.c
+++ b/extmod/modwebsocket.c
@@ -143,13 +143,13 @@ static mp_uint_t websocket_read(mp_obj_t self_in, void *buf, mp_uint_t size, int
}
case FRAME_OPT: {
- if ((self->buf_pos & 3) == 2) {
- // First two bytes are message length
+ if (self->buf_pos & 2) { // to_recv was 2 or 6
+ assert(self->buf_pos == 2 || self->buf_pos == 6);
// First two bytes are message length. Technically the size must be at least 126 per RFC6455
// but MicroPython skips checking that.
self->msg_sz = (self->buf[0] << 8) | self->buf[1];
}
- if (self->buf_pos >= 4) {
+ if (self->buf_pos & 4) {
// Last 4 bytes is mask
memcpy(self->mask, self->buf + self->buf_pos - 4, 4);
}