grpc 1.37.1 → 1.39.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +96 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +334 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +91 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +28 -13
- data/include/grpc/impl/codegen/port_platform.h +22 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +630 -3103
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +755 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -54
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +146 -155
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -32
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2449 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +25 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +348 -199
- data/src/core/ext/xds/xds_api.h +21 -12
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/slice_allocator.cc +89 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +67 -46
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +94 -46
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -63,7 +63,7 @@ class SubchannelNode : public BaseNode {
|
|
63
63
|
private:
|
64
64
|
Atomic<grpc_connectivity_state> connectivity_state_{GRPC_CHANNEL_IDLE};
|
65
65
|
Mutex socket_mu_;
|
66
|
-
RefCountedPtr<SocketNode> child_socket_;
|
66
|
+
RefCountedPtr<SocketNode> child_socket_ ABSL_GUARDED_BY(socket_mu_);
|
67
67
|
std::string target_;
|
68
68
|
CallCountingHelper call_counter_;
|
69
69
|
ChannelTrace trace_;
|
@@ -34,6 +34,7 @@
|
|
34
34
|
#include "src/core/ext/filters/client_channel/proxy_mapper_registry.h"
|
35
35
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
36
36
|
#include "src/core/ext/filters/client_channel/resolver_result_parsing.h"
|
37
|
+
#include "src/core/ext/filters/client_channel/retry_service_config.h"
|
37
38
|
#include "src/core/ext/filters/client_channel/retry_throttle.h"
|
38
39
|
#include "src/core/ext/filters/client_channel/service_config_parser.h"
|
39
40
|
#include "src/core/lib/surface/channel_init.h"
|
@@ -46,6 +47,7 @@ static bool append_filter(grpc_channel_stack_builder* builder, void* arg) {
|
|
46
47
|
void grpc_client_channel_init(void) {
|
47
48
|
grpc_core::ServiceConfigParser::Init();
|
48
49
|
grpc_core::internal::ClientChannelServiceConfigParser::Register();
|
50
|
+
grpc_core::internal::RetryServiceConfigParser::Register();
|
49
51
|
grpc_core::LoadBalancingPolicyRegistry::Builder::InitRegistry();
|
50
52
|
grpc_core::ResolverRegistry::Builder::InitRegistry();
|
51
53
|
grpc_core::internal::ServerRetryThrottleMap::Init();
|
@@ -54,7 +56,8 @@ void grpc_client_channel_init(void) {
|
|
54
56
|
grpc_core::GlobalSubchannelPool::Init();
|
55
57
|
grpc_channel_init_register_stage(
|
56
58
|
GRPC_CLIENT_CHANNEL, GRPC_CHANNEL_INIT_BUILTIN_PRIORITY, append_filter,
|
57
|
-
const_cast<grpc_channel_filter*>(
|
59
|
+
const_cast<grpc_channel_filter*>(
|
60
|
+
&grpc_core::ClientChannel::kFilterVtable));
|
58
61
|
grpc_http_connect_register_handshaker_factory();
|
59
62
|
grpc_client_channel_global_init_backup_polling();
|
60
63
|
}
|
@@ -52,7 +52,7 @@ class ConfigSelector : public RefCounted<ConfigSelector> {
|
|
52
52
|
|
53
53
|
struct CallConfig {
|
54
54
|
// Can be set to indicate the call should be failed.
|
55
|
-
|
55
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
56
56
|
// The per-method parsed configs that will be passed to
|
57
57
|
// ServiceConfigCallData.
|
58
58
|
const ServiceConfigParser::ParsedConfigVector* method_configs = nullptr;
|
@@ -66,7 +66,7 @@ class SubchannelConnector : public InternallyRefCounted<SubchannelConnector> {
|
|
66
66
|
|
67
67
|
// Cancels any in-flight connection attempt and shuts down the
|
68
68
|
// connector.
|
69
|
-
virtual void Shutdown(
|
69
|
+
virtual void Shutdown(grpc_error_handle error) = 0;
|
70
70
|
|
71
71
|
void Orphan() override {
|
72
72
|
Shutdown(GRPC_ERROR_CREATE_FROM_STATIC_STRING("Subchannel disconnected"));
|
@@ -37,7 +37,7 @@ namespace grpc_core {
|
|
37
37
|
// DynamicFilters::Call
|
38
38
|
//
|
39
39
|
|
40
|
-
DynamicFilters::Call::Call(Args args,
|
40
|
+
DynamicFilters::Call::Call(Args args, grpc_error_handle* error)
|
41
41
|
: channel_stack_(std::move(args.channel_stack)) {
|
42
42
|
grpc_call_stack* call_stack = CALL_TO_CALL_STACK(this);
|
43
43
|
const grpc_call_element_args call_args = {
|
@@ -53,8 +53,7 @@ DynamicFilters::Call::Call(Args args, grpc_error** error)
|
|
53
53
|
*error = grpc_call_stack_init(channel_stack_->channel_stack_, 1, Destroy,
|
54
54
|
this, &call_args);
|
55
55
|
if (GPR_UNLIKELY(*error != GRPC_ERROR_NONE)) {
|
56
|
-
|
57
|
-
gpr_log(GPR_ERROR, "error: %s", error_string);
|
56
|
+
gpr_log(GPR_ERROR, "error: %s", grpc_error_std_string(*error).c_str());
|
58
57
|
return;
|
59
58
|
}
|
60
59
|
grpc_call_stack_set_pollset_or_pollset_set(call_stack, args.pollent);
|
@@ -94,7 +93,7 @@ void DynamicFilters::Call::Unref(const DebugLocation& /*location*/,
|
|
94
93
|
GRPC_CALL_STACK_UNREF(CALL_TO_CALL_STACK(this), reason);
|
95
94
|
}
|
96
95
|
|
97
|
-
void DynamicFilters::Call::Destroy(void* arg,
|
96
|
+
void DynamicFilters::Call::Destroy(void* arg, grpc_error_handle /*error*/) {
|
98
97
|
DynamicFilters::Call* self = static_cast<DynamicFilters::Call*>(arg);
|
99
98
|
// Keep some members before destroying the subchannel call.
|
100
99
|
grpc_closure* after_call_stack_destroy = self->after_call_stack_destroy_;
|
@@ -124,13 +123,13 @@ void DynamicFilters::Call::IncrementRefCount(
|
|
124
123
|
|
125
124
|
namespace {
|
126
125
|
|
127
|
-
void DestroyChannelStack(void* arg,
|
126
|
+
void DestroyChannelStack(void* arg, grpc_error_handle /*error*/) {
|
128
127
|
grpc_channel_stack* channel_stack = static_cast<grpc_channel_stack*>(arg);
|
129
128
|
grpc_channel_stack_destroy(channel_stack);
|
130
129
|
gpr_free(channel_stack);
|
131
130
|
}
|
132
131
|
|
133
|
-
std::pair<grpc_channel_stack*,
|
132
|
+
std::pair<grpc_channel_stack*, grpc_error_handle> CreateChannelStack(
|
134
133
|
const grpc_channel_args* args,
|
135
134
|
std::vector<const grpc_channel_filter*> filters) {
|
136
135
|
// Allocate memory for channel stack.
|
@@ -139,13 +138,13 @@ std::pair<grpc_channel_stack*, grpc_error*> CreateChannelStack(
|
|
139
138
|
grpc_channel_stack* channel_stack =
|
140
139
|
reinterpret_cast<grpc_channel_stack*>(gpr_zalloc(channel_stack_size));
|
141
140
|
// Initialize stack.
|
142
|
-
|
141
|
+
grpc_error_handle error = grpc_channel_stack_init(
|
143
142
|
/*initial_refs=*/1, DestroyChannelStack, channel_stack, filters.data(),
|
144
143
|
filters.size(), args, /*optional_transport=*/nullptr, "DynamicFilters",
|
145
144
|
channel_stack);
|
146
145
|
if (error != GRPC_ERROR_NONE) {
|
147
146
|
gpr_log(GPR_ERROR, "error initializing client internal stack: %s",
|
148
|
-
|
147
|
+
grpc_error_std_string(error).c_str());
|
149
148
|
grpc_channel_stack_destroy(channel_stack);
|
150
149
|
gpr_free(channel_stack);
|
151
150
|
return {nullptr, error};
|
@@ -163,7 +162,7 @@ RefCountedPtr<DynamicFilters> DynamicFilters::Create(
|
|
163
162
|
if (p.second != GRPC_ERROR_NONE) {
|
164
163
|
// Channel stack creation failed with requested filters.
|
165
164
|
// Create with lame filter instead.
|
166
|
-
|
165
|
+
grpc_error_handle error = p.second;
|
167
166
|
grpc_arg error_arg = MakeLameClientErrorArg(error);
|
168
167
|
grpc_channel_args* new_args =
|
169
168
|
grpc_channel_args_copy_and_add(args, &error_arg, 1);
|
@@ -180,7 +179,7 @@ DynamicFilters::~DynamicFilters() {
|
|
180
179
|
}
|
181
180
|
|
182
181
|
RefCountedPtr<DynamicFilters::Call> DynamicFilters::CreateCall(
|
183
|
-
DynamicFilters::Call::Args args,
|
182
|
+
DynamicFilters::Call::Args args, grpc_error_handle* error) {
|
184
183
|
size_t allocation_size = GPR_ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(Call)) +
|
185
184
|
channel_stack_->call_stack_size;
|
186
185
|
Call* call = static_cast<Call*>(args.arena->Alloc(allocation_size));
|
@@ -46,7 +46,7 @@ class DynamicFilters : public RefCounted<DynamicFilters> {
|
|
46
46
|
CallCombiner* call_combiner;
|
47
47
|
};
|
48
48
|
|
49
|
-
Call(Args args,
|
49
|
+
Call(Args args, grpc_error_handle* error);
|
50
50
|
|
51
51
|
// Continues processing a transport stream op batch.
|
52
52
|
void StartTransportStreamOpBatch(grpc_transport_stream_op_batch* batch);
|
@@ -73,7 +73,7 @@ class DynamicFilters : public RefCounted<DynamicFilters> {
|
|
73
73
|
void IncrementRefCount();
|
74
74
|
void IncrementRefCount(const DebugLocation& location, const char* reason);
|
75
75
|
|
76
|
-
static void Destroy(void* arg,
|
76
|
+
static void Destroy(void* arg, grpc_error_handle error);
|
77
77
|
|
78
78
|
RefCountedPtr<DynamicFilters> channel_stack_;
|
79
79
|
grpc_closure* after_call_stack_destroy_ = nullptr;
|
@@ -88,7 +88,7 @@ class DynamicFilters : public RefCounted<DynamicFilters> {
|
|
88
88
|
|
89
89
|
~DynamicFilters() override;
|
90
90
|
|
91
|
-
RefCountedPtr<Call> CreateCall(Call::Args args,
|
91
|
+
RefCountedPtr<Call> CreateCall(Call::Args args, grpc_error_handle* error);
|
92
92
|
|
93
93
|
private:
|
94
94
|
grpc_channel_stack* channel_stack_;
|
@@ -157,7 +157,7 @@ void HealthCheckClient::StartRetryTimerLocked() {
|
|
157
157
|
grpc_timer_init(&retry_timer_, next_try, &retry_timer_callback_);
|
158
158
|
}
|
159
159
|
|
160
|
-
void HealthCheckClient::OnRetryTimer(void* arg,
|
160
|
+
void HealthCheckClient::OnRetryTimer(void* arg, grpc_error_handle error) {
|
161
161
|
HealthCheckClient* self = static_cast<HealthCheckClient*>(arg);
|
162
162
|
{
|
163
163
|
MutexLock lock(&self->mu_);
|
@@ -202,7 +202,7 @@ void EncodeRequest(const std::string& service_name,
|
|
202
202
|
|
203
203
|
// Returns true if healthy.
|
204
204
|
// If there was an error parsing the response, sets *error and returns false.
|
205
|
-
bool DecodeResponse(grpc_slice_buffer* slice_buffer,
|
205
|
+
bool DecodeResponse(grpc_slice_buffer* slice_buffer, grpc_error_handle* error) {
|
206
206
|
// If message is empty, assume unhealthy.
|
207
207
|
if (slice_buffer->length == 0) {
|
208
208
|
*error =
|
@@ -269,11 +269,8 @@ HealthCheckClient::CallState::~CallState() {
|
|
269
269
|
// Unset the call combiner cancellation closure. This has the
|
270
270
|
// effect of scheduling the previously set cancellation closure, if
|
271
271
|
// any, so that it can release any internal references it may be
|
272
|
-
// holding to the call stack.
|
273
|
-
// filters that schedule cancel notification closures on exec_ctx do not
|
274
|
-
// need to take a ref of the call stack to guarantee closure liveness.
|
272
|
+
// holding to the call stack.
|
275
273
|
call_combiner_.SetNotifyOnCancel(nullptr);
|
276
|
-
ExecCtx::Get()->Flush();
|
277
274
|
arena_->Destroy();
|
278
275
|
}
|
279
276
|
|
@@ -293,7 +290,7 @@ void HealthCheckClient::CallState::StartCall() {
|
|
293
290
|
context_,
|
294
291
|
&call_combiner_,
|
295
292
|
};
|
296
|
-
|
293
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
297
294
|
call_ = SubchannelCall::Create(std::move(args), &error).release();
|
298
295
|
// Register after-destruction callback.
|
299
296
|
GRPC_CLOSURE_INIT(&after_call_stack_destruction_, AfterCallStackDestruction,
|
@@ -304,7 +301,8 @@ void HealthCheckClient::CallState::StartCall() {
|
|
304
301
|
gpr_log(GPR_ERROR,
|
305
302
|
"HealthCheckClient %p CallState %p: error creating health "
|
306
303
|
"checking call on subchannel (%s); will retry",
|
307
|
-
health_check_client_.get(), this,
|
304
|
+
health_check_client_.get(), this,
|
305
|
+
grpc_error_std_string(error).c_str());
|
308
306
|
GRPC_ERROR_UNREF(error);
|
309
307
|
CallEndedLocked(/*retry=*/true);
|
310
308
|
return;
|
@@ -354,6 +352,7 @@ void HealthCheckClient::CallState::StartCall() {
|
|
354
352
|
batch_.recv_initial_metadata = true;
|
355
353
|
// Add recv_message op.
|
356
354
|
payload_.recv_message.recv_message = &recv_message_;
|
355
|
+
payload_.recv_message.call_failed_before_recv_message = nullptr;
|
357
356
|
// recv_message callback takes ref, handled manually.
|
358
357
|
call_->Ref(DEBUG_LOCATION, "recv_message_ready").release();
|
359
358
|
payload_.recv_message.recv_message_ready = GRPC_CLOSURE_INIT(
|
@@ -381,7 +380,7 @@ void HealthCheckClient::CallState::StartCall() {
|
|
381
380
|
}
|
382
381
|
|
383
382
|
void HealthCheckClient::CallState::StartBatchInCallCombiner(
|
384
|
-
void* arg,
|
383
|
+
void* arg, grpc_error_handle /*error*/) {
|
385
384
|
grpc_transport_stream_op_batch* batch =
|
386
385
|
static_cast<grpc_transport_stream_op_batch*>(arg);
|
387
386
|
SubchannelCall* call =
|
@@ -399,14 +398,14 @@ void HealthCheckClient::CallState::StartBatch(
|
|
399
398
|
}
|
400
399
|
|
401
400
|
void HealthCheckClient::CallState::AfterCallStackDestruction(
|
402
|
-
void* arg,
|
401
|
+
void* arg, grpc_error_handle /*error*/) {
|
403
402
|
HealthCheckClient::CallState* self =
|
404
403
|
static_cast<HealthCheckClient::CallState*>(arg);
|
405
404
|
delete self;
|
406
405
|
}
|
407
406
|
|
408
|
-
void HealthCheckClient::CallState::OnCancelComplete(
|
409
|
-
|
407
|
+
void HealthCheckClient::CallState::OnCancelComplete(
|
408
|
+
void* arg, grpc_error_handle /*error*/) {
|
410
409
|
HealthCheckClient::CallState* self =
|
411
410
|
static_cast<HealthCheckClient::CallState*>(arg);
|
412
411
|
GRPC_CALL_COMBINER_STOP(&self->call_combiner_, "health_cancel");
|
@@ -414,7 +413,7 @@ void HealthCheckClient::CallState::OnCancelComplete(void* arg,
|
|
414
413
|
}
|
415
414
|
|
416
415
|
void HealthCheckClient::CallState::StartCancel(void* arg,
|
417
|
-
|
416
|
+
grpc_error_handle /*error*/) {
|
418
417
|
HealthCheckClient::CallState* self =
|
419
418
|
static_cast<HealthCheckClient::CallState*>(arg);
|
420
419
|
auto* batch = grpc_make_transport_stream_op(
|
@@ -437,7 +436,7 @@ void HealthCheckClient::CallState::Cancel() {
|
|
437
436
|
}
|
438
437
|
|
439
438
|
void HealthCheckClient::CallState::OnComplete(void* arg,
|
440
|
-
|
439
|
+
grpc_error_handle /*error*/) {
|
441
440
|
HealthCheckClient::CallState* self =
|
442
441
|
static_cast<HealthCheckClient::CallState*>(arg);
|
443
442
|
GRPC_CALL_COMBINER_STOP(&self->call_combiner_, "on_complete");
|
@@ -447,7 +446,7 @@ void HealthCheckClient::CallState::OnComplete(void* arg,
|
|
447
446
|
}
|
448
447
|
|
449
448
|
void HealthCheckClient::CallState::RecvInitialMetadataReady(
|
450
|
-
void* arg,
|
449
|
+
void* arg, grpc_error_handle /*error*/) {
|
451
450
|
HealthCheckClient::CallState* self =
|
452
451
|
static_cast<HealthCheckClient::CallState*>(arg);
|
453
452
|
GRPC_CALL_COMBINER_STOP(&self->call_combiner_, "recv_initial_metadata_ready");
|
@@ -455,7 +454,8 @@ void HealthCheckClient::CallState::RecvInitialMetadataReady(
|
|
455
454
|
self->call_->Unref(DEBUG_LOCATION, "recv_initial_metadata_ready");
|
456
455
|
}
|
457
456
|
|
458
|
-
void HealthCheckClient::CallState::DoneReadingRecvMessage(
|
457
|
+
void HealthCheckClient::CallState::DoneReadingRecvMessage(
|
458
|
+
grpc_error_handle error) {
|
459
459
|
recv_message_.reset();
|
460
460
|
if (error != GRPC_ERROR_NONE) {
|
461
461
|
GRPC_ERROR_UNREF(error);
|
@@ -467,10 +467,10 @@ void HealthCheckClient::CallState::DoneReadingRecvMessage(grpc_error* error) {
|
|
467
467
|
const bool healthy = DecodeResponse(&recv_message_buffer_, &error);
|
468
468
|
const grpc_connectivity_state state =
|
469
469
|
healthy ? GRPC_CHANNEL_READY : GRPC_CHANNEL_TRANSIENT_FAILURE;
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
470
|
+
health_check_client_->SetHealthStatus(
|
471
|
+
state, error == GRPC_ERROR_NONE && !healthy
|
472
|
+
? "backend unhealthy"
|
473
|
+
: grpc_error_std_string(error).c_str());
|
474
474
|
seen_response_.Store(true, MemoryOrder::RELEASE);
|
475
475
|
grpc_slice_buffer_destroy_internal(&recv_message_buffer_);
|
476
476
|
// Start another recv_message batch.
|
@@ -479,15 +479,16 @@ void HealthCheckClient::CallState::DoneReadingRecvMessage(grpc_error* error) {
|
|
479
479
|
// callbacks from the original batch have completed yet.
|
480
480
|
recv_message_batch_.payload = &payload_;
|
481
481
|
payload_.recv_message.recv_message = &recv_message_;
|
482
|
+
payload_.recv_message.call_failed_before_recv_message = nullptr;
|
482
483
|
payload_.recv_message.recv_message_ready = GRPC_CLOSURE_INIT(
|
483
484
|
&recv_message_ready_, RecvMessageReady, this, grpc_schedule_on_exec_ctx);
|
484
485
|
recv_message_batch_.recv_message = true;
|
485
486
|
StartBatch(&recv_message_batch_);
|
486
487
|
}
|
487
488
|
|
488
|
-
|
489
|
+
grpc_error_handle HealthCheckClient::CallState::PullSliceFromRecvMessage() {
|
489
490
|
grpc_slice slice;
|
490
|
-
|
491
|
+
grpc_error_handle error = recv_message_->Pull(&slice);
|
491
492
|
if (error == GRPC_ERROR_NONE) {
|
492
493
|
grpc_slice_buffer_add(&recv_message_buffer_, slice);
|
493
494
|
}
|
@@ -496,7 +497,7 @@ grpc_error* HealthCheckClient::CallState::PullSliceFromRecvMessage() {
|
|
496
497
|
|
497
498
|
void HealthCheckClient::CallState::ContinueReadingRecvMessage() {
|
498
499
|
while (recv_message_->Next(SIZE_MAX, &recv_message_ready_)) {
|
499
|
-
|
500
|
+
grpc_error_handle error = PullSliceFromRecvMessage();
|
500
501
|
if (error != GRPC_ERROR_NONE) {
|
501
502
|
DoneReadingRecvMessage(error);
|
502
503
|
return;
|
@@ -509,7 +510,7 @@ void HealthCheckClient::CallState::ContinueReadingRecvMessage() {
|
|
509
510
|
}
|
510
511
|
|
511
512
|
void HealthCheckClient::CallState::OnByteStreamNext(void* arg,
|
512
|
-
|
513
|
+
grpc_error_handle error) {
|
513
514
|
HealthCheckClient::CallState* self =
|
514
515
|
static_cast<HealthCheckClient::CallState*>(arg);
|
515
516
|
if (error != GRPC_ERROR_NONE) {
|
@@ -528,8 +529,8 @@ void HealthCheckClient::CallState::OnByteStreamNext(void* arg,
|
|
528
529
|
}
|
529
530
|
}
|
530
531
|
|
531
|
-
void HealthCheckClient::CallState::RecvMessageReady(
|
532
|
-
|
532
|
+
void HealthCheckClient::CallState::RecvMessageReady(
|
533
|
+
void* arg, grpc_error_handle /*error*/) {
|
533
534
|
HealthCheckClient::CallState* self =
|
534
535
|
static_cast<HealthCheckClient::CallState*>(arg);
|
535
536
|
GRPC_CALL_COMBINER_STOP(&self->call_combiner_, "recv_message_ready");
|
@@ -545,7 +546,7 @@ void HealthCheckClient::CallState::RecvMessageReady(void* arg,
|
|
545
546
|
}
|
546
547
|
|
547
548
|
void HealthCheckClient::CallState::RecvTrailingMetadataReady(
|
548
|
-
void* arg,
|
549
|
+
void* arg, grpc_error_handle error) {
|
549
550
|
HealthCheckClient::CallState* self =
|
550
551
|
static_cast<HealthCheckClient::CallState*>(arg);
|
551
552
|
GRPC_CALL_COMBINER_STOP(&self->call_combiner_,
|
@@ -64,30 +64,30 @@ class HealthCheckClient : public InternallyRefCounted<HealthCheckClient> {
|
|
64
64
|
|
65
65
|
void Orphan() override;
|
66
66
|
|
67
|
-
void StartCall();
|
67
|
+
void StartCall() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&HealthCheckClient::mu_);
|
68
68
|
|
69
69
|
private:
|
70
70
|
void Cancel();
|
71
71
|
|
72
72
|
void StartBatch(grpc_transport_stream_op_batch* batch);
|
73
|
-
static void StartBatchInCallCombiner(void* arg,
|
73
|
+
static void StartBatchInCallCombiner(void* arg, grpc_error_handle error);
|
74
74
|
|
75
|
-
|
76
|
-
|
75
|
+
void CallEndedLocked(bool retry)
|
76
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(health_check_client_->mu_);
|
77
77
|
|
78
|
-
static void OnComplete(void* arg,
|
79
|
-
static void RecvInitialMetadataReady(void* arg,
|
80
|
-
static void RecvMessageReady(void* arg,
|
81
|
-
static void RecvTrailingMetadataReady(void* arg,
|
82
|
-
static void StartCancel(void* arg,
|
83
|
-
static void OnCancelComplete(void* arg,
|
78
|
+
static void OnComplete(void* arg, grpc_error_handle error);
|
79
|
+
static void RecvInitialMetadataReady(void* arg, grpc_error_handle error);
|
80
|
+
static void RecvMessageReady(void* arg, grpc_error_handle error);
|
81
|
+
static void RecvTrailingMetadataReady(void* arg, grpc_error_handle error);
|
82
|
+
static void StartCancel(void* arg, grpc_error_handle error);
|
83
|
+
static void OnCancelComplete(void* arg, grpc_error_handle error);
|
84
84
|
|
85
|
-
static void OnByteStreamNext(void* arg,
|
85
|
+
static void OnByteStreamNext(void* arg, grpc_error_handle error);
|
86
86
|
void ContinueReadingRecvMessage();
|
87
|
-
|
88
|
-
void DoneReadingRecvMessage(
|
87
|
+
grpc_error_handle PullSliceFromRecvMessage();
|
88
|
+
void DoneReadingRecvMessage(grpc_error_handle error);
|
89
89
|
|
90
|
-
static void AfterCallStackDestruction(void* arg,
|
90
|
+
static void AfterCallStackDestruction(void* arg, grpc_error_handle error);
|
91
91
|
|
92
92
|
RefCountedPtr<HealthCheckClient> health_check_client_;
|
93
93
|
grpc_polling_entity pollent_;
|
@@ -128,27 +128,27 @@ class HealthCheckClient : public InternallyRefCounted<HealthCheckClient> {
|
|
128
128
|
grpc_slice_buffer recv_message_buffer_;
|
129
129
|
Atomic<bool> seen_response_{false};
|
130
130
|
|
131
|
+
// True if the cancel_stream batch has been started.
|
132
|
+
Atomic<bool> cancelled_{false};
|
133
|
+
|
131
134
|
// recv_trailing_metadata
|
132
135
|
grpc_metadata_batch recv_trailing_metadata_;
|
133
136
|
grpc_transport_stream_stats collect_stats_;
|
134
137
|
grpc_closure recv_trailing_metadata_ready_;
|
135
138
|
|
136
|
-
// True if the cancel_stream batch has been started.
|
137
|
-
Atomic<bool> cancelled_{false};
|
138
|
-
|
139
139
|
// Closure for call stack destruction.
|
140
140
|
grpc_closure after_call_stack_destruction_;
|
141
141
|
};
|
142
142
|
|
143
143
|
void StartCall();
|
144
|
-
void StartCallLocked()
|
144
|
+
void StartCallLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
145
145
|
|
146
|
-
void StartRetryTimerLocked()
|
147
|
-
static void OnRetryTimer(void* arg,
|
146
|
+
void StartRetryTimerLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
147
|
+
static void OnRetryTimer(void* arg, grpc_error_handle error);
|
148
148
|
|
149
149
|
void SetHealthStatus(grpc_connectivity_state state, const char* reason);
|
150
|
-
void SetHealthStatusLocked(grpc_connectivity_state state,
|
151
|
-
|
150
|
+
void SetHealthStatusLocked(grpc_connectivity_state state, const char* reason)
|
151
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
152
152
|
|
153
153
|
std::string service_name_;
|
154
154
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel_;
|
@@ -156,18 +156,19 @@ class HealthCheckClient : public InternallyRefCounted<HealthCheckClient> {
|
|
156
156
|
RefCountedPtr<channelz::SubchannelNode> channelz_node_;
|
157
157
|
|
158
158
|
Mutex mu_;
|
159
|
-
RefCountedPtr<ConnectivityStateWatcherInterface> watcher_
|
160
|
-
|
159
|
+
RefCountedPtr<ConnectivityStateWatcherInterface> watcher_
|
160
|
+
ABSL_GUARDED_BY(mu_);
|
161
|
+
bool shutting_down_ ABSL_GUARDED_BY(mu_) = false;
|
161
162
|
|
162
163
|
// The data associated with the current health check call. It holds a ref
|
163
164
|
// to this HealthCheckClient object.
|
164
|
-
OrphanablePtr<CallState> call_state_;
|
165
|
+
OrphanablePtr<CallState> call_state_ ABSL_GUARDED_BY(mu_);
|
165
166
|
|
166
167
|
// Call retry state.
|
167
|
-
BackOff retry_backoff_;
|
168
|
-
grpc_timer retry_timer_;
|
169
|
-
grpc_closure retry_timer_callback_;
|
170
|
-
bool retry_timer_callback_pending_ = false;
|
168
|
+
BackOff retry_backoff_ ABSL_GUARDED_BY(mu_);
|
169
|
+
grpc_timer retry_timer_ ABSL_GUARDED_BY(mu_);
|
170
|
+
grpc_closure retry_timer_callback_ ABSL_GUARDED_BY(mu_);
|
171
|
+
bool retry_timer_callback_pending_ ABSL_GUARDED_BY(mu_) = false;
|
171
172
|
};
|
172
173
|
|
173
174
|
} // namespace grpc_core
|