Initial fixes

reviewable/pr8842/r1
Craig Tiller 8 years ago
parent 58317fcc89
commit 7885d1abe7
  1. 2
      src/core/lib/channel/http_server_filter.c
  2. 338
      src/core/lib/transport/static_metadata.c
  3. 2
      src/core/lib/transport/static_metadata.h
  4. 3
      test/core/end2end/fuzzers/api_fuzzer.c
  5. 7
      test/core/iomgr/ev_epoll_linux_test.c
  6. 14
      tools/codegen/core/gen_static_metadata.py

@ -131,7 +131,7 @@ static grpc_mdelem *server_filter(grpc_exec_ctx *exec_ctx, void *user_data,
/* TODO(klempner): Track that we've seen all the headers we should
require */
return NULL;
} else if (grpc_slice_cmp(md->key, GRPC_MDSTR_CONTENT_TYPE)) {
} else if (grpc_slice_cmp(md->key, GRPC_MDSTR_CONTENT_TYPE) == 0) {
if (grpc_slice_buf_start_eq(md->value, EXPECTED_CONTENT_TYPE,
EXPECTED_CONTENT_TYPE_LENGTH) &&
(GRPC_SLICE_START_PTR(md->value)[EXPECTED_CONTENT_TYPE_LENGTH] == '+' ||

@ -400,7 +400,6 @@ int grpc_static_metadata_index(grpc_slice slice) {
return id == 255 ? -1 : id;
}
grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];
uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, 8, 6, 2, 4, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -456,16 +455,331 @@ grpc_mdelem *grpc_static_mdelem_for_static_strings(int a, int b) {
return elem_keys[h] == k ? &grpc_static_mdelem_table[elem_idxs[h]] : NULL;
}
const uint8_t grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT * 2] =
{11, 33, 10, 33, 12, 33, 12, 54, 13, 33, 14, 33, 15, 33, 16, 33, 17, 33,
19, 33, 20, 33, 21, 33, 22, 33, 23, 33, 24, 33, 25, 33, 26, 33, 27, 33,
28, 18, 28, 33, 29, 33, 30, 33, 34, 33, 35, 33, 36, 33, 37, 33, 40, 31,
40, 32, 40, 53, 40, 58, 40, 59, 40, 60, 40, 61, 45, 31, 45, 53, 45, 58,
50, 0, 50, 1, 50, 2, 55, 33, 62, 33, 63, 33, 64, 33, 65, 33, 66, 33,
67, 33, 68, 33, 69, 33, 70, 33, 71, 33, 72, 33, 73, 38, 73, 75, 73, 78,
74, 86, 74, 88, 76, 33, 77, 33, 79, 33, 80, 33, 81, 33, 82, 33, 83, 39,
83, 56, 83, 57, 84, 33, 85, 33, 89, 3, 89, 4, 89, 5, 89, 6, 89, 7,
89, 8, 89, 9, 90, 33, 91, 92, 93, 33, 94, 33, 95, 33, 96, 33, 97, 33};
grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT] = {
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 30, .length = 14}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 24, .length = 6}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 44, .length = 15}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 44, .length = 15}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 577, .length = 13}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 59, .length = 15}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 74, .length = 13}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 87, .length = 27}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 114, .length = 3}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 117, .length = 5}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 138, .length = 10}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 148, .length = 13}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 161, .length = 13}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 174, .length = 19}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 193, .length = 16}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 209, .length = 16}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 225, .length = 14}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 239, .length = 16}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 255, .length = 13}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 268, .length = 12}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 122, .length = 16}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 268, .length = 12}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 280, .length = 6}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 286, .length = 4}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 4}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 313, .length = 6}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 319, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 326, .length = 4}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 337, .length = 20}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 290, .length = 7}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 337, .length = 20}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 297, .length = 12}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 337, .length = 20}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 573, .length = 4}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 337, .length = 20}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 603, .length = 8}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 337, .length = 20}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 611, .length = 16}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 337, .length = 20}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 627, .length = 21}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 337, .length = 20}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 648, .length = 13}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 449, .length = 13}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 290, .length = 7}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 449, .length = 13}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 573, .length = 4}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 449, .length = 13}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 603, .length = 8}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 534, .length = 11}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 0, .length = 1}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 534, .length = 11}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 1, .length = 1}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 534, .length = 11}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 2, .length = 1}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 590, .length = 4}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 661, .length = 8}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 669, .length = 17}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 686, .length = 13}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 699, .length = 8}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 707, .length = 19}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 726, .length = 13}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 739, .length = 11}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 750, .length = 8}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 758, .length = 4}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 762, .length = 8}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 770, .length = 12}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 782, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 330, .length = 3}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 782, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 794, .length = 4}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 782, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 835, .length = 3}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 789, .length = 5}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 891, .length = 1}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 789, .length = 5}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 928, .length = 11}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 798, .length = 18}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 816, .length = 19}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 838, .length = 5}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 843, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 850, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 857, .length = 11}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 868, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 333, .length = 4}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 868, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 594, .length = 4}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 868, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 598, .length = 5}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 875, .length = 6}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 881, .length = 10}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 939, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 3, .length = 3}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 939, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 6, .length = 3}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 939, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 9, .length = 3}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 939, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 12, .length = 3}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 939, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 15, .length = 3}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 939, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 18, .length = 3}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 939, .length = 7}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 21, .length = 3}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 946, .length = 25}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 971, .length = 2}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 973, .length = 8}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 981, .length = 17}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 998, .length = 10}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 1008, .length = 4}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 1012, .length = 3}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
{{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 1015, .length = 16}},
{.refcount = &g_refcnt,
.data.refcounted = {.bytes = g_raw_bytes + 309, .length = 0}}},
};
const uint8_t grpc_static_accept_encoding_metadata[8] = {0, 29, 26, 30,
28, 32, 27, 31};

