|
|
|
@ -937,8 +937,8 @@ static int recv_ietf_00(handler_ctx *hctx) {
|
|
|
|
|
chunkqueue *cq = r->reqbody_queue; |
|
|
|
|
buffer *payload = hctx->frame.payload; |
|
|
|
|
char *mem; |
|
|
|
|
DEBUG_LOG_DEBUG("recv data from client (fd=%d), size=%zx", |
|
|
|
|
r->con->fd, chunkqueue_length(cq)); |
|
|
|
|
DEBUG_LOG_DEBUG("recv data from client (fd=%d), size=%llx", |
|
|
|
|
r->con->fd, (long long)chunkqueue_length(cq)); |
|
|
|
|
for (chunk *c = cq->first; c; c = c->next) { |
|
|
|
|
char *frame = c->mem->ptr+c->offset; |
|
|
|
|
/*(chunk_remaining_length() on MEM_CHUNK)*/ |
|
|
|
@ -1122,8 +1122,8 @@ static int recv_rfc_6455(handler_ctx *hctx) {
|
|
|
|
|
request_st * const r = hctx->gw.r; |
|
|
|
|
chunkqueue *cq = r->reqbody_queue; |
|
|
|
|
buffer *payload = hctx->frame.payload; |
|
|
|
|
DEBUG_LOG_DEBUG("recv data from client (fd=%d), size=%zx", |
|
|
|
|
r->con->fd, chunkqueue_length(cq)); |
|
|
|
|
DEBUG_LOG_DEBUG("recv data from client (fd=%d), size=%llx", |
|
|
|
|
r->con->fd, (long long)chunkqueue_length(cq)); |
|
|
|
|
for (chunk *c = cq->first; c; c = c->next) { |
|
|
|
|
char *frame = c->mem->ptr+c->offset; |
|
|
|
|
/*(chunk_remaining_length() on MEM_CHUNK)*/ |
|
|
|
@ -1177,8 +1177,8 @@ static int recv_rfc_6455(handler_ctx *hctx) {
|
|
|
|
|
hctx->frame.ctl.mask_cnt = 0; |
|
|
|
|
hctx->frame.ctl.siz = (uint64_t)(frame[i] & 0x7f); |
|
|
|
|
if (hctx->frame.ctl.siz == 0) { |
|
|
|
|
DEBUG_LOG_DEBUG("specified payload size=%zx", |
|
|
|
|
hctx->frame.ctl.siz); |
|
|
|
|
DEBUG_LOG_DEBUG("specified payload size=%llx", |
|
|
|
|
(unsigned long long)hctx->frame.ctl.siz); |
|
|
|
|
hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_READ_MASK; |
|
|
|
|
} |
|
|
|
|
else if (hctx->frame.ctl.siz == MOD_WEBSOCKET_FRAME_LEN16) { |
|
|
|
@ -1194,8 +1194,8 @@ static int recv_rfc_6455(handler_ctx *hctx) {
|
|
|
|
|
MOD_WEBSOCKET_FRAME_STATE_READ_EX_LENGTH; |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
DEBUG_LOG_DEBUG("specified payload size=%zx", |
|
|
|
|
hctx->frame.ctl.siz); |
|
|
|
|
DEBUG_LOG_DEBUG("specified payload size=%llx", |
|
|
|
|
(unsigned long long)hctx->frame.ctl.siz); |
|
|
|
|
hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_READ_MASK; |
|
|
|
|
} |
|
|
|
|
i++; |
|
|
|
@ -1211,8 +1211,8 @@ static int recv_rfc_6455(handler_ctx *hctx) {
|
|
|
|
|
MOD_WEBSOCKET_BUFMAX); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
DEBUG_LOG_DEBUG("specified payload size=%zx", |
|
|
|
|
hctx->frame.ctl.siz); |
|
|
|
|
DEBUG_LOG_DEBUG("specified payload size=%llx", |
|
|
|
|
(unsigned long long)hctx->frame.ctl.siz); |
|
|
|
|
hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_READ_MASK; |
|
|
|
|
} |
|
|
|
|
i++; |
|
|
|
@ -1241,8 +1241,8 @@ static int recv_rfc_6455(handler_ctx *hctx) {
|
|
|
|
|
case MOD_WEBSOCKET_FRAME_STATE_READ_PAYLOAD: |
|
|
|
|
/* hctx->frame.ctl.siz <= SIZE_MAX */ |
|
|
|
|
if (hctx->frame.ctl.siz <= flen - i) { |
|
|
|
|
DEBUG_LOG_DEBUG("read payload, size=%zx", |
|
|
|
|
hctx->frame.ctl.siz); |
|
|
|
|
DEBUG_LOG_DEBUG("read payload, size=%llx", |
|
|
|
|
(unsigned long long)hctx->frame.ctl.siz); |
|
|
|
|
buffer_append_string_len(payload, frame+i, (size_t) |
|
|
|
|
(hctx->frame.ctl.siz & SIZE_MAX)); |
|
|
|
|
i += (size_t)(hctx->frame.ctl.siz & SIZE_MAX); |
|
|
|
@ -1256,8 +1256,8 @@ static int recv_rfc_6455(handler_ctx *hctx) {
|
|
|
|
|
buffer_append_string_len(payload, frame+i, flen - i); |
|
|
|
|
hctx->frame.ctl.siz -= flen - i; |
|
|
|
|
i += flen - i; |
|
|
|
|
DEBUG_LOG_DEBUG("rest of payload size=%zx", |
|
|
|
|
hctx->frame.ctl.siz); |
|
|
|
|
DEBUG_LOG_DEBUG("rest of payload size=%llx", |
|
|
|
|
(unsigned long long)hctx->frame.ctl.siz); |
|
|
|
|
} |
|
|
|
|
switch (hctx->frame.type) { |
|
|
|
|
case MOD_WEBSOCKET_FRAME_TYPE_TEXT: |
|
|
|
|