grpc 1.73.0 → 1.74.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 +38 -17
- data/include/grpc/create_channel_from_endpoint.h +54 -0
- data/include/grpc/credentials.h +11 -5
- data/include/grpc/event_engine/event_engine.h +74 -17
- data/include/grpc/grpc_posix.h +20 -1
- data/include/grpc/impl/channel_arg_names.h +2 -4
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/support/json.h +24 -0
- data/src/core/call/interception_chain.h +7 -11
- data/src/core/channelz/channel_trace.cc +213 -115
- data/src/core/channelz/channel_trace.h +380 -86
- data/src/core/channelz/channelz.cc +270 -181
- data/src/core/channelz/channelz.h +168 -55
- data/src/core/channelz/channelz_registry.cc +2 -1
- data/src/core/channelz/channelz_registry.h +24 -0
- data/src/core/channelz/property_list.cc +357 -0
- data/src/core/channelz/property_list.h +202 -0
- data/src/core/channelz/ztrace_collector.h +3 -2
- data/src/core/client_channel/backup_poller.cc +17 -2
- data/src/core/client_channel/client_channel.cc +17 -28
- data/src/core/client_channel/client_channel_filter.cc +19 -29
- data/src/core/client_channel/config_selector.h +8 -2
- data/src/core/client_channel/dynamic_filters.cc +5 -6
- data/src/core/client_channel/dynamic_filters.h +1 -1
- data/src/core/client_channel/global_subchannel_pool.cc +4 -1
- data/src/core/client_channel/retry_filter.cc +21 -27
- data/src/core/client_channel/retry_filter.h +10 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
- data/src/core/client_channel/retry_interceptor.cc +30 -44
- data/src/core/client_channel/retry_interceptor.h +18 -17
- data/src/core/client_channel/retry_throttle.cc +46 -61
- data/src/core/client_channel/retry_throttle.h +17 -39
- data/src/core/client_channel/subchannel.cc +43 -19
- data/src/core/client_channel/subchannel.h +8 -0
- data/src/core/config/config_vars.cc +2 -0
- data/src/core/config/core_configuration.cc +1 -0
- data/src/core/config/core_configuration.h +11 -0
- data/src/core/credentials/call/call_creds_registry.h +125 -0
- data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
- data/src/core/credentials/call/jwt_util.cc +70 -0
- data/src/core/credentials/call/jwt_util.h +32 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +0 -1
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
- data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -4
- data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
- data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +162 -115
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
- data/src/core/ext/transport/chttp2/transport/flow_control.h +22 -17
- data/src/core/ext/transport/chttp2/transport/frame.cc +10 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -22
- data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
- data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
- data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
- data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +37 -11
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
- data/src/core/filter/auth/auth_filters.h +0 -25
- data/src/core/filter/auth/client_auth_filter.cc +0 -118
- data/src/core/filter/filter_args.h +9 -23
- data/src/core/handshaker/handshaker.cc +23 -14
- data/src/core/handshaker/handshaker.h +3 -0
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -5
- data/src/core/handshaker/security/secure_endpoint.cc +70 -25
- data/src/core/handshaker/security/security_handshaker.cc +4 -1
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
- data/src/core/lib/channel/channel_args.cc +15 -0
- data/src/core/lib/channel/channel_args.h +3 -0
- data/src/core/lib/channel/channel_stack.cc +22 -23
- data/src/core/lib/channel/channel_stack.h +9 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
- data/src/core/lib/channel/promise_based_filter.h +5 -5
- data/src/core/lib/debug/trace_impl.h +0 -1
- data/src/core/lib/event_engine/ares_resolver.cc +165 -46
- data/src/core/lib/event_engine/ares_resolver.h +48 -2
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -6
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
- data/src/core/lib/event_engine/event_engine.cc +7 -0
- data/src/core/lib/event_engine/extensions/channelz.h +10 -6
- data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +130 -162
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
- data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +29 -19
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +145 -92
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +333 -116
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +61 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -170
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
- data/src/core/lib/event_engine/shim.cc +9 -0
- data/src/core/lib/event_engine/shim.h +3 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -0
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
- data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
- data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
- data/src/core/lib/experiments/experiments.cc +45 -93
- data/src/core/lib/experiments/experiments.h +21 -51
- data/src/core/lib/iomgr/endpoint.cc +4 -3
- data/src/core/lib/iomgr/endpoint.h +7 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
- data/src/core/lib/iomgr/tcp_posix.cc +12 -6
- data/src/core/lib/iomgr/tcp_windows.cc +3 -2
- data/src/core/lib/promise/activity.h +1 -0
- data/src/core/lib/promise/arena_promise.h +23 -7
- data/src/core/lib/promise/detail/promise_factory.h +10 -0
- data/src/core/lib/promise/detail/promise_like.h +118 -11
- data/src/core/lib/promise/detail/promise_variant.h +50 -0
- data/src/core/lib/promise/detail/seq_state.h +687 -548
- data/src/core/lib/promise/if.h +20 -0
- data/src/core/lib/promise/inter_activity_latch.h +147 -0
- data/src/core/lib/promise/inter_activity_mutex.h +547 -0
- data/src/core/lib/promise/loop.h +65 -3
- data/src/core/lib/promise/map.h +24 -0
- data/src/core/lib/promise/match_promise.h +103 -0
- data/src/core/lib/promise/mpsc.cc +425 -0
- data/src/core/lib/promise/mpsc.h +490 -0
- data/src/core/lib/promise/party.cc +50 -1
- data/src/core/lib/promise/party.h +66 -1
- data/src/core/lib/promise/race.h +31 -0
- data/src/core/lib/promise/seq.h +4 -1
- data/src/core/lib/promise/status_flag.h +7 -0
- data/src/core/lib/promise/try_seq.h +4 -1
- data/src/core/lib/promise/wait_set.cc +28 -0
- data/src/core/lib/promise/wait_set.h +86 -0
- data/src/core/lib/resource_quota/arena.h +19 -0
- data/src/core/lib/slice/slice.h +5 -0
- data/src/core/lib/surface/channel_create.cc +88 -13
- data/src/core/lib/surface/channel_create.h +4 -0
- data/src/core/lib/surface/channel_init.cc +164 -47
- data/src/core/lib/surface/channel_init.h +64 -1
- data/src/core/lib/surface/filter_stack_call.cc +18 -9
- data/src/core/lib/surface/init.cc +6 -15
- data/src/core/lib/surface/legacy_channel.cc +3 -5
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +110 -0
- data/src/core/lib/transport/promise_endpoint.h +307 -0
- data/src/core/load_balancing/child_policy_handler.cc +2 -4
- data/src/core/load_balancing/delegating_helper.h +2 -3
- data/src/core/load_balancing/health_check_client.cc +1 -5
- data/src/core/load_balancing/lb_policy.h +1 -3
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +3 -0
- data/src/core/load_balancing/xds/cds.cc +10 -1
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/resolver/xds/xds_config.cc +6 -3
- data/src/core/resolver/xds/xds_config.h +9 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +21 -6
- data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +31 -11
- data/src/core/server/server.cc +83 -12
- data/src/core/server/server.h +21 -2
- data/src/core/server/xds_server_config_fetcher.cc +63 -25
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/telemetry/context_list_entry.cc +38 -0
- data/src/core/telemetry/context_list_entry.h +42 -12
- data/src/core/telemetry/stats_data.cc +233 -207
- data/src/core/telemetry/stats_data.h +250 -153
- data/src/core/telemetry/tcp_tracer.h +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
- data/src/core/tsi/fake_transport_security.cc +17 -0
- data/src/core/tsi/ssl_transport_security.cc +2 -0
- data/src/core/tsi/transport_security_grpc.cc +8 -0
- data/src/core/tsi/transport_security_grpc.h +15 -0
- data/src/core/util/backoff.cc +1 -5
- data/src/core/util/backoff.h +1 -0
- data/src/core/util/down_cast.h +1 -1
- data/src/core/util/function_signature.h +15 -1
- data/src/core/util/http_client/httpcli.cc +12 -5
- data/src/core/util/http_client/httpcli.h +4 -1
- data/src/core/util/latent_see.h +8 -5
- data/src/core/util/log.cc +4 -0
- data/src/core/util/memory_usage.h +268 -0
- data/src/core/util/per_cpu.cc +2 -0
- data/src/core/util/per_cpu.h +7 -0
- data/src/core/util/shared_bit_gen.h +20 -0
- data/src/core/util/single_set_ptr.h +2 -2
- data/src/core/util/upb_utils.h +42 -0
- data/src/core/util/uri.cc +3 -2
- data/src/core/util/useful.h +53 -2
- data/src/core/util/wait_for_single_owner.cc +31 -0
- data/src/core/util/wait_for_single_owner.h +24 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
- data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
- data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_filter.h +7 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
- data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
- data/src/core/xds/grpc/xds_server_grpc.h +10 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
- data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
- data/src/core/xds/xds_client/xds_client.cc +26 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -8
- data/src/ruby/ext/grpc/rb_channel.c +72 -568
- data/src/ruby/ext/grpc/rb_channel.h +0 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
- data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
- data/src/ruby/ext/grpc/rb_grpc.c +9 -5
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/ext/grpc/rb_loader.c +0 -4
- data/src/ruby/ext/grpc/rb_server.c +31 -50
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/core_spec.rb +22 -0
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
- data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
- data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
- data/third_party/abseil-cpp/absl/base/config.h +20 -129
- data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
- data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
- data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
- data/third_party/abseil-cpp/absl/base/options.h +3 -80
- data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
- data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
- data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
- data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
- data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
- data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
- data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
- data/third_party/abseil-cpp/absl/log/check.h +2 -1
- data/third_party/abseil-cpp/absl/log/globals.h +4 -5
- data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
- data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
- data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
- data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
- data/third_party/abseil-cpp/absl/log/log.h +48 -35
- data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
- data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- data/third_party/abseil-cpp/absl/random/random.h +88 -53
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
- data/third_party/abseil-cpp/absl/status/status.cc +4 -8
- data/third_party/abseil-cpp/absl/status/status.h +8 -8
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
- data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
- data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
- data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
- data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
- data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
- data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
- data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
- data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
- data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- data/third_party/abseil-cpp/absl/time/time.h +20 -15
- data/third_party/abseil-cpp/absl/types/optional.h +7 -747
- data/third_party/abseil-cpp/absl/types/span.h +13 -11
- data/third_party/abseil-cpp/absl/types/variant.h +5 -784
- data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
- metadata +72 -20
- data/src/core/lib/event_engine/forkable.cc +0 -105
- data/src/core/lib/event_engine/forkable.h +0 -67
- data/src/core/lib/iomgr/python_util.h +0 -46
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
- data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
- data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
@@ -0,0 +1,135 @@
|
|
1
|
+
/* This file was generated by upb_generator from the input file:
|
2
|
+
*
|
3
|
+
* src/proto/grpc/channelz/v2/property_list.proto
|
4
|
+
*
|
5
|
+
* Do not edit -- your changes will be discarded when the file is
|
6
|
+
* regenerated.
|
7
|
+
* NO CHECKED-IN PROTOBUF GENCODE */
|
8
|
+
|
9
|
+
|
10
|
+
#include "upb/reflection/def.h"
|
11
|
+
#include "src/proto/grpc/channelz/v2/property_list.upbdefs.h"
|
12
|
+
#include "src/proto/grpc/channelz/v2/property_list.upb_minitable.h"
|
13
|
+
|
14
|
+
extern _upb_DefPool_Init google_protobuf_any_proto_upbdefinit;
|
15
|
+
extern _upb_DefPool_Init google_protobuf_empty_proto_upbdefinit;
|
16
|
+
extern _upb_DefPool_Init google_protobuf_timestamp_proto_upbdefinit;
|
17
|
+
extern _upb_DefPool_Init google_protobuf_duration_proto_upbdefinit;
|
18
|
+
|
19
|
+
static const char descriptor[1190] = {
|
20
|
+
'\n', '.', 's', 'r', 'c', '/', 'p', 'r', 'o', 't', 'o', '/',
|
21
|
+
'g', 'r', 'p', 'c', '/', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
|
22
|
+
'z', '/', 'v', '2', '/', 'p', 'r', 'o', 'p', 'e', 'r', 't',
|
23
|
+
'y', '_', 'l', 'i', 's', 't', '.', 'p', 'r', 'o', 't', 'o',
|
24
|
+
'\022', '\020', 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n',
|
25
|
+
'e', 'l', 'z', '.', 'v', '2', '\032', '\031', 'g', 'o', 'o', 'g',
|
26
|
+
'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/',
|
27
|
+
'a', 'n', 'y', '.', 'p', 'r', 'o', 't', 'o', '\032', '\033', 'g',
|
28
|
+
'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b',
|
29
|
+
'u', 'f', '/', 'e', 'm', 'p', 't', 'y', '.', 'p', 'r', 'o',
|
30
|
+
't', 'o', '\032', '\037', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p',
|
31
|
+
'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'i', 'm', 'e',
|
32
|
+
's', 't', 'a', 'm', 'p', '.', 'p', 'r', 'o', 't', 'o', '\032',
|
33
|
+
'\036', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't',
|
34
|
+
'o', 'b', 'u', 'f', '/', 'd', 'u', 'r', 'a', 't', 'i', 'o',
|
35
|
+
'n', '.', 'p', 'r', 'o', 't', 'o', '\"', '\276', '\001', '\n', '\014',
|
36
|
+
'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'L', 'i', 's', 't',
|
37
|
+
'\022', 'N', '\n', '\n', 'p', 'r', 'o', 'p', 'e', 'r', 't', 'i',
|
38
|
+
'e', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '.', '.', 'g',
|
39
|
+
'r', 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z',
|
40
|
+
'.', 'v', '2', '.', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y',
|
41
|
+
'L', 'i', 's', 't', '.', 'P', 'r', 'o', 'p', 'e', 'r', 't',
|
42
|
+
'i', 'e', 's', 'E', 'n', 't', 'r', 'y', 'R', '\n', 'p', 'r',
|
43
|
+
'o', 'p', 'e', 'r', 't', 'i', 'e', 's', '\032', '^', '\n', '\017',
|
44
|
+
'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's', 'E', 'n',
|
45
|
+
't', 'r', 'y', '\022', '\020', '\n', '\003', 'k', 'e', 'y', '\030', '\001',
|
46
|
+
' ', '\001', '(', '\t', 'R', '\003', 'k', 'e', 'y', '\022', '5', '\n',
|
47
|
+
'\005', 'v', 'a', 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\013',
|
48
|
+
'2', '\037', '.', 'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n',
|
49
|
+
'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'P', 'r', 'o', 'p',
|
50
|
+
'e', 'r', 't', 'y', 'V', 'a', 'l', 'u', 'e', 'R', '\005', 'v',
|
51
|
+
'a', 'l', 'u', 'e', ':', '\002', '8', '\001', '\"', '\264', '\001', '\n',
|
52
|
+
'\014', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'G', 'r', 'i',
|
53
|
+
'd', '\022', '\030', '\n', '\007', 'c', 'o', 'l', 'u', 'm', 'n', 's',
|
54
|
+
'\030', '\001', ' ', '\003', '(', '\t', 'R', '\007', 'c', 'o', 'l', 'u',
|
55
|
+
'm', 'n', 's', '\022', '6', '\n', '\004', 'r', 'o', 'w', 's', '\030',
|
56
|
+
'\002', ' ', '\003', '(', '\013', '2', '\"', '.', 'g', 'r', 'p', 'c',
|
57
|
+
'.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2',
|
58
|
+
'.', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'G', 'r', 'i',
|
59
|
+
'd', '.', 'R', 'o', 'w', 'R', '\004', 'r', 'o', 'w', 's', '\032',
|
60
|
+
'R', '\n', '\003', 'R', 'o', 'w', '\022', '\024', '\n', '\005', 'l', 'a',
|
61
|
+
'b', 'e', 'l', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\005', 'l',
|
62
|
+
'a', 'b', 'e', 'l', '\022', '5', '\n', '\005', 'v', 'a', 'l', 'u',
|
63
|
+
'e', '\030', '\002', ' ', '\003', '(', '\013', '2', '\037', '.', 'g', 'r',
|
64
|
+
'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l', 'z', '.',
|
65
|
+
'v', '2', '.', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'V',
|
66
|
+
'a', 'l', 'u', 'e', 'R', '\005', 'v', 'a', 'l', 'u', 'e', '\"',
|
67
|
+
'\240', '\001', '\n', '\r', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y',
|
68
|
+
'T', 'a', 'b', 'l', 'e', '\022', '\030', '\n', '\007', 'c', 'o', 'l',
|
69
|
+
'u', 'm', 'n', 's', '\030', '\001', ' ', '\003', '(', '\t', 'R', '\007',
|
70
|
+
'c', 'o', 'l', 'u', 'm', 'n', 's', '\022', '7', '\n', '\004', 'r',
|
71
|
+
'o', 'w', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '#', '.',
|
72
|
+
'g', 'r', 'p', 'c', '.', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
|
73
|
+
'z', '.', 'v', '2', '.', 'P', 'r', 'o', 'p', 'e', 'r', 't',
|
74
|
+
'y', 'T', 'a', 'b', 'l', 'e', '.', 'R', 'o', 'w', 'R', '\004',
|
75
|
+
'r', 'o', 'w', 's', '\032', '<', '\n', '\003', 'R', 'o', 'w', '\022',
|
76
|
+
'5', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\003',
|
77
|
+
'(', '\013', '2', '\037', '.', 'g', 'r', 'p', 'c', '.', 'c', 'h',
|
78
|
+
'a', 'n', 'n', 'e', 'l', 'z', '.', 'v', '2', '.', 'P', 'r',
|
79
|
+
'o', 'p', 'e', 'r', 't', 'y', 'V', 'a', 'l', 'u', 'e', 'R',
|
80
|
+
'\005', 'v', 'a', 'l', 'u', 'e', '\"', '\305', '\003', '\n', '\r', 'P',
|
81
|
+
'r', 'o', 'p', 'e', 'r', 't', 'y', 'V', 'a', 'l', 'u', 'e',
|
82
|
+
'\022', '9', '\n', '\013', 'e', 'm', 'p', 't', 'y', '_', 'v', 'a',
|
83
|
+
'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\013', '2', '\026', '.',
|
84
|
+
'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o',
|
85
|
+
'b', 'u', 'f', '.', 'E', 'm', 'p', 't', 'y', 'H', '\000', 'R',
|
86
|
+
'\n', 'e', 'm', 'p', 't', 'y', 'V', 'a', 'l', 'u', 'e', '\022',
|
87
|
+
'3', '\n', '\t', 'a', 'n', 'y', '_', 'v', 'a', 'l', 'u', 'e',
|
88
|
+
'\030', '\002', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o',
|
89
|
+
'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f',
|
90
|
+
'.', 'A', 'n', 'y', 'H', '\000', 'R', '\010', 'a', 'n', 'y', 'V',
|
91
|
+
'a', 'l', 'u', 'e', '\022', '#', '\n', '\014', 's', 't', 'r', 'i',
|
92
|
+
'n', 'g', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\003', ' ', '\001',
|
93
|
+
'(', '\t', 'H', '\000', 'R', '\013', 's', 't', 'r', 'i', 'n', 'g',
|
94
|
+
'V', 'a', 'l', 'u', 'e', '\022', '!', '\n', '\013', 'i', 'n', 't',
|
95
|
+
'6', '4', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\004', ' ', '\001',
|
96
|
+
'(', '\003', 'H', '\000', 'R', '\n', 'i', 'n', 't', '6', '4', 'V',
|
97
|
+
'a', 'l', 'u', 'e', '\022', '#', '\n', '\014', 'u', 'i', 'n', 't',
|
98
|
+
'6', '4', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\005', ' ', '\001',
|
99
|
+
'(', '\004', 'H', '\000', 'R', '\013', 'u', 'i', 'n', 't', '6', '4',
|
100
|
+
'V', 'a', 'l', 'u', 'e', '\022', '#', '\n', '\014', 'd', 'o', 'u',
|
101
|
+
'b', 'l', 'e', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\006', ' ',
|
102
|
+
'\001', '(', '\001', 'H', '\000', 'R', '\013', 'd', 'o', 'u', 'b', 'l',
|
103
|
+
'e', 'V', 'a', 'l', 'u', 'e', '\022', '\037', '\n', '\n', 'b', 'o',
|
104
|
+
'o', 'l', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\007', ' ', '\001',
|
105
|
+
'(', '\010', 'H', '\000', 'R', '\t', 'b', 'o', 'o', 'l', 'V', 'a',
|
106
|
+
'l', 'u', 'e', '\022', 'E', '\n', '\017', 't', 'i', 'm', 'e', 's',
|
107
|
+
't', 'a', 'm', 'p', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\010',
|
108
|
+
' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l',
|
109
|
+
'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T',
|
110
|
+
'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'H', '\000', 'R', '\016',
|
111
|
+
't', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'V', 'a', 'l',
|
112
|
+
'u', 'e', '\022', 'B', '\n', '\016', 'd', 'u', 'r', 'a', 't', 'i',
|
113
|
+
'o', 'n', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\t', ' ', '\001',
|
114
|
+
'(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.',
|
115
|
+
'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'D', 'u', 'r',
|
116
|
+
'a', 't', 'i', 'o', 'n', 'H', '\000', 'R', '\r', 'd', 'u', 'r',
|
117
|
+
'a', 't', 'i', 'o', 'n', 'V', 'a', 'l', 'u', 'e', 'B', '\006',
|
118
|
+
'\n', '\004', 'k', 'i', 'n', 'd', 'b', '\006', 'p', 'r', 'o', 't',
|
119
|
+
'o', '3',
|
120
|
+
};
|
121
|
+
|
122
|
+
static _upb_DefPool_Init *deps[5] = {
|
123
|
+
&google_protobuf_any_proto_upbdefinit,
|
124
|
+
&google_protobuf_empty_proto_upbdefinit,
|
125
|
+
&google_protobuf_timestamp_proto_upbdefinit,
|
126
|
+
&google_protobuf_duration_proto_upbdefinit,
|
127
|
+
NULL,
|
128
|
+
};
|
129
|
+
|
130
|
+
_upb_DefPool_Init src_proto_grpc_channelz_v2_property_list_proto_upbdefinit = {
|
131
|
+
deps,
|
132
|
+
&src_proto_grpc_channelz_v2_property_list_proto_upb_file_layout,
|
133
|
+
"src/proto/grpc/channelz/v2/property_list.proto",
|
134
|
+
UPB_STRINGVIEW_INIT(descriptor, sizeof(descriptor)),
|
135
|
+
};
|
@@ -0,0 +1,67 @@
|
|
1
|
+
/* This file was generated by upb_generator from the input file:
|
2
|
+
*
|
3
|
+
* src/proto/grpc/channelz/v2/property_list.proto
|
4
|
+
*
|
5
|
+
* Do not edit -- your changes will be discarded when the file is
|
6
|
+
* regenerated.
|
7
|
+
* NO CHECKED-IN PROTOBUF GENCODE */
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
#ifndef SRC_PROTO_GRPC_CHANNELZ_V2_PROPERTY_LIST_PROTO_UPB_H__UPBDEFS_H_
|
12
|
+
#define SRC_PROTO_GRPC_CHANNELZ_V2_PROPERTY_LIST_PROTO_UPB_H__UPBDEFS_H_
|
13
|
+
|
14
|
+
#include "upb/reflection/def.h"
|
15
|
+
#include "upb/reflection/internal/def_pool.h"
|
16
|
+
|
17
|
+
#include "upb/port/def.inc"
|
18
|
+
|
19
|
+
#ifdef __cplusplus
|
20
|
+
extern "C" {
|
21
|
+
#endif
|
22
|
+
|
23
|
+
extern _upb_DefPool_Init src_proto_grpc_channelz_v2_property_list_proto_upbdefinit;
|
24
|
+
|
25
|
+
UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyList_getmsgdef(upb_DefPool *s) {
|
26
|
+
_upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
|
27
|
+
return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyList");
|
28
|
+
}
|
29
|
+
|
30
|
+
UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyList_PropertiesEntry_getmsgdef(upb_DefPool *s) {
|
31
|
+
_upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
|
32
|
+
return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyList.PropertiesEntry");
|
33
|
+
}
|
34
|
+
|
35
|
+
UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyGrid_getmsgdef(upb_DefPool *s) {
|
36
|
+
_upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
|
37
|
+
return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyGrid");
|
38
|
+
}
|
39
|
+
|
40
|
+
UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyGrid_Row_getmsgdef(upb_DefPool *s) {
|
41
|
+
_upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
|
42
|
+
return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyGrid.Row");
|
43
|
+
}
|
44
|
+
|
45
|
+
UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyTable_getmsgdef(upb_DefPool *s) {
|
46
|
+
_upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
|
47
|
+
return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyTable");
|
48
|
+
}
|
49
|
+
|
50
|
+
UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyTable_Row_getmsgdef(upb_DefPool *s) {
|
51
|
+
_upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
|
52
|
+
return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyTable.Row");
|
53
|
+
}
|
54
|
+
|
55
|
+
UPB_INLINE const upb_MessageDef *grpc_channelz_v2_PropertyValue_getmsgdef(upb_DefPool *s) {
|
56
|
+
_upb_DefPool_LoadDefInit(s, &src_proto_grpc_channelz_v2_property_list_proto_upbdefinit);
|
57
|
+
return upb_DefPool_FindMessageByName(s, "grpc.channelz.v2.PropertyValue");
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
#ifdef __cplusplus
|
62
|
+
} /* extern "C" */
|
63
|
+
#endif
|
64
|
+
|
65
|
+
#include "upb/port/undef.inc"
|
66
|
+
|
67
|
+
#endif /* SRC_PROTO_GRPC_CHANNELZ_V2_PROPERTY_LIST_PROTO_UPB_H__UPBDEFS_H_ */
|
@@ -127,31 +127,6 @@ class ClientAuthFilter final : public ImplementChannelFilter<ClientAuthFilter> {
|
|
127
127
|
grpc_call_credentials::GetRequestMetadataArgs args_;
|
128
128
|
};
|
129
129
|
|
130
|
-
class LegacyClientAuthFilter final : public ChannelFilter {
|
131
|
-
public:
|
132
|
-
static const grpc_channel_filter kFilter;
|
133
|
-
|
134
|
-
static absl::string_view TypeName() { return "client-auth-filter"; }
|
135
|
-
|
136
|
-
LegacyClientAuthFilter(
|
137
|
-
RefCountedPtr<grpc_channel_security_connector> security_connector,
|
138
|
-
RefCountedPtr<grpc_auth_context> auth_context);
|
139
|
-
|
140
|
-
static absl::StatusOr<std::unique_ptr<ClientAuthFilter>> Create(
|
141
|
-
const ChannelArgs& args, ChannelFilter::Args);
|
142
|
-
|
143
|
-
// Construct a promise for one call.
|
144
|
-
ArenaPromise<ServerMetadataHandle> MakeCallPromise(
|
145
|
-
CallArgs call_args, NextPromiseFactory next_promise_factory) override;
|
146
|
-
|
147
|
-
private:
|
148
|
-
ArenaPromise<absl::StatusOr<CallArgs>> GetCallCredsMetadata(
|
149
|
-
CallArgs call_args);
|
150
|
-
|
151
|
-
// Contains refs to security connector and auth context.
|
152
|
-
grpc_call_credentials::GetRequestMetadataArgs args_;
|
153
|
-
};
|
154
|
-
|
155
130
|
class ServerAuthFilter final : public ImplementChannelFilter<ServerAuthFilter> {
|
156
131
|
private:
|
157
132
|
class RunApplicationCode {
|
@@ -189,122 +189,4 @@ absl::StatusOr<std::unique_ptr<ClientAuthFilter>> ClientAuthFilter::Create(
|
|
189
189
|
const grpc_channel_filter ClientAuthFilter::kFilter =
|
190
190
|
MakePromiseBasedFilter<ClientAuthFilter, FilterEndpoint::kClient>();
|
191
191
|
|
192
|
-
// LegacyClientAuthFilter
|
193
|
-
|
194
|
-
LegacyClientAuthFilter::LegacyClientAuthFilter(
|
195
|
-
RefCountedPtr<grpc_channel_security_connector> security_connector,
|
196
|
-
RefCountedPtr<grpc_auth_context> auth_context)
|
197
|
-
: args_{std::move(security_connector), std::move(auth_context)} {}
|
198
|
-
|
199
|
-
ArenaPromise<absl::StatusOr<CallArgs>>
|
200
|
-
LegacyClientAuthFilter::GetCallCredsMetadata(CallArgs call_args) {
|
201
|
-
auto* ctx = GetContext<grpc_client_security_context>();
|
202
|
-
grpc_call_credentials* channel_call_creds =
|
203
|
-
args_.security_connector->mutable_request_metadata_creds();
|
204
|
-
const bool call_creds_has_md = (ctx != nullptr) && (ctx->creds != nullptr);
|
205
|
-
|
206
|
-
if (channel_call_creds == nullptr && !call_creds_has_md) {
|
207
|
-
// Skip sending metadata altogether.
|
208
|
-
return Immediate(absl::StatusOr<CallArgs>(std::move(call_args)));
|
209
|
-
}
|
210
|
-
|
211
|
-
RefCountedPtr<grpc_call_credentials> creds;
|
212
|
-
if (channel_call_creds != nullptr && call_creds_has_md) {
|
213
|
-
creds = RefCountedPtr<grpc_call_credentials>(
|
214
|
-
grpc_composite_call_credentials_create(channel_call_creds,
|
215
|
-
ctx->creds.get(), nullptr));
|
216
|
-
if (creds == nullptr) {
|
217
|
-
return Immediate(absl::UnauthenticatedError(
|
218
|
-
"Incompatible credentials set on channel and call."));
|
219
|
-
}
|
220
|
-
} else if (call_creds_has_md) {
|
221
|
-
creds = ctx->creds->Ref();
|
222
|
-
} else {
|
223
|
-
creds = channel_call_creds->Ref();
|
224
|
-
}
|
225
|
-
|
226
|
-
// Check security level of call credential and channel, and do not send
|
227
|
-
// metadata if the check fails.
|
228
|
-
grpc_auth_property_iterator it = grpc_auth_context_find_properties_by_name(
|
229
|
-
args_.auth_context.get(), GRPC_TRANSPORT_SECURITY_LEVEL_PROPERTY_NAME);
|
230
|
-
const grpc_auth_property* prop = grpc_auth_property_iterator_next(&it);
|
231
|
-
if (prop == nullptr) {
|
232
|
-
return Immediate(
|
233
|
-
absl::UnauthenticatedError("Established channel does not have an auth "
|
234
|
-
"property representing a security level."));
|
235
|
-
}
|
236
|
-
const grpc_security_level call_cred_security_level =
|
237
|
-
creds->min_security_level();
|
238
|
-
const bool is_security_level_ok = grpc_check_security_level(
|
239
|
-
convert_security_level_string_to_enum(prop->value),
|
240
|
-
call_cred_security_level);
|
241
|
-
if (!is_security_level_ok) {
|
242
|
-
return Immediate(absl::UnauthenticatedError(
|
243
|
-
"Established channel does not have a sufficient security level to "
|
244
|
-
"transfer call credential."));
|
245
|
-
}
|
246
|
-
|
247
|
-
auto client_initial_metadata = std::move(call_args.client_initial_metadata);
|
248
|
-
return TrySeq(
|
249
|
-
Seq(creds->GetRequestMetadata(std::move(client_initial_metadata), &args_),
|
250
|
-
[](absl::StatusOr<ClientMetadataHandle> new_metadata) mutable {
|
251
|
-
if (!new_metadata.ok()) {
|
252
|
-
return absl::StatusOr<ClientMetadataHandle>(
|
253
|
-
MaybeRewriteIllegalStatusCode(new_metadata.status(),
|
254
|
-
"call credentials"));
|
255
|
-
}
|
256
|
-
return new_metadata;
|
257
|
-
}),
|
258
|
-
[call_args =
|
259
|
-
std::move(call_args)](ClientMetadataHandle new_metadata) mutable {
|
260
|
-
call_args.client_initial_metadata = std::move(new_metadata);
|
261
|
-
return Immediate<absl::StatusOr<CallArgs>>(
|
262
|
-
absl::StatusOr<CallArgs>(std::move(call_args)));
|
263
|
-
});
|
264
|
-
}
|
265
|
-
|
266
|
-
ArenaPromise<ServerMetadataHandle> LegacyClientAuthFilter::MakeCallPromise(
|
267
|
-
CallArgs call_args, NextPromiseFactory next_promise_factory) {
|
268
|
-
auto* sec_ctx = MaybeGetContext<grpc_client_security_context>();
|
269
|
-
if (sec_ctx == nullptr) {
|
270
|
-
sec_ctx = grpc_client_security_context_create(GetContext<Arena>(),
|
271
|
-
/*creds=*/nullptr);
|
272
|
-
SetContext<SecurityContext>(sec_ctx);
|
273
|
-
}
|
274
|
-
sec_ctx->auth_context = args_.auth_context;
|
275
|
-
|
276
|
-
auto* host =
|
277
|
-
call_args.client_initial_metadata->get_pointer(HttpAuthorityMetadata());
|
278
|
-
if (host == nullptr) {
|
279
|
-
return next_promise_factory(std::move(call_args));
|
280
|
-
}
|
281
|
-
return TrySeq(
|
282
|
-
args_.security_connector->CheckCallHost(host->as_string_view(),
|
283
|
-
args_.auth_context.get()),
|
284
|
-
[this, call_args = std::move(call_args)]() mutable {
|
285
|
-
return GetCallCredsMetadata(std::move(call_args));
|
286
|
-
},
|
287
|
-
next_promise_factory);
|
288
|
-
}
|
289
|
-
|
290
|
-
absl::StatusOr<std::unique_ptr<ClientAuthFilter>>
|
291
|
-
LegacyClientAuthFilter::Create(const ChannelArgs& args, ChannelFilter::Args) {
|
292
|
-
auto* sc = args.GetObject<grpc_security_connector>();
|
293
|
-
if (sc == nullptr) {
|
294
|
-
return absl::InvalidArgumentError(
|
295
|
-
"Security connector missing from client auth filter args");
|
296
|
-
}
|
297
|
-
auto* auth_context = args.GetObject<grpc_auth_context>();
|
298
|
-
if (auth_context == nullptr) {
|
299
|
-
return absl::InvalidArgumentError(
|
300
|
-
"Auth context missing from client auth filter args");
|
301
|
-
}
|
302
|
-
return std::make_unique<ClientAuthFilter>(
|
303
|
-
sc->RefAsSubclass<grpc_channel_security_connector>(),
|
304
|
-
auth_context->Ref());
|
305
|
-
}
|
306
|
-
|
307
|
-
const grpc_channel_filter LegacyClientAuthFilter::kFilter =
|
308
|
-
MakePromiseBasedFilter<ClientAuthFilter, FilterEndpoint::kClient>();
|
309
|
-
|
310
192
|
} // namespace grpc_core
|
@@ -31,23 +31,18 @@ class FilterArgs {
|
|
31
31
|
grpc_channel_element* channel_element,
|
32
32
|
size_t (*channel_stack_filter_instance_number)(
|
33
33
|
grpc_channel_stack*, grpc_channel_element*),
|
34
|
-
const Blackboard*
|
35
|
-
Blackboard* new_blackboard = nullptr)
|
34
|
+
const Blackboard* blackboard = nullptr)
|
36
35
|
: impl_(ChannelStackBased{channel_stack, channel_element,
|
37
36
|
channel_stack_filter_instance_number}),
|
38
|
-
|
39
|
-
new_blackboard_(new_blackboard) {}
|
37
|
+
blackboard_(blackboard) {}
|
40
38
|
// While we're moving to call-v3 we need to have access to
|
41
39
|
// grpc_channel_stack & friends here. That means that we can't rely on this
|
42
40
|
// type signature from interception_chain.h, which means that we need a way
|
43
41
|
// of constructing this object without naming it ===> implicit construction.
|
44
42
|
// TODO(ctiller): remove this once we're fully on call-v3
|
45
43
|
// NOLINTNEXTLINE(google-explicit-constructor)
|
46
|
-
FilterArgs(size_t instance_id, const Blackboard*
|
47
|
-
|
48
|
-
: impl_(V3Based{instance_id}),
|
49
|
-
old_blackboard_(old_blackboard),
|
50
|
-
new_blackboard_(new_blackboard) {}
|
44
|
+
FilterArgs(size_t instance_id, const Blackboard* blackboard = nullptr)
|
45
|
+
: impl_(V3Based{instance_id}), blackboard_(blackboard) {}
|
51
46
|
|
52
47
|
ABSL_DEPRECATED("Direct access to channel stack is deprecated")
|
53
48
|
grpc_channel_stack* channel_stack() const {
|
@@ -71,19 +66,11 @@ class FilterArgs {
|
|
71
66
|
[](const V3Based& v3) { return v3.instance_id; });
|
72
67
|
}
|
73
68
|
|
74
|
-
//
|
75
|
-
// filter stack, retains it for the new filter stack we're constructing.
|
76
|
-
// Otherwise, invokes create_func() to create a new filter state
|
77
|
-
// object for the new filter stack. Returns the new filter state object.
|
69
|
+
// Gets the filter state associated with a particular type and key.
|
78
70
|
template <typename T>
|
79
|
-
RefCountedPtr<T>
|
80
|
-
|
81
|
-
|
82
|
-
RefCountedPtr<T> state;
|
83
|
-
if (old_blackboard_ != nullptr) state = old_blackboard_->Get<T>(key);
|
84
|
-
if (state == nullptr) state = create_func();
|
85
|
-
if (new_blackboard_ != nullptr) new_blackboard_->Set(key, state);
|
86
|
-
return state;
|
71
|
+
RefCountedPtr<T> GetState(const std::string& key) const {
|
72
|
+
if (blackboard_ == nullptr) return nullptr;
|
73
|
+
return blackboard_->Get<T>(key);
|
87
74
|
}
|
88
75
|
|
89
76
|
private:
|
@@ -103,8 +90,7 @@ class FilterArgs {
|
|
103
90
|
using Impl = std::variant<ChannelStackBased, V3Based>;
|
104
91
|
Impl impl_;
|
105
92
|
|
106
|
-
const Blackboard*
|
107
|
-
Blackboard* new_blackboard_ = nullptr;
|
93
|
+
const Blackboard* blackboard_ = nullptr;
|
108
94
|
};
|
109
95
|
|
110
96
|
} // namespace grpc_core
|
@@ -104,6 +104,16 @@ void HandshakeManager::DoHandshake(
|
|
104
104
|
args_.args = channel_args;
|
105
105
|
args_.event_engine = args_.args.GetObject<EventEngine>();
|
106
106
|
args_.acceptor = acceptor;
|
107
|
+
// Add a channelz trace that we're performing a handshake.
|
108
|
+
// Note that we only commit this to the log if we see an error - otherwise
|
109
|
+
// it's ephemeral and is cleaned up when refs to it are released.
|
110
|
+
auto channelz_node = args_.args.GetObjectRef<channelz::BaseNode>();
|
111
|
+
args_.trace_node = channelz::TraceNode(
|
112
|
+
channelz_node.get() == nullptr
|
113
|
+
? channelz::ChannelTrace::Node()
|
114
|
+
: channelz_node->NewTraceNode("Handshake connection"),
|
115
|
+
handshaker_trace,
|
116
|
+
[this]() { return absl::StrFormat("handshake manager %p: ", this); });
|
107
117
|
if (acceptor != nullptr && acceptor->external_connection &&
|
108
118
|
acceptor->pending_data != nullptr) {
|
109
119
|
grpc_slice_buffer_swap(args_.read_buffer.c_slice_buffer(),
|
@@ -125,14 +135,12 @@ void HandshakeManager::DoHandshake(
|
|
125
135
|
void HandshakeManager::Shutdown(absl::Status error) {
|
126
136
|
MutexLock lock(&mu_);
|
127
137
|
if (!is_shutdown_) {
|
128
|
-
|
129
|
-
<< "handshake_manager " << this << ": Shutdown() called: " << error;
|
138
|
+
GRPC_CHANNELZ_LOG(args_.trace_node) << "Shutdown called: " << error;
|
130
139
|
is_shutdown_ = true;
|
131
140
|
// Shutdown the handshaker that's currently in progress, if any.
|
132
141
|
if (index_ > 0) {
|
133
|
-
|
134
|
-
<< "
|
135
|
-
<< ": shutting down handshaker at index " << index_ - 1;
|
142
|
+
GRPC_CHANNELZ_LOG(args_.trace_node)
|
143
|
+
<< "Shutting down handshaker at index " << (index_ - 1);
|
136
144
|
handshakers_[index_ - 1]->Shutdown(std::move(error));
|
137
145
|
}
|
138
146
|
}
|
@@ -140,7 +148,7 @@ void HandshakeManager::Shutdown(absl::Status error) {
|
|
140
148
|
|
141
149
|
void HandshakeManager::CallNextHandshakerLocked(absl::Status error) {
|
142
150
|
GRPC_TRACE_LOG(handshaker, INFO)
|
143
|
-
<< "
|
151
|
+
<< "CallNextHandshakerLocked: error=" << error
|
144
152
|
<< " shutdown=" << is_shutdown_ << " index=" << index_
|
145
153
|
<< ", args=" << HandshakerArgsString(&args_);
|
146
154
|
CHECK(index_ <= handshakers_.size());
|
@@ -153,10 +161,13 @@ void HandshakeManager::CallNextHandshakerLocked(absl::Status error) {
|
|
153
161
|
error = GRPC_ERROR_CREATE("handshaker shutdown");
|
154
162
|
args_.endpoint.reset();
|
155
163
|
}
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
164
|
+
// Since there was a handshaking error, commit this node with the reason.
|
165
|
+
// This will make it available for inspection after the handshaker
|
166
|
+
// completes.
|
167
|
+
if (!error.ok()) {
|
168
|
+
GRPC_CHANNELZ_LOG(args_.trace_node) << "Failed with error: " << error;
|
169
|
+
}
|
170
|
+
args_.trace_node.Commit();
|
160
171
|
// Cancel deadline timer, since we're invoking the on_handshake_done
|
161
172
|
// callback now.
|
162
173
|
args_.event_engine->Cancel(deadline_timer_handle_);
|
@@ -174,10 +185,8 @@ void HandshakeManager::CallNextHandshakerLocked(absl::Status error) {
|
|
174
185
|
}
|
175
186
|
// Call the next handshaker.
|
176
187
|
auto handshaker = handshakers_[index_];
|
177
|
-
|
178
|
-
<< "
|
179
|
-
<< handshaker->name() << " [" << handshaker.get() << "] at index "
|
180
|
-
<< index_;
|
188
|
+
GRPC_CHANNELZ_LOG(args_.trace_node)
|
189
|
+
<< " calling handshaker " << handshaker->name() << " at index " << index_;
|
181
190
|
++index_;
|
182
191
|
handshaker->DoHandshake(&args_, [self = Ref()](absl::Status error) mutable {
|
183
192
|
MutexLock lock(&self->mu_);
|
@@ -28,6 +28,7 @@
|
|
28
28
|
|
29
29
|
#include "absl/base/thread_annotations.h"
|
30
30
|
#include "absl/container/inlined_vector.h"
|
31
|
+
#include "src/core/channelz/channelz.h"
|
31
32
|
#include "src/core/lib/channel/channel_args.h"
|
32
33
|
#include "src/core/lib/iomgr/closure.h"
|
33
34
|
#include "src/core/lib/iomgr/endpoint.h"
|
@@ -78,6 +79,8 @@ struct HandshakerArgs {
|
|
78
79
|
// TODO(roth): Make this go away somehow as part of the EventEngine
|
79
80
|
// migration?
|
80
81
|
grpc_tcp_server_acceptor* acceptor = nullptr;
|
82
|
+
// Channelz trace node for the current handshaker
|
83
|
+
channelz::TraceNode trace_node;
|
81
84
|
};
|
82
85
|
|
83
86
|
///
|
@@ -318,12 +318,14 @@ void HttpConnectHandshaker::DoHandshake(
|
|
318
318
|
gpr_free(header_strings);
|
319
319
|
// Take a new ref to be held by the write callback.
|
320
320
|
Ref().release();
|
321
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs write_args;
|
322
|
+
write_args.set_max_frame_size(INT_MAX);
|
321
323
|
grpc_endpoint_write(
|
322
324
|
args->endpoint.get(), write_buffer_.c_slice_buffer(),
|
323
325
|
GRPC_CLOSURE_INIT(&on_write_done_scheduler_,
|
324
326
|
&HttpConnectHandshaker::OnWriteDoneScheduler, this,
|
325
327
|
grpc_schedule_on_exec_ctx),
|
326
|
-
|
328
|
+
std::move(write_args));
|
327
329
|
}
|
328
330
|
|
329
331
|
HttpConnectHandshaker::HttpConnectHandshaker() {
|
@@ -397,8 +397,9 @@ static void on_write(void* user_data, grpc_error_handle error) {
|
|
397
397
|
});
|
398
398
|
}
|
399
399
|
|
400
|
-
static void endpoint_write(
|
401
|
-
|
400
|
+
static void endpoint_write(
|
401
|
+
grpc_endpoint* secure_ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
402
|
+
grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs args) {
|
402
403
|
GRPC_LATENT_SEE_INNER_SCOPE("secure_endpoint write");
|
403
404
|
unsigned i;
|
404
405
|
tsi_result result = TSI_OK;
|
@@ -427,10 +428,10 @@ static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
|
|
427
428
|
// tsi_zero_copy_grpc_protector_protect on each chunk. This ensures that
|
428
429
|
// the protector cannot create frames larger than the specified
|
429
430
|
// max_frame_size.
|
430
|
-
while (slices->length > static_cast<size_t>(max_frame_size) &&
|
431
|
+
while (slices->length > static_cast<size_t>(args.max_frame_size()) &&
|
431
432
|
result == TSI_OK) {
|
432
433
|
grpc_slice_buffer_move_first(slices,
|
433
|
-
static_cast<size_t>(max_frame_size),
|
434
|
+
static_cast<size_t>(args.max_frame_size()),
|
434
435
|
&ep->protector_staging_buffer);
|
435
436
|
result = tsi_zero_copy_grpc_protector_protect(
|
436
437
|
ep->zero_copy_protector, &ep->protector_staging_buffer,
|
@@ -523,7 +524,7 @@ static void endpoint_write(grpc_endpoint* secure_ep, grpc_slice_buffer* slices,
|
|
523
524
|
SECURE_ENDPOINT_REF(ep, "write");
|
524
525
|
ep->write_cb = cb;
|
525
526
|
grpc_endpoint_write(ep->wrapped_ep.get(), &ep->output_buffer, &ep->on_write,
|
526
|
-
|
527
|
+
std::move(args));
|
527
528
|
}
|
528
529
|
|
529
530
|
static void endpoint_destroy(grpc_endpoint* secure_ep) {
|