Lines Matching refs:ws
49 if (wsi->ws->rx_draining_ext) { in lws_ws_client_rx_sm()
63 wsi->ws->defeat_check_utf8 = 0; in lws_ws_client_rx_sm()
65 switch (wsi->ws->ietf_spec_revision) { in lws_ws_client_rx_sm()
67 wsi->ws->opcode = c & 0xf; in lws_ws_client_rx_sm()
69 switch (wsi->ws->opcode) { in lws_ws_client_rx_sm()
71 wsi->ws->rsv_first_msg = (c & 0x70); in lws_ws_client_rx_sm()
78 wsi->ws->pmd_trailer_application = !!(c & 0x40); in lws_ws_client_rx_sm()
80 wsi->ws->continuation_possible = 1; in lws_ws_client_rx_sm()
81 wsi->ws->check_utf8 = lws_check_opt( in lws_ws_client_rx_sm()
84 wsi->ws->utf8 = 0; in lws_ws_client_rx_sm()
85 wsi->ws->first_fragment = 1; in lws_ws_client_rx_sm()
88 wsi->ws->rsv_first_msg = (c & 0x70); in lws_ws_client_rx_sm()
95 wsi->ws->pmd_trailer_application = !!(c & 0x40); in lws_ws_client_rx_sm()
97 wsi->ws->check_utf8 = 0; in lws_ws_client_rx_sm()
98 wsi->ws->continuation_possible = 1; in lws_ws_client_rx_sm()
99 wsi->ws->first_fragment = 1; in lws_ws_client_rx_sm()
102 if (!wsi->ws->continuation_possible) { in lws_ws_client_rx_sm()
106 wsi->ws->first_fragment = 0; in lws_ws_client_rx_sm()
109 wsi->ws->check_utf8 = 0; in lws_ws_client_rx_sm()
110 wsi->ws->utf8 = 0; in lws_ws_client_rx_sm()
125 wsi->ws->defeat_check_utf8 = 1; in lws_ws_client_rx_sm()
128 wsi->ws->rsv = (c & 0x70); in lws_ws_client_rx_sm()
132 !wsi->ws->count_act_ext && in lws_ws_client_rx_sm()
134 wsi->ws->rsv) { in lws_ws_client_rx_sm()
138 wsi->ws->final = !!((c >> 7) & 1); in lws_ws_client_rx_sm()
140 wsi->ws->final); in lws_ws_client_rx_sm()
142 if (wsi->ws->owed_a_fin && in lws_ws_client_rx_sm()
143 (wsi->ws->opcode == LWSWSOPC_TEXT_FRAME || in lws_ws_client_rx_sm()
144 wsi->ws->opcode == LWSWSOPC_BINARY_FRAME)) { in lws_ws_client_rx_sm()
148 if ((!(wsi->ws->opcode & 8)) && wsi->ws->final) { in lws_ws_client_rx_sm()
149 wsi->ws->continuation_possible = 0; in lws_ws_client_rx_sm()
150 wsi->ws->owed_a_fin = 0; in lws_ws_client_rx_sm()
153 if ((wsi->ws->opcode & 8) && !wsi->ws->final) { in lws_ws_client_rx_sm()
157 if (!wsi->ws->final) in lws_ws_client_rx_sm()
158 wsi->ws->owed_a_fin = 1; in lws_ws_client_rx_sm()
160 switch (wsi->ws->opcode) { in lws_ws_client_rx_sm()
163 wsi->ws->frame_is_binary = wsi->ws->opcode == in lws_ws_client_rx_sm()
172 wsi->ws->ietf_spec_revision); in lws_ws_client_rx_sm()
179 wsi->ws->this_frame_masked = !!(c & 0x80); in lws_ws_client_rx_sm()
180 if (wsi->ws->this_frame_masked) in lws_ws_client_rx_sm()
186 if (wsi->ws->opcode & 8) in lws_ws_client_rx_sm()
192 if (wsi->ws->opcode & 8) in lws_ws_client_rx_sm()
197 wsi->ws->rx_packet_length = c & 0x7f; in lws_ws_client_rx_sm()
198 if (wsi->ws->this_frame_masked) in lws_ws_client_rx_sm()
202 if (wsi->ws->rx_packet_length) { in lws_ws_client_rx_sm()
215 wsi->ws->rx_packet_length = (size_t)((unsigned int)c << 8); in lws_ws_client_rx_sm()
220 wsi->ws->rx_packet_length |= c; in lws_ws_client_rx_sm()
221 if (wsi->ws->this_frame_masked) in lws_ws_client_rx_sm()
224 if (wsi->ws->rx_packet_length) in lws_ws_client_rx_sm()
241 wsi->ws->rx_packet_length = ((size_t)c) << 56; in lws_ws_client_rx_sm()
243 wsi->ws->rx_packet_length = 0; in lws_ws_client_rx_sm()
250 wsi->ws->rx_packet_length |= ((size_t)c) << 48; in lws_ws_client_rx_sm()
257 wsi->ws->rx_packet_length |= ((size_t)c) << 40; in lws_ws_client_rx_sm()
264 wsi->ws->rx_packet_length |= ((size_t)c) << 32; in lws_ws_client_rx_sm()
270 wsi->ws->rx_packet_length |= ((size_t)c) << 24; in lws_ws_client_rx_sm()
275 wsi->ws->rx_packet_length |= ((size_t)c) << 16; in lws_ws_client_rx_sm()
280 wsi->ws->rx_packet_length |= ((size_t)c) << 8; in lws_ws_client_rx_sm()
285 wsi->ws->rx_packet_length |= (size_t)c; in lws_ws_client_rx_sm()
286 if (wsi->ws->this_frame_masked) in lws_ws_client_rx_sm()
290 if (wsi->ws->rx_packet_length) in lws_ws_client_rx_sm()
301 wsi->ws->mask[0] = c; in lws_ws_client_rx_sm()
303 wsi->ws->all_zero_nonce = 0; in lws_ws_client_rx_sm()
308 wsi->ws->mask[1] = c; in lws_ws_client_rx_sm()
310 wsi->ws->all_zero_nonce = 0; in lws_ws_client_rx_sm()
315 wsi->ws->mask[2] = c; in lws_ws_client_rx_sm()
317 wsi->ws->all_zero_nonce = 0; in lws_ws_client_rx_sm()
322 wsi->ws->mask[3] = c; in lws_ws_client_rx_sm()
324 wsi->ws->all_zero_nonce = 0; in lws_ws_client_rx_sm()
326 if (wsi->ws->rx_packet_length) in lws_ws_client_rx_sm()
337 assert(wsi->ws->rx_ubuf); in lws_ws_client_rx_sm()
339 if (wsi->ws->rx_draining_ext) in lws_ws_client_rx_sm()
342 if (wsi->ws->this_frame_masked && !wsi->ws->all_zero_nonce) in lws_ws_client_rx_sm()
343 c ^= wsi->ws->mask[(wsi->ws->mask_idx++) & 3]; in lws_ws_client_rx_sm()
350 wsi->ws->rx_ubuf[LWS_PRE + (wsi->ws->rx_ubuf_head++)] = c; in lws_ws_client_rx_sm()
352 if (--wsi->ws->rx_packet_length == 0) { in lws_ws_client_rx_sm()
364 wsi->ws->rx_ubuf_head != wsi->a.context->pt_serv_buf_size) in lws_ws_client_rx_sm()
368 wsi->ws->rx_ubuf_head != wsi->a.protocol->rx_buffer_size) in lws_ws_client_rx_sm()
383 switch (wsi->ws->opcode) { in lws_ws_client_rx_sm()
385 pp = &wsi->ws->rx_ubuf[LWS_PRE]; in lws_ws_client_rx_sm()
388 wsi->ws->rx_ubuf_head > 2 && in lws_ws_client_rx_sm()
389 lws_check_utf8(&wsi->ws->utf8, pp + 2, in lws_ws_client_rx_sm()
390 wsi->ws->rx_ubuf_head - 2)) in lws_ws_client_rx_sm()
404 (int)wsi->ws->rx_ubuf_head); in lws_ws_client_rx_sm()
405 if (wsi->ws->rx_ubuf_head >= 2) { in lws_ws_client_rx_sm()
421 wsi->ws->rx_ubuf_head)) in lws_ws_client_rx_sm()
424 memcpy(wsi->ws->ping_payload_buf + LWS_PRE, pp, in lws_ws_client_rx_sm()
425 wsi->ws->rx_ubuf_head); in lws_ws_client_rx_sm()
426 wsi->ws->close_in_ping_buffer_len = in lws_ws_client_rx_sm()
427 (uint8_t)wsi->ws->rx_ubuf_head; in lws_ws_client_rx_sm()
441 (int)wsi->ws->rx_ubuf_head); in lws_ws_client_rx_sm()
444 if (wsi->ws->close_in_ping_buffer_len) in lws_ws_client_rx_sm()
447 if (wsi->ws->pong_pending_flag) { in lws_ws_client_rx_sm()
457 if (wsi->ws->rx_ubuf_head > 128 - 3) { in lws_ws_client_rx_sm()
463 memcpy(wsi->ws->pong_payload_buf + LWS_PRE, in lws_ws_client_rx_sm()
464 &wsi->ws->rx_ubuf[LWS_PRE], in lws_ws_client_rx_sm()
465 wsi->ws->rx_ubuf_head); in lws_ws_client_rx_sm()
467 wsi->ws->pong_payload_len = (uint8_t)wsi->ws->rx_ubuf_head; in lws_ws_client_rx_sm()
468 wsi->ws->pong_pending_flag = 1; in lws_ws_client_rx_sm()
473 wsi->ws->rx_ubuf_head = 0; in lws_ws_client_rx_sm()
479 lwsl_hexdump_wsi_debug(wsi, &wsi->ws->rx_ubuf[LWS_PRE], in lws_ws_client_rx_sm()
480 wsi->ws->rx_ubuf_head); in lws_ws_client_rx_sm()
494 lwsl_wsi_ext(wsi, "Unhandled ext opc 0x%x", wsi->ws->opcode); in lws_ws_client_rx_sm()
495 wsi->ws->rx_ubuf_head = 0; in lws_ws_client_rx_sm()
517 pmdrx.eb_in.token = &wsi->ws->rx_ubuf[LWS_PRE]; in lws_ws_client_rx_sm()
518 pmdrx.eb_in.len = (int)wsi->ws->rx_ubuf_head; in lws_ws_client_rx_sm()
525 (int)wsi->ws->rx_ubuf_head); in lws_ws_client_rx_sm()
569 rx_draining_ext = wsi->ws->rx_draining_ext; in lws_ws_client_rx_sm()
572 if (wsi->ws->check_utf8 && !wsi->ws->defeat_check_utf8) { in lws_ws_client_rx_sm()
574 if (lws_check_utf8(&wsi->ws->utf8, in lws_ws_client_rx_sm()
584 if (!wsi->ws->rx_packet_length && in lws_ws_client_rx_sm()
585 wsi->ws->final && wsi->ws->utf8 in lws_ws_client_rx_sm()
650 wsi->ws->first_fragment = 0; in lws_ws_client_rx_sm()
653 (int)wsi->ws->rx_ubuf_head, in lws_ws_client_rx_sm()
667 wsi->ws->rx_ubuf_head = 0; in lws_ws_client_rx_sm()