|
|
@ -221,8 +221,7 @@ static const gpr_uint8 first_byte_lut[256] = { |
|
|
|
INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, |
|
|
|
INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, |
|
|
|
INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, |
|
|
|
INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, |
|
|
|
INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, |
|
|
|
INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, |
|
|
|
INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD_X, |
|
|
|
INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD, INDEXED_FIELD_X, }; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* state table for huffman decoding: given a state, gives an index/16 into
|
|
|
|
/* state table for huffman decoding: given a state, gives an index/16 into
|
|
|
|
next_sub_tbl. Taking that index and adding the value of the nibble being |
|
|
|
next_sub_tbl. Taking that index and adding the value of the nibble being |
|
|
@ -242,8 +241,7 @@ static const gpr_uint8 next_tbl[256] = { |
|
|
|
38, 1, 1, 1, 1, 1, 1, 1, 15, 2, 2, 2, 2, 26, 3, 3, 39, 1, 1, 1, |
|
|
|
38, 1, 1, 1, 1, 1, 1, 1, 15, 2, 2, 2, 2, 26, 3, 3, 39, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 7, 3, 3, 3, 40, 2, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 7, 3, 3, 3, 40, 2, |
|
|
|
41, 1, 1, 1, 42, 43, 1, 1, 44, 1, 1, 1, 1, 15, 2, 2, 2, 2, 2, 2, |
|
|
|
41, 1, 1, 1, 42, 43, 1, 1, 44, 1, 1, 1, 1, 15, 2, 2, 2, 2, 2, 2, |
|
|
|
3, 3, 3, 45, 46, 1, 1, 2, 2, 2, 35, 3, 3, 18, 47, 2, |
|
|
|
3, 3, 3, 45, 46, 1, 1, 2, 2, 2, 35, 3, 3, 18, 47, 2, }; |
|
|
|
}; |
|
|
|
|
|
|
|
/* next state, based upon current state and the current nibble: see above.
|
|
|
|
/* next state, based upon current state and the current nibble: see above.
|
|
|
|
generated by gen_hpack_tables.c */ |
|
|
|
generated by gen_hpack_tables.c */ |
|
|
|
static const gpr_int16 next_sub_tbl[48 * 16] = { |
|
|
|
static const gpr_int16 next_sub_tbl[48 * 16] = { |
|
|
@ -298,8 +296,7 @@ static const gpr_int16 next_sub_tbl[48 * 16] = { |
|
|
|
4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 0, 0, 0, 0, 0, |
|
|
|
4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 0, 0, 0, 0, 0, |
|
|
|
0, 0, 0, 0, 0, 0, 0, 245, 246, 247, 248, 249, 250, 251, 252, |
|
|
|
0, 0, 0, 0, 0, 0, 0, 245, 246, 247, 248, 249, 250, 251, 252, |
|
|
|
253, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
|
|
253, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
|
|
0, 0, 255, |
|
|
|
0, 0, 255, }; |
|
|
|
}; |
|
|
|
|
|
|
|
/* emission table: indexed like next_tbl, ultimately gives the byte to be
|
|
|
|
/* emission table: indexed like next_tbl, ultimately gives the byte to be
|
|
|
|
emitted, or -1 for no byte, or 256 for end of stream |
|
|
|
emitted, or -1 for no byte, or 256 for end of stream |
|
|
|
|
|
|
|
|
|
|
@ -322,8 +319,7 @@ static const gpr_uint16 emit_tbl[256] = { |
|
|
|
204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, |
|
|
|
204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, |
|
|
|
219, 220, 221, 0, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, |
|
|
|
219, 220, 221, 0, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, |
|
|
|
233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, |
|
|
|
233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, |
|
|
|
248, |
|
|
|
248, }; |
|
|
|
}; |
|
|
|
|
|
|
|
/* generated by gen_hpack_tables.c */ |
|
|
|
/* generated by gen_hpack_tables.c */ |
|
|
|
static const gpr_int16 emit_sub_tbl[249 * 16] = { |
|
|
|
static const gpr_int16 emit_sub_tbl[249 * 16] = { |
|
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
|
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
|
|
@ -591,8 +587,7 @@ static const gpr_int16 emit_sub_tbl[249 * 16] = { |
|
|
|
251, 251, 252, 252, 253, 253, 254, 254, 2, 3, 4, 5, 6, 7, 8, |
|
|
|
251, 251, 252, 252, 253, 253, 254, 254, 2, 3, 4, 5, 6, 7, 8, |
|
|
|
11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, |
|
|
|
11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, |
|
|
|
28, 29, 30, 31, 127, 220, 249, -1, 10, 10, 10, 10, 13, 13, 13, |
|
|
|
28, 29, 30, 31, 127, 220, 249, -1, 10, 10, 10, 10, 13, 13, 13, |
|
|
|
13, 22, 22, 22, 22, 256, 256, 256, 256, |
|
|
|
13, 22, 22, 22, 22, 256, 256, 256, 256, }; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const gpr_uint8 inverse_base64[256] = { |
|
|
|
static const gpr_uint8 inverse_base64[256] = { |
|
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, |
|
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, |
|
|
@ -612,8 +607,7 @@ static const gpr_uint8 inverse_base64[256] = { |
|
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, |
|
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, |
|
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, |
|
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, |
|
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, |
|
|
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, |
|
|
|
255, |
|
|
|
255, }; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* emission helpers */ |
|
|
|
/* emission helpers */ |
|
|
|
static void on_hdr(grpc_chttp2_hpack_parser *p, grpc_mdelem *md, |
|
|
|
static void on_hdr(grpc_chttp2_hpack_parser *p, grpc_mdelem *md, |
|
|
|