@ -425,8 +425,6 @@ extern uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];
#define GRPC_MDELEM_WWW_AUTHENTICATE_EMPTY (&grpc_static_mdelem_table[80])
grpc_mdelem *grpc_static_mdelem_for_static_strings(int a, int b);
extern const uint8_t
grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT * 2];
extern const uint8_t grpc_static_accept_encoding_metadata[8];
#define GRPC_MDELEM_ACCEPT_ENCODING_FOR_ALGORITHMS(algs) \
(&grpc_static_mdelem_table[grpc_static_accept_encoding_metadata[(algs)]])

@ -107,6 +107,9 @@ static char *read_string(input_stream *inp, bool *special) {
if (special != NULL) {
*special = (c == 1);
}
if (c == 1) {
str[sz-1] = 0;
}
return str;
}

@ -236,7 +236,12 @@ int main(int argc, char **argv) {
"strategy. and the current strategy is: '%s'",
poll_strategy);
}
grpc_iomgr_shutdown();
{
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_iomgr_shutdown(&exec_ctx);
grpc_exec_ctx_finish(&exec_ctx);
}
return 0;
}
#else /* defined(GRPC_LINUX_EPOLL) */

@ -321,8 +321,12 @@ print >>C, 'const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT] =
str_ofs = 0
revmap = {}
zero_length_idx = None
id2strofs = {}
def slice_def(i):
return '{.refcount = &g_refcnt, .data.refcounted = {.bytes = g_raw_bytes+%d, .length=%d}}' % (id2strofs[i], len(all_strs[i]))
for i, elem in enumerate(all_strs):
print >>C, '{.refcount = &g_refcnt, .data.refcounted = {.bytes = g_raw_bytes+%d, .length=%d}},' % (str_ofs, len(elem))
id2strofs[i] = str_ofs
print >>C, slice_def(i) + ','
revmap[str_ofs] = i
if len(elem) == 0: zero_length_idx = i
str_ofs += len(elem);
@ -353,7 +357,6 @@ for i, elem in enumerate(all_elems):
print >>H, '/* "%s": "%s" */' % elem
print >>H, '#define %s (&grpc_static_mdelem_table[%d])' % (mangle(elem).upper(), i)
print >>H
print >>C, 'grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];'
print >>C, 'uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {'
print >>C, ' %s' % ','.join('%d' % static_userdata.get(elem, 0) for elem in all_elems)
print >>C, '};'
@ -437,11 +440,10 @@ print >>C, ' return elem_keys[h] == k ? &grpc_static_mdelem_table[elem_idxs[h]]
print >>C, '}'
print >>C
print >>H, 'extern const uint8_t grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT*2];'
print >>C, 'const uint8_t grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT*2] = {'
print >>C, ','.join('%d' % str_idx(x) for x in itertools.chain.from_iterable([a,b] for a, b in all_elems))
print >>C, 'grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT] = {'
for a, b in all_elems:
print >>C, '{%s,%s},' % (slice_def(str_idx(a)), slice_def(str_idx(b)))
print >>C, '};'
print >>C
print >>H, 'extern const uint8_t grpc_static_accept_encoding_metadata[%d];' % (1 << len(COMPRESSION_ALGORITHMS))
print >>C, 'const uint8_t grpc_static_accept_encoding_metadata[%d] = {' % (1 << len(COMPRESSION_ALGORITHMS))

Loading…
Cancel
Save