diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/ext/filters/client_channel/client_channel.cc | 3 | ||||
-rw-r--r-- | src/core/ext/filters/max_age/max_age_filter.cc | 180 | ||||
-rw-r--r-- | src/core/lib/compression/compression.cc | 37 | ||||
-rw-r--r-- | src/core/lib/compression/compression_internal.cc | 8 | ||||
-rw-r--r-- | src/core/lib/compression/compression_ruby.cc | 66 | ||||
-rw-r--r-- | src/core/lib/gprpp/orphanable.h | 4 | ||||
-rw-r--r-- | src/core/lib/gprpp/ref_counted.h | 4 | ||||
-rw-r--r-- | src/core/lib/security/transport/client_auth_filter.cc | 5 | ||||
-rw-r--r-- | src/core/lib/surface/call.cc | 1 | ||||
-rw-r--r-- | src/core/lib/surface/version.cc | 2 | ||||
-rw-r--r-- | src/core/lib/transport/static_metadata.cc | 461 | ||||
-rw-r--r-- | src/core/lib/transport/static_metadata.h | 147 | ||||
-rw-r--r-- | src/core/tsi/alts_transport_security.cc | 31 | ||||
-rw-r--r-- | src/core/tsi/alts_transport_security.h | 7 |
14 files changed, 524 insertions, 432 deletions
diff --git a/src/core/ext/filters/client_channel/client_channel.cc b/src/core/ext/filters/client_channel/client_channel.cc index 49522ef3e4..6b93644430 100644 --- a/src/core/ext/filters/client_channel/client_channel.cc +++ b/src/core/ext/filters/client_channel/client_channel.cc @@ -1095,6 +1095,7 @@ static void pick_callback_done_locked(void* arg, grpc_error* error) { chand, calld); } async_pick_done_locked(elem, GRPC_ERROR_REF(error)); + GRPC_CALL_STACK_UNREF(calld->owning_call, "pick_callback"); } // Takes a ref to chand->lb_policy and calls grpc_lb_policy_pick_locked(). @@ -1134,6 +1135,7 @@ static bool pick_callback_start_locked(grpc_call_element* elem) { GRPC_CLOSURE_INIT(&calld->lb_pick_closure, pick_callback_done_locked, elem, grpc_combiner_scheduler(chand->combiner)); calld->pick.on_complete = &calld->lb_pick_closure; + GRPC_CALL_STACK_REF(calld->owning_call, "pick_callback"); const bool pick_done = grpc_lb_policy_pick_locked(chand->lb_policy, &calld->pick); if (pick_done) { @@ -1142,6 +1144,7 @@ static bool pick_callback_start_locked(grpc_call_element* elem) { gpr_log(GPR_DEBUG, "chand=%p calld=%p: pick completed synchronously", chand, calld); } + GRPC_CALL_STACK_UNREF(calld->owning_call, "pick_callback"); } else { GRPC_CALL_STACK_REF(calld->owning_call, "pick_callback_cancel"); grpc_call_combiner_set_notify_on_cancel( diff --git a/src/core/ext/filters/max_age/max_age_filter.cc b/src/core/ext/filters/max_age/max_age_filter.cc index 7b86e4cd6c..a3f9780f3f 100644 --- a/src/core/ext/filters/max_age/max_age_filter.cc +++ b/src/core/ext/filters/max_age/max_age_filter.cc @@ -37,6 +37,12 @@ #define MAX_CONNECTION_IDLE_INTEGER_OPTIONS \ { DEFAULT_MAX_CONNECTION_IDLE_MS, 1, INT_MAX } +/* States for idle_state in channel_data */ +#define MAX_IDLE_STATE_INIT ((gpr_atm)0) +#define MAX_IDLE_STATE_SEEN_EXIT_IDLE ((gpr_atm)1) +#define MAX_IDLE_STATE_SEEN_ENTER_IDLE ((gpr_atm)2) +#define MAX_IDLE_STATE_TIMER_SET ((gpr_atm)3) + namespace { struct channel_data { /* We take a reference to the channel stack for the timer callback */ @@ -64,7 +70,7 @@ struct channel_data { grpc_millis max_connection_age_grace; /* Closure to run when the channel's idle duration reaches max_connection_idle and should be closed gracefully */ - grpc_closure close_max_idle_channel; + grpc_closure max_idle_timer_cb; /* Closure to run when the channel reaches its max age and should be closed gracefully */ grpc_closure close_max_age_channel; @@ -85,26 +91,117 @@ struct channel_data { grpc_connectivity_state connectivity_state; /* Number of active calls */ gpr_atm call_count; + /* TODO(zyc): C++lize this state machine */ + /* 'idle_state' holds the states of max_idle_timer and channel idleness. + It can contain one of the following values: + +--------------------------------+----------------+---------+ + | idle_state | max_idle_timer | channel | + +--------------------------------+----------------+---------+ + | MAX_IDLE_STATE_INIT | unset | busy | + | MAX_IDLE_STATE_TIMER_SET | set, valid | idle | + | MAX_IDLE_STATE_SEEN_EXIT_IDLE | set, invalid | busy | + | MAX_IDLE_STATE_SEEN_ENTER_IDLE | set, invalid | idle | + +--------------------------------+----------------+---------+ + + MAX_IDLE_STATE_INIT: The initial and final state of 'idle_state'. The + channel has 1 or 1+ active calls, and the the timer is not set. Note that + we may put a virtual call to hold this state at channel initialization or + shutdown, so that the channel won't enter other states. + + MAX_IDLE_STATE_TIMER_SET: The state after the timer is set and no calls + have arrived after the timer is set. The channel must have 0 active call in + this state. If the timer is fired in this state, we will close the channel + due to idleness. + + MAX_IDLE_STATE_SEEN_EXIT_IDLE: The state after the timer is set and at + least one call has arrived after the timer is set. The channel must have 1 + or 1+ active calls in this state. If the timer is fired in this state, we + won't reschudle it. + + MAX_IDLE_STATE_SEEN_ENTER_IDLE: The state after the timer is set and the at + least one call has arrived after the timer is set, BUT the channel + currently has 1 or 1+ active calls. If the timer is fired in this state, we + will reschudle it. + + max_idle_timer will not be cancelled (unless the channel is shutting down). + If the timer callback is called when the max_idle_timer is valid (i.e. + idle_state is MAX_IDLE_STATE_TIMER_SET), the channel will be closed due to + idleness, otherwise the channel won't be changed. + + State transitions: + MAX_IDLE_STATE_INIT <-------3------ MAX_IDLE_STATE_SEEN_EXIT_IDLE + ^ | ^ ^ | + | | | | | + 1 2 +-----------4------------+ 6 7 + | | | | | + | v | | v + MAX_IDLE_STATE_TIMER_SET <----5------ MAX_IDLE_STATE_SEEN_ENTER_IDLE + + For 1, 3, 5 : See max_idle_timer_cb() function + For 2, 7 : See decrease_call_count() function + For 4, 6 : See increase_call_count() function */ + gpr_atm idle_state; + /* Time when the channel finished its last outstanding call, in grpc_millis */ + gpr_atm last_enter_idle_time_millis; }; } // namespace /* Increase the nubmer of active calls. Before the increasement, if there are no calls, the max_idle_timer should be cancelled. */ static void increase_call_count(channel_data* chand) { + /* Exit idle */ if (gpr_atm_full_fetch_add(&chand->call_count, 1) == 0) { - grpc_timer_cancel(&chand->max_idle_timer); + while (true) { + gpr_atm idle_state = gpr_atm_acq_load(&chand->idle_state); + switch (idle_state) { + case MAX_IDLE_STATE_TIMER_SET: + /* max_idle_timer_cb may have already set idle_state to + MAX_IDLE_STATE_INIT, in this case, we don't need to set it to + MAX_IDLE_STATE_SEEN_EXIT_IDLE */ + gpr_atm_rel_cas(&chand->idle_state, MAX_IDLE_STATE_TIMER_SET, + MAX_IDLE_STATE_SEEN_EXIT_IDLE); + return; + case MAX_IDLE_STATE_SEEN_ENTER_IDLE: + gpr_atm_rel_store(&chand->idle_state, MAX_IDLE_STATE_SEEN_EXIT_IDLE); + return; + default: + /* try again */ + break; + } + } } } /* Decrease the nubmer of active calls. After the decrement, if there are no calls, the max_idle_timer should be started. */ static void decrease_call_count(channel_data* chand) { + /* Enter idle */ if (gpr_atm_full_fetch_add(&chand->call_count, -1) == 1) { - GRPC_CHANNEL_STACK_REF(chand->channel_stack, "max_age max_idle_timer"); - grpc_timer_init( - &chand->max_idle_timer, - grpc_core::ExecCtx::Get()->Now() + chand->max_connection_idle, - &chand->close_max_idle_channel); + gpr_atm_no_barrier_store(&chand->last_enter_idle_time_millis, + (gpr_atm)grpc_core::ExecCtx::Get()->Now()); + while (true) { + gpr_atm idle_state = gpr_atm_acq_load(&chand->idle_state); + switch (idle_state) { + case MAX_IDLE_STATE_INIT: + GRPC_CHANNEL_STACK_REF(chand->channel_stack, + "max_age max_idle_timer"); + grpc_timer_init( + &chand->max_idle_timer, + grpc_core::ExecCtx::Get()->Now() + chand->max_connection_idle, + &chand->max_idle_timer_cb); + gpr_atm_rel_store(&chand->idle_state, MAX_IDLE_STATE_TIMER_SET); + return; + case MAX_IDLE_STATE_SEEN_EXIT_IDLE: + if (gpr_atm_rel_cas(&chand->idle_state, MAX_IDLE_STATE_SEEN_EXIT_IDLE, + MAX_IDLE_STATE_SEEN_ENTER_IDLE)) { + return; + } + break; + default: + /* try again */ + break; + } + } } } @@ -152,20 +249,58 @@ static void start_max_age_grace_timer_after_goaway_op(void* arg, "max_age start_max_age_grace_timer_after_goaway_op"); } -static void close_max_idle_channel(void* arg, grpc_error* error) { +static void close_max_idle_channel(channel_data* chand) { + /* Prevent the max idle timer from being set again */ + gpr_atm_no_barrier_fetch_add(&chand->call_count, 1); + grpc_transport_op* op = grpc_make_transport_op(nullptr); + op->goaway_error = + grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING("max_idle"), + GRPC_ERROR_INT_HTTP2_ERROR, GRPC_HTTP2_NO_ERROR); + grpc_channel_element* elem = + grpc_channel_stack_element(chand->channel_stack, 0); + elem->filter->start_transport_op(elem, op); +} + +static void max_idle_timer_cb(void* arg, grpc_error* error) { channel_data* chand = (channel_data*)arg; if (error == GRPC_ERROR_NONE) { - /* Prevent the max idle timer from being set again */ - gpr_atm_no_barrier_fetch_add(&chand->call_count, 1); - grpc_transport_op* op = grpc_make_transport_op(nullptr); - op->goaway_error = - grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING("max_idle"), - GRPC_ERROR_INT_HTTP2_ERROR, GRPC_HTTP2_NO_ERROR); - grpc_channel_element* elem = - grpc_channel_stack_element(chand->channel_stack, 0); - elem->filter->start_transport_op(elem, op); - } else if (error != GRPC_ERROR_CANCELLED) { - GRPC_LOG_IF_ERROR("close_max_idle_channel", error); + bool try_again = true; + while (try_again) { + gpr_atm idle_state = gpr_atm_acq_load(&chand->idle_state); + switch (idle_state) { + case MAX_IDLE_STATE_TIMER_SET: + close_max_idle_channel(chand); + /* This MAX_IDLE_STATE_INIT is a final state, we don't have to check + * if idle_state has been changed */ + gpr_atm_rel_store(&chand->idle_state, MAX_IDLE_STATE_INIT); + try_again = false; + break; + case MAX_IDLE_STATE_SEEN_EXIT_IDLE: + if (gpr_atm_rel_cas(&chand->idle_state, MAX_IDLE_STATE_SEEN_EXIT_IDLE, + MAX_IDLE_STATE_INIT)) { + try_again = false; + } + break; + case MAX_IDLE_STATE_SEEN_ENTER_IDLE: + GRPC_CHANNEL_STACK_REF(chand->channel_stack, + "max_age max_idle_timer"); + grpc_timer_init(&chand->max_idle_timer, + (grpc_millis)gpr_atm_no_barrier_load( + &chand->last_enter_idle_time_millis) + + chand->max_connection_idle, + &chand->max_idle_timer_cb); + /* idle_state may have already been set to + MAX_IDLE_STATE_SEEN_EXIT_IDLE by increase_call_count(), in this + case, we don't need to set it to MAX_IDLE_STATE_TIMER_SET */ + gpr_atm_rel_cas(&chand->idle_state, MAX_IDLE_STATE_SEEN_ENTER_IDLE, + MAX_IDLE_STATE_TIMER_SET); + try_again = false; + break; + default: + /* try again */ + break; + } + } } GRPC_CHANNEL_STACK_UNREF(chand->channel_stack, "max_age max_idle_timer"); } @@ -288,6 +423,9 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem, chand->max_connection_idle = DEFAULT_MAX_CONNECTION_IDLE_MS == INT_MAX ? GRPC_MILLIS_INF_FUTURE : DEFAULT_MAX_CONNECTION_IDLE_MS; + chand->idle_state = MAX_IDLE_STATE_INIT; + gpr_atm_no_barrier_store(&chand->last_enter_idle_time_millis, + GRPC_MILLIS_INF_PAST); for (size_t i = 0; i < args->channel_args->num_args; ++i) { if (0 == strcmp(args->channel_args->args[i].key, GRPC_ARG_MAX_CONNECTION_AGE_MS)) { @@ -311,8 +449,8 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem, value == INT_MAX ? GRPC_MILLIS_INF_FUTURE : value; } } - GRPC_CLOSURE_INIT(&chand->close_max_idle_channel, close_max_idle_channel, - chand, grpc_schedule_on_exec_ctx); + GRPC_CLOSURE_INIT(&chand->max_idle_timer_cb, max_idle_timer_cb, chand, + grpc_schedule_on_exec_ctx); GRPC_CLOSURE_INIT(&chand->close_max_age_channel, close_max_age_channel, chand, grpc_schedule_on_exec_ctx); GRPC_CLOSURE_INIT(&chand->force_close_max_age_channel, diff --git a/src/core/lib/compression/compression.cc b/src/core/lib/compression/compression.cc index 99e6014b23..167e90fd26 100644 --- a/src/core/lib/compression/compression.cc +++ b/src/core/lib/compression/compression.cc @@ -29,8 +29,7 @@ int grpc_compression_algorithm_is_message( grpc_compression_algorithm algorithm) { - return (algorithm >= GRPC_COMPRESS_MESSAGE_DEFLATE && - algorithm <= GRPC_COMPRESS_MESSAGE_GZIP) + return (algorithm >= GRPC_COMPRESS_DEFLATE && algorithm <= GRPC_COMPRESS_GZIP) ? 1 : 0; } @@ -44,11 +43,11 @@ int grpc_compression_algorithm_parse(grpc_slice name, if (grpc_slice_eq(name, GRPC_MDSTR_IDENTITY)) { *algorithm = GRPC_COMPRESS_NONE; return 1; - } else if (grpc_slice_eq(name, GRPC_MDSTR_MESSAGE_SLASH_DEFLATE)) { - *algorithm = GRPC_COMPRESS_MESSAGE_DEFLATE; + } else if (grpc_slice_eq(name, GRPC_MDSTR_DEFLATE)) { + *algorithm = GRPC_COMPRESS_DEFLATE; return 1; - } else if (grpc_slice_eq(name, GRPC_MDSTR_MESSAGE_SLASH_GZIP)) { - *algorithm = GRPC_COMPRESS_MESSAGE_GZIP; + } else if (grpc_slice_eq(name, GRPC_MDSTR_GZIP)) { + *algorithm = GRPC_COMPRESS_GZIP; return 1; } else if (grpc_slice_eq(name, GRPC_MDSTR_STREAM_SLASH_GZIP)) { *algorithm = GRPC_COMPRESS_STREAM_GZIP; @@ -67,11 +66,11 @@ int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm, case GRPC_COMPRESS_NONE: *name = "identity"; return 1; - case GRPC_COMPRESS_MESSAGE_DEFLATE: - *name = "message/deflate"; + case GRPC_COMPRESS_DEFLATE: + *name = "deflate"; return 1; - case GRPC_COMPRESS_MESSAGE_GZIP: - *name = "message/gzip"; + case GRPC_COMPRESS_GZIP: + *name = "gzip"; return 1; case GRPC_COMPRESS_STREAM_GZIP: *name = "stream/gzip"; @@ -133,10 +132,10 @@ grpc_slice grpc_compression_algorithm_slice( switch (algorithm) { case GRPC_COMPRESS_NONE: return GRPC_MDSTR_IDENTITY; - case GRPC_COMPRESS_MESSAGE_DEFLATE: - return GRPC_MDSTR_MESSAGE_SLASH_DEFLATE; - case GRPC_COMPRESS_MESSAGE_GZIP: - return GRPC_MDSTR_MESSAGE_SLASH_GZIP; + case GRPC_COMPRESS_DEFLATE: + return GRPC_MDSTR_DEFLATE; + case GRPC_COMPRESS_GZIP: + return GRPC_MDSTR_GZIP; case GRPC_COMPRESS_STREAM_GZIP: return GRPC_MDSTR_STREAM_SLASH_GZIP; case GRPC_COMPRESS_ALGORITHMS_COUNT: @@ -148,10 +147,8 @@ grpc_slice grpc_compression_algorithm_slice( grpc_compression_algorithm grpc_compression_algorithm_from_slice( grpc_slice str) { if (grpc_slice_eq(str, GRPC_MDSTR_IDENTITY)) return GRPC_COMPRESS_NONE; - if (grpc_slice_eq(str, GRPC_MDSTR_MESSAGE_SLASH_DEFLATE)) - return GRPC_COMPRESS_MESSAGE_DEFLATE; - if (grpc_slice_eq(str, GRPC_MDSTR_MESSAGE_SLASH_GZIP)) - return GRPC_COMPRESS_MESSAGE_GZIP; + if (grpc_slice_eq(str, GRPC_MDSTR_DEFLATE)) return GRPC_COMPRESS_DEFLATE; + if (grpc_slice_eq(str, GRPC_MDSTR_GZIP)) return GRPC_COMPRESS_GZIP; if (grpc_slice_eq(str, GRPC_MDSTR_STREAM_SLASH_GZIP)) return GRPC_COMPRESS_STREAM_GZIP; return GRPC_COMPRESS_ALGORITHMS_COUNT; @@ -162,9 +159,9 @@ grpc_mdelem grpc_compression_encoding_mdelem( switch (algorithm) { case GRPC_COMPRESS_NONE: return GRPC_MDELEM_GRPC_ENCODING_IDENTITY; - case GRPC_COMPRESS_MESSAGE_DEFLATE: + case GRPC_COMPRESS_DEFLATE: return GRPC_MDELEM_GRPC_ENCODING_DEFLATE; - case GRPC_COMPRESS_MESSAGE_GZIP: + case GRPC_COMPRESS_GZIP: return GRPC_MDELEM_GRPC_ENCODING_GZIP; case GRPC_COMPRESS_STREAM_GZIP: return GRPC_MDELEM_GRPC_ENCODING_GZIP; diff --git a/src/core/lib/compression/compression_internal.cc b/src/core/lib/compression/compression_internal.cc index 263cdf06eb..1b7ead3301 100644 --- a/src/core/lib/compression/compression_internal.cc +++ b/src/core/lib/compression/compression_internal.cc @@ -80,9 +80,9 @@ grpc_message_compression_algorithm grpc_compression_algorithm_to_message_compression_algorithm( grpc_compression_algorithm algo) { switch (algo) { - case GRPC_COMPRESS_MESSAGE_DEFLATE: + case GRPC_COMPRESS_DEFLATE: return GRPC_MESSAGE_COMPRESS_DEFLATE; - case GRPC_COMPRESS_MESSAGE_GZIP: + case GRPC_COMPRESS_GZIP: return GRPC_MESSAGE_COMPRESS_GZIP; default: return GRPC_MESSAGE_COMPRESS_NONE; @@ -147,10 +147,10 @@ int grpc_compression_algorithm_from_message_stream_compression_algorithm( *algorithm = GRPC_COMPRESS_NONE; return 1; case GRPC_MESSAGE_COMPRESS_DEFLATE: - *algorithm = GRPC_COMPRESS_MESSAGE_DEFLATE; + *algorithm = GRPC_COMPRESS_DEFLATE; return 1; case GRPC_MESSAGE_COMPRESS_GZIP: - *algorithm = GRPC_COMPRESS_MESSAGE_GZIP; + *algorithm = GRPC_COMPRESS_GZIP; return 1; default: *algorithm = GRPC_COMPRESS_NONE; diff --git a/src/core/lib/compression/compression_ruby.cc b/src/core/lib/compression/compression_ruby.cc deleted file mode 100644 index 293062f5ed..0000000000 --- a/src/core/lib/compression/compression_ruby.cc +++ /dev/null @@ -1,66 +0,0 @@ -/* - * - * Copyright 2017 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include <grpc/compression_ruby.h> -#include <grpc/support/useful.h> - -#include "src/core/lib/surface/api_trace.h" -#include "src/core/lib/transport/static_metadata.h" - -int grpc_compression_algorithm_parse_ruby( - grpc_slice name, grpc_compression_algorithm* algorithm) { - if (grpc_slice_eq(name, GRPC_MDSTR_IDENTITY)) { - *algorithm = GRPC_COMPRESS_NONE; - return 1; - } else if (grpc_slice_eq(name, GRPC_MDSTR_DEFLATE)) { - *algorithm = GRPC_COMPRESS_MESSAGE_DEFLATE; - return 1; - } else if (grpc_slice_eq(name, GRPC_MDSTR_GZIP)) { - *algorithm = GRPC_COMPRESS_MESSAGE_GZIP; - return 1; - } else if (grpc_slice_eq(name, GRPC_MDSTR_STREAM_SLASH_GZIP)) { - *algorithm = GRPC_COMPRESS_STREAM_GZIP; - return 1; - } else { - return 0; - } - return 0; -} - -int grpc_compression_algorithm_name_ruby(grpc_compression_algorithm algorithm, - const char** name) { - GRPC_API_TRACE("grpc_compression_algorithm_parse(algorithm=%d, name=%p)", 2, - ((int)algorithm, name)); - switch (algorithm) { - case GRPC_COMPRESS_NONE: - *name = "identity"; - return 1; - case GRPC_COMPRESS_MESSAGE_DEFLATE: - *name = "deflate"; - return 1; - case GRPC_COMPRESS_MESSAGE_GZIP: - *name = "gzip"; - return 1; - case GRPC_COMPRESS_STREAM_GZIP: - *name = "stream/gzip"; - return 1; - case GRPC_COMPRESS_ALGORITHMS_COUNT: - return 0; - } - return 0; -} diff --git a/src/core/lib/gprpp/orphanable.h b/src/core/lib/gprpp/orphanable.h index 6e127c2861..78d1b01ff8 100644 --- a/src/core/lib/gprpp/orphanable.h +++ b/src/core/lib/gprpp/orphanable.h @@ -92,7 +92,7 @@ class InternallyRefCounted : public Orphanable { RefCountedPtr<Child> Ref() GRPC_MUST_USE_RESULT { IncrementRefCount(); - return RefCountedPtr<Child>(reinterpret_cast<Child*>(this)); + return RefCountedPtr<Child>(static_cast<Child*>(this)); } void Unref() { @@ -149,7 +149,7 @@ class InternallyRefCountedWithTracing : public Orphanable { RefCountedPtr<Child> Ref() GRPC_MUST_USE_RESULT { IncrementRefCount(); - return RefCountedPtr<Child>(reinterpret_cast<Child*>(this)); + return RefCountedPtr<Child>(static_cast<Child*>(this)); } RefCountedPtr<Child> Ref(const DebugLocation& location, diff --git a/src/core/lib/gprpp/ref_counted.h b/src/core/lib/gprpp/ref_counted.h index 16c7912fc6..ab589fc01a 100644 --- a/src/core/lib/gprpp/ref_counted.h +++ b/src/core/lib/gprpp/ref_counted.h @@ -41,7 +41,7 @@ class RefCounted { public: RefCountedPtr<Child> Ref() GRPC_MUST_USE_RESULT { IncrementRefCount(); - return RefCountedPtr<Child>(reinterpret_cast<Child*>(this)); + return RefCountedPtr<Child>(static_cast<Child*>(this)); } // TODO(roth): Once all of our code is converted to C++ and can use @@ -89,7 +89,7 @@ class RefCountedWithTracing { public: RefCountedPtr<Child> Ref() GRPC_MUST_USE_RESULT { IncrementRefCount(); - return RefCountedPtr<Child>(reinterpret_cast<Child*>(this)); + return RefCountedPtr<Child>(static_cast<Child*>(this)); } RefCountedPtr<Child> Ref(const DebugLocation& location, diff --git a/src/core/lib/security/transport/client_auth_filter.cc b/src/core/lib/security/transport/client_auth_filter.cc index 16814d2598..802503c868 100644 --- a/src/core/lib/security/transport/client_auth_filter.cc +++ b/src/core/lib/security/transport/client_auth_filter.cc @@ -118,6 +118,7 @@ static void on_credentials_metadata(void* arg, grpc_error* input_error) { grpc_transport_stream_op_batch_finish_with_failure(batch, error, calld->call_combiner); } + GRPC_CALL_STACK_UNREF(calld->owning_call, "get_request_metadata"); } void grpc_auth_metadata_context_build( @@ -208,7 +209,7 @@ static void send_security_metadata(grpc_call_element* elem, chand->auth_context, &calld->auth_md_context); GPR_ASSERT(calld->pollent != nullptr); - + GRPC_CALL_STACK_REF(calld->owning_call, "get_request_metadata"); GRPC_CLOSURE_INIT(&calld->async_result_closure, on_credentials_metadata, batch, grpc_schedule_on_exec_ctx); grpc_error* error = GRPC_ERROR_NONE; @@ -250,6 +251,7 @@ static void on_host_checked(void* arg, grpc_error* error) { calld->call_combiner); gpr_free(error_msg); } + GRPC_CALL_STACK_UNREF(calld->owning_call, "check_call_host"); } static void cancel_check_call_host(void* arg, grpc_error* error) { @@ -312,6 +314,7 @@ static void auth_start_transport_stream_op_batch( } if (calld->have_host) { batch->handler_private.extra_arg = elem; + GRPC_CALL_STACK_REF(calld->owning_call, "check_call_host"); GRPC_CLOSURE_INIT(&calld->async_result_closure, on_host_checked, batch, grpc_schedule_on_exec_ctx); char* call_host = grpc_slice_to_c_string(calld->host); diff --git a/src/core/lib/surface/call.cc b/src/core/lib/surface/call.cc index f2096d8937..b538cc0212 100644 --- a/src/core/lib/surface/call.cc +++ b/src/core/lib/surface/call.cc @@ -1032,6 +1032,7 @@ static grpc_stream_compression_algorithm decode_stream_compression( static void publish_app_metadata(grpc_call* call, grpc_metadata_batch* b, int is_trailing) { if (b->list.count == 0) return; + if (is_trailing && call->buffered_metadata[1] == nullptr) return; GPR_TIMER_SCOPE("publish_app_metadata", 0); grpc_metadata_array* dest; grpc_metadata* mdusr; diff --git a/src/core/lib/surface/version.cc b/src/core/lib/surface/version.cc index 153b6e0297..51daad0368 100644 --- a/src/core/lib/surface/version.cc +++ b/src/core/lib/surface/version.cc @@ -23,4 +23,4 @@ const char* grpc_version_string(void) { return "6.0.0-dev"; } -const char* grpc_g_stands_for(void) { return "glossy"; } +const char* grpc_g_stands_for(void) { return "glamorous"; } diff --git a/src/core/lib/transport/static_metadata.cc b/src/core/lib/transport/static_metadata.cc index 82ba7ac51a..ebc75724cf 100644 --- a/src/core/lib/transport/static_metadata.cc +++ b/src/core/lib/transport/static_metadata.cc @@ -20,7 +20,7 @@ * To make changes to this file, change * tools/codegen/core/gen_static_metadata.py, and then re-run it. * - * See metadata.h for an explanation of the interface here, and metadata.c for + * See metadata.h for an explanation of the interface here, and metadata.cc for * an explanation of what's going on. */ @@ -57,53 +57,52 @@ static uint8_t g_bytes[] = { 112, 111, 110, 115, 101, 95, 109, 101, 115, 115, 97, 103, 101, 95, 98, 121, 116, 101, 115, 47, 103, 114, 112, 99, 46, 108, 98, 46, 118, 49, 46, 76, 111, 97, 100, 66, 97, 108, 97, 110, 99, 101, 114, 47, 66, - 97, 108, 97, 110, 99, 101, 76, 111, 97, 100, 109, 101, 115, 115, 97, - 103, 101, 47, 100, 101, 102, 108, 97, 116, 101, 109, 101, 115, 115, 97, - 103, 101, 47, 103, 122, 105, 112, 115, 116, 114, 101, 97, 109, 47, 103, - 122, 105, 112, 48, 49, 50, 105, 100, 101, 110, 116, 105, 116, 121, 103, - 122, 105, 112, 100, 101, 102, 108, 97, 116, 101, 116, 114, 97, 105, 108, - 101, 114, 115, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, - 103, 114, 112, 99, 80, 79, 83, 84, 50, 48, 48, 52, 48, 52, 104, - 116, 116, 112, 104, 116, 116, 112, 115, 103, 114, 112, 99, 71, 69, 84, - 80, 85, 84, 47, 47, 105, 110, 100, 101, 120, 46, 104, 116, 109, 108, - 50, 48, 52, 50, 48, 54, 51, 48, 52, 52, 48, 48, 53, 48, 48, - 97, 99, 99, 101, 112, 116, 45, 99, 104, 97, 114, 115, 101, 116, 103, - 122, 105, 112, 44, 32, 100, 101, 102, 108, 97, 116, 101, 97, 99, 99, - 101, 112, 116, 45, 108, 97, 110, 103, 117, 97, 103, 101, 97, 99, 99, - 101, 112, 116, 45, 114, 97, 110, 103, 101, 115, 97, 99, 99, 101, 112, - 116, 97, 99, 99, 101, 115, 115, 45, 99, 111, 110, 116, 114, 111, 108, - 45, 97, 108, 108, 111, 119, 45, 111, 114, 105, 103, 105, 110, 97, 103, - 101, 97, 108, 108, 111, 119, 97, 117, 116, 104, 111, 114, 105, 122, 97, - 116, 105, 111, 110, 99, 97, 99, 104, 101, 45, 99, 111, 110, 116, 114, - 111, 108, 99, 111, 110, 116, 101, 110, 116, 45, 100, 105, 115, 112, 111, - 115, 105, 116, 105, 111, 110, 99, 111, 110, 116, 101, 110, 116, 45, 108, - 97, 110, 103, 117, 97, 103, 101, 99, 111, 110, 116, 101, 110, 116, 45, - 108, 101, 110, 103, 116, 104, 99, 111, 110, 116, 101, 110, 116, 45, 108, - 111, 99, 97, 116, 105, 111, 110, 99, 111, 110, 116, 101, 110, 116, 45, - 114, 97, 110, 103, 101, 99, 111, 111, 107, 105, 101, 100, 97, 116, 101, - 101, 116, 97, 103, 101, 120, 112, 101, 99, 116, 101, 120, 112, 105, 114, - 101, 115, 102, 114, 111, 109, 105, 102, 45, 109, 97, 116, 99, 104, 105, - 102, 45, 109, 111, 100, 105, 102, 105, 101, 100, 45, 115, 105, 110, 99, - 101, 105, 102, 45, 110, 111, 110, 101, 45, 109, 97, 116, 99, 104, 105, - 102, 45, 114, 97, 110, 103, 101, 105, 102, 45, 117, 110, 109, 111, 100, - 105, 102, 105, 101, 100, 45, 115, 105, 110, 99, 101, 108, 97, 115, 116, - 45, 109, 111, 100, 105, 102, 105, 101, 100, 108, 98, 45, 99, 111, 115, - 116, 45, 98, 105, 110, 108, 105, 110, 107, 108, 111, 99, 97, 116, 105, - 111, 110, 109, 97, 120, 45, 102, 111, 114, 119, 97, 114, 100, 115, 112, - 114, 111, 120, 121, 45, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, - 116, 101, 112, 114, 111, 120, 121, 45, 97, 117, 116, 104, 111, 114, 105, - 122, 97, 116, 105, 111, 110, 114, 97, 110, 103, 101, 114, 101, 102, 101, - 114, 101, 114, 114, 101, 102, 114, 101, 115, 104, 114, 101, 116, 114, 121, - 45, 97, 102, 116, 101, 114, 115, 101, 114, 118, 101, 114, 115, 101, 116, - 45, 99, 111, 111, 107, 105, 101, 115, 116, 114, 105, 99, 116, 45, 116, - 114, 97, 110, 115, 112, 111, 114, 116, 45, 115, 101, 99, 117, 114, 105, - 116, 121, 116, 114, 97, 110, 115, 102, 101, 114, 45, 101, 110, 99, 111, - 100, 105, 110, 103, 118, 97, 114, 121, 118, 105, 97, 119, 119, 119, 45, - 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 101, 105, 100, 101, - 110, 116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116, 101, 105, 100, - 101, 110, 116, 105, 116, 121, 44, 103, 122, 105, 112, 100, 101, 102, 108, - 97, 116, 101, 44, 103, 122, 105, 112, 105, 100, 101, 110, 116, 105, 116, - 121, 44, 100, 101, 102, 108, 97, 116, 101, 44, 103, 122, 105, 112}; + 97, 108, 97, 110, 99, 101, 76, 111, 97, 100, 100, 101, 102, 108, 97, + 116, 101, 103, 122, 105, 112, 115, 116, 114, 101, 97, 109, 47, 103, 122, + 105, 112, 48, 49, 50, 105, 100, 101, 110, 116, 105, 116, 121, 116, 114, + 97, 105, 108, 101, 114, 115, 97, 112, 112, 108, 105, 99, 97, 116, 105, + 111, 110, 47, 103, 114, 112, 99, 80, 79, 83, 84, 50, 48, 48, 52, + 48, 52, 104, 116, 116, 112, 104, 116, 116, 112, 115, 103, 114, 112, 99, + 71, 69, 84, 80, 85, 84, 47, 47, 105, 110, 100, 101, 120, 46, 104, + 116, 109, 108, 50, 48, 52, 50, 48, 54, 51, 48, 52, 52, 48, 48, + 53, 48, 48, 97, 99, 99, 101, 112, 116, 45, 99, 104, 97, 114, 115, + 101, 116, 103, 122, 105, 112, 44, 32, 100, 101, 102, 108, 97, 116, 101, + 97, 99, 99, 101, 112, 116, 45, 108, 97, 110, 103, 117, 97, 103, 101, + 97, 99, 99, 101, 112, 116, 45, 114, 97, 110, 103, 101, 115, 97, 99, + 99, 101, 112, 116, 97, 99, 99, 101, 115, 115, 45, 99, 111, 110, 116, + 114, 111, 108, 45, 97, 108, 108, 111, 119, 45, 111, 114, 105, 103, 105, + 110, 97, 103, 101, 97, 108, 108, 111, 119, 97, 117, 116, 104, 111, 114, + 105, 122, 97, 116, 105, 111, 110, 99, 97, 99, 104, 101, 45, 99, 111, + 110, 116, 114, 111, 108, 99, 111, 110, 116, 101, 110, 116, 45, 100, 105, + 115, 112, 111, 115, 105, 116, 105, 111, 110, 99, 111, 110, 116, 101, 110, + 116, 45, 108, 97, 110, 103, 117, 97, 103, 101, 99, 111, 110, 116, 101, + 110, 116, 45, 108, 101, 110, 103, 116, 104, 99, 111, 110, 116, 101, 110, + 116, 45, 108, 111, 99, 97, 116, 105, 111, 110, 99, 111, 110, 116, 101, + 110, 116, 45, 114, 97, 110, 103, 101, 99, 111, 111, 107, 105, 101, 100, + 97, 116, 101, 101, 116, 97, 103, 101, 120, 112, 101, 99, 116, 101, 120, + 112, 105, 114, 101, 115, 102, 114, 111, 109, 105, 102, 45, 109, 97, 116, + 99, 104, 105, 102, 45, 109, 111, 100, 105, 102, 105, 101, 100, 45, 115, + 105, 110, 99, 101, 105, 102, 45, 110, 111, 110, 101, 45, 109, 97, 116, + 99, 104, 105, 102, 45, 114, 97, 110, 103, 101, 105, 102, 45, 117, 110, + 109, 111, 100, 105, 102, 105, 101, 100, 45, 115, 105, 110, 99, 101, 108, + 97, 115, 116, 45, 109, 111, 100, 105, 102, 105, 101, 100, 108, 98, 45, + 99, 111, 115, 116, 45, 98, 105, 110, 108, 105, 110, 107, 108, 111, 99, + 97, 116, 105, 111, 110, 109, 97, 120, 45, 102, 111, 114, 119, 97, 114, + 100, 115, 112, 114, 111, 120, 121, 45, 97, 117, 116, 104, 101, 110, 116, + 105, 99, 97, 116, 101, 112, 114, 111, 120, 121, 45, 97, 117, 116, 104, + 111, 114, 105, 122, 97, 116, 105, 111, 110, 114, 97, 110, 103, 101, 114, + 101, 102, 101, 114, 101, 114, 114, 101, 102, 114, 101, 115, 104, 114, 101, + 116, 114, 121, 45, 97, 102, 116, 101, 114, 115, 101, 114, 118, 101, 114, + 115, 101, 116, 45, 99, 111, 111, 107, 105, 101, 115, 116, 114, 105, 99, + 116, 45, 116, 114, 97, 110, 115, 112, 111, 114, 116, 45, 115, 101, 99, + 117, 114, 105, 116, 121, 116, 114, 97, 110, 115, 102, 101, 114, 45, 101, + 110, 99, 111, 100, 105, 110, 103, 118, 97, 114, 121, 118, 105, 97, 119, + 119, 119, 45, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 101, + 105, 100, 101, 110, 116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116, + 101, 105, 100, 101, 110, 116, 105, 116, 121, 44, 103, 122, 105, 112, 100, + 101, 102, 108, 97, 116, 101, 44, 103, 122, 105, 112, 105, 100, 101, 110, + 116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116, 101, 44, 103, 122, + 105, 112}; static void static_ref(void* unused) {} static void static_unref(void* unused) {} @@ -216,8 +215,6 @@ grpc_slice_refcount grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT] = { {&grpc_static_metadata_vtable, &static_sub_refcnt}, {&grpc_static_metadata_vtable, &static_sub_refcnt}, {&grpc_static_metadata_vtable, &static_sub_refcnt}, - {&grpc_static_metadata_vtable, &static_sub_refcnt}, - {&grpc_static_metadata_vtable, &static_sub_refcnt}, }; const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT] = { @@ -250,80 +247,78 @@ const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT] = { {&grpc_static_metadata_refcounts[26], {{g_bytes + 333, 30}}}, {&grpc_static_metadata_refcounts[27], {{g_bytes + 363, 31}}}, {&grpc_static_metadata_refcounts[28], {{g_bytes + 394, 36}}}, - {&grpc_static_metadata_refcounts[29], {{g_bytes + 430, 15}}}, - {&grpc_static_metadata_refcounts[30], {{g_bytes + 445, 12}}}, - {&grpc_static_metadata_refcounts[31], {{g_bytes + 457, 11}}}, - {&grpc_static_metadata_refcounts[32], {{g_bytes + 468, 1}}}, - {&grpc_static_metadata_refcounts[33], {{g_bytes + 469, 1}}}, - {&grpc_static_metadata_refcounts[34], {{g_bytes + 470, 1}}}, - {&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}}, - {&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}}, - {&grpc_static_metadata_refcounts[37], {{g_bytes + 483, 7}}}, - {&grpc_static_metadata_refcounts[38], {{g_bytes + 490, 8}}}, - {&grpc_static_metadata_refcounts[39], {{g_bytes + 498, 16}}}, - {&grpc_static_metadata_refcounts[40], {{g_bytes + 514, 4}}}, - {&grpc_static_metadata_refcounts[41], {{g_bytes + 518, 3}}}, - {&grpc_static_metadata_refcounts[42], {{g_bytes + 521, 3}}}, - {&grpc_static_metadata_refcounts[43], {{g_bytes + 524, 4}}}, - {&grpc_static_metadata_refcounts[44], {{g_bytes + 528, 5}}}, - {&grpc_static_metadata_refcounts[45], {{g_bytes + 533, 4}}}, - {&grpc_static_metadata_refcounts[46], {{g_bytes + 537, 3}}}, - {&grpc_static_metadata_refcounts[47], {{g_bytes + 540, 3}}}, - {&grpc_static_metadata_refcounts[48], {{g_bytes + 543, 1}}}, - {&grpc_static_metadata_refcounts[49], {{g_bytes + 544, 11}}}, - {&grpc_static_metadata_refcounts[50], {{g_bytes + 555, 3}}}, - {&grpc_static_metadata_refcounts[51], {{g_bytes + 558, 3}}}, - {&grpc_static_metadata_refcounts[52], {{g_bytes + 561, 3}}}, - {&grpc_static_metadata_refcounts[53], {{g_bytes + 564, 3}}}, - {&grpc_static_metadata_refcounts[54], {{g_bytes + 567, 3}}}, - {&grpc_static_metadata_refcounts[55], {{g_bytes + 570, 14}}}, - {&grpc_static_metadata_refcounts[56], {{g_bytes + 584, 13}}}, - {&grpc_static_metadata_refcounts[57], {{g_bytes + 597, 15}}}, - {&grpc_static_metadata_refcounts[58], {{g_bytes + 612, 13}}}, - {&grpc_static_metadata_refcounts[59], {{g_bytes + 625, 6}}}, - {&grpc_static_metadata_refcounts[60], {{g_bytes + 631, 27}}}, - {&grpc_static_metadata_refcounts[61], {{g_bytes + 658, 3}}}, - {&grpc_static_metadata_refcounts[62], {{g_bytes + 661, 5}}}, - {&grpc_static_metadata_refcounts[63], {{g_bytes + 666, 13}}}, - {&grpc_static_metadata_refcounts[64], {{g_bytes + 679, 13}}}, - {&grpc_static_metadata_refcounts[65], {{g_bytes + 692, 19}}}, - {&grpc_static_metadata_refcounts[66], {{g_bytes + 711, 16}}}, - {&grpc_static_metadata_refcounts[67], {{g_bytes + 727, 14}}}, - {&grpc_static_metadata_refcounts[68], {{g_bytes + 741, 16}}}, - {&grpc_static_metadata_refcounts[69], {{g_bytes + 757, 13}}}, - {&grpc_static_metadata_refcounts[70], {{g_bytes + 770, 6}}}, - {&grpc_static_metadata_refcounts[71], {{g_bytes + 776, 4}}}, - {&grpc_static_metadata_refcounts[72], {{g_bytes + 780, 4}}}, - {&grpc_static_metadata_refcounts[73], {{g_bytes + 784, 6}}}, - {&grpc_static_metadata_refcounts[74], {{g_bytes + 790, 7}}}, - {&grpc_static_metadata_refcounts[75], {{g_bytes + 797, 4}}}, - {&grpc_static_metadata_refcounts[76], {{g_bytes + 801, 8}}}, - {&grpc_static_metadata_refcounts[77], {{g_bytes + 809, 17}}}, - {&grpc_static_metadata_refcounts[78], {{g_bytes + 826, 13}}}, - {&grpc_static_metadata_refcounts[79], {{g_bytes + 839, 8}}}, - {&grpc_static_metadata_refcounts[80], {{g_bytes + 847, 19}}}, - {&grpc_static_metadata_refcounts[81], {{g_bytes + 866, 13}}}, - {&grpc_static_metadata_refcounts[82], {{g_bytes + 879, 11}}}, - {&grpc_static_metadata_refcounts[83], {{g_bytes + 890, 4}}}, - {&grpc_static_metadata_refcounts[84], {{g_bytes + 894, 8}}}, - {&grpc_static_metadata_refcounts[85], {{g_bytes + 902, 12}}}, - {&grpc_static_metadata_refcounts[86], {{g_bytes + 914, 18}}}, - {&grpc_static_metadata_refcounts[87], {{g_bytes + 932, 19}}}, - {&grpc_static_metadata_refcounts[88], {{g_bytes + 951, 5}}}, - {&grpc_static_metadata_refcounts[89], {{g_bytes + 956, 7}}}, - {&grpc_static_metadata_refcounts[90], {{g_bytes + 963, 7}}}, - {&grpc_static_metadata_refcounts[91], {{g_bytes + 970, 11}}}, - {&grpc_static_metadata_refcounts[92], {{g_bytes + 981, 6}}}, - {&grpc_static_metadata_refcounts[93], {{g_bytes + 987, 10}}}, - {&grpc_static_metadata_refcounts[94], {{g_bytes + 997, 25}}}, - {&grpc_static_metadata_refcounts[95], {{g_bytes + 1022, 17}}}, - {&grpc_static_metadata_refcounts[96], {{g_bytes + 1039, 4}}}, - {&grpc_static_metadata_refcounts[97], {{g_bytes + 1043, 3}}}, - {&grpc_static_metadata_refcounts[98], {{g_bytes + 1046, 16}}}, - {&grpc_static_metadata_refcounts[99], {{g_bytes + 1062, 16}}}, - {&grpc_static_metadata_refcounts[100], {{g_bytes + 1078, 13}}}, - {&grpc_static_metadata_refcounts[101], {{g_bytes + 1091, 12}}}, - {&grpc_static_metadata_refcounts[102], {{g_bytes + 1103, 21}}}, + {&grpc_static_metadata_refcounts[29], {{g_bytes + 430, 7}}}, + {&grpc_static_metadata_refcounts[30], {{g_bytes + 437, 4}}}, + {&grpc_static_metadata_refcounts[31], {{g_bytes + 441, 11}}}, + {&grpc_static_metadata_refcounts[32], {{g_bytes + 452, 1}}}, + {&grpc_static_metadata_refcounts[33], {{g_bytes + 453, 1}}}, + {&grpc_static_metadata_refcounts[34], {{g_bytes + 454, 1}}}, + {&grpc_static_metadata_refcounts[35], {{g_bytes + 455, 8}}}, + {&grpc_static_metadata_refcounts[36], {{g_bytes + 463, 8}}}, + {&grpc_static_metadata_refcounts[37], {{g_bytes + 471, 16}}}, + {&grpc_static_metadata_refcounts[38], {{g_bytes + 487, 4}}}, + {&grpc_static_metadata_refcounts[39], {{g_bytes + 491, 3}}}, + {&grpc_static_metadata_refcounts[40], {{g_bytes + 494, 3}}}, + {&grpc_static_metadata_refcounts[41], {{g_bytes + 497, 4}}}, + {&grpc_static_metadata_refcounts[42], {{g_bytes + 501, 5}}}, + {&grpc_static_metadata_refcounts[43], {{g_bytes + 506, 4}}}, + {&grpc_static_metadata_refcounts[44], {{g_bytes + 510, 3}}}, + {&grpc_static_metadata_refcounts[45], {{g_bytes + 513, 3}}}, + {&grpc_static_metadata_refcounts[46], {{g_bytes + 516, 1}}}, + {&grpc_static_metadata_refcounts[47], {{g_bytes + 517, 11}}}, + {&grpc_static_metadata_refcounts[48], {{g_bytes + 528, 3}}}, + {&grpc_static_metadata_refcounts[49], {{g_bytes + 531, 3}}}, + {&grpc_static_metadata_refcounts[50], {{g_bytes + 534, 3}}}, + {&grpc_static_metadata_refcounts[51], {{g_bytes + 537, 3}}}, + {&grpc_static_metadata_refcounts[52], {{g_bytes + 540, 3}}}, + {&grpc_static_metadata_refcounts[53], {{g_bytes + 543, 14}}}, + {&grpc_static_metadata_refcounts[54], {{g_bytes + 557, 13}}}, + {&grpc_static_metadata_refcounts[55], {{g_bytes + 570, 15}}}, + {&grpc_static_metadata_refcounts[56], {{g_bytes + 585, 13}}}, + {&grpc_static_metadata_refcounts[57], {{g_bytes + 598, 6}}}, + {&grpc_static_metadata_refcounts[58], {{g_bytes + 604, 27}}}, + {&grpc_static_metadata_refcounts[59], {{g_bytes + 631, 3}}}, + {&grpc_static_metadata_refcounts[60], {{g_bytes + 634, 5}}}, + {&grpc_static_metadata_refcounts[61], {{g_bytes + 639, 13}}}, + {&grpc_static_metadata_refcounts[62], {{g_bytes + 652, 13}}}, + {&grpc_static_metadata_refcounts[63], {{g_bytes + 665, 19}}}, + {&grpc_static_metadata_refcounts[64], {{g_bytes + 684, 16}}}, + {&grpc_static_metadata_refcounts[65], {{g_bytes + 700, 14}}}, + {&grpc_static_metadata_refcounts[66], {{g_bytes + 714, 16}}}, + {&grpc_static_metadata_refcounts[67], {{g_bytes + 730, 13}}}, + {&grpc_static_metadata_refcounts[68], {{g_bytes + 743, 6}}}, + {&grpc_static_metadata_refcounts[69], {{g_bytes + 749, 4}}}, + {&grpc_static_metadata_refcounts[70], {{g_bytes + 753, 4}}}, + {&grpc_static_metadata_refcounts[71], {{g_bytes + 757, 6}}}, + {&grpc_static_metadata_refcounts[72], {{g_bytes + 763, 7}}}, + {&grpc_static_metadata_refcounts[73], {{g_bytes + 770, 4}}}, + {&grpc_static_metadata_refcounts[74], {{g_bytes + 774, 8}}}, + {&grpc_static_metadata_refcounts[75], {{g_bytes + 782, 17}}}, + {&grpc_static_metadata_refcounts[76], {{g_bytes + 799, 13}}}, + {&grpc_static_metadata_refcounts[77], {{g_bytes + 812, 8}}}, + {&grpc_static_metadata_refcounts[78], {{g_bytes + 820, 19}}}, + {&grpc_static_metadata_refcounts[79], {{g_bytes + 839, 13}}}, + {&grpc_static_metadata_refcounts[80], {{g_bytes + 852, 11}}}, + {&grpc_static_metadata_refcounts[81], {{g_bytes + 863, 4}}}, + {&grpc_static_metadata_refcounts[82], {{g_bytes + 867, 8}}}, + {&grpc_static_metadata_refcounts[83], {{g_bytes + 875, 12}}}, + {&grpc_static_metadata_refcounts[84], {{g_bytes + 887, 18}}}, + {&grpc_static_metadata_refcounts[85], {{g_bytes + 905, 19}}}, + {&grpc_static_metadata_refcounts[86], {{g_bytes + 924, 5}}}, + {&grpc_static_metadata_refcounts[87], {{g_bytes + 929, 7}}}, + {&grpc_static_metadata_refcounts[88], {{g_bytes + 936, 7}}}, + {&grpc_static_metadata_refcounts[89], {{g_bytes + 943, 11}}}, + {&grpc_static_metadata_refcounts[90], {{g_bytes + 954, 6}}}, + {&grpc_static_metadata_refcounts[91], {{g_bytes + 960, 10}}}, + {&grpc_static_metadata_refcounts[92], {{g_bytes + 970, 25}}}, + {&grpc_static_metadata_refcounts[93], {{g_bytes + 995, 17}}}, + {&grpc_static_metadata_refcounts[94], {{g_bytes + 1012, 4}}}, + {&grpc_static_metadata_refcounts[95], {{g_bytes + 1016, 3}}}, + {&grpc_static_metadata_refcounts[96], {{g_bytes + 1019, 16}}}, + {&grpc_static_metadata_refcounts[97], {{g_bytes + 1035, 16}}}, + {&grpc_static_metadata_refcounts[98], {{g_bytes + 1051, 13}}}, + {&grpc_static_metadata_refcounts[99], {{g_bytes + 1064, 12}}}, + {&grpc_static_metadata_refcounts[100], {{g_bytes + 1076, 21}}}, }; uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = { @@ -333,16 +328,16 @@ uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 6, 6, 8, 8, 2, 4, 4}; static const int8_t elems_r[] = { - 11, 9, -3, 0, 10, 25, -77, 26, 0, 11, -7, 0, 0, 0, 21, 14, 1, - 0, 0, 33, 12, 11, 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, 0, 0, 0, - 0, 0, 0, 0, -56, 0, -36, -61, -60, -39, -63, -64, 0, 36, 35, 34, 33, - 34, 33, 32, 31, 31, 30, 29, 28, 27, 26, 26, 25, 25, 24, 23, 22, 21, - 20, 19, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 12, 11, 0}; + 13, 2, 1, 0, 15, 4, 0, 21, 0, 23, -3, 0, 0, 0, 10, 19, -4, + 0, 0, 1, 10, 9, 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, 0, 0, 0, + 0, 0, -52, 0, -55, -36, -57, -58, -58, -58, 0, 40, 39, 38, 37, 36, 35, + 34, 33, 32, 31, 30, 29, 28, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, + 18, 17, 16, 15, 18, 17, 16, 15, 14, 13, 12, 11, 11, 0}; static uint32_t elems_phash(uint32_t i) { - i -= 48; - uint32_t x = i % 101; - uint32_t y = i / 101; + i -= 46; + uint32_t x = i % 99; + uint32_t y = i / 99; uint32_t h = x; if (y < GPR_ARRAY_SIZE(elems_r)) { uint32_t delta = (uint32_t)elems_r[y]; @@ -352,31 +347,31 @@ static uint32_t elems_phash(uint32_t i) { } static const uint16_t elem_keys[] = { - 1065, 1066, 1067, 256, 257, 258, 259, 260, 1671, 149, 150, 48, - 49, 455, 456, 457, 962, 963, 964, 1568, 1683, 1684, 753, 754, - 1465, 553, 755, 2083, 2186, 5688, 5997, 1580, 1581, 6100, 6306, 6409, - 6512, 6615, 6718, 6821, 1481, 1704, 6924, 7027, 7130, 7233, 1980, 7336, - 7439, 7542, 7645, 7748, 7851, 5894, 7954, 8057, 6203, 8160, 8263, 8366, - 8469, 8572, 8675, 8778, 1129, 1130, 1131, 1132, 8881, 8984, 9087, 9190, - 9293, 9396, 9499, 9602, 9705, 9808, 9911, 332, 10014, 10117, 0, 0, - 0, 1748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 247, - 248, 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, 0}; + 1039, 1040, 145, 146, 541, 1639, 1045, 250, 251, 252, 253, 254, + 1646, 46, 47, 1437, 1942, 1651, 445, 446, 447, 739, 740, 741, + 938, 939, 1538, 2043, 2144, 1451, 944, 5376, 5578, 1545, 5780, 5881, + 1670, 5982, 1550, 6083, 6184, 6285, 6386, 6487, 6588, 6689, 6790, 6891, + 6992, 7093, 7194, 7295, 7396, 5679, 7497, 7598, 7699, 7800, 7901, 8002, + 8103, 8204, 8305, 8406, 8507, 8608, 8709, 8810, 1107, 1108, 1109, 1110, + 8911, 9012, 9113, 9214, 9315, 9416, 9517, 9618, 1714, 9719, 0, 326, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 241, 242, 0, 0, 0, 0, 0, 0, 139, 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, 0, 0, 0, 0, 0}; static const uint8_t elem_idxs[] = { - 76, 79, 77, 19, 20, 21, 22, 23, 25, 15, 16, 17, 18, 11, - 12, 13, 3, 4, 5, 38, 83, 84, 0, 1, 43, 6, 2, 50, - 57, 24, 28, 36, 37, 29, 31, 32, 33, 34, 35, 39, 7, 26, - 40, 41, 42, 44, 72, 45, 46, 47, 48, 49, 51, 27, 52, 53, - 30, 54, 55, 56, 58, 59, 60, 61, 78, 80, 81, 82, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 73, 14, 74, 75, 255, 255, - 255, 85, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 8, 9, 10}; + 77, 79, 15, 16, 6, 25, 76, 19, 20, 21, 22, 23, 84, 17, + 18, 43, 72, 83, 11, 12, 13, 0, 1, 2, 5, 4, 38, 50, + 57, 7, 3, 24, 27, 37, 29, 30, 26, 31, 36, 32, 33, 34, + 35, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 28, 51, 52, + 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 78, 80, + 81, 82, 66, 67, 68, 69, 70, 71, 73, 74, 85, 75, 255, 14, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 9, 10, 255, 255, 255, 255, 255, 255, 8}; grpc_mdelem grpc_static_mdelem_for_static_strings(int a, int b) { if (a == -1 || b == -1) return GRPC_MDNULL; - uint32_t k = (uint32_t)(a * 103 + b); + uint32_t k = (uint32_t)(a * 101 + b); uint32_t h = elems_phash(k); return h < GPR_ARRAY_SIZE(elem_keys) && elem_keys[h] == k && elem_idxs[h] != 255 @@ -387,177 +382,177 @@ grpc_mdelem grpc_static_mdelem_for_static_strings(int a, int b) { grpc_mdelem_data grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT] = { {{&grpc_static_metadata_refcounts[7], {{g_bytes + 50, 11}}}, - {&grpc_static_metadata_refcounts[32], {{g_bytes + 468, 1}}}}, + {&grpc_static_metadata_refcounts[32], {{g_bytes + 452, 1}}}}, {{&grpc_static_metadata_refcounts[7], {{g_bytes + 50, 11}}}, - {&grpc_static_metadata_refcounts[33], {{g_bytes + 469, 1}}}}, + {&grpc_static_metadata_refcounts[33], {{g_bytes + 453, 1}}}}, {{&grpc_static_metadata_refcounts[7], {{g_bytes + 50, 11}}}, - {&grpc_static_metadata_refcounts[34], {{g_bytes + 470, 1}}}}, + {&grpc_static_metadata_refcounts[34], {{g_bytes + 454, 1}}}}, {{&grpc_static_metadata_refcounts[9], {{g_bytes + 77, 13}}}, - {&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}}}, + {&grpc_static_metadata_refcounts[35], {{g_bytes + 455, 8}}}}, {{&grpc_static_metadata_refcounts[9], {{g_bytes + 77, 13}}}, - {&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}}}, + {&grpc_static_metadata_refcounts[30], {{g_bytes + 437, 4}}}}, {{&grpc_static_metadata_refcounts[9], {{g_bytes + 77, 13}}}, - {&grpc_static_metadata_refcounts[37], {{g_bytes + 483, 7}}}}, + {&grpc_static_metadata_refcounts[29], {{g_bytes + 430, 7}}}}, {{&grpc_static_metadata_refcounts[5], {{g_bytes + 36, 2}}}, - {&grpc_static_metadata_refcounts[38], {{g_bytes + 490, 8}}}}, + {&grpc_static_metadata_refcounts[36], {{g_bytes + 463, 8}}}}, {{&grpc_static_metadata_refcounts[14], {{g_bytes + 158, 12}}}, - {&grpc_static_metadata_refcounts[39], {{g_bytes + 498, 16}}}}, + {&grpc_static_metadata_refcounts[37], {{g_bytes + 471, 16}}}}, {{&grpc_static_metadata_refcounts[1], {{g_bytes + 5, 7}}}, - {&grpc_static_metadata_refcounts[40], {{g_bytes + 514, 4}}}}, + {&grpc_static_metadata_refcounts[38], {{g_bytes + 487, 4}}}}, {{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}}, - {&grpc_static_metadata_refcounts[41], {{g_bytes + 518, 3}}}}, + {&grpc_static_metadata_refcounts[39], {{g_bytes + 491, 3}}}}, {{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}}, - {&grpc_static_metadata_refcounts[42], {{g_bytes + 521, 3}}}}, + {&grpc_static_metadata_refcounts[40], {{g_bytes + 494, 3}}}}, {{&grpc_static_metadata_refcounts[4], {{g_bytes + 29, 7}}}, - {&grpc_static_metadata_refcounts[43], {{g_bytes + 524, 4}}}}, + {&grpc_static_metadata_refcounts[41], {{g_bytes + 497, 4}}}}, {{&grpc_static_metadata_refcounts[4], {{g_bytes + 29, 7}}}, - {&grpc_static_metadata_refcounts[44], {{g_bytes + 528, 5}}}}, + {&grpc_static_metadata_refcounts[42], {{g_bytes + 501, 5}}}}, {{&grpc_static_metadata_refcounts[4], {{g_bytes + 29, 7}}}, - {&grpc_static_metadata_refcounts[45], {{g_bytes + 533, 4}}}}, + {&grpc_static_metadata_refcounts[43], {{g_bytes + 506, 4}}}}, {{&grpc_static_metadata_refcounts[3], {{g_bytes + 19, 10}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, {{&grpc_static_metadata_refcounts[1], {{g_bytes + 5, 7}}}, - {&grpc_static_metadata_refcounts[46], {{g_bytes + 537, 3}}}}, + {&grpc_static_metadata_refcounts[44], {{g_bytes + 510, 3}}}}, {{&grpc_static_metadata_refcounts[1], {{g_bytes + 5, 7}}}, - {&grpc_static_metadata_refcounts[47], {{g_bytes + 540, 3}}}}, + {&grpc_static_metadata_refcounts[45], {{g_bytes + 513, 3}}}}, {{&grpc_static_metadata_refcounts[0], {{g_bytes + 0, 5}}}, - {&grpc_static_metadata_refcounts[48], {{g_bytes + 543, 1}}}}, + {&grpc_static_metadata_refcounts[46], {{g_bytes + 516, 1}}}}, {{&grpc_static_metadata_refcounts[0], {{g_bytes + 0, 5}}}, - {&grpc_static_metadata_refcounts[49], {{g_bytes + 544, 11}}}}, + {&grpc_static_metadata_refcounts[47], {{g_bytes + 517, 11}}}}, {{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}}, - {&grpc_static_metadata_refcounts[50], {{g_bytes + 555, 3}}}}, + {&grpc_static_metadata_refcounts[48], {{g_bytes + 528, 3}}}}, {{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}}, - {&grpc_static_metadata_refcounts[51], {{g_bytes + 558, 3}}}}, + {&grpc_static_metadata_refcounts[49], {{g_bytes + 531, 3}}}}, {{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}}, - {&grpc_static_metadata_refcounts[52], {{g_bytes + 561, 3}}}}, + {&grpc_static_metadata_refcounts[50], {{g_bytes + 534, 3}}}}, {{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}}, - {&grpc_static_metadata_refcounts[53], {{g_bytes + 564, 3}}}}, + {&grpc_static_metadata_refcounts[51], {{g_bytes + 537, 3}}}}, {{&grpc_static_metadata_refcounts[2], {{g_bytes + 12, 7}}}, - {&grpc_static_metadata_refcounts[54], {{g_bytes + 567, 3}}}}, - {{&grpc_static_metadata_refcounts[55], {{g_bytes + 570, 14}}}, + {&grpc_static_metadata_refcounts[52], {{g_bytes + 540, 3}}}}, + {{&grpc_static_metadata_refcounts[53], {{g_bytes + 543, 14}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, {{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, {{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}}, - {&grpc_static_metadata_refcounts[56], {{g_bytes + 584, 13}}}}, - {{&grpc_static_metadata_refcounts[57], {{g_bytes + 597, 15}}}, + {&grpc_static_metadata_refcounts[54], {{g_bytes + 557, 13}}}}, + {{&grpc_static_metadata_refcounts[55], {{g_bytes + 570, 15}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[58], {{g_bytes + 612, 13}}}, + {{&grpc_static_metadata_refcounts[56], {{g_bytes + 585, 13}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[59], {{g_bytes + 625, 6}}}, + {{&grpc_static_metadata_refcounts[57], {{g_bytes + 598, 6}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[60], {{g_bytes + 631, 27}}}, + {{&grpc_static_metadata_refcounts[58], {{g_bytes + 604, 27}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[61], {{g_bytes + 658, 3}}}, + {{&grpc_static_metadata_refcounts[59], {{g_bytes + 631, 3}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[62], {{g_bytes + 661, 5}}}, + {{&grpc_static_metadata_refcounts[60], {{g_bytes + 634, 5}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[63], {{g_bytes + 666, 13}}}, + {{&grpc_static_metadata_refcounts[61], {{g_bytes + 639, 13}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[64], {{g_bytes + 679, 13}}}, + {{&grpc_static_metadata_refcounts[62], {{g_bytes + 652, 13}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[65], {{g_bytes + 692, 19}}}, + {{&grpc_static_metadata_refcounts[63], {{g_bytes + 665, 19}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, {{&grpc_static_metadata_refcounts[15], {{g_bytes + 170, 16}}}, - {&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}}}, + {&grpc_static_metadata_refcounts[35], {{g_bytes + 455, 8}}}}, {{&grpc_static_metadata_refcounts[15], {{g_bytes + 170, 16}}}, - {&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}}}, + {&grpc_static_metadata_refcounts[30], {{g_bytes + 437, 4}}}}, {{&grpc_static_metadata_refcounts[15], {{g_bytes + 170, 16}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[66], {{g_bytes + 711, 16}}}, + {{&grpc_static_metadata_refcounts[64], {{g_bytes + 684, 16}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[67], {{g_bytes + 727, 14}}}, + {{&grpc_static_metadata_refcounts[65], {{g_bytes + 700, 14}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[68], {{g_bytes + 741, 16}}}, + {{&grpc_static_metadata_refcounts[66], {{g_bytes + 714, 16}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[69], {{g_bytes + 757, 13}}}, + {{&grpc_static_metadata_refcounts[67], {{g_bytes + 730, 13}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, {{&grpc_static_metadata_refcounts[14], {{g_bytes + 158, 12}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[70], {{g_bytes + 770, 6}}}, + {{&grpc_static_metadata_refcounts[68], {{g_bytes + 743, 6}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[71], {{g_bytes + 776, 4}}}, + {{&grpc_static_metadata_refcounts[69], {{g_bytes + 749, 4}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[72], {{g_bytes + 780, 4}}}, + {{&grpc_static_metadata_refcounts[70], {{g_bytes + 753, 4}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[73], {{g_bytes + 784, 6}}}, + {{&grpc_static_metadata_refcounts[71], {{g_bytes + 757, 6}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[74], {{g_bytes + 790, 7}}}, + {{&grpc_static_metadata_refcounts[72], {{g_bytes + 763, 7}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[75], {{g_bytes + 797, 4}}}, + {{&grpc_static_metadata_refcounts[73], {{g_bytes + 770, 4}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, {{&grpc_static_metadata_refcounts[20], {{g_bytes + 278, 4}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[76], {{g_bytes + 801, 8}}}, + {{&grpc_static_metadata_refcounts[74], {{g_bytes + 774, 8}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[77], {{g_bytes + 809, 17}}}, + {{&grpc_static_metadata_refcounts[75], {{g_bytes + 782, 17}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[78], {{g_bytes + 826, 13}}}, + {{&grpc_static_metadata_refcounts[76], {{g_bytes + 799, 13}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[79], {{g_bytes + 839, 8}}}, + {{&grpc_static_metadata_refcounts[77], {{g_bytes + 812, 8}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[80], {{g_bytes + 847, 19}}}, + {{&grpc_static_metadata_refcounts[78], {{g_bytes + 820, 19}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[81], {{g_bytes + 866, 13}}}, + {{&grpc_static_metadata_refcounts[79], {{g_bytes + 839, 13}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, {{&grpc_static_metadata_refcounts[21], {{g_bytes + 282, 8}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[82], {{g_bytes + 879, 11}}}, + {{&grpc_static_metadata_refcounts[80], {{g_bytes + 852, 11}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[83], {{g_bytes + 890, 4}}}, + {{&grpc_static_metadata_refcounts[81], {{g_bytes + 863, 4}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[84], {{g_bytes + 894, 8}}}, + {{&grpc_static_metadata_refcounts[82], {{g_bytes + 867, 8}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[85], {{g_bytes + 902, 12}}}, + {{&grpc_static_metadata_refcounts[83], {{g_bytes + 875, 12}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[86], {{g_bytes + 914, 18}}}, + {{&grpc_static_metadata_refcounts[84], {{g_bytes + 887, 18}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[87], {{g_bytes + 932, 19}}}, + {{&grpc_static_metadata_refcounts[85], {{g_bytes + 905, 19}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[88], {{g_bytes + 951, 5}}}, + {{&grpc_static_metadata_refcounts[86], {{g_bytes + 924, 5}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[89], {{g_bytes + 956, 7}}}, + {{&grpc_static_metadata_refcounts[87], {{g_bytes + 929, 7}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[90], {{g_bytes + 963, 7}}}, + {{&grpc_static_metadata_refcounts[88], {{g_bytes + 936, 7}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[91], {{g_bytes + 970, 11}}}, + {{&grpc_static_metadata_refcounts[89], {{g_bytes + 943, 11}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[92], {{g_bytes + 981, 6}}}, + {{&grpc_static_metadata_refcounts[90], {{g_bytes + 954, 6}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[93], {{g_bytes + 987, 10}}}, + {{&grpc_static_metadata_refcounts[91], {{g_bytes + 960, 10}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[94], {{g_bytes + 997, 25}}}, + {{&grpc_static_metadata_refcounts[92], {{g_bytes + 970, 25}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[95], {{g_bytes + 1022, 17}}}, + {{&grpc_static_metadata_refcounts[93], {{g_bytes + 995, 17}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, {{&grpc_static_metadata_refcounts[19], {{g_bytes + 268, 10}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[96], {{g_bytes + 1039, 4}}}, + {{&grpc_static_metadata_refcounts[94], {{g_bytes + 1012, 4}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[97], {{g_bytes + 1043, 3}}}, + {{&grpc_static_metadata_refcounts[95], {{g_bytes + 1016, 3}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, - {{&grpc_static_metadata_refcounts[98], {{g_bytes + 1046, 16}}}, + {{&grpc_static_metadata_refcounts[96], {{g_bytes + 1019, 16}}}, {&grpc_static_metadata_refcounts[23], {{g_bytes + 302, 0}}}}, {{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}}, - {&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}}}, + {&grpc_static_metadata_refcounts[35], {{g_bytes + 455, 8}}}}, {{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}}, - {&grpc_static_metadata_refcounts[37], {{g_bytes + 483, 7}}}}, + {&grpc_static_metadata_refcounts[29], {{g_bytes + 430, 7}}}}, {{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}}, - {&grpc_static_metadata_refcounts[99], {{g_bytes + 1062, 16}}}}, + {&grpc_static_metadata_refcounts[97], {{g_bytes + 1035, 16}}}}, {{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}}, - {&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}}}, + {&grpc_static_metadata_refcounts[30], {{g_bytes + 437, 4}}}}, {{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}}, - {&grpc_static_metadata_refcounts[100], {{g_bytes + 1078, 13}}}}, + {&grpc_static_metadata_refcounts[98], {{g_bytes + 1051, 13}}}}, {{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}}, - {&grpc_static_metadata_refcounts[101], {{g_bytes + 1091, 12}}}}, + {&grpc_static_metadata_refcounts[99], {{g_bytes + 1064, 12}}}}, {{&grpc_static_metadata_refcounts[10], {{g_bytes + 90, 20}}}, - {&grpc_static_metadata_refcounts[102], {{g_bytes + 1103, 21}}}}, + {&grpc_static_metadata_refcounts[100], {{g_bytes + 1076, 21}}}}, {{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}}, - {&grpc_static_metadata_refcounts[35], {{g_bytes + 471, 8}}}}, + {&grpc_static_metadata_refcounts[35], {{g_bytes + 455, 8}}}}, {{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}}, - {&grpc_static_metadata_refcounts[36], {{g_bytes + 479, 4}}}}, + {&grpc_static_metadata_refcounts[30], {{g_bytes + 437, 4}}}}, {{&grpc_static_metadata_refcounts[16], {{g_bytes + 186, 15}}}, - {&grpc_static_metadata_refcounts[100], {{g_bytes + 1078, 13}}}}, + {&grpc_static_metadata_refcounts[98], {{g_bytes + 1051, 13}}}}, }; bool grpc_static_callout_is_default[GRPC_BATCH_CALLOUTS_COUNT] = { true, // :path diff --git a/src/core/lib/transport/static_metadata.h b/src/core/lib/transport/static_metadata.h index 21dc7a3d3f..8ce9b21bc1 100644 --- a/src/core/lib/transport/static_metadata.h +++ b/src/core/lib/transport/static_metadata.h @@ -20,7 +20,7 @@ * To make changes to this file, change * tools/codegen/core/gen_static_metadata.py, and then re-run it. * - * See metadata.h for an explanation of the interface here, and metadata.c for + * See metadata.h for an explanation of the interface here, and metadata.cc for * an explanation of what's going on. */ @@ -29,7 +29,7 @@ #include "src/core/lib/transport/metadata.h" -#define GRPC_STATIC_MDSTR_COUNT 103 +#define GRPC_STATIC_MDSTR_COUNT 101 extern const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT]; /* ":path" */ #define GRPC_MDSTR_PATH (grpc_static_slice_table[0]) @@ -93,10 +93,10 @@ extern const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT]; /* "/grpc.lb.v1.LoadBalancer/BalanceLoad" */ #define GRPC_MDSTR_SLASH_GRPC_DOT_LB_DOT_V1_DOT_LOADBALANCER_SLASH_BALANCELOAD \ (grpc_static_slice_table[28]) -/* "message/deflate" */ -#define GRPC_MDSTR_MESSAGE_SLASH_DEFLATE (grpc_static_slice_table[29]) -/* "message/gzip" */ -#define GRPC_MDSTR_MESSAGE_SLASH_GZIP (grpc_static_slice_table[30]) +/* "deflate" */ +#define GRPC_MDSTR_DEFLATE (grpc_static_slice_table[29]) +/* "gzip" */ +#define GRPC_MDSTR_GZIP (grpc_static_slice_table[30]) /* "stream/gzip" */ #define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table[31]) /* "0" */ @@ -107,141 +107,137 @@ extern const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT]; #define GRPC_MDSTR_2 (grpc_static_slice_table[34]) /* "identity" */ #define GRPC_MDSTR_IDENTITY (grpc_static_slice_table[35]) -/* "gzip" */ -#define GRPC_MDSTR_GZIP (grpc_static_slice_table[36]) -/* "deflate" */ -#define GRPC_MDSTR_DEFLATE (grpc_static_slice_table[37]) /* "trailers" */ -#define GRPC_MDSTR_TRAILERS (grpc_static_slice_table[38]) +#define GRPC_MDSTR_TRAILERS (grpc_static_slice_table[36]) /* "application/grpc" */ -#define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table[39]) +#define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table[37]) /* "POST" */ -#define GRPC_MDSTR_POST (grpc_static_slice_table[40]) +#define GRPC_MDSTR_POST (grpc_static_slice_table[38]) /* "200" */ -#define GRPC_MDSTR_200 (grpc_static_slice_table[41]) +#define GRPC_MDSTR_200 (grpc_static_slice_table[39]) /* "404" */ -#define GRPC_MDSTR_404 (grpc_static_slice_table[42]) +#define GRPC_MDSTR_404 (grpc_static_slice_table[40]) /* "http" */ -#define GRPC_MDSTR_HTTP (grpc_static_slice_table[43]) +#define GRPC_MDSTR_HTTP (grpc_static_slice_table[41]) /* "https" */ -#define GRPC_MDSTR_HTTPS (grpc_static_slice_table[44]) +#define GRPC_MDSTR_HTTPS (grpc_static_slice_table[42]) /* "grpc" */ -#define GRPC_MDSTR_GRPC (grpc_static_slice_table[45]) +#define GRPC_MDSTR_GRPC (grpc_static_slice_table[43]) /* "GET" */ -#define GRPC_MDSTR_GET (grpc_static_slice_table[46]) +#define GRPC_MDSTR_GET (grpc_static_slice_table[44]) /* "PUT" */ -#define GRPC_MDSTR_PUT (grpc_static_slice_table[47]) +#define GRPC_MDSTR_PUT (grpc_static_slice_table[45]) /* "/" */ -#define GRPC_MDSTR_SLASH (grpc_static_slice_table[48]) +#define GRPC_MDSTR_SLASH (grpc_static_slice_table[46]) /* "/index.html" */ -#define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table[49]) +#define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table[47]) /* "204" */ -#define GRPC_MDSTR_204 (grpc_static_slice_table[50]) +#define GRPC_MDSTR_204 (grpc_static_slice_table[48]) /* "206" */ -#define GRPC_MDSTR_206 (grpc_static_slice_table[51]) +#define GRPC_MDSTR_206 (grpc_static_slice_table[49]) /* "304" */ -#define GRPC_MDSTR_304 (grpc_static_slice_table[52]) +#define GRPC_MDSTR_304 (grpc_static_slice_table[50]) /* "400" */ -#define GRPC_MDSTR_400 (grpc_static_slice_table[53]) +#define GRPC_MDSTR_400 (grpc_static_slice_table[51]) /* "500" */ -#define GRPC_MDSTR_500 (grpc_static_slice_table[54]) +#define GRPC_MDSTR_500 (grpc_static_slice_table[52]) /* "accept-charset" */ -#define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table[55]) +#define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table[53]) /* "gzip, deflate" */ -#define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table[56]) +#define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table[54]) /* "accept-language" */ -#define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table[57]) +#define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table[55]) /* "accept-ranges" */ -#define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table[58]) +#define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table[56]) /* "accept" */ -#define GRPC_MDSTR_ACCEPT (grpc_static_slice_table[59]) +#define GRPC_MDSTR_ACCEPT (grpc_static_slice_table[57]) /* "access-control-allow-origin" */ -#define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table[60]) +#define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table[58]) /* "age" */ -#define GRPC_MDSTR_AGE (grpc_static_slice_table[61]) +#define GRPC_MDSTR_AGE (grpc_static_slice_table[59]) /* "allow" */ -#define GRPC_MDSTR_ALLOW (grpc_static_slice_table[62]) +#define GRPC_MDSTR_ALLOW (grpc_static_slice_table[60]) /* "authorization" */ -#define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table[63]) +#define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table[61]) /* "cache-control" */ -#define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table[64]) +#define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table[62]) /* "content-disposition" */ -#define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table[65]) +#define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table[63]) /* "content-language" */ -#define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table[66]) +#define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table[64]) /* "content-length" */ -#define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table[67]) +#define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table[65]) /* "content-location" */ -#define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table[68]) +#define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table[66]) /* "content-range" */ -#define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table[69]) +#define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table[67]) /* "cookie" */ -#define GRPC_MDSTR_COOKIE (grpc_static_slice_table[70]) +#define GRPC_MDSTR_COOKIE (grpc_static_slice_table[68]) /* "date" */ -#define GRPC_MDSTR_DATE (grpc_static_slice_table[71]) +#define GRPC_MDSTR_DATE (grpc_static_slice_table[69]) /* "etag" */ -#define GRPC_MDSTR_ETAG (grpc_static_slice_table[72]) +#define GRPC_MDSTR_ETAG (grpc_static_slice_table[70]) /* "expect" */ -#define GRPC_MDSTR_EXPECT (grpc_static_slice_table[73]) +#define GRPC_MDSTR_EXPECT (grpc_static_slice_table[71]) /* "expires" */ -#define GRPC_MDSTR_EXPIRES (grpc_static_slice_table[74]) +#define GRPC_MDSTR_EXPIRES (grpc_static_slice_table[72]) /* "from" */ -#define GRPC_MDSTR_FROM (grpc_static_slice_table[75]) +#define GRPC_MDSTR_FROM (grpc_static_slice_table[73]) /* "if-match" */ -#define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table[76]) +#define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table[74]) /* "if-modified-since" */ -#define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table[77]) +#define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table[75]) /* "if-none-match" */ -#define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table[78]) +#define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table[76]) /* "if-range" */ -#define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table[79]) +#define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table[77]) /* "if-unmodified-since" */ -#define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table[80]) +#define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table[78]) /* "last-modified" */ -#define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table[81]) +#define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table[79]) /* "lb-cost-bin" */ -#define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table[82]) +#define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table[80]) /* "link" */ -#define GRPC_MDSTR_LINK (grpc_static_slice_table[83]) +#define GRPC_MDSTR_LINK (grpc_static_slice_table[81]) /* "location" */ -#define GRPC_MDSTR_LOCATION (grpc_static_slice_table[84]) +#define GRPC_MDSTR_LOCATION (grpc_static_slice_table[82]) /* "max-forwards" */ -#define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table[85]) +#define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table[83]) /* "proxy-authenticate" */ -#define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table[86]) +#define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table[84]) /* "proxy-authorization" */ -#define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table[87]) +#define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table[85]) /* "range" */ -#define GRPC_MDSTR_RANGE (grpc_static_slice_table[88]) +#define GRPC_MDSTR_RANGE (grpc_static_slice_table[86]) /* "referer" */ -#define GRPC_MDSTR_REFERER (grpc_static_slice_table[89]) +#define GRPC_MDSTR_REFERER (grpc_static_slice_table[87]) /* "refresh" */ -#define GRPC_MDSTR_REFRESH (grpc_static_slice_table[90]) +#define GRPC_MDSTR_REFRESH (grpc_static_slice_table[88]) /* "retry-after" */ -#define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table[91]) +#define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table[89]) /* "server" */ -#define GRPC_MDSTR_SERVER (grpc_static_slice_table[92]) +#define GRPC_MDSTR_SERVER (grpc_static_slice_table[90]) /* "set-cookie" */ -#define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table[93]) +#define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table[91]) /* "strict-transport-security" */ -#define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table[94]) +#define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table[92]) /* "transfer-encoding" */ -#define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table[95]) +#define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table[93]) /* "vary" */ -#define GRPC_MDSTR_VARY (grpc_static_slice_table[96]) +#define GRPC_MDSTR_VARY (grpc_static_slice_table[94]) /* "via" */ -#define GRPC_MDSTR_VIA (grpc_static_slice_table[97]) +#define GRPC_MDSTR_VIA (grpc_static_slice_table[95]) /* "www-authenticate" */ -#define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table[98]) +#define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table[96]) /* "identity,deflate" */ -#define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table[99]) +#define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table[97]) /* "identity,gzip" */ -#define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table[100]) +#define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table[98]) /* "deflate,gzip" */ -#define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table[101]) +#define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table[99]) /* "identity,deflate,gzip" */ #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \ - (grpc_static_slice_table[102]) + (grpc_static_slice_table[100]) extern const grpc_slice_refcount_vtable grpc_static_metadata_vtable; extern grpc_slice_refcount @@ -590,5 +586,4 @@ extern const uint8_t grpc_static_accept_stream_encoding_metadata[4]; (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table \ [grpc_static_accept_stream_encoding_metadata[(algs)]], \ GRPC_MDELEM_STORAGE_STATIC)) - #endif /* GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H */ diff --git a/src/core/tsi/alts_transport_security.cc b/src/core/tsi/alts_transport_security.cc index ddd75cbd02..1654d893d0 100644 --- a/src/core/tsi/alts_transport_security.cc +++ b/src/core/tsi/alts_transport_security.cc @@ -26,17 +26,36 @@ alts_shared_resource* alts_get_shared_resource(void) { return &g_alts_resource; } +static void grpc_tsi_alts_wait_for_cq_drain() { + gpr_mu_lock(&g_alts_resource.mu); + while (!g_alts_resource.is_cq_drained) { + gpr_cv_wait(&g_alts_resource.cv, &g_alts_resource.mu, + gpr_inf_future(GPR_CLOCK_REALTIME)); + } + gpr_mu_unlock(&g_alts_resource.mu); +} + +void grpc_tsi_alts_signal_for_cq_destroy() { + gpr_mu_lock(&g_alts_resource.mu); + g_alts_resource.is_cq_drained = true; + gpr_cv_signal(&g_alts_resource.cv); + gpr_mu_unlock(&g_alts_resource.mu); +} + void grpc_tsi_alts_init() { memset(&g_alts_resource, 0, sizeof(alts_shared_resource)); gpr_mu_init(&g_alts_resource.mu); + gpr_cv_init(&g_alts_resource.cv); } void grpc_tsi_alts_shutdown() { - gpr_mu_destroy(&g_alts_resource.mu); - if (g_alts_resource.cq == nullptr) { - return; + if (g_alts_resource.cq != nullptr) { + grpc_completion_queue_shutdown(g_alts_resource.cq); + grpc_tsi_alts_wait_for_cq_drain(); + grpc_completion_queue_destroy(g_alts_resource.cq); + grpc_channel_destroy(g_alts_resource.channel); + gpr_thd_join(g_alts_resource.thread_id); } - grpc_completion_queue_destroy(g_alts_resource.cq); - grpc_channel_destroy(g_alts_resource.channel); - gpr_thd_join(g_alts_resource.thread_id); + gpr_cv_destroy(&g_alts_resource.cv); + gpr_mu_destroy(&g_alts_resource.mu); } diff --git a/src/core/tsi/alts_transport_security.h b/src/core/tsi/alts_transport_security.h index c90e31478e..5d693d04af 100644 --- a/src/core/tsi/alts_transport_security.h +++ b/src/core/tsi/alts_transport_security.h @@ -28,10 +28,17 @@ typedef struct alts_shared_resource { grpc_channel* channel; grpc_completion_queue* cq; gpr_mu mu; + gpr_cv cv; + bool is_cq_drained; } alts_shared_resource; /* This method returns the address of alts_shared_resource object shared by all * TSI handshakes. */ alts_shared_resource* alts_get_shared_resource(void); +/* This method signals the thread that invokes grpc_tsi_alts_shutdown() to + * continue with destroying the cq as a part of shutdown process. */ + +void grpc_tsi_alts_signal_for_cq_destroy(void); + #endif /* GRPC_CORE_TSI_ALTS_TRANSPORT_SECURITY_H */ |