fix for firefox secure websockets which for some reason writes only 1 byte first on secure ws frame

This commit is contained in:
Anthony Minessale 2013-02-07 17:47:04 -06:00
parent 2aade020e9
commit 52e7a63bbf
1 changed files with 4 additions and 2 deletions

View File

@ -441,8 +441,10 @@ ssize_t ws_read_frame(wsh_t *wsh, ws_opcode_t *oc, uint8_t **data)
}
if ((wsh->datalen = ws_raw_read(wsh, wsh->buffer, 14)) < need) {
/* too small - protocol err */
return ws_close(wsh, WS_PROTO_ERR);
if ((wsh->datalen += ws_raw_read(wsh, wsh->buffer + wsh->datalen, 14 - wsh->datalen)) < need) {
/* too small - protocol err */
return ws_close(wsh, WS_PROTO_ERR);
}
}
*oc = *wsh->buffer & 0xf;