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
data/src/core/lib/surface/call.h
CHANGED
@@ -55,8 +55,8 @@ typedef struct grpc_call_create_args {
|
|
55
55
|
/* Create a new call based on \a args.
|
56
56
|
Regardless of success or failure, always returns a valid new call into *call
|
57
57
|
*/
|
58
|
-
|
59
|
-
|
58
|
+
grpc_error_handle grpc_call_create(const grpc_call_create_args* args,
|
59
|
+
grpc_call** call);
|
60
60
|
|
61
61
|
void grpc_call_set_completion_queue(grpc_call* call, grpc_completion_queue* cq);
|
62
62
|
|
@@ -120,6 +120,17 @@ size_t grpc_call_get_initial_size_estimate();
|
|
120
120
|
grpc_compression_algorithm grpc_call_compression_for_level(
|
121
121
|
grpc_call* call, grpc_compression_level level);
|
122
122
|
|
123
|
+
/* Did this client call receive a trailers-only response */
|
124
|
+
/* TODO(markdroth): This is currently available only to the C++ API.
|
125
|
+
Move to surface API if requested by other languages. */
|
126
|
+
bool grpc_call_is_trailers_only(const grpc_call* call);
|
127
|
+
|
128
|
+
/* Returns whether or not the call's receive message operation failed because of
|
129
|
+
* an error (as opposed to a graceful end-of-stream) */
|
130
|
+
/* TODO(markdroth): This is currently available only to the C++ API.
|
131
|
+
Move to surface API if requested by other languages. */
|
132
|
+
bool grpc_call_failed_before_recv_message(const grpc_call* c);
|
133
|
+
|
123
134
|
extern grpc_core::TraceFlag grpc_call_error_trace;
|
124
135
|
extern grpc_core::TraceFlag grpc_compression_trace;
|
125
136
|
|
@@ -54,11 +54,11 @@
|
|
54
54
|
* (OK, Cancelled, Unknown). */
|
55
55
|
#define NUM_CACHED_STATUS_ELEMS 3
|
56
56
|
|
57
|
-
static void destroy_channel(void* arg,
|
57
|
+
static void destroy_channel(void* arg, grpc_error_handle error);
|
58
58
|
|
59
59
|
grpc_channel* grpc_channel_create_with_builder(
|
60
60
|
grpc_channel_stack_builder* builder,
|
61
|
-
grpc_channel_stack_type channel_stack_type,
|
61
|
+
grpc_channel_stack_type channel_stack_type, grpc_error_handle* error) {
|
62
62
|
char* target = gpr_strdup(grpc_channel_stack_builder_get_target(builder));
|
63
63
|
grpc_channel_args* args = grpc_channel_args_copy(
|
64
64
|
grpc_channel_stack_builder_get_channel_arguments(builder));
|
@@ -70,12 +70,12 @@ grpc_channel* grpc_channel_create_with_builder(
|
|
70
70
|
} else {
|
71
71
|
GRPC_STATS_INC_CLIENT_CHANNELS_CREATED();
|
72
72
|
}
|
73
|
-
|
73
|
+
grpc_error_handle builder_error = grpc_channel_stack_builder_finish(
|
74
74
|
builder, sizeof(grpc_channel), 1, destroy_channel, nullptr,
|
75
75
|
reinterpret_cast<void**>(&channel));
|
76
76
|
if (builder_error != GRPC_ERROR_NONE) {
|
77
77
|
gpr_log(GPR_ERROR, "channel stack builder failed: %s",
|
78
|
-
|
78
|
+
grpc_error_std_string(builder_error).c_str());
|
79
79
|
GPR_ASSERT(channel == nullptr);
|
80
80
|
if (error != nullptr) {
|
81
81
|
*error = builder_error;
|
@@ -225,7 +225,7 @@ grpc_channel* grpc_channel_create(const char* target,
|
|
225
225
|
grpc_channel_stack_type channel_stack_type,
|
226
226
|
grpc_transport* optional_transport,
|
227
227
|
grpc_resource_user* resource_user,
|
228
|
-
|
228
|
+
grpc_error_handle* error) {
|
229
229
|
// We need to make sure that grpc_shutdown() does not shut things down
|
230
230
|
// until after the channel is destroyed. However, the channel may not
|
231
231
|
// actually be destroyed by the time grpc_channel_destroy() returns,
|
@@ -497,7 +497,7 @@ grpc_call* grpc_channel_create_registered_call(
|
|
497
497
|
return call;
|
498
498
|
}
|
499
499
|
|
500
|
-
static void destroy_channel(void* arg,
|
500
|
+
static void destroy_channel(void* arg, grpc_error_handle /*error*/) {
|
501
501
|
grpc_channel* channel = static_cast<grpc_channel*>(arg);
|
502
502
|
if (channel->channelz_node != nullptr) {
|
503
503
|
channel->channelz_node->AddTraceEvent(
|
@@ -35,7 +35,7 @@ grpc_channel* grpc_channel_create(const char* target,
|
|
35
35
|
grpc_channel_stack_type channel_stack_type,
|
36
36
|
grpc_transport* optional_transport,
|
37
37
|
grpc_resource_user* resource_user = nullptr,
|
38
|
-
|
38
|
+
grpc_error_handle* error = nullptr);
|
39
39
|
|
40
40
|
/** The same as grpc_channel_destroy, but doesn't create an ExecCtx, and so
|
41
41
|
* is safe to use from within core. */
|
@@ -43,7 +43,8 @@ void grpc_channel_destroy_internal(grpc_channel* channel);
|
|
43
43
|
|
44
44
|
grpc_channel* grpc_channel_create_with_builder(
|
45
45
|
grpc_channel_stack_builder* builder,
|
46
|
-
grpc_channel_stack_type channel_stack_type,
|
46
|
+
grpc_channel_stack_type channel_stack_type,
|
47
|
+
grpc_error_handle* error = nullptr);
|
47
48
|
|
48
49
|
/** Create a call given a grpc_channel, in order to call \a method.
|
49
50
|
Progress is tied to activity on \a pollset_set. The returned call object is
|
@@ -38,7 +38,7 @@ static void ping_destroy(void* arg, grpc_cq_completion* /*storage*/) {
|
|
38
38
|
gpr_free(arg);
|
39
39
|
}
|
40
40
|
|
41
|
-
static void ping_done(void* arg,
|
41
|
+
static void ping_done(void* arg, grpc_error_handle error) {
|
42
42
|
ping_result* pr = static_cast<ping_result*>(arg);
|
43
43
|
grpc_cq_end_op(pr->cq, pr->tag, GRPC_ERROR_REF(error), ping_destroy, pr,
|
44
44
|
&pr->completion_storage);
|
@@ -70,10 +70,10 @@ struct cq_poller_vtable {
|
|
70
70
|
bool can_listen;
|
71
71
|
size_t (*size)(void);
|
72
72
|
void (*init)(grpc_pollset* pollset, gpr_mu** mu);
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
73
|
+
grpc_error_handle (*kick)(grpc_pollset* pollset,
|
74
|
+
grpc_pollset_worker* specific_worker);
|
75
|
+
grpc_error_handle (*work)(grpc_pollset* pollset, grpc_pollset_worker** worker,
|
76
|
+
grpc_millis deadline);
|
77
77
|
void (*shutdown)(grpc_pollset* pollset, grpc_closure* closure);
|
78
78
|
void (*destroy)(grpc_pollset* pollset);
|
79
79
|
};
|
@@ -103,9 +103,9 @@ void non_polling_poller_destroy(grpc_pollset* pollset) {
|
|
103
103
|
gpr_mu_destroy(&npp->mu);
|
104
104
|
}
|
105
105
|
|
106
|
-
|
107
|
-
|
108
|
-
|
106
|
+
grpc_error_handle non_polling_poller_work(grpc_pollset* pollset,
|
107
|
+
grpc_pollset_worker** worker,
|
108
|
+
grpc_millis deadline) {
|
109
109
|
non_polling_poller* npp = reinterpret_cast<non_polling_poller*>(pollset);
|
110
110
|
if (npp->shutdown) return GRPC_ERROR_NONE;
|
111
111
|
if (npp->kicked_without_poller) {
|
@@ -145,8 +145,8 @@ grpc_error* non_polling_poller_work(grpc_pollset* pollset,
|
|
145
145
|
return GRPC_ERROR_NONE;
|
146
146
|
}
|
147
147
|
|
148
|
-
|
149
|
-
|
148
|
+
grpc_error_handle non_polling_poller_kick(
|
149
|
+
grpc_pollset* pollset, grpc_pollset_worker* specific_worker) {
|
150
150
|
non_polling_poller* p = reinterpret_cast<non_polling_poller*>(pollset);
|
151
151
|
if (specific_worker == nullptr) {
|
152
152
|
specific_worker = reinterpret_cast<grpc_pollset_worker*>(p->root);
|
@@ -197,12 +197,11 @@ const cq_poller_vtable g_poller_vtable_by_poller_type[] = {
|
|
197
197
|
struct cq_vtable {
|
198
198
|
grpc_cq_completion_type cq_completion_type;
|
199
199
|
size_t data_size;
|
200
|
-
void (*init)(void* data,
|
201
|
-
grpc_experimental_completion_queue_functor* shutdown_callback);
|
200
|
+
void (*init)(void* data, grpc_completion_queue_functor* shutdown_callback);
|
202
201
|
void (*shutdown)(grpc_completion_queue* cq);
|
203
202
|
void (*destroy)(void* data);
|
204
203
|
bool (*begin_op)(grpc_completion_queue* cq, void* tag);
|
205
|
-
void (*end_op)(grpc_completion_queue* cq, void* tag,
|
204
|
+
void (*end_op)(grpc_completion_queue* cq, void* tag, grpc_error_handle error,
|
206
205
|
void (*done)(void* done_arg, grpc_cq_completion* storage),
|
207
206
|
void* done_arg, grpc_cq_completion* storage, bool internal);
|
208
207
|
grpc_event (*next)(grpc_completion_queue* cq, gpr_timespec deadline,
|
@@ -310,8 +309,7 @@ struct cq_pluck_data {
|
|
310
309
|
};
|
311
310
|
|
312
311
|
struct cq_callback_data {
|
313
|
-
explicit cq_callback_data(
|
314
|
-
grpc_experimental_completion_queue_functor* shutdown_callback)
|
312
|
+
explicit cq_callback_data(grpc_completion_queue_functor* shutdown_callback)
|
315
313
|
: shutdown_callback(shutdown_callback) {}
|
316
314
|
|
317
315
|
~cq_callback_data() {
|
@@ -332,7 +330,7 @@ struct cq_callback_data {
|
|
332
330
|
bool shutdown_called = false;
|
333
331
|
|
334
332
|
/** A callback that gets invoked when the CQ completes shutdown */
|
335
|
-
|
333
|
+
grpc_completion_queue_functor* shutdown_callback;
|
336
334
|
};
|
337
335
|
|
338
336
|
} // namespace
|
@@ -376,17 +374,17 @@ static bool cq_begin_op_for_callback(grpc_completion_queue* cq, void* tag);
|
|
376
374
|
// safe to free up that storage. The storage MUST NOT be freed until the
|
377
375
|
// done callback is invoked.
|
378
376
|
static void cq_end_op_for_next(
|
379
|
-
grpc_completion_queue* cq, void* tag,
|
377
|
+
grpc_completion_queue* cq, void* tag, grpc_error_handle error,
|
380
378
|
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
381
379
|
grpc_cq_completion* storage, bool internal);
|
382
380
|
|
383
381
|
static void cq_end_op_for_pluck(
|
384
|
-
grpc_completion_queue* cq, void* tag,
|
382
|
+
grpc_completion_queue* cq, void* tag, grpc_error_handle error,
|
385
383
|
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
386
384
|
grpc_cq_completion* storage, bool internal);
|
387
385
|
|
388
386
|
static void cq_end_op_for_callback(
|
389
|
-
grpc_completion_queue* cq, void* tag,
|
387
|
+
grpc_completion_queue* cq, void* tag, grpc_error_handle error,
|
390
388
|
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
391
389
|
grpc_cq_completion* storage, bool internal);
|
392
390
|
|
@@ -397,12 +395,12 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
397
395
|
gpr_timespec deadline, void* reserved);
|
398
396
|
|
399
397
|
// Note that cq_init_next and cq_init_pluck do not use the shutdown_callback
|
400
|
-
static void cq_init_next(
|
401
|
-
|
402
|
-
static void cq_init_pluck(
|
403
|
-
|
404
|
-
static void cq_init_callback(
|
405
|
-
|
398
|
+
static void cq_init_next(void* data,
|
399
|
+
grpc_completion_queue_functor* shutdown_callback);
|
400
|
+
static void cq_init_pluck(void* data,
|
401
|
+
grpc_completion_queue_functor* shutdown_callback);
|
402
|
+
static void cq_init_callback(void* data,
|
403
|
+
grpc_completion_queue_functor* shutdown_callback);
|
406
404
|
static void cq_destroy_next(void* data);
|
407
405
|
static void cq_destroy_pluck(void* data);
|
408
406
|
static void cq_destroy_callback(void* data);
|
@@ -439,7 +437,7 @@ grpc_core::TraceFlag grpc_cq_pluck_trace(false, "queue_pluck");
|
|
439
437
|
} \
|
440
438
|
} while (0)
|
441
439
|
|
442
|
-
static void on_pollset_shutdown_done(void* arg,
|
440
|
+
static void on_pollset_shutdown_done(void* arg, grpc_error_handle error);
|
443
441
|
|
444
442
|
void grpc_cq_global_init() {
|
445
443
|
gpr_tls_init(&g_cached_event);
|
@@ -513,7 +511,7 @@ grpc_cq_completion* CqEventQueue::Pop() {
|
|
513
511
|
|
514
512
|
grpc_completion_queue* grpc_completion_queue_create_internal(
|
515
513
|
grpc_cq_completion_type completion_type, grpc_cq_polling_type polling_type,
|
516
|
-
|
514
|
+
grpc_completion_queue_functor* shutdown_callback) {
|
517
515
|
GPR_TIMER_SCOPE("grpc_completion_queue_create_internal", 0);
|
518
516
|
|
519
517
|
grpc_completion_queue* cq;
|
@@ -548,9 +546,8 @@ grpc_completion_queue* grpc_completion_queue_create_internal(
|
|
548
546
|
return cq;
|
549
547
|
}
|
550
548
|
|
551
|
-
static void cq_init_next(
|
552
|
-
|
553
|
-
grpc_experimental_completion_queue_functor* /*shutdown_callback*/) {
|
549
|
+
static void cq_init_next(void* data,
|
550
|
+
grpc_completion_queue_functor* /*shutdown_callback*/) {
|
554
551
|
new (data) cq_next_data();
|
555
552
|
}
|
556
553
|
|
@@ -560,8 +557,7 @@ static void cq_destroy_next(void* data) {
|
|
560
557
|
}
|
561
558
|
|
562
559
|
static void cq_init_pluck(
|
563
|
-
void* data,
|
564
|
-
grpc_experimental_completion_queue_functor* /*shutdown_callback*/) {
|
560
|
+
void* data, grpc_completion_queue_functor* /*shutdown_callback*/) {
|
565
561
|
new (data) cq_pluck_data();
|
566
562
|
}
|
567
563
|
|
@@ -570,8 +566,8 @@ static void cq_destroy_pluck(void* data) {
|
|
570
566
|
cqd->~cq_pluck_data();
|
571
567
|
}
|
572
568
|
|
573
|
-
static void cq_init_callback(
|
574
|
-
|
569
|
+
static void cq_init_callback(void* data,
|
570
|
+
grpc_completion_queue_functor* shutdown_callback) {
|
575
571
|
new (data) cq_callback_data(shutdown_callback);
|
576
572
|
}
|
577
573
|
|
@@ -604,7 +600,7 @@ void grpc_cq_internal_ref(grpc_completion_queue* cq) {
|
|
604
600
|
cq->owning_refs.Ref(debug_location, reason);
|
605
601
|
}
|
606
602
|
|
607
|
-
static void on_pollset_shutdown_done(void* arg,
|
603
|
+
static void on_pollset_shutdown_done(void* arg, grpc_error_handle /*error*/) {
|
608
604
|
grpc_completion_queue* cq = static_cast<grpc_completion_queue*>(arg);
|
609
605
|
GRPC_CQ_INTERNAL_UNREF(cq, "pollset_destroy");
|
610
606
|
}
|
@@ -690,7 +686,7 @@ bool grpc_cq_begin_op(grpc_completion_queue* cq, void* tag) {
|
|
690
686
|
* completion
|
691
687
|
* type of GRPC_CQ_NEXT) */
|
692
688
|
static void cq_end_op_for_next(
|
693
|
-
grpc_completion_queue* cq, void* tag,
|
689
|
+
grpc_completion_queue* cq, void* tag, grpc_error_handle error,
|
694
690
|
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
695
691
|
grpc_cq_completion* storage, bool /*internal*/) {
|
696
692
|
GPR_TIMER_SCOPE("cq_end_op_for_next", 0);
|
@@ -698,14 +694,15 @@ static void cq_end_op_for_next(
|
|
698
694
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
|
699
695
|
(GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
700
696
|
error != GRPC_ERROR_NONE)) {
|
701
|
-
|
697
|
+
std::string errmsg = grpc_error_std_string(error);
|
702
698
|
GRPC_API_TRACE(
|
703
699
|
"cq_end_op_for_next(cq=%p, tag=%p, error=%s, "
|
704
700
|
"done=%p, done_arg=%p, storage=%p)",
|
705
|
-
6, (cq, tag, errmsg, done, done_arg, storage));
|
701
|
+
6, (cq, tag, errmsg.c_str(), done, done_arg, storage));
|
706
702
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
707
703
|
error != GRPC_ERROR_NONE) {
|
708
|
-
gpr_log(GPR_INFO, "Operation failed: tag=%p, error=%s", tag,
|
704
|
+
gpr_log(GPR_INFO, "Operation failed: tag=%p, error=%s", tag,
|
705
|
+
errmsg.c_str());
|
709
706
|
}
|
710
707
|
}
|
711
708
|
cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
|
@@ -736,13 +733,13 @@ static void cq_end_op_for_next(
|
|
736
733
|
/* Only kick if this is the first item queued */
|
737
734
|
if (is_first) {
|
738
735
|
gpr_mu_lock(cq->mu);
|
739
|
-
|
736
|
+
grpc_error_handle kick_error =
|
740
737
|
cq->poller_vtable->kick(POLLSET_FROM_CQ(cq), nullptr);
|
741
738
|
gpr_mu_unlock(cq->mu);
|
742
739
|
|
743
740
|
if (kick_error != GRPC_ERROR_NONE) {
|
744
|
-
|
745
|
-
|
741
|
+
gpr_log(GPR_ERROR, "Kick failed: %s",
|
742
|
+
grpc_error_std_string(kick_error).c_str());
|
746
743
|
GRPC_ERROR_UNREF(kick_error);
|
747
744
|
}
|
748
745
|
}
|
@@ -771,7 +768,7 @@ static void cq_end_op_for_next(
|
|
771
768
|
* completion
|
772
769
|
* type of GRPC_CQ_PLUCK) */
|
773
770
|
static void cq_end_op_for_pluck(
|
774
|
-
grpc_completion_queue* cq, void* tag,
|
771
|
+
grpc_completion_queue* cq, void* tag, grpc_error_handle error,
|
775
772
|
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
776
773
|
grpc_cq_completion* storage, bool /*internal*/) {
|
777
774
|
GPR_TIMER_SCOPE("cq_end_op_for_pluck", 0);
|
@@ -782,14 +779,15 @@ static void cq_end_op_for_pluck(
|
|
782
779
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
|
783
780
|
(GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
784
781
|
error != GRPC_ERROR_NONE)) {
|
785
|
-
|
782
|
+
std::string errmsg = grpc_error_std_string(error).c_str();
|
786
783
|
GRPC_API_TRACE(
|
787
784
|
"cq_end_op_for_pluck(cq=%p, tag=%p, error=%s, "
|
788
785
|
"done=%p, done_arg=%p, storage=%p)",
|
789
|
-
6, (cq, tag, errmsg, done, done_arg, storage));
|
786
|
+
6, (cq, tag, errmsg.c_str(), done, done_arg, storage));
|
790
787
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
791
788
|
error != GRPC_ERROR_NONE) {
|
792
|
-
gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag,
|
789
|
+
gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag,
|
790
|
+
errmsg.c_str());
|
793
791
|
}
|
794
792
|
}
|
795
793
|
|
@@ -820,15 +818,12 @@ static void cq_end_op_for_pluck(
|
|
820
818
|
}
|
821
819
|
}
|
822
820
|
|
823
|
-
|
821
|
+
grpc_error_handle kick_error =
|
824
822
|
cq->poller_vtable->kick(POLLSET_FROM_CQ(cq), pluck_worker);
|
825
|
-
|
826
823
|
gpr_mu_unlock(cq->mu);
|
827
|
-
|
828
824
|
if (kick_error != GRPC_ERROR_NONE) {
|
829
|
-
|
830
|
-
|
831
|
-
|
825
|
+
gpr_log(GPR_ERROR, "Kick failed: %s",
|
826
|
+
grpc_error_std_string(kick_error).c_str());
|
832
827
|
GRPC_ERROR_UNREF(kick_error);
|
833
828
|
}
|
834
829
|
}
|
@@ -836,14 +831,14 @@ static void cq_end_op_for_pluck(
|
|
836
831
|
GRPC_ERROR_UNREF(error);
|
837
832
|
}
|
838
833
|
|
839
|
-
static void functor_callback(void* arg,
|
840
|
-
auto* functor = static_cast<
|
834
|
+
static void functor_callback(void* arg, grpc_error_handle error) {
|
835
|
+
auto* functor = static_cast<grpc_completion_queue_functor*>(arg);
|
841
836
|
functor->functor_run(functor, error == GRPC_ERROR_NONE);
|
842
837
|
}
|
843
838
|
|
844
839
|
/* Complete an event on a completion queue of type GRPC_CQ_CALLBACK */
|
845
840
|
static void cq_end_op_for_callback(
|
846
|
-
grpc_completion_queue* cq, void* tag,
|
841
|
+
grpc_completion_queue* cq, void* tag, grpc_error_handle error,
|
847
842
|
void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
|
848
843
|
grpc_cq_completion* storage, bool internal) {
|
849
844
|
GPR_TIMER_SCOPE("cq_end_op_for_callback", 0);
|
@@ -853,14 +848,15 @@ static void cq_end_op_for_callback(
|
|
853
848
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
|
854
849
|
(GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
855
850
|
error != GRPC_ERROR_NONE)) {
|
856
|
-
|
851
|
+
std::string errmsg = grpc_error_std_string(error);
|
857
852
|
GRPC_API_TRACE(
|
858
853
|
"cq_end_op_for_callback(cq=%p, tag=%p, error=%s, "
|
859
854
|
"done=%p, done_arg=%p, storage=%p)",
|
860
|
-
6, (cq, tag, errmsg, done, done_arg, storage));
|
855
|
+
6, (cq, tag, errmsg.c_str(), done, done_arg, storage));
|
861
856
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
862
857
|
error != GRPC_ERROR_NONE) {
|
863
|
-
gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag,
|
858
|
+
gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag,
|
859
|
+
errmsg.c_str());
|
864
860
|
}
|
865
861
|
}
|
866
862
|
|
@@ -880,7 +876,7 @@ static void cq_end_op_for_callback(
|
|
880
876
|
// 2. The callback is marked inlineable and there is an ACEC available
|
881
877
|
// 3. We are already running in a background poller thread (which always has
|
882
878
|
// an ACEC available at the base of the stack).
|
883
|
-
auto* functor = static_cast<
|
879
|
+
auto* functor = static_cast<grpc_completion_queue_functor*>(tag);
|
884
880
|
if (((internal || functor->inlineable) &&
|
885
881
|
grpc_core::ApplicationCallbackExecCtx::Available()) ||
|
886
882
|
grpc_iomgr_is_any_background_poller_thread()) {
|
@@ -896,7 +892,8 @@ static void cq_end_op_for_callback(
|
|
896
892
|
GRPC_CLOSURE_CREATE(functor_callback, functor, nullptr), error);
|
897
893
|
}
|
898
894
|
|
899
|
-
void grpc_cq_end_op(grpc_completion_queue* cq, void* tag,
|
895
|
+
void grpc_cq_end_op(grpc_completion_queue* cq, void* tag,
|
896
|
+
grpc_error_handle error,
|
900
897
|
void (*done)(void* done_arg, grpc_cq_completion* storage),
|
901
898
|
void* done_arg, grpc_cq_completion* storage,
|
902
899
|
bool internal) {
|
@@ -1056,16 +1053,19 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
1056
1053
|
/* The main polling work happens in grpc_pollset_work */
|
1057
1054
|
gpr_mu_lock(cq->mu);
|
1058
1055
|
cq->num_polls++;
|
1059
|
-
|
1060
|
-
|
1056
|
+
grpc_error_handle err = cq->poller_vtable->work(
|
1057
|
+
POLLSET_FROM_CQ(cq), nullptr, iteration_deadline);
|
1061
1058
|
gpr_mu_unlock(cq->mu);
|
1062
1059
|
|
1063
1060
|
if (err != GRPC_ERROR_NONE) {
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1061
|
+
gpr_log(GPR_ERROR, "Completion queue next failed: %s",
|
1062
|
+
grpc_error_std_string(err).c_str());
|
1067
1063
|
GRPC_ERROR_UNREF(err);
|
1068
|
-
|
1064
|
+
if (err == GRPC_ERROR_CANCELLED) {
|
1065
|
+
ret.type = GRPC_QUEUE_SHUTDOWN;
|
1066
|
+
} else {
|
1067
|
+
ret.type = GRPC_QUEUE_TIMEOUT;
|
1068
|
+
}
|
1069
1069
|
ret.success = 0;
|
1070
1070
|
dump_pending_tags(cq);
|
1071
1071
|
break;
|
@@ -1299,14 +1299,13 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1299
1299
|
break;
|
1300
1300
|
}
|
1301
1301
|
cq->num_polls++;
|
1302
|
-
|
1302
|
+
grpc_error_handle err =
|
1303
1303
|
cq->poller_vtable->work(POLLSET_FROM_CQ(cq), &worker, deadline_millis);
|
1304
1304
|
if (err != GRPC_ERROR_NONE) {
|
1305
1305
|
del_plucker(cq, tag, &worker);
|
1306
1306
|
gpr_mu_unlock(cq->mu);
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1307
|
+
gpr_log(GPR_ERROR, "Completion queue pluck failed: %s",
|
1308
|
+
grpc_error_std_string(err).c_str());
|
1310
1309
|
GRPC_ERROR_UNREF(err);
|
1311
1310
|
ret.type = GRPC_QUEUE_TIMEOUT;
|
1312
1311
|
ret.success = 0;
|