grpc 1.64.3 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +57 -58
- data/include/grpc/event_engine/event_engine.h +13 -6
- data/include/grpc/impl/channel_arg_names.h +7 -3
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/passive_listener.h +62 -0
- data/include/grpc/support/log.h +7 -17
- data/include/grpc/support/port_platform.h +3 -0
- data/src/core/channelz/channel_trace.cc +1 -1
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +3 -3
- data/src/core/channelz/channelz.h +7 -7
- data/src/core/channelz/channelz_registry.cc +4 -3
- data/src/core/client_channel/backup_poller.cc +4 -5
- data/src/core/client_channel/client_channel.cc +1324 -0
- data/src/core/client_channel/client_channel.h +243 -0
- data/src/core/client_channel/client_channel_filter.cc +266 -709
- data/src/core/client_channel/client_channel_filter.h +11 -64
- data/src/core/client_channel/client_channel_internal.h +16 -5
- data/src/core/client_channel/client_channel_plugin.cc +1 -14
- data/src/core/client_channel/client_channel_service_config.h +3 -3
- data/src/core/client_channel/config_selector.cc +1 -1
- data/src/core/client_channel/config_selector.h +1 -1
- data/src/core/client_channel/dynamic_filters.cc +3 -3
- data/src/core/client_channel/dynamic_filters.h +1 -3
- data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
- data/src/core/client_channel/load_balanced_call_destination.h +49 -0
- data/src/core/client_channel/retry_filter.cc +2 -9
- data/src/core/client_channel/retry_filter.h +2 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
- data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
- data/src/core/client_channel/retry_service_config.cc +4 -5
- data/src/core/client_channel/retry_service_config.h +3 -3
- data/src/core/client_channel/subchannel.cc +220 -112
- data/src/core/client_channel/subchannel.h +31 -18
- data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
- data/src/core/client_channel/subchannel_pool_interface.h +2 -4
- data/src/core/client_channel/subchannel_stream_client.cc +36 -49
- data/src/core/client_channel/subchannel_stream_client.h +2 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
- data/src/core/ext/filters/census/grpc_context.cc +2 -4
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
- data/src/core/ext/filters/http/client_authority_filter.h +1 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
- data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
- data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
- data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
- data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
- data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
- data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
- data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
- data/src/core/handshaker/handshaker.cc +6 -14
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
- data/src/core/handshaker/security/secure_endpoint.cc +38 -32
- data/src/core/handshaker/security/secure_endpoint.h +0 -2
- data/src/core/handshaker/security/security_handshaker.cc +25 -37
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
- data/src/core/lib/address_utils/parse_address.cc +27 -39
- data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
- data/src/core/lib/avl/avl.h +1 -1
- data/src/core/lib/channel/channel_args.cc +13 -17
- data/src/core/lib/channel/channel_args.h +19 -8
- data/src/core/lib/channel/channel_stack.cc +5 -63
- data/src/core/lib/channel/channel_stack.h +13 -37
- data/src/core/lib/channel/channel_stack_builder.h +0 -5
- data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
- data/src/core/lib/channel/connected_channel.cc +37 -676
- data/src/core/lib/channel/promise_based_filter.cc +41 -47
- data/src/core/lib/channel/promise_based_filter.h +124 -477
- data/src/core/lib/channel/status_util.cc +1 -1
- data/src/core/lib/compression/compression.cc +1 -1
- data/src/core/lib/compression/message_compress.cc +6 -6
- data/src/core/lib/config/config_vars.cc +3 -8
- data/src/core/lib/config/config_vars.h +1 -5
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/trace.cc +43 -59
- data/src/core/lib/debug/trace.h +2 -97
- data/src/core/lib/debug/trace_flags.cc +255 -0
- data/src/core/lib/debug/trace_flags.h +133 -0
- data/src/core/lib/debug/trace_impl.h +115 -0
- data/src/core/lib/event_engine/ares_resolver.cc +5 -7
- data/src/core/lib/event_engine/ares_resolver.h +1 -3
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
- data/src/core/lib/event_engine/event_engine.cc +29 -4
- data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
- data/src/core/lib/event_engine/forkable.cc +4 -5
- data/src/core/lib/event_engine/forkable.h +0 -11
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
- data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
- data/src/core/lib/event_engine/shim.cc +1 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
- data/src/core/lib/event_engine/thread_local.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
- data/src/core/lib/event_engine/trace.h +6 -17
- data/src/core/lib/event_engine/windows/iocp.h +1 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
- data/src/core/lib/event_engine/windows/win_socket.h +4 -5
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
- data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
- data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
- data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
- data/src/core/lib/experiments/experiments.cc +35 -151
- data/src/core/lib/experiments/experiments.h +12 -45
- data/src/core/lib/gprpp/bitset.h +1 -1
- data/src/core/lib/gprpp/crash.cc +2 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
- data/src/core/lib/gprpp/dump_args.cc +54 -0
- data/src/core/lib/gprpp/dump_args.h +69 -0
- data/src/core/lib/gprpp/glob.cc +70 -0
- data/src/core/lib/gprpp/glob.h +29 -0
- data/src/core/lib/gprpp/per_cpu.cc +1 -1
- data/src/core/lib/gprpp/posix/stat.cc +3 -4
- data/src/core/lib/gprpp/posix/thd.cc +8 -9
- data/src/core/lib/gprpp/ref_counted.h +30 -22
- data/src/core/lib/gprpp/single_set_ptr.h +5 -3
- data/src/core/lib/gprpp/status_helper.cc +11 -30
- data/src/core/lib/gprpp/status_helper.h +3 -31
- data/src/core/lib/gprpp/time.cc +3 -4
- data/src/core/lib/gprpp/time.h +3 -2
- data/src/core/lib/gprpp/unique_type_name.h +1 -1
- data/src/core/lib/gprpp/validation_errors.cc +10 -1
- data/src/core/lib/gprpp/validation_errors.h +11 -0
- data/src/core/lib/gprpp/windows/stat.cc +3 -4
- data/src/core/lib/gprpp/windows/thd.cc +3 -2
- data/src/core/lib/gprpp/work_serializer.cc +48 -57
- data/src/core/lib/iomgr/buffer_list.cc +4 -2
- data/src/core/lib/iomgr/call_combiner.cc +18 -27
- data/src/core/lib/iomgr/call_combiner.h +1 -3
- data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
- data/src/core/lib/iomgr/closure.h +2 -4
- data/src/core/lib/iomgr/combiner.cc +6 -8
- data/src/core/lib/iomgr/combiner.h +0 -2
- data/src/core/lib/iomgr/endpoint.cc +0 -6
- data/src/core/lib/iomgr/endpoint.h +0 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
- data/src/core/lib/iomgr/error.cc +13 -21
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/ev_apple.cc +3 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
- data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
- data/src/core/lib/iomgr/ev_posix.cc +8 -9
- data/src/core/lib/iomgr/ev_posix.h +10 -7
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
- data/src/core/lib/iomgr/exec_ctx.cc +2 -2
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +6 -15
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/fork_posix.cc +8 -10
- data/src/core/lib/iomgr/fork_windows.cc +3 -1
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
- data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
- data/src/core/lib/iomgr/iocp_windows.cc +4 -3
- data/src/core/lib/iomgr/iomgr.cc +13 -17
- data/src/core/lib/iomgr/lockfree_event.cc +3 -5
- data/src/core/lib/iomgr/pollset.h +0 -2
- data/src/core/lib/iomgr/pollset_windows.cc +0 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
- data/src/core/lib/iomgr/socket_windows.cc +4 -6
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
- data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
- data/src/core/lib/iomgr/tcp_posix.cc +57 -84
- data/src/core/lib/iomgr/tcp_posix.h +0 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
- data/src/core/lib/iomgr/tcp_windows.cc +25 -41
- data/src/core/lib/iomgr/timer_generic.cc +17 -20
- data/src/core/lib/iomgr/timer_heap.cc +1 -1
- data/src/core/lib/iomgr/timer_manager.cc +17 -30
- data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
- data/src/core/lib/iomgr/vsock.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
- data/src/core/lib/promise/activity.h +27 -4
- data/src/core/lib/promise/cancel_callback.h +24 -0
- data/src/core/lib/promise/context.h +11 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -2
- data/src/core/lib/promise/detail/join_state.h +354 -398
- data/src/core/lib/promise/detail/promise_like.h +6 -5
- data/src/core/lib/promise/detail/seq_state.h +1178 -1178
- data/src/core/lib/promise/for_each.h +6 -6
- data/src/core/lib/promise/interceptor_list.h +6 -7
- data/src/core/lib/promise/latch.h +9 -9
- data/src/core/lib/promise/map.h +17 -0
- data/src/core/lib/promise/observable.h +182 -0
- data/src/core/lib/promise/party.cc +7 -8
- data/src/core/lib/promise/party.h +10 -8
- data/src/core/lib/promise/pipe.h +16 -35
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/status_flag.h +2 -0
- data/src/core/lib/resource_quota/arena.cc +56 -79
- data/src/core/lib/resource_quota/arena.h +118 -209
- data/src/core/lib/resource_quota/memory_quota.cc +12 -13
- data/src/core/lib/resource_quota/memory_quota.h +2 -3
- data/src/core/lib/resource_quota/periodic_update.cc +1 -1
- data/src/core/lib/resource_quota/resource_quota.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
- data/src/core/lib/security/authorization/matchers.cc +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
- data/src/core/lib/security/context/security_context.cc +12 -13
- data/src/core/lib/security/context/security_context.h +31 -8
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
- data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
- data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
- data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
- data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
- data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
- data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
- data/src/core/lib/security/security_connector/security_connector.cc +1 -4
- data/src/core/lib/security/security_connector/security_connector.h +1 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
- data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice.h +1 -1
- data/src/core/lib/slice/slice_refcount.h +2 -4
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/surface/api_trace.h +1 -3
- data/src/core/lib/surface/call.cc +64 -3738
- data/src/core/lib/surface/call.h +41 -143
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_utils.cc +276 -0
- data/src/core/lib/surface/call_utils.h +449 -0
- data/src/core/lib/surface/channel.cc +8 -3
- data/src/core/lib/surface/channel.h +10 -7
- data/src/core/lib/surface/channel_create.cc +14 -6
- data/src/core/lib/surface/channel_create.h +3 -2
- data/src/core/lib/surface/channel_init.cc +21 -77
- data/src/core/lib/surface/channel_init.h +19 -97
- data/src/core/lib/surface/client_call.cc +419 -0
- data/src/core/lib/surface/client_call.h +180 -0
- data/src/core/lib/surface/completion_queue.cc +28 -33
- data/src/core/lib/surface/completion_queue.h +0 -8
- data/src/core/lib/surface/filter_stack_call.cc +1157 -0
- data/src/core/lib/surface/filter_stack_call.h +369 -0
- data/src/core/lib/surface/init.cc +7 -6
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +40 -27
- data/src/core/lib/surface/legacy_channel.h +9 -18
- data/src/core/lib/surface/server_call.cc +222 -0
- data/src/core/lib/surface/server_call.h +167 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -5
- data/src/core/lib/transport/bdp_estimator.h +2 -4
- data/src/core/lib/transport/call_arena_allocator.h +9 -7
- data/src/core/lib/transport/call_destination.h +76 -0
- data/src/core/lib/transport/call_filters.cc +28 -10
- data/src/core/lib/transport/call_filters.h +128 -22
- data/src/core/lib/transport/call_spine.cc +5 -6
- data/src/core/lib/transport/call_spine.h +159 -334
- data/src/core/lib/transport/connectivity_state.cc +8 -10
- data/src/core/lib/transport/connectivity_state.h +0 -2
- data/src/core/lib/transport/interception_chain.cc +155 -0
- data/src/core/lib/transport/interception_chain.h +236 -0
- data/src/core/lib/transport/metadata_batch.h +10 -1
- data/src/core/lib/transport/metadata_info.h +1 -1
- data/src/core/lib/transport/transport.cc +3 -6
- data/src/core/lib/transport/transport.h +43 -40
- data/src/core/load_balancing/child_policy_handler.cc +8 -8
- data/src/core/load_balancing/endpoint_list.cc +5 -5
- data/src/core/load_balancing/endpoint_list.h +1 -1
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
- data/src/core/load_balancing/health_check_client.cc +10 -13
- data/src/core/load_balancing/lb_policy.cc +5 -8
- data/src/core/load_balancing/lb_policy.h +19 -3
- data/src/core/load_balancing/lb_policy_factory.h +1 -1
- data/src/core/load_balancing/lb_policy_registry.cc +2 -3
- data/src/core/load_balancing/lb_policy_registry.h +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +2 -4
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
- data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
- data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
- data/src/core/load_balancing/priority/priority.cc +26 -28
- data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
- data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
- data/src/core/load_balancing/rls/rls.cc +82 -82
- data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
- data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
- data/src/core/load_balancing/xds/cds.cc +14 -16
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
- data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
- data/src/core/load_balancing/xds/xds_override_host.h +3 -3
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
- data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
- data/src/core/resolver/binder/binder_resolver.cc +3 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
- data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
- data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
- data/src/core/resolver/endpoint_addresses.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.h +1 -1
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
- data/src/core/resolver/polling_resolver.cc +30 -35
- data/src/core/resolver/resolver.cc +2 -6
- data/src/core/resolver/resolver.h +0 -2
- data/src/core/resolver/resolver_registry.cc +6 -8
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
- data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
- data/src/core/resolver/xds/xds_resolver.cc +13 -15
- data/src/core/server/server.cc +269 -389
- data/src/core/server/server.h +37 -19
- data/src/core/server/server_call_tracer_filter.cc +7 -14
- data/src/core/server/server_config_selector.h +1 -1
- data/src/core/server/server_config_selector_filter.cc +3 -3
- data/src/core/server/server_interface.h +2 -0
- data/src/core/server/xds_channel_stack_modifier.cc +1 -1
- data/src/core/server/xds_channel_stack_modifier.h +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +1 -4
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_call_data.h +13 -11
- data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
- data/src/core/service_config/service_config_impl.cc +5 -5
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/service_config/service_config_parser.cc +3 -6
- data/src/core/service_config/service_config_parser.h +1 -1
- data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
- data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
- data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
- data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
- data/src/core/telemetry/metrics.cc +178 -0
- data/src/core/telemetry/metrics.h +562 -0
- data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats.h +5 -5
- data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
- data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
- data/src/core/tsi/fake_transport_security.cc +14 -17
- data/src/core/tsi/local_transport_security.cc +6 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
- data/src/core/tsi/ssl_transport_security.cc +76 -81
- data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
- data/src/core/tsi/ssl_transport_security_utils.h +11 -0
- data/src/core/tsi/transport_security.cc +0 -4
- data/src/core/tsi/transport_security.h +0 -2
- data/src/core/tsi/transport_security_interface.h +0 -4
- data/src/core/{lib/gpr → util}/alloc.h +3 -3
- data/src/core/{lib/gpr → util}/android/log.cc +0 -19
- data/src/core/{lib/gpr → util}/atm.cc +1 -1
- data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
- data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
- data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
- data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
- data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
- data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
- data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
- data/src/core/{lib/http → util/http_client}/parser.h +5 -6
- data/src/core/{lib → util}/json/json.h +5 -4
- data/src/core/{lib → util}/json/json_args.h +5 -5
- data/src/core/{lib → util}/json/json_channel_args.h +6 -6
- data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
- data/src/core/{lib → util}/json/json_object_loader.h +7 -7
- data/src/core/{lib → util}/json/json_reader.cc +3 -2
- data/src/core/{lib → util}/json/json_reader.h +6 -6
- data/src/core/{lib → util}/json/json_util.cc +4 -4
- data/src/core/{lib → util}/json/json_util.h +6 -6
- data/src/core/{lib → util}/json/json_writer.cc +3 -3
- data/src/core/{lib → util}/json/json_writer.h +6 -6
- data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
- data/src/core/util/log.cc +165 -0
- data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
- data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/spinlock.h +3 -3
- data/src/core/{lib/gpr → util}/string.cc +2 -2
- data/src/core/{lib/gpr → util}/string.h +3 -3
- data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
- data/src/core/{lib/gpr → util}/time_precise.h +3 -3
- data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
- data/src/core/{lib/gpr → util}/useful.h +3 -3
- data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
- data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
- data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
- data/src/core/xds/grpc/certificate_provider_store.h +4 -4
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
- data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
- data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
- data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
- data/src/core/xds/grpc/xds_client_grpc.h +2 -2
- data/src/core/xds/grpc/xds_cluster.cc +4 -5
- data/src/core/xds/grpc/xds_cluster.h +1 -1
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
- data/src/core/xds/grpc/xds_common_types.cc +1 -1
- data/src/core/xds/grpc/xds_common_types.h +1 -1
- data/src/core/xds/grpc/xds_endpoint.cc +4 -5
- data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
- data/src/core/xds/grpc/xds_http_filters.h +2 -2
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
- data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
- data/src/core/xds/grpc/xds_listener.cc +4 -6
- data/src/core/xds/grpc/xds_route_config.cc +7 -8
- data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
- data/src/core/xds/xds_client/xds_api.cc +5 -9
- data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
- data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
- data/src/core/xds/xds_client/xds_client.cc +39 -45
- data/src/core/xds/xds_client/xds_client.h +0 -3
- data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
- data/src/core/xds/xds_client/xds_client_stats.h +2 -2
- data/src/ruby/bin/math_pb.rb +1 -22
- data/src/ruby/ext/grpc/rb_call.c +8 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
- data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/ext/grpc/rb_server.c +39 -22
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
- data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
- metadata +103 -93
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
- data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
- data/src/core/handshaker/security/tsi_error.cc +0 -31
- data/src/core/handshaker/security/tsi_error.h +0 -30
- data/src/core/lib/channel/channel_stack_trace.cc +0 -19
- data/src/core/lib/channel/channel_stack_trace.h +0 -24
- data/src/core/lib/channel/context.h +0 -105
- data/src/core/lib/channel/metrics.cc +0 -334
- data/src/core/lib/channel/metrics.h +0 -365
- data/src/core/lib/event_engine/trace.cc +0 -25
- data/src/core/lib/gpr/log.cc +0 -166
- data/src/core/lib/iomgr/ev_windows.cc +0 -30
- data/src/core/lib/promise/trace.cc +0 -20
- data/src/core/lib/promise/trace.h +0 -24
- data/src/core/lib/resource_quota/trace.cc +0 -19
- data/src/core/lib/resource_quota/trace.h +0 -24
- data/src/core/lib/slice/slice_refcount.cc +0 -20
- data/src/core/lib/surface/api_trace.cc +0 -25
- data/src/core/lib/surface/call_trace.h +0 -24
- data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
- data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
- data/src/core/lib/transport/batch_builder.cc +0 -172
- data/src/core/lib/transport/batch_builder.h +0 -474
- data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
- data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
- /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
- /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
- /data/src/core/{lib/gpr → util}/time.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
data/src/core/server/server.h
CHANGED
@@ -38,14 +38,15 @@
|
|
38
38
|
#include "absl/strings/string_view.h"
|
39
39
|
#include "absl/types/optional.h"
|
40
40
|
|
41
|
+
#include <grpc/compression.h>
|
41
42
|
#include <grpc/grpc.h>
|
43
|
+
#include <grpc/passive_listener.h>
|
42
44
|
#include <grpc/slice.h>
|
43
45
|
#include <grpc/support/port_platform.h>
|
44
46
|
#include <grpc/support/time.h>
|
45
47
|
|
46
48
|
#include "src/core/channelz/channelz.h"
|
47
49
|
#include "src/core/lib/backoff/random_early_detection.h"
|
48
|
-
#include "src/core/lib/channel/call_tracer.h"
|
49
50
|
#include "src/core/lib/channel/channel_args.h"
|
50
51
|
#include "src/core/lib/channel/channel_fwd.h"
|
51
52
|
#include "src/core/lib/channel/channel_stack.h"
|
@@ -68,14 +69,16 @@
|
|
68
69
|
#include "src/core/lib/transport/metadata_batch.h"
|
69
70
|
#include "src/core/lib/transport/transport.h"
|
70
71
|
#include "src/core/server/server_interface.h"
|
72
|
+
#include "src/core/telemetry/call_tracer.h"
|
71
73
|
|
72
74
|
#define GRPC_ARG_SERVER_MAX_PENDING_REQUESTS "grpc.server.max_pending_requests"
|
73
75
|
#define GRPC_ARG_SERVER_MAX_PENDING_REQUESTS_HARD_LIMIT \
|
74
76
|
"grpc.server.max_pending_requests_hard_limit"
|
75
77
|
|
76
78
|
namespace grpc_core {
|
77
|
-
|
78
|
-
|
79
|
+
namespace experimental {
|
80
|
+
class PassiveListenerImpl;
|
81
|
+
} // namespace experimental
|
79
82
|
|
80
83
|
class Server : public ServerInterface,
|
81
84
|
public InternallyRefCounted<Server>,
|
@@ -112,7 +115,7 @@ class Server : public ServerInterface,
|
|
112
115
|
/// Interface for listeners.
|
113
116
|
/// Implementations must override the Orphan() method, which should stop
|
114
117
|
/// listening and initiate destruction of the listener.
|
115
|
-
class ListenerInterface : public
|
118
|
+
class ListenerInterface : public InternallyRefCounted<ListenerInterface> {
|
116
119
|
public:
|
117
120
|
~ListenerInterface() override = default;
|
118
121
|
|
@@ -211,56 +214,57 @@ class Server : public ServerInterface,
|
|
211
214
|
|
212
215
|
void SendGoaways() ABSL_LOCKS_EXCLUDED(mu_global_, mu_call_);
|
213
216
|
|
217
|
+
grpc_compression_options compression_options() const override {
|
218
|
+
return compression_options_;
|
219
|
+
}
|
220
|
+
|
214
221
|
private:
|
222
|
+
// note: the grpc_core::Server redundant namespace qualification is
|
223
|
+
// required for older gcc versions.
|
224
|
+
// TODO(yashykt): eliminate this friend statement as part of your upcoming
|
225
|
+
// server listener refactoring.
|
226
|
+
friend absl::Status(::grpc_server_add_passive_listener)(
|
227
|
+
grpc_core::Server* server, grpc_server_credentials* credentials,
|
228
|
+
std::shared_ptr<grpc_core::experimental::PassiveListenerImpl>
|
229
|
+
passive_listener);
|
215
230
|
struct RequestedCall;
|
216
231
|
|
217
232
|
class RequestMatcherInterface;
|
218
|
-
class
|
219
|
-
class RealRequestMatcherPromises;
|
233
|
+
class RealRequestMatcher;
|
220
234
|
class AllocatingRequestMatcherBase;
|
221
235
|
class AllocatingRequestMatcherBatch;
|
222
236
|
class AllocatingRequestMatcherRegistered;
|
223
237
|
|
224
|
-
class ChannelData final
|
238
|
+
class ChannelData final {
|
225
239
|
public:
|
226
240
|
ChannelData() = default;
|
227
241
|
~ChannelData();
|
228
242
|
|
229
243
|
void InitTransport(RefCountedPtr<Server> server,
|
230
|
-
|
244
|
+
RefCountedPtr<Channel> channel, size_t cq_idx,
|
231
245
|
Transport* transport, intptr_t channelz_socket_uuid);
|
232
246
|
|
233
247
|
RefCountedPtr<Server> server() const { return server_; }
|
234
248
|
Channel* channel() const { return channel_.get(); }
|
235
249
|
size_t cq_idx() const { return cq_idx_; }
|
236
250
|
|
237
|
-
RegisteredMethod* GetRegisteredMethod(const absl::string_view& host,
|
238
|
-
const absl::string_view& path);
|
239
251
|
// Filter vtable functions.
|
240
252
|
static grpc_error_handle InitChannelElement(
|
241
253
|
grpc_channel_element* elem, grpc_channel_element_args* args);
|
242
254
|
static void DestroyChannelElement(grpc_channel_element* elem);
|
243
|
-
static ArenaPromise<ServerMetadataHandle> MakeCallPromise(
|
244
|
-
grpc_channel_element* elem, CallArgs call_args, NextPromiseFactory);
|
245
|
-
void InitCall(RefCountedPtr<CallSpineInterface> call);
|
246
|
-
|
247
|
-
Arena* CreateArena() override;
|
248
|
-
absl::StatusOr<CallInitiator> CreateCall(
|
249
|
-
ClientMetadataHandle client_initial_metadata, Arena* arena) override;
|
250
255
|
|
251
256
|
private:
|
252
257
|
class ConnectivityWatcher;
|
253
258
|
|
254
259
|
static void AcceptStream(void* arg, Transport* /*transport*/,
|
255
260
|
const void* transport_server_data);
|
256
|
-
void SetRegisteredMethodOnMetadata(ClientMetadata& metadata);
|
257
261
|
|
258
262
|
void Destroy() ABSL_EXCLUSIVE_LOCKS_REQUIRED(server_->mu_global_);
|
259
263
|
|
260
264
|
static void FinishDestroy(void* arg, grpc_error_handle error);
|
261
265
|
|
262
266
|
RefCountedPtr<Server> server_;
|
263
|
-
|
267
|
+
RefCountedPtr<Channel> channel_;
|
264
268
|
// The index into Server::cqs_ of the CQ used as a starting point for
|
265
269
|
// where to publish new incoming calls.
|
266
270
|
size_t cq_idx_;
|
@@ -384,6 +388,12 @@ class Server : public ServerInterface,
|
|
384
388
|
using is_transparent = void;
|
385
389
|
};
|
386
390
|
|
391
|
+
class TransportConnectivityWatcher;
|
392
|
+
|
393
|
+
RegisteredMethod* GetRegisteredMethod(const absl::string_view& host,
|
394
|
+
const absl::string_view& path);
|
395
|
+
void SetRegisteredMethodOnMetadata(ClientMetadata& metadata);
|
396
|
+
|
387
397
|
static void ListenerDestroyDone(void* arg, grpc_error_handle error);
|
388
398
|
|
389
399
|
static void DoneShutdownEvent(void* server,
|
@@ -445,6 +455,10 @@ class Server : public ServerInterface,
|
|
445
455
|
return shutdown_refs_.load(std::memory_order_acquire) == 0;
|
446
456
|
}
|
447
457
|
|
458
|
+
auto MatchAndPublishCall(CallHandler call_handler);
|
459
|
+
absl::StatusOr<RefCountedPtr<UnstartedCallDestination>> MakeCallDestination(
|
460
|
+
const ChannelArgs& args);
|
461
|
+
|
448
462
|
ChannelArgs const channel_args_;
|
449
463
|
RefCountedPtr<channelz::ServerNode> channelz_node_;
|
450
464
|
std::unique_ptr<grpc_server_config_fetcher> config_fetcher_;
|
@@ -453,6 +467,7 @@ class Server : public ServerInterface,
|
|
453
467
|
std::vector<grpc_completion_queue*> cqs_;
|
454
468
|
std::vector<grpc_pollset*> pollsets_;
|
455
469
|
bool started_ = false;
|
470
|
+
const grpc_compression_options compression_options_;
|
456
471
|
|
457
472
|
// The two following mutexes control access to server-state.
|
458
473
|
// mu_global_ controls access to non-call-related state (e.g., channel state).
|
@@ -500,6 +515,9 @@ class Server : public ServerInterface,
|
|
500
515
|
absl::BitGen bitgen_ ABSL_GUARDED_BY(mu_call_);
|
501
516
|
|
502
517
|
std::list<ChannelData*> channels_;
|
518
|
+
absl::flat_hash_set<OrphanablePtr<ServerTransport>> connections_
|
519
|
+
ABSL_GUARDED_BY(mu_global_);
|
520
|
+
size_t connections_open_ ABSL_GUARDED_BY(mu_global_) = 0;
|
503
521
|
|
504
522
|
std::list<Listener> listeners_;
|
505
523
|
size_t listeners_destroyed_ = 0;
|
@@ -26,11 +26,9 @@
|
|
26
26
|
#include <grpc/support/port_platform.h>
|
27
27
|
|
28
28
|
#include "src/core/lib/channel/call_finalization.h"
|
29
|
-
#include "src/core/lib/channel/call_tracer.h"
|
30
29
|
#include "src/core/lib/channel/channel_args.h"
|
31
30
|
#include "src/core/lib/channel/channel_fwd.h"
|
32
31
|
#include "src/core/lib/channel/channel_stack.h"
|
33
|
-
#include "src/core/lib/channel/context.h"
|
34
32
|
#include "src/core/lib/channel/promise_based_filter.h"
|
35
33
|
#include "src/core/lib/config/core_configuration.h"
|
36
34
|
#include "src/core/lib/promise/arena_promise.h"
|
@@ -40,6 +38,7 @@
|
|
40
38
|
#include "src/core/lib/promise/pipe.h"
|
41
39
|
#include "src/core/lib/surface/channel_stack_type.h"
|
42
40
|
#include "src/core/lib/transport/transport.h"
|
41
|
+
#include "src/core/telemetry/call_tracer.h"
|
43
42
|
|
44
43
|
namespace grpc_core {
|
45
44
|
|
@@ -56,42 +55,37 @@ class ServerCallTracerFilter
|
|
56
55
|
class Call {
|
57
56
|
public:
|
58
57
|
void OnClientInitialMetadata(ClientMetadata& client_initial_metadata) {
|
59
|
-
auto* call_tracer =
|
58
|
+
auto* call_tracer = MaybeGetContext<ServerCallTracer>();
|
60
59
|
if (call_tracer == nullptr) return;
|
61
60
|
call_tracer->RecordReceivedInitialMetadata(&client_initial_metadata);
|
62
61
|
}
|
63
62
|
|
64
63
|
void OnServerInitialMetadata(ServerMetadata& server_initial_metadata) {
|
65
|
-
auto* call_tracer =
|
64
|
+
auto* call_tracer = MaybeGetContext<ServerCallTracer>();
|
66
65
|
if (call_tracer == nullptr) return;
|
67
66
|
call_tracer->RecordSendInitialMetadata(&server_initial_metadata);
|
68
67
|
}
|
69
68
|
|
70
69
|
void OnFinalize(const grpc_call_final_info* final_info) {
|
71
|
-
auto* call_tracer =
|
70
|
+
auto* call_tracer = MaybeGetContext<ServerCallTracer>();
|
72
71
|
if (call_tracer == nullptr) return;
|
73
72
|
call_tracer->RecordEnd(final_info);
|
74
73
|
}
|
75
74
|
|
76
75
|
void OnServerTrailingMetadata(ServerMetadata& server_trailing_metadata) {
|
77
|
-
auto* call_tracer =
|
76
|
+
auto* call_tracer = MaybeGetContext<ServerCallTracer>();
|
78
77
|
if (call_tracer == nullptr) return;
|
79
78
|
call_tracer->RecordSendTrailingMetadata(&server_trailing_metadata);
|
80
79
|
}
|
81
80
|
|
82
81
|
static const NoInterceptor OnClientToServerMessage;
|
82
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
83
83
|
static const NoInterceptor OnServerToClientMessage;
|
84
|
-
|
85
|
-
private:
|
86
|
-
static ServerCallTracer* CallTracer() {
|
87
|
-
auto* call_context = GetContext<grpc_call_context_element>();
|
88
|
-
return static_cast<ServerCallTracer*>(
|
89
|
-
call_context[GRPC_CONTEXT_CALL_TRACER].value);
|
90
|
-
}
|
91
84
|
};
|
92
85
|
};
|
93
86
|
|
94
87
|
const NoInterceptor ServerCallTracerFilter::Call::OnClientToServerMessage;
|
88
|
+
const NoInterceptor ServerCallTracerFilter::Call::OnClientToServerHalfClose;
|
95
89
|
const NoInterceptor ServerCallTracerFilter::Call::OnServerToClientMessage;
|
96
90
|
|
97
91
|
const grpc_channel_filter ServerCallTracerFilter::kFilter =
|
@@ -108,7 +102,6 @@ ServerCallTracerFilter::Create(const ChannelArgs& /*args*/,
|
|
108
102
|
} // namespace
|
109
103
|
|
110
104
|
void RegisterServerCallTracerFilter(CoreConfiguration::Builder* builder) {
|
111
|
-
if (IsChaoticGoodEnabled()) return;
|
112
105
|
builder->channel_init()->RegisterFilter<ServerCallTracerFilter>(
|
113
106
|
GRPC_SERVER_CHANNEL);
|
114
107
|
}
|
@@ -24,13 +24,13 @@
|
|
24
24
|
|
25
25
|
#include <grpc/support/port_platform.h>
|
26
26
|
|
27
|
-
#include "src/core/lib/gpr/useful.h"
|
28
27
|
#include "src/core/lib/gprpp/dual_ref_counted.h"
|
29
28
|
#include "src/core/lib/gprpp/ref_counted.h"
|
30
29
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
31
30
|
#include "src/core/lib/transport/metadata_batch.h"
|
32
31
|
#include "src/core/service_config/service_config.h"
|
33
32
|
#include "src/core/service_config/service_config_parser.h"
|
33
|
+
#include "src/core/util/useful.h"
|
34
34
|
|
35
35
|
namespace grpc_core {
|
36
36
|
|
@@ -28,7 +28,6 @@
|
|
28
28
|
#include <grpc/support/port_platform.h>
|
29
29
|
|
30
30
|
#include "src/core/lib/channel/channel_args.h"
|
31
|
-
#include "src/core/lib/channel/context.h"
|
32
31
|
#include "src/core/lib/channel/promise_based_filter.h"
|
33
32
|
#include "src/core/lib/event_engine/event_engine_context.h"
|
34
33
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
@@ -72,6 +71,7 @@ class ServerConfigSelectorFilter final
|
|
72
71
|
static const NoInterceptor OnServerInitialMetadata;
|
73
72
|
static const NoInterceptor OnServerTrailingMetadata;
|
74
73
|
static const NoInterceptor OnClientToServerMessage;
|
74
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
75
75
|
static const NoInterceptor OnServerToClientMessage;
|
76
76
|
static const NoInterceptor OnFinalize;
|
77
77
|
};
|
@@ -148,8 +148,7 @@ absl::Status ServerConfigSelectorFilter::Call::OnClientInitialMetadata(
|
|
148
148
|
return absl::UnavailableError(StatusToString(call_config.status()));
|
149
149
|
}
|
150
150
|
auto* service_config_call_data =
|
151
|
-
GetContext<Arena>()->New<ServiceConfigCallData>(
|
152
|
-
GetContext<Arena>(), GetContext<grpc_call_context_element>());
|
151
|
+
GetContext<Arena>()->New<ServiceConfigCallData>(GetContext<Arena>());
|
153
152
|
service_config_call_data->SetServiceConfig(
|
154
153
|
std::move(call_config->service_config), call_config->method_configs);
|
155
154
|
return absl::OkStatus();
|
@@ -158,6 +157,7 @@ absl::Status ServerConfigSelectorFilter::Call::OnClientInitialMetadata(
|
|
158
157
|
const NoInterceptor ServerConfigSelectorFilter::Call::OnServerInitialMetadata;
|
159
158
|
const NoInterceptor ServerConfigSelectorFilter::Call::OnServerTrailingMetadata;
|
160
159
|
const NoInterceptor ServerConfigSelectorFilter::Call::OnClientToServerMessage;
|
160
|
+
const NoInterceptor ServerConfigSelectorFilter::Call::OnClientToServerHalfClose;
|
161
161
|
const NoInterceptor ServerConfigSelectorFilter::Call::OnServerToClientMessage;
|
162
162
|
const NoInterceptor ServerConfigSelectorFilter::Call::OnFinalize;
|
163
163
|
|
@@ -17,6 +17,7 @@
|
|
17
17
|
#ifndef GRPC_SRC_CORE_SERVER_SERVER_INTERFACE_H
|
18
18
|
#define GRPC_SRC_CORE_SERVER_SERVER_INTERFACE_H
|
19
19
|
|
20
|
+
#include <grpc/impl/compression_types.h>
|
20
21
|
#include <grpc/support/port_platform.h>
|
21
22
|
|
22
23
|
#include "src/core/channelz/channelz.h"
|
@@ -36,6 +37,7 @@ class ServerInterface {
|
|
36
37
|
virtual const ChannelArgs& channel_args() const = 0;
|
37
38
|
virtual channelz::ServerNode* channelz_node() const = 0;
|
38
39
|
virtual ServerCallTracerFactory* server_call_tracer_factory() const = 0;
|
40
|
+
virtual grpc_compression_options compression_options() const = 0;
|
39
41
|
};
|
40
42
|
|
41
43
|
} // namespace grpc_core
|
@@ -27,9 +27,9 @@
|
|
27
27
|
#include "src/core/lib/channel/channel_args.h"
|
28
28
|
#include "src/core/lib/channel/channel_stack.h"
|
29
29
|
#include "src/core/lib/config/core_configuration.h"
|
30
|
-
#include "src/core/lib/gpr/useful.h"
|
31
30
|
#include "src/core/lib/surface/channel_init.h"
|
32
31
|
#include "src/core/lib/surface/channel_stack_type.h"
|
32
|
+
#include "src/core/util/useful.h"
|
33
33
|
|
34
34
|
namespace grpc_core {
|
35
35
|
namespace {
|
@@ -29,9 +29,9 @@
|
|
29
29
|
|
30
30
|
#include "src/core/lib/channel/channel_fwd.h"
|
31
31
|
#include "src/core/lib/channel/channel_stack_builder.h"
|
32
|
-
#include "src/core/lib/gpr/useful.h"
|
33
32
|
#include "src/core/lib/gprpp/ref_counted.h"
|
34
33
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
34
|
+
#include "src/core/util/useful.h"
|
35
35
|
|
36
36
|
namespace grpc_core {
|
37
37
|
|
@@ -95,9 +95,6 @@ namespace {
|
|
95
95
|
|
96
96
|
using ReadDelayHandle = XdsClient::ReadDelayHandle;
|
97
97
|
|
98
|
-
TraceFlag grpc_xds_server_config_fetcher_trace(false,
|
99
|
-
"xds_server_config_fetcher");
|
100
|
-
|
101
98
|
// A server config fetcher that fetches the information for configuring server
|
102
99
|
// listeners from the xDS control plane.
|
103
100
|
class XdsServerConfigFetcher final : public grpc_server_config_fetcher {
|
@@ -587,7 +584,7 @@ XdsServerConfigFetcher::ListenerWatcher::ListenerWatcher(
|
|
587
584
|
void XdsServerConfigFetcher::ListenerWatcher::OnResourceChanged(
|
588
585
|
std::shared_ptr<const XdsListenerResource> listener,
|
589
586
|
RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) {
|
590
|
-
if (GRPC_TRACE_FLAG_ENABLED(
|
587
|
+
if (GRPC_TRACE_FLAG_ENABLED(xds_server_config_fetcher)) {
|
591
588
|
gpr_log(GPR_INFO,
|
592
589
|
"[ListenerWatcher %p] Received LDS update from xds client %p: %s",
|
593
590
|
this, xds_client_.get(), listener->ToString().c_str());
|
@@ -24,9 +24,9 @@
|
|
24
24
|
#include <grpc/slice.h>
|
25
25
|
#include <grpc/support/port_platform.h>
|
26
26
|
|
27
|
-
#include "src/core/lib/gpr/useful.h"
|
28
27
|
#include "src/core/lib/gprpp/ref_counted.h"
|
29
28
|
#include "src/core/service_config/service_config_parser.h"
|
29
|
+
#include "src/core/util/useful.h"
|
30
30
|
|
31
31
|
// The main purpose of the code here is to parse the service config in
|
32
32
|
// JSON form, which will look like this:
|
@@ -24,7 +24,6 @@
|
|
24
24
|
|
25
25
|
#include <grpc/support/port_platform.h>
|
26
26
|
|
27
|
-
#include "src/core/lib/channel/context.h"
|
28
27
|
#include "src/core/lib/gprpp/chunked_vector.h"
|
29
28
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
30
29
|
#include "src/core/lib/gprpp/unique_type_name.h"
|
@@ -49,11 +48,7 @@ class ServiceConfigCallData {
|
|
49
48
|
virtual UniqueTypeName type() const = 0;
|
50
49
|
};
|
51
50
|
|
52
|
-
ServiceConfigCallData(Arena* arena
|
53
|
-
: call_attributes_(arena) {
|
54
|
-
call_context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value = this;
|
55
|
-
call_context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].destroy = Destroy;
|
56
|
-
}
|
51
|
+
explicit ServiceConfigCallData(Arena* arena);
|
57
52
|
|
58
53
|
virtual ~ServiceConfigCallData() = default;
|
59
54
|
|
@@ -101,16 +96,23 @@ class ServiceConfigCallData {
|
|
101
96
|
}
|
102
97
|
|
103
98
|
private:
|
104
|
-
static void Destroy(void* ptr) {
|
105
|
-
auto* self = static_cast<ServiceConfigCallData*>(ptr);
|
106
|
-
self->~ServiceConfigCallData();
|
107
|
-
}
|
108
|
-
|
109
99
|
RefCountedPtr<ServiceConfig> service_config_;
|
110
100
|
const ServiceConfigParser::ParsedConfigVector* method_configs_ = nullptr;
|
111
101
|
ChunkedVector<CallAttributeInterface*, 4> call_attributes_;
|
112
102
|
};
|
113
103
|
|
104
|
+
template <>
|
105
|
+
struct ArenaContextType<ServiceConfigCallData> {
|
106
|
+
static void Destroy(ServiceConfigCallData* ptr) {
|
107
|
+
ptr->~ServiceConfigCallData();
|
108
|
+
}
|
109
|
+
};
|
110
|
+
|
111
|
+
inline ServiceConfigCallData::ServiceConfigCallData(Arena* arena)
|
112
|
+
: call_attributes_(arena) {
|
113
|
+
arena->SetContext<ServiceConfigCallData>(this);
|
114
|
+
}
|
115
|
+
|
114
116
|
} // namespace grpc_core
|
115
117
|
|
116
118
|
#endif // GRPC_SRC_CORE_SERVICE_CONFIG_SERVICE_CONFIG_CALL_DATA_H
|
@@ -22,6 +22,7 @@
|
|
22
22
|
#include <string>
|
23
23
|
#include <utility>
|
24
24
|
|
25
|
+
#include "absl/log/log.h"
|
25
26
|
#include "absl/status/status.h"
|
26
27
|
#include "absl/status/statusor.h"
|
27
28
|
#include "absl/types/optional.h"
|
@@ -34,7 +35,6 @@
|
|
34
35
|
#include "src/core/lib/channel/channel_args.h"
|
35
36
|
#include "src/core/lib/channel/channel_fwd.h"
|
36
37
|
#include "src/core/lib/channel/channel_stack.h"
|
37
|
-
#include "src/core/lib/channel/context.h"
|
38
38
|
#include "src/core/lib/channel/promise_based_filter.h"
|
39
39
|
#include "src/core/lib/config/core_configuration.h"
|
40
40
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
@@ -69,7 +69,7 @@ class ServiceConfigChannelArgFilter final
|
|
69
69
|
auto service_config =
|
70
70
|
ServiceConfigImpl::Create(args, *service_config_str);
|
71
71
|
if (!service_config.ok()) {
|
72
|
-
|
72
|
+
LOG(ERROR) << service_config.status().ToString();
|
73
73
|
} else {
|
74
74
|
service_config_ = std::move(*service_config);
|
75
75
|
}
|
@@ -83,6 +83,7 @@ class ServiceConfigChannelArgFilter final
|
|
83
83
|
static const NoInterceptor OnServerInitialMetadata;
|
84
84
|
static const NoInterceptor OnServerTrailingMetadata;
|
85
85
|
static const NoInterceptor OnClientToServerMessage;
|
86
|
+
static const NoInterceptor OnClientToServerHalfClose;
|
86
87
|
static const NoInterceptor OnServerToClientMessage;
|
87
88
|
static const NoInterceptor OnFinalize;
|
88
89
|
};
|
@@ -97,6 +98,8 @@ const NoInterceptor
|
|
97
98
|
ServiceConfigChannelArgFilter::Call::OnServerTrailingMetadata;
|
98
99
|
const NoInterceptor
|
99
100
|
ServiceConfigChannelArgFilter::Call::OnClientToServerMessage;
|
101
|
+
const NoInterceptor
|
102
|
+
ServiceConfigChannelArgFilter::Call::OnClientToServerHalfClose;
|
100
103
|
const NoInterceptor
|
101
104
|
ServiceConfigChannelArgFilter::Call::OnServerToClientMessage;
|
102
105
|
const NoInterceptor ServiceConfigChannelArgFilter::Call::OnFinalize;
|
@@ -109,8 +112,7 @@ void ServiceConfigChannelArgFilter::Call::OnClientInitialMetadata(
|
|
109
112
|
md.get_pointer(HttpPathMetadata())->c_slice());
|
110
113
|
}
|
111
114
|
auto* arena = GetContext<Arena>();
|
112
|
-
auto* service_config_call_data = arena->New<ServiceConfigCallData>(
|
113
|
-
arena, GetContext<grpc_call_context_element>());
|
115
|
+
auto* service_config_call_data = arena->New<ServiceConfigCallData>(arena);
|
114
116
|
service_config_call_data->SetServiceConfig(filter->service_config_,
|
115
117
|
method_configs);
|
116
118
|
}
|
@@ -31,14 +31,14 @@
|
|
31
31
|
#include "src/core/lib/config/core_configuration.h"
|
32
32
|
#include "src/core/lib/gprpp/memory.h"
|
33
33
|
#include "src/core/lib/gprpp/validation_errors.h"
|
34
|
-
#include "src/core/lib/json/json.h"
|
35
|
-
#include "src/core/lib/json/json_args.h"
|
36
|
-
#include "src/core/lib/json/json_object_loader.h"
|
37
|
-
#include "src/core/lib/json/json_reader.h"
|
38
|
-
#include "src/core/lib/json/json_writer.h"
|
39
34
|
#include "src/core/lib/slice/slice.h"
|
40
35
|
#include "src/core/lib/slice/slice_internal.h"
|
41
36
|
#include "src/core/service_config/service_config_parser.h"
|
37
|
+
#include "src/core/util/json/json.h"
|
38
|
+
#include "src/core/util/json/json_args.h"
|
39
|
+
#include "src/core/util/json/json_object_loader.h"
|
40
|
+
#include "src/core/util/json/json_reader.h"
|
41
|
+
#include "src/core/util/json/json_writer.h"
|
42
42
|
|
43
43
|
namespace grpc_core {
|
44
44
|
|
@@ -35,10 +35,10 @@
|
|
35
35
|
#include "src/core/lib/channel/channel_args.h"
|
36
36
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
37
37
|
#include "src/core/lib/gprpp/validation_errors.h"
|
38
|
-
#include "src/core/lib/json/json.h"
|
39
38
|
#include "src/core/lib/slice/slice_internal.h"
|
40
39
|
#include "src/core/service_config/service_config.h"
|
41
40
|
#include "src/core/service_config/service_config_parser.h"
|
41
|
+
#include "src/core/util/json/json.h"
|
42
42
|
|
43
43
|
// The main purpose of the code here is to parse the service config in
|
44
44
|
// JSON form, which will look like this:
|
@@ -20,9 +20,8 @@
|
|
20
20
|
|
21
21
|
#include <string>
|
22
22
|
|
23
|
-
#include "absl/
|
23
|
+
#include "absl/log/log.h"
|
24
24
|
|
25
|
-
#include <grpc/support/log.h>
|
26
25
|
#include <grpc/support/port_platform.h>
|
27
26
|
|
28
27
|
namespace grpc_core {
|
@@ -35,10 +34,8 @@ void ServiceConfigParser::Builder::RegisterParser(
|
|
35
34
|
std::unique_ptr<Parser> parser) {
|
36
35
|
for (const auto& registered_parser : registered_parsers_) {
|
37
36
|
if (registered_parser->name() == parser->name()) {
|
38
|
-
|
39
|
-
|
40
|
-
"' already registered")
|
41
|
-
.c_str());
|
37
|
+
LOG(ERROR) << "Parser with name '" << parser->name()
|
38
|
+
<< "' already registered";
|
42
39
|
// We'll otherwise crash later.
|
43
40
|
abort();
|
44
41
|
}
|
@@ -16,7 +16,7 @@
|
|
16
16
|
//
|
17
17
|
//
|
18
18
|
|
19
|
-
#include "src/core/
|
19
|
+
#include "src/core/telemetry/call_tracer.h"
|
20
20
|
|
21
21
|
#include <memory>
|
22
22
|
#include <utility>
|
@@ -27,8 +27,8 @@
|
|
27
27
|
#include <grpc/support/log.h>
|
28
28
|
#include <grpc/support/port_platform.h>
|
29
29
|
|
30
|
-
#include "src/core/lib/channel/tcp_tracer.h"
|
31
30
|
#include "src/core/lib/promise/context.h"
|
31
|
+
#include "src/core/telemetry/tcp_tracer.h"
|
32
32
|
|
33
33
|
namespace grpc_core {
|
34
34
|
|
@@ -299,63 +299,53 @@ class DelegatingServerCallTracer : public ServerCallTracer {
|
|
299
299
|
std::vector<ServerCallTracer*> tracers_;
|
300
300
|
};
|
301
301
|
|
302
|
-
void AddClientCallTracerToContext(
|
303
|
-
|
304
|
-
if (call_context[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE].value ==
|
305
|
-
nullptr) {
|
302
|
+
void AddClientCallTracerToContext(Arena* arena, ClientCallTracer* tracer) {
|
303
|
+
if (arena->GetContext<CallTracerAnnotationInterface>() == nullptr) {
|
306
304
|
// This is the first call tracer. Set it directly.
|
307
|
-
|
308
|
-
call_context[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE].destroy =
|
309
|
-
nullptr;
|
305
|
+
arena->SetContext<CallTracerAnnotationInterface>(tracer);
|
310
306
|
} else {
|
311
307
|
// There was already a call tracer present.
|
312
|
-
auto* orig_tracer =
|
313
|
-
|
308
|
+
auto* orig_tracer = DownCast<ClientCallTracer*>(
|
309
|
+
arena->GetContext<CallTracerAnnotationInterface>());
|
314
310
|
if (orig_tracer->IsDelegatingTracer()) {
|
315
311
|
// We already created a delegating tracer. Just add the new tracer to the
|
316
312
|
// list.
|
317
|
-
|
313
|
+
DownCast<DelegatingClientCallTracer*>(orig_tracer)->AddTracer(tracer);
|
318
314
|
} else {
|
319
315
|
// Create a new delegating tracer and add the first tracer and the new
|
320
316
|
// tracer to the list.
|
321
317
|
auto* delegating_tracer =
|
322
318
|
GetContext<Arena>()->ManagedNew<DelegatingClientCallTracer>(
|
323
319
|
orig_tracer);
|
324
|
-
|
325
|
-
delegating_tracer;
|
320
|
+
arena->SetContext<CallTracerAnnotationInterface>(delegating_tracer);
|
326
321
|
delegating_tracer->AddTracer(tracer);
|
327
322
|
}
|
328
323
|
}
|
329
324
|
}
|
330
325
|
|
331
|
-
void AddServerCallTracerToContext(
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
if (call_context[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE].value ==
|
336
|
-
nullptr) {
|
326
|
+
void AddServerCallTracerToContext(Arena* arena, ServerCallTracer* tracer) {
|
327
|
+
DCHECK_EQ(arena->GetContext<CallTracerInterface>(),
|
328
|
+
arena->GetContext<CallTracerAnnotationInterface>());
|
329
|
+
if (arena->GetContext<CallTracerAnnotationInterface>() == nullptr) {
|
337
330
|
// This is the first call tracer. Set it directly.
|
338
|
-
|
339
|
-
|
340
|
-
call_context[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE].destroy =
|
341
|
-
nullptr;
|
331
|
+
arena->SetContext<CallTracerAnnotationInterface>(tracer);
|
332
|
+
arena->SetContext<CallTracerInterface>(tracer);
|
342
333
|
} else {
|
343
334
|
// There was already a call tracer present.
|
344
|
-
auto* orig_tracer =
|
345
|
-
|
335
|
+
auto* orig_tracer = DownCast<ServerCallTracer*>(
|
336
|
+
arena->GetContext<CallTracerAnnotationInterface>());
|
346
337
|
if (orig_tracer->IsDelegatingTracer()) {
|
347
338
|
// We already created a delegating tracer. Just add the new tracer to the
|
348
339
|
// list.
|
349
|
-
|
340
|
+
DownCast<DelegatingServerCallTracer*>(orig_tracer)->AddTracer(tracer);
|
350
341
|
} else {
|
351
342
|
// Create a new delegating tracer and add the first tracer and the new
|
352
343
|
// tracer to the list.
|
353
344
|
auto* delegating_tracer =
|
354
345
|
GetContext<Arena>()->ManagedNew<DelegatingServerCallTracer>(
|
355
346
|
orig_tracer);
|
356
|
-
|
357
|
-
|
358
|
-
call_context[GRPC_CONTEXT_CALL_TRACER].value = delegating_tracer;
|
347
|
+
arena->SetContext<CallTracerAnnotationInterface>(delegating_tracer);
|
348
|
+
arena->SetContext<CallTracerInterface>(delegating_tracer);
|
359
349
|
delegating_tracer->AddTracer(tracer);
|
360
350
|
}
|
361
351
|
}
|