Lines Matching refs:swsi
818 h2n->swsi = __lws_wsi_server_new(wsi->a.vhost, wsi, 1); in lws_h2_do_pps_send()
823 if (!h2n->swsi) in lws_h2_do_pps_send()
827 h2n->swsi->http.ah = wsi->http.ah; in lws_h2_do_pps_send()
831 h2n->swsi->http.ah); in lws_h2_do_pps_send()
832 h2n->swsi->txc.tx_cr = (int32_t) in lws_h2_do_pps_send()
835 lws_wsi_tag(h2n->swsi), in lws_h2_do_pps_send()
836 (int)h2n->swsi->txc.tx_cr); in lws_h2_do_pps_send()
837 h2n->swsi->h2.initialized = 1; in lws_h2_do_pps_send()
839 h2n->swsi->h2.END_STREAM = 1; in lws_h2_do_pps_send()
843 if (lws_http_action(h2n->swsi)) in lws_h2_do_pps_send()
968 h2n->swsi = wsi; in lws_h2_parse_frame_header()
988 h2n->swsi = lws_wsi_mux_from_id(wsi, h2n->sid); in lws_h2_parse_frame_header()
991 lws_wsi_tag(wsi), lws_wsi_tag(h2n->swsi), h2n->type, in lws_h2_parse_frame_header()
1020 if (h2n->swsi) in lws_h2_parse_frame_header()
1022 __func__, lws_wsi_tag(h2n->swsi), in lws_h2_parse_frame_header()
1023 h2_state_names[h2n->swsi->h2.h2_state], h2n->type); in lws_h2_parse_frame_header()
1053 __func__, lws_wsi_tag(h2n->swsi), (unsigned int)h2n->sid, h2n->type); in lws_h2_parse_frame_header()
1060 if (h2n->swsi && h2n->sid && h2n->type != LWS_H2_FRAME_TYPE_COUNT && in lws_h2_parse_frame_header()
1061 !(http2_rx_validity[h2n->swsi->h2.h2_state] & (1 << h2n->type))) { in lws_h2_parse_frame_header()
1063 __func__, lws_wsi_tag(h2n->swsi), in lws_h2_parse_frame_header()
1064 h2_state_names[h2n->swsi->h2.h2_state], h2n->type, in lws_h2_parse_frame_header()
1065 http2_rx_validity[h2n->swsi->h2.h2_state]); in lws_h2_parse_frame_header()
1067 if (h2n->swsi->h2.h2_state == LWS_H2_STATE_CLOSED || in lws_h2_parse_frame_header()
1068 h2n->swsi->h2.h2_state == LWS_H2_STATE_HALF_CLOSED_REMOTE) in lws_h2_parse_frame_header()
1105 if (!h2n->swsi) { in lws_h2_parse_frame_header()
1110 lwsl_info("DATA rx on state %d\n", h2n->swsi->h2.h2_state); in lws_h2_parse_frame_header()
1113 h2n->swsi->h2.h2_state == LWS_H2_STATE_HALF_CLOSED_REMOTE || in lws_h2_parse_frame_header()
1114 h2n->swsi->h2.h2_state == LWS_H2_STATE_CLOSED) { in lws_h2_parse_frame_header()
1149 if (!h2n->swsi) { in lws_h2_parse_frame_header()
1161 lws_h2_state(h2n->swsi, LWS_H2_STATE_CLOSED); in lws_h2_parse_frame_header()
1227 !h2n->swsi) { in lws_h2_parse_frame_header()
1233 if (h2n->swsi->h2.END_HEADERS) { in lws_h2_parse_frame_header()
1249 if (h2n->swsi && !h2n->swsi->h2.END_STREAM && in lws_h2_parse_frame_header()
1250 h2n->swsi->h2.END_HEADERS && in lws_h2_parse_frame_header()
1260 h2n->swsi = lws_wsi_mux_from_id(wsi, h2n->sid); in lws_h2_parse_frame_header()
1264 lws_wsi_tag(h2n->swsi)); in lws_h2_parse_frame_header()
1265 if (!h2n->swsi) in lws_h2_parse_frame_header()
1272 if (!h2n->swsi) { in lws_h2_parse_frame_header()
1290 h2n->swsi = __lws_wsi_server_new(wsi->a.vhost, wsi, in lws_h2_parse_frame_header()
1296 if (!h2n->swsi) { in lws_h2_parse_frame_header()
1306 h2n->swsi->h2.initialized = 1; in lws_h2_parse_frame_header()
1308 if (lws_h2_update_peer_txcredit(h2n->swsi, in lws_h2_parse_frame_header()
1309 h2n->swsi->mux.my_sid, 4 * 65536)) in lws_h2_parse_frame_header()
1317 if (!h2n->swsi->http.ah) in lws_h2_parse_frame_header()
1318 if (lws_header_table_attach(h2n->swsi, 0)) { in lws_h2_parse_frame_header()
1346 if (lws_check_opt(h2n->swsi->a.vhost->options, in lws_h2_parse_frame_header()
1354 lws_mux_mark_immortal(h2n->swsi); in lws_h2_parse_frame_header()
1356 __func__, lws_wsi_tag(h2n->swsi)); in lws_h2_parse_frame_header()
1359 h2n->swsi->h2.END_STREAM = in lws_h2_parse_frame_header()
1362 h2n->swsi->h2.END_STREAM); in lws_h2_parse_frame_header()
1366 h2n->swsi->h2.END_HEADERS = in lws_h2_parse_frame_header()
1368 lwsl_info("%s: %s: END_HEADERS %d\n", __func__, lws_wsi_tag(h2n->swsi), in lws_h2_parse_frame_header()
1369 h2n->swsi->h2.END_HEADERS); in lws_h2_parse_frame_header()
1370 if (h2n->swsi->h2.END_HEADERS) in lws_h2_parse_frame_header()
1372 lwsl_debug("END_HEADERS %d\n", h2n->swsi->h2.END_HEADERS); in lws_h2_parse_frame_header()
1447 h2n->swsi = lws_wsi_mux_from_id(wsi, h2n->sid); in lws_h2_parse_end_of_frame()
1479 h2n->swsi = __lws_wsi_server_new(wsi->a.vhost, wsi, 1); in lws_h2_parse_end_of_frame()
1484 if (!h2n->swsi) in lws_h2_parse_end_of_frame()
1488 assert(lws_wsi_mux_from_id(wsi, 1) == h2n->swsi); in lws_h2_parse_end_of_frame()
1494 lws_role_transition(h2n->swsi, LWSIFR_CLIENT, in lws_h2_parse_end_of_frame()
1499 h2n->swsi->http.ah = wsi->http.ah; in lws_h2_parse_end_of_frame()
1501 lws_fi_import(&h2n->swsi->fic, &wsi->fic); in lws_h2_parse_end_of_frame()
1503 h2n->swsi->client_mux_substream = 1; in lws_h2_parse_end_of_frame()
1504 h2n->swsi->client_h2_alpn = 1; in lws_h2_parse_end_of_frame()
1506 h2n->swsi->flags = wsi->flags; in lws_h2_parse_end_of_frame()
1512 h2n->swsi->conmon = wsi->conmon; in lws_h2_parse_end_of_frame()
1513 h2n->swsi->conmon_datum = wsi->conmon_datum; in lws_h2_parse_end_of_frame()
1514 h2n->swsi->sa46_peer = wsi->sa46_peer; in lws_h2_parse_end_of_frame()
1523 h2n->swsi->for_ss = 1; in lws_h2_parse_end_of_frame()
1527 h->wsi = h2n->swsi; in lws_h2_parse_end_of_frame()
1531 h2n->swsi->a.protocol = wsi->a.protocol; in lws_h2_parse_end_of_frame()
1532 if (h2n->swsi->user_space && in lws_h2_parse_end_of_frame()
1533 !h2n->swsi->user_space_externally_allocated) in lws_h2_parse_end_of_frame()
1534 lws_free(h2n->swsi->user_space); in lws_h2_parse_end_of_frame()
1535 h2n->swsi->user_space = wsi->user_space; in lws_h2_parse_end_of_frame()
1536 h2n->swsi->user_space_externally_allocated = in lws_h2_parse_end_of_frame()
1538 h2n->swsi->a.opaque_user_data = wsi->a.opaque_user_data; in lws_h2_parse_end_of_frame()
1540 h2n->swsi->txc.manual_initial_tx_credit = in lws_h2_parse_end_of_frame()
1544 lws_strncpy(h2n->swsi->alpn, wsi->alpn, in lws_h2_parse_end_of_frame()
1550 if (h2n->swsi->http.ah) in lws_h2_parse_end_of_frame()
1551 h2n->swsi->http.ah->wsi = h2n->swsi; in lws_h2_parse_end_of_frame()
1555 lws_wsi_tag(wsi), lws_wsi_tag(h2n->swsi)); in lws_h2_parse_end_of_frame()
1556 h2n->swsi->txc.tx_cr = (int32_t) in lws_h2_parse_end_of_frame()
1559 __func__, lws_wsi_tag(h2n->swsi), in lws_h2_parse_end_of_frame()
1560 (int)h2n->swsi->txc.tx_cr); in lws_h2_parse_end_of_frame()
1561 h2n->swsi->h2.initialized = 1; in lws_h2_parse_end_of_frame()
1574 lws_callback_on_writable(h2n->swsi); in lws_h2_parse_end_of_frame()
1597 if (!h2n->swsi) in lws_h2_parse_end_of_frame()
1608 if (!h2n->swsi->h2.END_HEADERS) { in lws_h2_parse_end_of_frame()
1629 switch (h2n->swsi->h2.h2_state) { in lws_h2_parse_end_of_frame()
1631 lws_h2_state(h2n->swsi, LWS_H2_STATE_OPEN); in lws_h2_parse_end_of_frame()
1634 lws_h2_state(h2n->swsi, LWS_H2_STATE_HALF_CLOSED_LOCAL); in lws_h2_parse_end_of_frame()
1639 lws_wsi_tag(h2n->swsi)); in lws_h2_parse_end_of_frame()
1640 h2n->swsi->hdr_parsing_completed = 1; in lws_h2_parse_end_of_frame()
1643 if (h2n->swsi->client_mux_substream && in lws_h2_parse_end_of_frame()
1644 lws_client_interpret_server_handshake(h2n->swsi)) { in lws_h2_parse_end_of_frame()
1659 if (lws_hdr_extant(h2n->swsi, WSI_TOKEN_HTTP_CONTENT_LENGTH)) { in lws_h2_parse_end_of_frame()
1660 const char *simp = lws_hdr_simple_ptr(h2n->swsi, in lws_h2_parse_end_of_frame()
1665 h2n->swsi->http.rx_content_length = (unsigned long long)atoll(simp); in lws_h2_parse_end_of_frame()
1666 h2n->swsi->http.rx_content_remain = in lws_h2_parse_end_of_frame()
1667 h2n->swsi->http.rx_content_length; in lws_h2_parse_end_of_frame()
1668 h2n->swsi->http.content_length_given = 1; in lws_h2_parse_end_of_frame()
1670 (long long)h2n->swsi->http.rx_content_length); in lws_h2_parse_end_of_frame()
1685 len = lws_hdr_total_length(h2n->swsi, (enum lws_token_indexes)n); in lws_h2_parse_end_of_frame()
1691 if (lws_hdr_copy(h2n->swsi, buf, sizeof buf, in lws_h2_parse_end_of_frame()
1705 if (h2n->swsi->h2.h2_state == LWS_H2_STATE_HALF_CLOSED_REMOTE || in lws_h2_parse_end_of_frame()
1706 h2n->swsi->h2.h2_state == LWS_H2_STATE_CLOSED) { in lws_h2_parse_end_of_frame()
1712 switch (h2n->swsi->h2.h2_state) { in lws_h2_parse_end_of_frame()
1714 lws_h2_state(h2n->swsi, LWS_H2_STATE_OPEN); in lws_h2_parse_end_of_frame()
1717 if (h2n->swsi->h2.END_STREAM) in lws_h2_parse_end_of_frame()
1718 lws_h2_state(h2n->swsi, in lws_h2_parse_end_of_frame()
1722 if (h2n->swsi->h2.END_STREAM) in lws_h2_parse_end_of_frame()
1726 lws_h2_state(h2n->swsi, LWS_H2_STATE_CLOSED); in lws_h2_parse_end_of_frame()
1741 if (h2n->swsi->h2.h2_state == LWS_H2_STATE_CLOSED && in lws_h2_parse_end_of_frame()
1742 h2n->swsi->client_mux_substream) { in lws_h2_parse_end_of_frame()
1744 lws_h2_rst_stream(h2n->swsi, H2_ERR_NO_ERROR, in lws_h2_parse_end_of_frame()
1747 if (lws_http_transaction_completed_client(h2n->swsi)) in lws_h2_parse_end_of_frame()
1752 if (h2n->swsi->client_mux_substream) { in lws_h2_parse_end_of_frame()
1755 h2_state_names[h2n->swsi->h2.h2_state]); in lws_h2_parse_end_of_frame()
1760 if (!lws_hdr_total_length(h2n->swsi, WSI_TOKEN_HTTP_COLON_PATH) || in lws_h2_parse_end_of_frame()
1761 !lws_hdr_total_length(h2n->swsi, WSI_TOKEN_HTTP_COLON_METHOD) || in lws_h2_parse_end_of_frame()
1762 !lws_hdr_total_length(h2n->swsi, WSI_TOKEN_HTTP_COLON_SCHEME) || in lws_h2_parse_end_of_frame()
1763 lws_hdr_total_length(h2n->swsi, WSI_TOKEN_HTTP_COLON_STATUS) || in lws_h2_parse_end_of_frame()
1764 lws_hdr_extant(h2n->swsi, WSI_TOKEN_CONNECTION)) { in lws_h2_parse_end_of_frame()
1770 if (lws_hdr_extant(h2n->swsi, WSI_TOKEN_TE)) { in lws_h2_parse_end_of_frame()
1771 n = lws_hdr_total_length(h2n->swsi, WSI_TOKEN_TE); in lws_h2_parse_end_of_frame()
1774 !lws_hdr_simple_ptr(h2n->swsi, WSI_TOKEN_TE) || in lws_h2_parse_end_of_frame()
1775 strncmp(lws_hdr_simple_ptr(h2n->swsi, WSI_TOKEN_TE), in lws_h2_parse_end_of_frame()
1784 lws_http_compression_validate(h2n->swsi); in lws_h2_parse_end_of_frame()
1787 p = lws_hdr_simple_ptr(h2n->swsi, WSI_TOKEN_HTTP_COLON_METHOD); in lws_h2_parse_end_of_frame()
1794 h2n->swsi->http.ah->frag_index[method_index[n]] = in lws_h2_parse_end_of_frame()
1795 h2n->swsi->http.ah->frag_index[ in lws_h2_parse_end_of_frame()
1802 (unsigned int)h2n->swsi->wsistate); in lws_h2_parse_end_of_frame()
1803 lwsi_set_state(h2n->swsi, LRS_DEFERRING_ACTION); in lws_h2_parse_end_of_frame()
1804 lws_callback_on_writable(h2n->swsi); in lws_h2_parse_end_of_frame()
1810 if (!h2n->swsi) in lws_h2_parse_end_of_frame()
1813 if (lws_hdr_total_length(h2n->swsi, in lws_h2_parse_end_of_frame()
1815 h2n->swsi->h2.END_STREAM && in lws_h2_parse_end_of_frame()
1816 h2n->swsi->http.rx_content_length && in lws_h2_parse_end_of_frame()
1817 h2n->swsi->http.rx_content_remain) { in lws_h2_parse_end_of_frame()
1818 lws_h2_rst_stream(h2n->swsi, H2_ERR_PROTOCOL_ERROR, in lws_h2_parse_end_of_frame()
1823 if (h2n->swsi->h2.END_STREAM && in lws_h2_parse_end_of_frame()
1824 h2n->swsi->h2.h2_state == LWS_H2_STATE_OPEN) in lws_h2_parse_end_of_frame()
1825 lws_h2_state(h2n->swsi, in lws_h2_parse_end_of_frame()
1828 if (h2n->swsi->h2.END_STREAM && in lws_h2_parse_end_of_frame()
1829 h2n->swsi->h2.h2_state == LWS_H2_STATE_HALF_CLOSED_LOCAL) in lws_h2_parse_end_of_frame()
1830 lws_h2_state(h2n->swsi, LWS_H2_STATE_CLOSED); in lws_h2_parse_end_of_frame()
1838 if (h2n->swsi->client_mux_substream && in lws_h2_parse_end_of_frame()
1841 __func__, lws_wsi_tag(h2n->swsi)); in lws_h2_parse_end_of_frame()
1843 if (h2n->swsi->h2.h2_state == LWS_H2_STATE_OPEN) { in lws_h2_parse_end_of_frame()
1844 lws_h2_state(h2n->swsi, in lws_h2_parse_end_of_frame()
1855 lws_h2_state(h2n->swsi, LWS_H2_STATE_CLOSED); in lws_h2_parse_end_of_frame()
1857 lws_h2_rst_stream(h2n->swsi, H2_ERR_NO_ERROR, in lws_h2_parse_end_of_frame()
1860 if (lws_http_transaction_completed_client(h2n->swsi)) in lws_h2_parse_end_of_frame()
1896 eff_wsi = h2n->swsi; in lws_h2_parse_end_of_frame()
1918 lws_h2_rst_stream(h2n->swsi, in lws_h2_parse_end_of_frame()
2120 if (!h2n->swsi) in lws_h2_parser()
2122 if (lws_hpack_interpret(h2n->swsi, c)) { in lws_h2_parser()
2175 if (!h2n->swsi) in lws_h2_parser()
2179 &h2n->swsi->buflist, NULL)) in lws_h2_parser()
2183 if (lwsi_role_http(h2n->swsi) && in lws_h2_parser()
2184 lwsi_state(h2n->swsi) == LRS_ESTABLISHED) { in lws_h2_parser()
2185 lwsi_set_state(h2n->swsi, LRS_BODY); in lws_h2_parser()
2187 __func__, lws_wsi_tag(h2n->swsi)); in lws_h2_parser()
2196 if (lws_hdr_total_length(h2n->swsi, in lws_h2_parser()
2198 h2n->swsi->http.rx_content_length && in lws_h2_parser()
2199 h2n->swsi->http.rx_content_remain < in lws_h2_parser()
2204 (unsigned long)h2n->swsi->http.rx_content_remain, in lws_h2_parser()
2229 if (h2n->swsi->client_mux_substream) { in lws_h2_parser()
2230 if (!h2n->swsi->a.protocol) { in lws_h2_parser()
2232 __func__, lws_wsi_tag(h2n->swsi)); in lws_h2_parser()
2235 h2n->swsi->txc.peer_tx_cr_est -= n; in lws_h2_parser()
2237 lws_wsi_txc_describe(&h2n->swsi->txc, in lws_h2_parser()
2239 h2n->swsi->mux.my_sid); in lws_h2_parser()
2241 h2n->swsi->a.protocol->callback, in lws_h2_parser()
2242 h2n->swsi, in lws_h2_parser()
2244 h2n->swsi->user_space, in lws_h2_parser()
2261 if (lwsi_state(h2n->swsi) == LRS_DEFERRING_ACTION) { in lws_h2_parser()
2263 &h2n->swsi->buflist, in - 1, (unsigned int)n); in lws_h2_parser()
2284 h2n->swsi->outer_will_close = 1; in lws_h2_parser()
2291 n = lws_read_h1(h2n->swsi, in - 1, (unsigned int)n); in lws_h2_parser()
2293 h2n->swsi->outer_will_close = 0; in lws_h2_parser()
2299 (!n && h2n->swsi->http.content_length_given && !lws_buflist_next_segment_len( in lws_h2_parser()
2323 h2n->swsi->txc.peer_tx_cr_est -= n; in lws_h2_parser()
2329 if (!(h2n->swsi->flags & LCCSCF_H2_MANUAL_RXFLOW)) in lws_h2_parser()
2343 lws_h2_update_peer_txcredit_thresh(h2n->swsi, in lws_h2_parser()
2355 h2n->swsi->txc.manual = 1; in lws_h2_parser()
2489 lws_close_free_wsi(h2n->swsi, 0, "close_swsi_and_return"); in lws_h2_parser()
2490 h2n->swsi = NULL; in lws_h2_parser()