Lines Matching refs:frame

171     mod_wstunnel_frame_t frame;  member
393 if (mod_wstunnel_frame_send(hctx,hctx->frame.type_backend,b->ptr,n) < 0) { in wstunnel_recv_parse()
478 chunk_buffer_release(hctx->frame.payload); in wstunnel_handler_ctx_free()
508 hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_INIT; in wstunnel_handler_setup()
509 hctx->frame.ctl.siz = 0; in wstunnel_handler_setup()
510 hctx->frame.payload = chunk_buffer_acquire(); in wstunnel_handler_setup()
544 hctx->frame.type = MOD_WEBSOCKET_FRAME_TYPE_BIN; in wstunnel_handler_setup()
545 hctx->frame.type_before = MOD_WEBSOCKET_FRAME_TYPE_BIN; in wstunnel_handler_setup()
546 hctx->frame.type_backend = MOD_WEBSOCKET_FRAME_TYPE_BIN; in wstunnel_handler_setup()
550 hctx->frame.type = MOD_WEBSOCKET_FRAME_TYPE_TEXT; in wstunnel_handler_setup()
551 hctx->frame.type_before = MOD_WEBSOCKET_FRAME_TYPE_TEXT; in wstunnel_handler_setup()
552 hctx->frame.type_backend = MOD_WEBSOCKET_FRAME_TYPE_TEXT; in wstunnel_handler_setup()
825 if (hctx->frame.type == MOD_WEBSOCKET_FRAME_TYPE_BIN) in create_response_rfc_6455()
936 buffer *payload = hctx->frame.payload; in recv_ietf_00()
941 char *frame = c->mem->ptr+c->offset; in recv_ietf_00() local
947 switch (hctx->frame.state) { in recv_ietf_00()
949 hctx->frame.ctl.siz = 0; in recv_ietf_00()
950 if (frame[i] == 0x00) { in recv_ietf_00()
951 hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_READ_PAYLOAD; in recv_ietf_00()
954 else if (((unsigned char *)frame)[i] == 0xff) { in recv_ietf_00()
964 mem = (char *)memchr(frame+i, 0xff, flen - i); in recv_ietf_00()
967 hctx->frame.ctl.siz += flen - i; in recv_ietf_00()
968 if (hctx->frame.ctl.siz > MOD_WEBSOCKET_BUFMAX) { in recv_ietf_00()
973 buffer_append_string_len(payload, frame+i, flen - i); in recv_ietf_00()
978 mem - (frame+i)); in recv_ietf_00()
979 hctx->frame.ctl.siz += (mem - (frame+i)); in recv_ietf_00()
980 if (hctx->frame.ctl.siz > MOD_WEBSOCKET_BUFMAX) { in recv_ietf_00()
985 buffer_append_string_len(payload, frame+i, mem - (frame+i)); in recv_ietf_00()
986 i += (mem - (frame+i)); in recv_ietf_00()
987 hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_INIT; in recv_ietf_00()
990 if (hctx->frame.type == MOD_WEBSOCKET_FRAME_TYPE_TEXT in recv_ietf_00()
992 hctx->frame.ctl.siz = 0; in recv_ietf_00()
997 if (hctx->frame.state == MOD_WEBSOCKET_FRAME_STATE_INIT in recv_ietf_00()
1114 buffer * const b = hctx->frame.payload; in unmask_payload()
1116 b->ptr[i] ^= hctx->frame.ctl.mask[hctx->frame.ctl.mask_cnt]; in unmask_payload()
1117 hctx->frame.ctl.mask_cnt = (hctx->frame.ctl.mask_cnt + 1) % 4; in unmask_payload()
1124 buffer *payload = hctx->frame.payload; in recv_rfc_6455()
1128 char *frame = c->mem->ptr+c->offset; in recv_rfc_6455() local
1134 switch (hctx->frame.state) { in recv_rfc_6455()
1136 switch (frame[i] & 0x0f) { in recv_rfc_6455()
1139 hctx->frame.type = hctx->frame.type_before; in recv_rfc_6455()
1143 hctx->frame.type = MOD_WEBSOCKET_FRAME_TYPE_TEXT; in recv_rfc_6455()
1144 hctx->frame.type_before = hctx->frame.type; in recv_rfc_6455()
1148 hctx->frame.type = MOD_WEBSOCKET_FRAME_TYPE_BIN; in recv_rfc_6455()
1149 hctx->frame.type_before = hctx->frame.type; in recv_rfc_6455()
1153 hctx->frame.type = MOD_WEBSOCKET_FRAME_TYPE_PING; in recv_rfc_6455()
1157 hctx->frame.type = MOD_WEBSOCKET_FRAME_TYPE_PONG; in recv_rfc_6455()
1161 hctx->frame.type = MOD_WEBSOCKET_FRAME_TYPE_CLOSE; in recv_rfc_6455()
1170 hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_READ_LENGTH; in recv_rfc_6455()
1173 if ((frame[i] & 0x80) != 0x80) { in recv_rfc_6455()
1177 hctx->frame.ctl.mask_cnt = 0; in recv_rfc_6455()
1178 hctx->frame.ctl.siz = (uint64_t)(frame[i] & 0x7f); in recv_rfc_6455()
1179 if (hctx->frame.ctl.siz == 0) { in recv_rfc_6455()
1181 (unsigned long long)hctx->frame.ctl.siz); in recv_rfc_6455()
1182 hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_READ_MASK; in recv_rfc_6455()
1184 else if (hctx->frame.ctl.siz == MOD_WEBSOCKET_FRAME_LEN16) { in recv_rfc_6455()
1185 hctx->frame.ctl.siz = 0; in recv_rfc_6455()
1186 hctx->frame.ctl.siz_cnt = MOD_WEBSOCKET_FRAME_LEN16_CNT; in recv_rfc_6455()
1187 hctx->frame.state = in recv_rfc_6455()
1190 else if (hctx->frame.ctl.siz == MOD_WEBSOCKET_FRAME_LEN63) { in recv_rfc_6455()
1191 hctx->frame.ctl.siz = 0; in recv_rfc_6455()
1192 hctx->frame.ctl.siz_cnt = MOD_WEBSOCKET_FRAME_LEN63_CNT; in recv_rfc_6455()
1193 hctx->frame.state = in recv_rfc_6455()
1198 (unsigned long long)hctx->frame.ctl.siz); in recv_rfc_6455()
1199 hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_READ_MASK; in recv_rfc_6455()
1204 hctx->frame.ctl.siz = in recv_rfc_6455()
1205 (hctx->frame.ctl.siz << 8) + (frame[i] & 0xff); in recv_rfc_6455()
1206 hctx->frame.ctl.siz_cnt--; in recv_rfc_6455()
1207 if (hctx->frame.ctl.siz_cnt <= 0) { in recv_rfc_6455()
1208 if (hctx->frame.type == MOD_WEBSOCKET_FRAME_TYPE_PING && in recv_rfc_6455()
1209 hctx->frame.ctl.siz > MOD_WEBSOCKET_BUFMAX) { in recv_rfc_6455()
1215 (unsigned long long)hctx->frame.ctl.siz); in recv_rfc_6455()
1216 hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_READ_MASK; in recv_rfc_6455()
1221 hctx->frame.ctl.mask[hctx->frame.ctl.mask_cnt] = frame[i]; in recv_rfc_6455()
1222 hctx->frame.ctl.mask_cnt++; in recv_rfc_6455()
1223 if (hctx->frame.ctl.mask_cnt >= MOD_WEBSOCKET_MASK_CNT) { in recv_rfc_6455()
1224 hctx->frame.ctl.mask_cnt = 0; in recv_rfc_6455()
1225 if (hctx->frame.type == MOD_WEBSOCKET_FRAME_TYPE_PING && in recv_rfc_6455()
1226 hctx->frame.ctl.siz == 0) { in recv_rfc_6455()
1231 if (hctx->frame.ctl.siz == 0) { in recv_rfc_6455()
1232 hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_INIT; in recv_rfc_6455()
1235 hctx->frame.state = in recv_rfc_6455()
1243 if (hctx->frame.ctl.siz <= flen - i) { in recv_rfc_6455()
1245 (unsigned long long)hctx->frame.ctl.siz); in recv_rfc_6455()
1246 buffer_append_string_len(payload, frame+i, (size_t) in recv_rfc_6455()
1247 (hctx->frame.ctl.siz & SIZE_MAX)); in recv_rfc_6455()
1248 i += (size_t)(hctx->frame.ctl.siz & SIZE_MAX); in recv_rfc_6455()
1249 hctx->frame.ctl.siz = 0; in recv_rfc_6455()
1250 hctx->frame.state = MOD_WEBSOCKET_FRAME_STATE_INIT; in recv_rfc_6455()
1256 buffer_append_string_len(payload, frame+i, flen - i); in recv_rfc_6455()
1257 hctx->frame.ctl.siz -= flen - i; in recv_rfc_6455()
1260 (unsigned long long)hctx->frame.ctl.siz); in recv_rfc_6455()
1262 switch (hctx->frame.type) { in recv_rfc_6455()
1272 if (hctx->frame.ctl.siz == 0) { in recv_rfc_6455()