|
|
|
@ -132,29 +132,33 @@ CONFIG = [ |
|
|
|
|
('www-authenticate', ''), |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
# Entries marked with is_default=True are ignored when counting |
|
|
|
|
# non-default initial metadata that prevents the chttp2 server from |
|
|
|
|
# sending a Trailers-Only response. |
|
|
|
|
METADATA_BATCH_CALLOUTS = [ |
|
|
|
|
':path', |
|
|
|
|
':method', |
|
|
|
|
':status', |
|
|
|
|
':authority', |
|
|
|
|
':scheme', |
|
|
|
|
'te', |
|
|
|
|
'grpc-message', |
|
|
|
|
'grpc-status', |
|
|
|
|
'grpc-payload-bin', |
|
|
|
|
'grpc-encoding', |
|
|
|
|
'grpc-accept-encoding', |
|
|
|
|
'grpc-server-stats-bin', |
|
|
|
|
'grpc-tags-bin', |
|
|
|
|
'grpc-trace-bin', |
|
|
|
|
'content-type', |
|
|
|
|
'content-encoding', |
|
|
|
|
'accept-encoding', |
|
|
|
|
'grpc-internal-encoding-request', |
|
|
|
|
'grpc-internal-stream-encoding-request', |
|
|
|
|
'user-agent', |
|
|
|
|
'host', |
|
|
|
|
'lb-token', |
|
|
|
|
# (name, is_default) |
|
|
|
|
(':path', True), |
|
|
|
|
(':method', True), |
|
|
|
|
(':status', True), |
|
|
|
|
(':authority', True), |
|
|
|
|
(':scheme', True), |
|
|
|
|
('te', True), |
|
|
|
|
('grpc-message', True), |
|
|
|
|
('grpc-status', True), |
|
|
|
|
('grpc-payload-bin', True), |
|
|
|
|
('grpc-encoding', True), |
|
|
|
|
('grpc-accept-encoding', True), |
|
|
|
|
('grpc-server-stats-bin', True), |
|
|
|
|
('grpc-tags-bin', True), |
|
|
|
|
('grpc-trace-bin', True), |
|
|
|
|
('content-type', True), |
|
|
|
|
('content-encoding', True), |
|
|
|
|
('accept-encoding', True), |
|
|
|
|
('grpc-internal-encoding-request', True), |
|
|
|
|
('grpc-internal-stream-encoding-request', True), |
|
|
|
|
('user-agent', True), |
|
|
|
|
('host', True), |
|
|
|
|
('lb-token', True), |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
COMPRESSION_ALGORITHMS = [ |
|
|
|
@ -235,7 +239,7 @@ all_elems = list() |
|
|
|
|
static_userdata = {} |
|
|
|
|
# put metadata batch callouts first, to make the check of if a static metadata |
|
|
|
|
# string is a callout trivial |
|
|
|
|
for elem in METADATA_BATCH_CALLOUTS: |
|
|
|
|
for elem, _ in METADATA_BATCH_CALLOUTS: |
|
|
|
|
if elem not in all_strs: |
|
|
|
|
all_strs.append(elem) |
|
|
|
|
for elem in CONFIG: |
|
|
|
@ -372,7 +376,7 @@ def slice_def(i): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# validate configuration |
|
|
|
|
for elem in METADATA_BATCH_CALLOUTS: |
|
|
|
|
for elem, _ in METADATA_BATCH_CALLOUTS: |
|
|
|
|
assert elem in all_strs |
|
|
|
|
|
|
|
|
|
print >> H, '#define GRPC_STATIC_MDSTR_COUNT %d' % len(all_strs) |
|
|
|
@ -540,7 +544,7 @@ for a, b in all_elems: |
|
|
|
|
print >> C, '};' |
|
|
|
|
|
|
|
|
|
print >> H, 'typedef enum {' |
|
|
|
|
for elem in METADATA_BATCH_CALLOUTS: |
|
|
|
|
for elem, _ in METADATA_BATCH_CALLOUTS: |
|
|
|
|
print >> H, ' %s,' % mangle(elem, 'batch').upper() |
|
|
|
|
print >> H, ' GRPC_BATCH_CALLOUTS_COUNT' |
|
|
|
|
print >> H, '} grpc_metadata_batch_callouts_index;' |
|
|
|
@ -548,7 +552,7 @@ print >> H |
|
|
|
|
print >> H, 'typedef union {' |
|
|
|
|
print >> H, ' struct grpc_linked_mdelem *array[GRPC_BATCH_CALLOUTS_COUNT];' |
|
|
|
|
print >> H, ' struct {' |
|
|
|
|
for elem in METADATA_BATCH_CALLOUTS: |
|
|
|
|
for elem, _ in METADATA_BATCH_CALLOUTS: |
|
|
|
|
print >> H, ' struct grpc_linked_mdelem *%s;' % mangle(elem, '').lower() |
|
|
|
|
print >> H, ' } named;' |
|
|
|
|
print >> H, '} grpc_metadata_batch_callouts;' |
|
|
|
@ -556,6 +560,14 @@ print >> H |
|
|
|
|
print >> H, '#define GRPC_BATCH_INDEX_OF(slice) \\' |
|
|
|
|
print >> H, ' (GRPC_IS_STATIC_METADATA_STRING((slice)) ? (grpc_metadata_batch_callouts_index)GPR_CLAMP(GRPC_STATIC_METADATA_INDEX((slice)), 0, GRPC_BATCH_CALLOUTS_COUNT) : GRPC_BATCH_CALLOUTS_COUNT)' |
|
|
|
|
print >> H |
|
|
|
|
print >> H, ('extern bool grpc_static_callout_is_default[' |
|
|
|
|
'GRPC_BATCH_CALLOUTS_COUNT];') |
|
|
|
|
print >> H |
|
|
|
|
print >> C, 'bool grpc_static_callout_is_default[GRPC_BATCH_CALLOUTS_COUNT] = {' |
|
|
|
|
for elem, is_default in METADATA_BATCH_CALLOUTS: |
|
|
|
|
print >> C, ' %s, // %s' % (str(is_default).lower(), elem) |
|
|
|
|
print >> C, '};' |
|
|
|
|
print >> C |
|
|
|
|
|
|
|
|
|
print >> H, 'extern const uint8_t grpc_static_accept_encoding_metadata[%d];' % ( |
|
|
|
|
1 << len(COMPRESSION_ALGORITHMS)) |
|
|
|
|