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
@@ -135,7 +135,7 @@ class TracedBuffer {
|
|
135
135
|
/** Cleans the list by calling the callback for each traced buffer in the list
|
136
136
|
* with timestamps that it has. */
|
137
137
|
static void Shutdown(grpc_core::TracedBuffer** head, void* remaining,
|
138
|
-
|
138
|
+
grpc_error_handle shutdown_err);
|
139
139
|
|
140
140
|
private:
|
141
141
|
uint32_t seq_no_; /* The sequence number for the last byte in the buffer */
|
@@ -148,7 +148,7 @@ class TracedBuffer {
|
|
148
148
|
public:
|
149
149
|
/* Phony shutdown function */
|
150
150
|
static void Shutdown(grpc_core::TracedBuffer** /*head*/, void* /*remaining*/,
|
151
|
-
|
151
|
+
grpc_error_handle shutdown_err) {
|
152
152
|
GRPC_ERROR_UNREF(shutdown_err);
|
153
153
|
}
|
154
154
|
};
|
@@ -156,9 +156,8 @@ class TracedBuffer {
|
|
156
156
|
|
157
157
|
/** Sets the callback function to call when timestamps for a write are
|
158
158
|
* collected. The callback does not own a reference to error. */
|
159
|
-
void grpc_tcp_set_write_timestamps_callback(
|
160
|
-
|
161
|
-
grpc_error* error));
|
159
|
+
void grpc_tcp_set_write_timestamps_callback(
|
160
|
+
void (*fn)(void*, grpc_core::Timestamps*, grpc_error_handle error));
|
162
161
|
|
163
162
|
} /* namespace grpc_core */
|
164
163
|
|
@@ -32,15 +32,15 @@ DebugOnlyTraceFlag grpc_call_combiner_trace(false, "call_combiner");
|
|
32
32
|
|
33
33
|
namespace {
|
34
34
|
|
35
|
-
|
35
|
+
grpc_error_handle DecodeCancelStateError(gpr_atm cancel_state) {
|
36
36
|
if (cancel_state & 1) {
|
37
|
-
return reinterpret_cast<
|
38
|
-
|
37
|
+
return reinterpret_cast<grpc_error_handle>(cancel_state &
|
38
|
+
~static_cast<gpr_atm>(1));
|
39
39
|
}
|
40
40
|
return GRPC_ERROR_NONE;
|
41
41
|
}
|
42
42
|
|
43
|
-
gpr_atm EncodeCancelStateError(
|
43
|
+
gpr_atm EncodeCancelStateError(grpc_error_handle error) {
|
44
44
|
return static_cast<gpr_atm>(1) | reinterpret_cast<gpr_atm>(error);
|
45
45
|
}
|
46
46
|
|
@@ -60,7 +60,7 @@ CallCombiner::~CallCombiner() {
|
|
60
60
|
}
|
61
61
|
|
62
62
|
#ifdef GRPC_TSAN_ENABLED
|
63
|
-
void CallCombiner::TsanClosure(void* arg,
|
63
|
+
void CallCombiner::TsanClosure(void* arg, grpc_error_handle error) {
|
64
64
|
CallCombiner* self = static_cast<CallCombiner*>(arg);
|
65
65
|
// We ref-count the lock, and check if it's already taken.
|
66
66
|
// If it was taken, we should do nothing. Otherwise, we will mark it as
|
@@ -91,7 +91,8 @@ void CallCombiner::TsanClosure(void* arg, grpc_error* error) {
|
|
91
91
|
}
|
92
92
|
#endif
|
93
93
|
|
94
|
-
void CallCombiner::ScheduleClosure(grpc_closure* closure,
|
94
|
+
void CallCombiner::ScheduleClosure(grpc_closure* closure,
|
95
|
+
grpc_error_handle error) {
|
95
96
|
#ifdef GRPC_TSAN_ENABLED
|
96
97
|
original_closure_ = closure;
|
97
98
|
ExecCtx::Run(DEBUG_LOCATION, &tsan_closure_, error);
|
@@ -110,14 +111,15 @@ void CallCombiner::ScheduleClosure(grpc_closure* closure, grpc_error* error) {
|
|
110
111
|
#define DEBUG_FMT_ARGS
|
111
112
|
#endif
|
112
113
|
|
113
|
-
void CallCombiner::Start(grpc_closure* closure,
|
114
|
+
void CallCombiner::Start(grpc_closure* closure, grpc_error_handle error,
|
114
115
|
DEBUG_ARGS const char* reason) {
|
115
116
|
GPR_TIMER_SCOPE("CallCombiner::Start", 0);
|
116
117
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
|
117
118
|
gpr_log(GPR_INFO,
|
118
119
|
"==> CallCombiner::Start() [%p] closure=%p [" DEBUG_FMT_STR
|
119
120
|
"%s] error=%s",
|
120
|
-
this, closure DEBUG_FMT_ARGS, reason,
|
121
|
+
this, closure DEBUG_FMT_ARGS, reason,
|
122
|
+
grpc_error_std_string(error).c_str());
|
121
123
|
}
|
122
124
|
size_t prev_size =
|
123
125
|
static_cast<size_t>(gpr_atm_full_fetch_add(&size_, (gpr_atm)1));
|
@@ -176,7 +178,8 @@ void CallCombiner::Stop(DEBUG_ARGS const char* reason) {
|
|
176
178
|
}
|
177
179
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
|
178
180
|
gpr_log(GPR_INFO, " EXECUTING FROM QUEUE: closure=%p error=%s",
|
179
|
-
closure,
|
181
|
+
closure,
|
182
|
+
grpc_error_std_string(closure->error_data.error).c_str());
|
180
183
|
}
|
181
184
|
ScheduleClosure(closure, closure->error_data.error);
|
182
185
|
break;
|
@@ -191,7 +194,7 @@ void CallCombiner::SetNotifyOnCancel(grpc_closure* closure) {
|
|
191
194
|
while (true) {
|
192
195
|
// Decode original state.
|
193
196
|
gpr_atm original_state = gpr_atm_acq_load(&cancel_state_);
|
194
|
-
|
197
|
+
grpc_error_handle original_error = DecodeCancelStateError(original_state);
|
195
198
|
// If error is set, invoke the cancellation closure immediately.
|
196
199
|
// Otherwise, store the new closure.
|
197
200
|
if (original_error != GRPC_ERROR_NONE) {
|
@@ -229,11 +232,11 @@ void CallCombiner::SetNotifyOnCancel(grpc_closure* closure) {
|
|
229
232
|
}
|
230
233
|
}
|
231
234
|
|
232
|
-
void CallCombiner::Cancel(
|
235
|
+
void CallCombiner::Cancel(grpc_error_handle error) {
|
233
236
|
GRPC_STATS_INC_CALL_COMBINER_CANCELLED();
|
234
237
|
while (true) {
|
235
238
|
gpr_atm original_state = gpr_atm_acq_load(&cancel_state_);
|
236
|
-
|
239
|
+
grpc_error_handle original_error = DecodeCancelStateError(original_state);
|
237
240
|
if (original_error != GRPC_ERROR_NONE) {
|
238
241
|
GRPC_ERROR_UNREF(error);
|
239
242
|
break;
|
@@ -58,7 +58,7 @@ class CallCombiner {
|
|
58
58
|
#define GRPC_CALL_COMBINER_STOP(call_combiner, reason) \
|
59
59
|
(call_combiner)->Stop(__FILE__, __LINE__, (reason))
|
60
60
|
/// Starts processing \a closure.
|
61
|
-
void Start(grpc_closure* closure,
|
61
|
+
void Start(grpc_closure* closure, grpc_error_handle error, const char* file,
|
62
62
|
int line, const char* reason);
|
63
63
|
/// Yields the call combiner to the next closure in the queue, if any.
|
64
64
|
void Stop(const char* file, int line, const char* reason);
|
@@ -68,7 +68,8 @@ class CallCombiner {
|
|
68
68
|
#define GRPC_CALL_COMBINER_STOP(call_combiner, reason) \
|
69
69
|
(call_combiner)->Stop((reason))
|
70
70
|
/// Starts processing \a closure.
|
71
|
-
void Start(grpc_closure* closure,
|
71
|
+
void Start(grpc_closure* closure, grpc_error_handle error,
|
72
|
+
const char* reason);
|
72
73
|
/// Yields the call combiner to the next closure in the queue, if any.
|
73
74
|
void Stop(const char* reason);
|
74
75
|
#endif
|
@@ -94,26 +95,22 @@ class CallCombiner {
|
|
94
95
|
/// cancellation; this effectively unregisters the previously set closure.
|
95
96
|
/// However, most filters will not need to explicitly unregister their
|
96
97
|
/// callbacks, as this is done automatically when the call is destroyed.
|
97
|
-
/// Filters that schedule the cancellation closure on ExecCtx do not need
|
98
|
-
/// to take a ref on the call stack to guarantee closure liveness. This is
|
99
|
-
/// done by explicitly flushing ExecCtx after the unregistration during
|
100
|
-
/// call destruction.
|
101
98
|
void SetNotifyOnCancel(grpc_closure* closure);
|
102
99
|
|
103
100
|
/// Indicates that the call has been cancelled.
|
104
|
-
void Cancel(
|
101
|
+
void Cancel(grpc_error_handle error);
|
105
102
|
|
106
103
|
private:
|
107
|
-
void ScheduleClosure(grpc_closure* closure,
|
104
|
+
void ScheduleClosure(grpc_closure* closure, grpc_error_handle error);
|
108
105
|
#ifdef GRPC_TSAN_ENABLED
|
109
|
-
static void TsanClosure(void* arg,
|
106
|
+
static void TsanClosure(void* arg, grpc_error_handle error);
|
110
107
|
#endif
|
111
108
|
|
112
109
|
gpr_atm size_ = 0; // size_t, num closures in queue or currently executing
|
113
110
|
MultiProducerSingleConsumerQueue queue_;
|
114
111
|
// Either 0 (if not cancelled and no cancellation closure set),
|
115
112
|
// a grpc_closure* (if the lowest bit is 0),
|
116
|
-
// or a
|
113
|
+
// or a grpc_error_handle (if the lowest bit is 1).
|
117
114
|
gpr_atm cancel_state_ = 0;
|
118
115
|
#ifdef GRPC_TSAN_ENABLED
|
119
116
|
// A fake ref-counted lock that is kept alive after the destruction of
|
@@ -150,7 +147,7 @@ class CallCombinerClosureList {
|
|
150
147
|
|
151
148
|
// Adds a closure to the list. The closure must eventually result in
|
152
149
|
// the call combiner being yielded.
|
153
|
-
void Add(grpc_closure* closure,
|
150
|
+
void Add(grpc_closure* closure, grpc_error_handle error, const char* reason) {
|
154
151
|
closures_.emplace_back(closure, error, reason);
|
155
152
|
}
|
156
153
|
|
@@ -176,7 +173,8 @@ class CallCombinerClosureList {
|
|
176
173
|
"CallCombinerClosureList executing closure while already "
|
177
174
|
"holding call_combiner %p: closure=%p error=%s reason=%s",
|
178
175
|
call_combiner, closures_[0].closure,
|
179
|
-
|
176
|
+
grpc_error_std_string(closures_[0].error).c_str(),
|
177
|
+
closures_[0].reason);
|
180
178
|
}
|
181
179
|
// This will release the call combiner.
|
182
180
|
ExecCtx::Run(DEBUG_LOCATION, closures_[0].closure, closures_[0].error);
|
@@ -199,10 +197,10 @@ class CallCombinerClosureList {
|
|
199
197
|
private:
|
200
198
|
struct CallCombinerClosure {
|
201
199
|
grpc_closure* closure;
|
202
|
-
|
200
|
+
grpc_error_handle error;
|
203
201
|
const char* reason;
|
204
202
|
|
205
|
-
CallCombinerClosure(grpc_closure* closure,
|
203
|
+
CallCombinerClosure(grpc_closure* closure, grpc_error_handle error,
|
206
204
|
const char* reason)
|
207
205
|
: closure(closure), error(error), reason(reason) {}
|
208
206
|
};
|
@@ -62,7 +62,7 @@ void CFStreamHandle::ReadCallback(CFReadStreamRef stream,
|
|
62
62
|
void* client_callback_info) {
|
63
63
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
64
64
|
grpc_core::ExecCtx exec_ctx;
|
65
|
-
|
65
|
+
grpc_error_handle error;
|
66
66
|
CFErrorRef stream_error;
|
67
67
|
CFStreamHandle* handle = static_cast<CFStreamHandle*>(client_callback_info);
|
68
68
|
if (grpc_tcp_trace.enabled()) {
|
@@ -97,7 +97,7 @@ void CFStreamHandle::WriteCallback(CFWriteStreamRef stream,
|
|
97
97
|
void* clientCallBackInfo) {
|
98
98
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
99
99
|
grpc_core::ExecCtx exec_ctx;
|
100
|
-
|
100
|
+
grpc_error_handle error;
|
101
101
|
CFErrorRef stream_error;
|
102
102
|
CFStreamHandle* handle = static_cast<CFStreamHandle*>(clientCallBackInfo);
|
103
103
|
if (grpc_tcp_trace.enabled()) {
|
@@ -171,7 +171,7 @@ void CFStreamHandle::NotifyOnWrite(grpc_closure* closure) {
|
|
171
171
|
write_event_.NotifyOn(closure);
|
172
172
|
}
|
173
173
|
|
174
|
-
void CFStreamHandle::Shutdown(
|
174
|
+
void CFStreamHandle::Shutdown(grpc_error_handle error) {
|
175
175
|
open_event_.SetShutdown(GRPC_ERROR_REF(error));
|
176
176
|
read_event_.SetShutdown(GRPC_ERROR_REF(error));
|
177
177
|
write_event_.SetShutdown(GRPC_ERROR_REF(error));
|
@@ -53,7 +53,7 @@ class CFStreamHandle : public GrpcLibraryInitHolder {
|
|
53
53
|
void NotifyOnOpen(grpc_closure* closure);
|
54
54
|
void NotifyOnRead(grpc_closure* closure);
|
55
55
|
void NotifyOnWrite(grpc_closure* closure);
|
56
|
-
void Shutdown(
|
56
|
+
void Shutdown(grpc_error_handle error);
|
57
57
|
|
58
58
|
void Ref(const char* file = "", int line = 0, const char* reason = nullptr);
|
59
59
|
void Unref(const char* file = "", int line = 0, const char* reason = nullptr);
|
@@ -50,7 +50,7 @@ typedef struct grpc_closure_list {
|
|
50
50
|
* describing what went wrong.
|
51
51
|
* Error contract: it is not the cb's job to unref this error;
|
52
52
|
* the closure scheduler will do that after the cb returns */
|
53
|
-
typedef void (*grpc_iomgr_cb_func)(void* arg,
|
53
|
+
typedef void (*grpc_iomgr_cb_func)(void* arg, grpc_error_handle error);
|
54
54
|
|
55
55
|
/** A closure over a grpc_iomgr_cb_func. */
|
56
56
|
struct grpc_closure {
|
@@ -72,7 +72,7 @@ struct grpc_closure {
|
|
72
72
|
|
73
73
|
/** Once queued, the result of the closure. Before then: scratch space */
|
74
74
|
union {
|
75
|
-
|
75
|
+
grpc_error_handle error;
|
76
76
|
uintptr_t scratch;
|
77
77
|
} error_data;
|
78
78
|
|
@@ -126,7 +126,7 @@ struct wrapped_closure {
|
|
126
126
|
void* cb_arg;
|
127
127
|
grpc_closure wrapper;
|
128
128
|
};
|
129
|
-
inline void closure_wrapper(void* arg,
|
129
|
+
inline void closure_wrapper(void* arg, grpc_error_handle error) {
|
130
130
|
wrapped_closure* wc = static_cast<wrapped_closure*>(arg);
|
131
131
|
grpc_iomgr_cb_func cb = wc->cb;
|
132
132
|
void* cb_arg = wc->cb_arg;
|
@@ -175,7 +175,8 @@ inline void grpc_closure_list_init(grpc_closure_list* closure_list) {
|
|
175
175
|
and set \a closure's result to \a error
|
176
176
|
Returns true if \a list becomes non-empty */
|
177
177
|
inline bool grpc_closure_list_append(grpc_closure_list* closure_list,
|
178
|
-
grpc_closure* closure,
|
178
|
+
grpc_closure* closure,
|
179
|
+
grpc_error_handle error) {
|
179
180
|
if (closure == nullptr) {
|
180
181
|
GRPC_ERROR_UNREF(error);
|
181
182
|
return false;
|
@@ -194,7 +195,7 @@ inline bool grpc_closure_list_append(grpc_closure_list* closure_list,
|
|
194
195
|
|
195
196
|
/** force all success bits in \a list to false */
|
196
197
|
inline void grpc_closure_list_fail_all(grpc_closure_list* list,
|
197
|
-
|
198
|
+
grpc_error_handle forced_failure) {
|
198
199
|
for (grpc_closure* c = list->head; c != nullptr; c = c->next_data.next) {
|
199
200
|
if (c->error_data.error == GRPC_ERROR_NONE) {
|
200
201
|
c->error_data.error = GRPC_ERROR_REF(forced_failure);
|
@@ -227,7 +228,7 @@ namespace grpc_core {
|
|
227
228
|
class Closure {
|
228
229
|
public:
|
229
230
|
static void Run(const DebugLocation& location, grpc_closure* closure,
|
230
|
-
|
231
|
+
grpc_error_handle error) {
|
231
232
|
(void)location;
|
232
233
|
if (closure == nullptr) {
|
233
234
|
GRPC_ERROR_UNREF(error);
|
@@ -46,11 +46,12 @@ grpc_core::DebugOnlyTraceFlag grpc_combiner_trace(false, "combiner");
|
|
46
46
|
#define STATE_ELEM_COUNT_LOW_BIT 2
|
47
47
|
|
48
48
|
static void combiner_exec(grpc_core::Combiner* lock, grpc_closure* closure,
|
49
|
-
|
49
|
+
grpc_error_handle error);
|
50
50
|
static void combiner_finally_exec(grpc_core::Combiner* lock,
|
51
|
-
grpc_closure* closure,
|
51
|
+
grpc_closure* closure,
|
52
|
+
grpc_error_handle error);
|
52
53
|
|
53
|
-
static void offload(void* arg,
|
54
|
+
static void offload(void* arg, grpc_error_handle error);
|
54
55
|
|
55
56
|
grpc_core::Combiner* grpc_combiner_create(void) {
|
56
57
|
grpc_core::Combiner* lock = new grpc_core::Combiner();
|
@@ -126,7 +127,7 @@ static void push_first_on_exec_ctx(grpc_core::Combiner* lock) {
|
|
126
127
|
}
|
127
128
|
|
128
129
|
static void combiner_exec(grpc_core::Combiner* lock, grpc_closure* cl,
|
129
|
-
|
130
|
+
grpc_error_handle error) {
|
130
131
|
GPR_TIMER_SCOPE("combiner.execute", 0);
|
131
132
|
GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_ITEMS();
|
132
133
|
gpr_atm last = gpr_atm_full_fetch_add(&lock->state, STATE_ELEM_COUNT_LOW_BIT);
|
@@ -167,7 +168,7 @@ static void move_next() {
|
|
167
168
|
}
|
168
169
|
}
|
169
170
|
|
170
|
-
static void offload(void* arg,
|
171
|
+
static void offload(void* arg, grpc_error_handle /*error*/) {
|
171
172
|
grpc_core::Combiner* lock = static_cast<grpc_core::Combiner*>(arg);
|
172
173
|
push_last_on_exec_ctx(lock);
|
173
174
|
}
|
@@ -230,7 +231,7 @@ bool grpc_combiner_continue_exec_ctx() {
|
|
230
231
|
}
|
231
232
|
GPR_TIMER_SCOPE("combiner.exec1", 0);
|
232
233
|
grpc_closure* cl = reinterpret_cast<grpc_closure*>(n);
|
233
|
-
|
234
|
+
grpc_error_handle cl_err = cl->error_data.error;
|
234
235
|
#ifndef NDEBUG
|
235
236
|
cl->scheduled = false;
|
236
237
|
#endif
|
@@ -246,7 +247,7 @@ bool grpc_combiner_continue_exec_ctx() {
|
|
246
247
|
GRPC_COMBINER_TRACE(
|
247
248
|
gpr_log(GPR_INFO, "C:%p execute_final[%d] c=%p", lock, loops, c));
|
248
249
|
grpc_closure* next = c->next_data.next;
|
249
|
-
|
250
|
+
grpc_error_handle error = c->error_data.error;
|
250
251
|
#ifndef NDEBUG
|
251
252
|
c->scheduled = false;
|
252
253
|
#endif
|
@@ -297,10 +298,11 @@ bool grpc_combiner_continue_exec_ctx() {
|
|
297
298
|
return true;
|
298
299
|
}
|
299
300
|
|
300
|
-
static void enqueue_finally(void* closure,
|
301
|
+
static void enqueue_finally(void* closure, grpc_error_handle error);
|
301
302
|
|
302
303
|
static void combiner_finally_exec(grpc_core::Combiner* lock,
|
303
|
-
grpc_closure* closure,
|
304
|
+
grpc_closure* closure,
|
305
|
+
grpc_error_handle error) {
|
304
306
|
GPR_ASSERT(lock != nullptr);
|
305
307
|
GPR_TIMER_SCOPE("combiner.execute_finally", 0);
|
306
308
|
GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS();
|
@@ -322,7 +324,7 @@ static void combiner_finally_exec(grpc_core::Combiner* lock,
|
|
322
324
|
grpc_closure_list_append(&lock->final_list, closure, error);
|
323
325
|
}
|
324
326
|
|
325
|
-
static void enqueue_finally(void* closure,
|
327
|
+
static void enqueue_finally(void* closure, grpc_error_handle error) {
|
326
328
|
grpc_closure* cl = static_cast<grpc_closure*>(closure);
|
327
329
|
combiner_finally_exec(
|
328
330
|
reinterpret_cast<grpc_core::Combiner*>(cl->error_data.scratch), cl,
|
@@ -330,11 +332,11 @@ static void enqueue_finally(void* closure, grpc_error* error) {
|
|
330
332
|
}
|
331
333
|
|
332
334
|
namespace grpc_core {
|
333
|
-
void Combiner::Run(grpc_closure* closure,
|
335
|
+
void Combiner::Run(grpc_closure* closure, grpc_error_handle error) {
|
334
336
|
combiner_exec(this, closure, error);
|
335
337
|
}
|
336
338
|
|
337
|
-
void Combiner::FinallyRun(grpc_closure* closure,
|
339
|
+
void Combiner::FinallyRun(grpc_closure* closure, grpc_error_handle error) {
|
338
340
|
combiner_finally_exec(this, closure, error);
|
339
341
|
}
|
340
342
|
} // namespace grpc_core
|
@@ -32,9 +32,9 @@ namespace grpc_core {
|
|
32
32
|
// use ExecCtx
|
33
33
|
class Combiner {
|
34
34
|
public:
|
35
|
-
void Run(grpc_closure* closure,
|
35
|
+
void Run(grpc_closure* closure, grpc_error_handle error);
|
36
36
|
// TODO(yashkt) : Remove this method
|
37
|
-
void FinallyRun(grpc_closure* closure,
|
37
|
+
void FinallyRun(grpc_closure* closure, grpc_error_handle error);
|
38
38
|
Combiner* next_combiner_on_this_exec_ctx = nullptr;
|
39
39
|
MultiProducerSingleConsumerQueue queue;
|
40
40
|
// either:
|
@@ -46,7 +46,7 @@ void grpc_endpoint_delete_from_pollset_set(grpc_endpoint* ep,
|
|
46
46
|
ep->vtable->delete_from_pollset_set(ep, pollset_set);
|
47
47
|
}
|
48
48
|
|
49
|
-
void grpc_endpoint_shutdown(grpc_endpoint* ep,
|
49
|
+
void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
|
50
50
|
ep->vtable->shutdown(ep, why);
|
51
51
|
}
|
52
52
|
|
@@ -44,7 +44,7 @@ struct grpc_endpoint_vtable {
|
|
44
44
|
void (*add_to_pollset)(grpc_endpoint* ep, grpc_pollset* pollset);
|
45
45
|
void (*add_to_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
46
46
|
void (*delete_from_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
47
|
-
void (*shutdown)(grpc_endpoint* ep,
|
47
|
+
void (*shutdown)(grpc_endpoint* ep, grpc_error_handle why);
|
48
48
|
void (*destroy)(grpc_endpoint* ep);
|
49
49
|
grpc_resource_user* (*get_resource_user)(grpc_endpoint* ep);
|
50
50
|
absl::string_view (*get_peer)(grpc_endpoint* ep);
|
@@ -86,7 +86,7 @@ void grpc_endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
86
86
|
|
87
87
|
/* Causes any pending and future read/write callbacks to run immediately with
|
88
88
|
success==0 */
|
89
|
-
void grpc_endpoint_shutdown(grpc_endpoint* ep,
|
89
|
+
void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error_handle why);
|
90
90
|
void grpc_endpoint_destroy(grpc_endpoint* ep);
|
91
91
|
|
92
92
|
/* Add an endpoint to a pollset or pollset_set, so that when the pollset is
|
@@ -29,13 +29,13 @@
|
|
29
29
|
#include <grpc/support/alloc.h>
|
30
30
|
#include <grpc/support/string_util.h>
|
31
31
|
|
32
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
32
33
|
#include "src/core/lib/gpr/string.h"
|
33
34
|
#include "src/core/lib/iomgr/cfstream_handle.h"
|
34
35
|
#include "src/core/lib/iomgr/closure.h"
|
35
36
|
#include "src/core/lib/iomgr/endpoint.h"
|
36
37
|
#include "src/core/lib/iomgr/error_cfstream.h"
|
37
38
|
#include "src/core/lib/iomgr/sockaddr.h"
|
38
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
39
39
|
#include "src/core/lib/slice/slice_internal.h"
|
40
40
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
41
41
|
|
@@ -106,8 +106,8 @@ static void CFStreamUnref(CFStreamEndpoint* ep) {
|
|
106
106
|
static void CFStreamRef(CFStreamEndpoint* ep) { gpr_ref(&ep->refcount); }
|
107
107
|
#endif
|
108
108
|
|
109
|
-
static
|
110
|
-
|
109
|
+
static grpc_error_handle CFStreamAnnotateError(grpc_error_handle src_error,
|
110
|
+
CFStreamEndpoint* ep) {
|
111
111
|
return grpc_error_set_str(
|
112
112
|
grpc_error_set_int(src_error, GRPC_ERROR_INT_GRPC_STATUS,
|
113
113
|
GRPC_STATUS_UNAVAILABLE),
|
@@ -115,13 +115,12 @@ static grpc_error* CFStreamAnnotateError(grpc_error* src_error,
|
|
115
115
|
grpc_slice_from_copied_string(ep->peer_string.c_str()));
|
116
116
|
}
|
117
117
|
|
118
|
-
static void CallReadCb(CFStreamEndpoint* ep,
|
118
|
+
static void CallReadCb(CFStreamEndpoint* ep, grpc_error_handle error) {
|
119
119
|
if (grpc_tcp_trace.enabled()) {
|
120
120
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p call_read_cb %p %p:%p", ep,
|
121
121
|
ep->read_cb, ep->read_cb->cb, ep->read_cb->cb_arg);
|
122
122
|
size_t i;
|
123
|
-
|
124
|
-
gpr_log(GPR_DEBUG, "read: error=%s", str);
|
123
|
+
gpr_log(GPR_DEBUG, "read: error=%s", grpc_error_std_string(error).c_str());
|
125
124
|
|
126
125
|
for (i = 0; i < ep->read_slices->count; i++) {
|
127
126
|
char* dump = grpc_dump_slice(ep->read_slices->slices[i],
|
@@ -137,12 +136,11 @@ static void CallReadCb(CFStreamEndpoint* ep, grpc_error* error) {
|
|
137
136
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
|
138
137
|
}
|
139
138
|
|
140
|
-
static void CallWriteCb(CFStreamEndpoint* ep,
|
139
|
+
static void CallWriteCb(CFStreamEndpoint* ep, grpc_error_handle error) {
|
141
140
|
if (grpc_tcp_trace.enabled()) {
|
142
141
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p call_write_cb %p %p:%p", ep,
|
143
142
|
ep->write_cb, ep->write_cb->cb, ep->write_cb->cb_arg);
|
144
|
-
|
145
|
-
gpr_log(GPR_DEBUG, "write: error=%s", str);
|
143
|
+
gpr_log(GPR_DEBUG, "write: error=%s", grpc_error_std_string(error).c_str());
|
146
144
|
}
|
147
145
|
grpc_closure* cb = ep->write_cb;
|
148
146
|
ep->write_cb = nullptr;
|
@@ -150,7 +148,7 @@ static void CallWriteCb(CFStreamEndpoint* ep, grpc_error* error) {
|
|
150
148
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
|
151
149
|
}
|
152
150
|
|
153
|
-
static void ReadAction(void* arg,
|
151
|
+
static void ReadAction(void* arg, grpc_error_handle error) {
|
154
152
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
155
153
|
GPR_ASSERT(ep->read_cb != nullptr);
|
156
154
|
if (error) {
|
@@ -192,7 +190,7 @@ static void ReadAction(void* arg, grpc_error* error) {
|
|
192
190
|
}
|
193
191
|
}
|
194
192
|
|
195
|
-
static void WriteAction(void* arg,
|
193
|
+
static void WriteAction(void* arg, grpc_error_handle error) {
|
196
194
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
197
195
|
GPR_ASSERT(ep->write_cb != nullptr);
|
198
196
|
if (error) {
|
@@ -242,7 +240,7 @@ static void WriteAction(void* arg, grpc_error* error) {
|
|
242
240
|
grpc_slice_unref_internal(slice);
|
243
241
|
}
|
244
242
|
|
245
|
-
static void CFStreamReadAllocationDone(void* arg,
|
243
|
+
static void CFStreamReadAllocationDone(void* arg, grpc_error_handle error) {
|
246
244
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
247
245
|
if (error == GRPC_ERROR_NONE) {
|
248
246
|
ep->stream_sync->NotifyOnRead(&ep->read_action);
|
@@ -286,7 +284,7 @@ static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
286
284
|
ep_impl->stream_sync->NotifyOnWrite(&ep_impl->write_action);
|
287
285
|
}
|
288
286
|
|
289
|
-
void CFStreamShutdown(grpc_endpoint* ep,
|
287
|
+
void CFStreamShutdown(grpc_endpoint* ep, grpc_error_handle why) {
|
290
288
|
CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
|
291
289
|
if (grpc_tcp_trace.enabled()) {
|
292
290
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p shutdown (%p)", ep_impl, why);
|