Lines Matching refs:h2n

369 	if (!wsi->h2.h2n)
372 dyn = &wsi->h2.h2n->hpack_dyn_table;
429 if (!nwsi->h2.h2n)
431 dyn = &nwsi->h2.h2n->hpack_dyn_table;
494 if (!wsi->h2.h2n)
496 dyn = &wsi->h2.h2n->hpack_dyn_table;
592 if (!nwsi->h2.h2n)
595 dyn = &nwsi->h2.h2n->hpack_dyn_table;
687 if (!wsi->h2.h2n)
690 dyn = &wsi->h2.h2n->hpack_dyn_table;
827 struct lws_h2_netconn *h2n = nwsi->h2.h2n;
833 if (!h2n)
845 switch (h2n->hpack) {
848 h2n->is_first_header_char = 1;
849 h2n->huff_pad = 0;
850 h2n->zero_huff_padding = 0;
851 h2n->last_action_dyntable_resize = 0;
852 h2n->ext_count = 0;
853 h2n->hpack_hdr_len = 0;
854 h2n->unknown_header = 0;
859 h2n->hpack_type = HPKT_INDEXED_HDR_7;
863 h2n->hdr_idx = c & 0x7f;
865 h2n->hpack_len = 0;
866 h2n->hpack_m = 0x7f;
867 h2n->hpack = HPKS_IDX_EXT;
870 if (!h2n->hdr_idx) {
876 m = lws_token_from_index(wsi, (int)h2n->hdr_idx,
895 h2n->hdr_idx = 0;
898 h2n->hpack_type = HPKT_LITERAL_HDR_VALUE_INCR;
899 h2n->value = 0;
900 h2n->hpack_len = 0;
901 h2n->hpack = HPKS_HLEN;
905 h2n->hpack_type = HPKT_INDEXED_HDR_6_VALUE_INCR;
908 h2n->hdr_idx = c & 0x3f;
910 h2n->hpack_m = 0x3f;
911 h2n->hpack_len = 0;
912 h2n->hpack = HPKS_IDX_EXT;
916 h2n->value = 1;
917 h2n->hpack = HPKS_HLEN;
918 if (!h2n->hdr_idx) {
933 h2n->hpack_type = HPKT_LITERAL_HDR_VALUE;
935 h2n->hpack = HPKS_HLEN;
936 h2n->value = 0;
940 h2n->hpack_type = HPKT_LITERAL_HDR_VALUE_NEVER;
942 h2n->hpack = HPKS_HLEN;
943 h2n->value = 0;
949 h2n->hpack_type = HPKT_INDEXED_HDR_4_VALUE_NEVER;
952 h2n->hpack_type = HPKT_INDEXED_HDR_4_VALUE;
955 h2n->hdr_idx = 0;
957 h2n->hpack_len = c & 0xf;
958 h2n->hpack_m = 0xf;
959 h2n->hpack_len = 0;
960 h2n->hpack = HPKS_IDX_EXT;
963 h2n->hdr_idx = c & 0xf;
964 h2n->value = 1;
965 h2n->hpack = HPKS_HLEN;
972 h2n->hpack_type = HPKT_SIZE_5;
973 h2n->hpack_len = c & 0x1f;
974 if (h2n->hpack_len == 0x1f) {
975 h2n->hpack_m = 0x1f;
976 h2n->hpack_len = 0;
977 h2n->hpack = HPKS_IDX_EXT;
980 h2n->last_action_dyntable_resize = 1;
981 if (lws_hpack_dynamic_size(wsi, (int)h2n->hpack_len))
988 h2n->hpack_len = (uint32_t)((unsigned int)h2n->hpack_len |
989 (unsigned int)((c & 0x7f) << h2n->ext_count));
990 h2n->ext_count = (uint8_t)(h2n->ext_count + 7);
995 h2n->hpack_len += h2n->hpack_m;
996 lwsl_header("HPKS_IDX_EXT: hpack_len %u\n", (unsigned int)h2n->hpack_len);
998 switch (h2n->hpack_type) {
1000 if (lws_hpack_use_idx_hdr(wsi, (int)h2n->hpack_len,
1001 (int)h2n->hdr_idx)) {
1005 h2n->hpack = HPKS_TYPE;
1009 h2n->last_action_dyntable_resize = 1;
1010 if (lws_hpack_dynamic_size(wsi, (int)h2n->hpack_len))
1012 h2n->hpack = HPKS_TYPE;
1016 h2n->hdr_idx = h2n->hpack_len;
1017 if (!h2n->hdr_idx) {
1022 h2n->value = 1;
1023 h2n->hpack = HPKS_HLEN;
1029 h2n->huff = !!(c & 0x80);
1030 h2n->hpack_pos = 0;
1031 h2n->hpack_len = c & 0x7f;
1033 if (h2n->hpack_len == 0x7f) {
1034 h2n->hpack_m = 0x7f;
1035 h2n->hpack_len = 0;
1036 h2n->ext_count = 0;
1037 h2n->hpack = HPKS_HLEN_EXT;
1041 if (h2n->value && !h2n->hpack_len) {
1043 h2n->hpack = HPKS_TYPE;
1048 h2n->hpack = HPKS_DATA;
1049 if (!h2n->value || !h2n->hdr_idx) {
1052 h2n->unknown_header = 0;
1056 if (h2n->hpack_type == HPKT_LITERAL_HDR_VALUE ||
1057 h2n->hpack_type == HPKT_LITERAL_HDR_VALUE_INCR ||
1058 h2n->hpack_type == HPKT_LITERAL_HDR_VALUE_NEVER) {
1062 h2n->hdr_idx = (uint32_t)-1;
1064 h2n->hdr_idx = 1;
1066 n = lws_token_from_index(wsi, (int)h2n->hdr_idx, NULL,
1069 (unsigned int)h2n->hdr_idx, n);
1073 h2n->hdr_idx = LWS_HPACK_IGNORE_ENTRY;
1075 switch (h2n->hpack_type) {
1098 h2n->hpack_len = (uint32_t)((unsigned int)h2n->hpack_len |
1099 (unsigned int)((c & 0x7f) << h2n->ext_count));
1100 h2n->ext_count = (uint8_t)(h2n->ext_count + 7);
1104 h2n->hpack_len += h2n->hpack_m;
1108 //lwsl_header(" 0x%02X huff %d\n", c, h2n->huff);
1112 if (h2n->huff) {
1114 prev = h2n->hpack_pos;
1115 h2n->hpack_pos = (uint16_t)huftable_decode(
1116 (int)h2n->hpack_pos, b);
1118 if (h2n->hpack_pos == 0xffff) {
1122 if (!(h2n->hpack_pos & 0x8000)) {
1124 h2n->zero_huff_padding = 1;
1125 h2n->huff_pad++;
1128 c1 = (uint8_t)(h2n->hpack_pos & 0x7fff);
1129 h2n->hpack_pos = 0;
1130 h2n->huff_pad = 0;
1131 h2n->zero_huff_padding = 0;
1143 if (h2n->value) { /* value */
1145 if (h2n->hdr_idx &&
1146 h2n->hdr_idx != LWS_HPACK_IGNORE_ENTRY) {
1179 * If h2n->unknown_header == 0, result is
1183 * If unknown header h2n->unknown_header
1186 h2n->hpack_hdr_len++;
1187 if (h2n->is_first_header_char) {
1188 h2n->is_first_header_char = 0;
1189 h2n->first_hdr_char = (char)c1;
1200 if (!h2n->unknown_header &&
1202 h2n->unknown_header = 1;
1208 if (--h2n->hpack_len)
1212 * The header (h2n->value = 0) or the payload (h2n->value = 1)
1216 if (h2n->huff && (h2n->huff_pad > 7 ||
1217 (h2n->zero_huff_padding && h2n->huff_pad))) {
1219 h2n->zero_huff_padding, h2n->huff_pad);
1225 if (!h2n->value && (
1226 h2n->hpack_type == HPKT_LITERAL_HDR_VALUE ||
1227 h2n->hpack_type == HPKT_LITERAL_HDR_VALUE_INCR ||
1228 h2n->hpack_type == HPKT_LITERAL_HDR_VALUE_NEVER)) {
1229 h2n->hdr_idx = LWS_HPACK_IGNORE_ENTRY;
1246 h2n->unknown_header = 1;
1253 if (!h2n->value) {
1254 h2n->value = 1;
1255 h2n->hpack = HPKS_HLEN;
1256 h2n->huff_pad = 0;
1257 h2n->zero_huff_padding = 0;
1258 h2n->ext_count = 0;
1267 switch (h2n->hpack_type) {
1274 m = lws_token_from_index(wsi, (int)h2n->hdr_idx, NULL, NULL,
1275 &h2n->hpack_hdr_len);
1288 * h2n->hpack_hdr_len
1291 if (h2n->unknown_header ||
1294 if (h2n->first_hdr_char == ':') {
1298 h2n->unknown_header);
1314 if (lws_dynamic_token_insert(wsi, (int)h2n->hpack_hdr_len, m,
1326 if (h2n->hdr_idx != LWS_HPACK_IGNORE_ENTRY && lws_frag_end(wsi))
1329 if (h2n->hpack_type != HPKT_INDEXED_HDR_6_VALUE_INCR) {
1331 if (h2n->hpack_type == HPKT_LITERAL_HDR_VALUE ||
1332 h2n->hpack_type == HPKT_LITERAL_HDR_VALUE_INCR ||
1333 h2n->hpack_type == HPKT_LITERAL_HDR_VALUE_NEVER) {
1338 m = lws_token_from_index(wsi, (int)h2n->hdr_idx,
1348 h2n->is_first_header_char = 1;
1349 h2n->hpack = HPKS_TYPE;