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
@@ -113,7 +113,7 @@ LoadBalancingPolicy::PickResult LoadBalancingPolicy::QueuePicker::Pick(
|
|
113
113
|
auto* parent = parent_->Ref().release(); // ref held by lambda.
|
114
114
|
ExecCtx::Run(DEBUG_LOCATION,
|
115
115
|
GRPC_CLOSURE_CREATE(
|
116
|
-
[](void* arg,
|
116
|
+
[](void* arg, grpc_error_handle /*error*/) {
|
117
117
|
auto* parent = static_cast<LoadBalancingPolicy*>(arg);
|
118
118
|
parent->work_serializer()->Run(
|
119
119
|
[parent]() {
|
@@ -230,7 +230,7 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
230
230
|
/// Error to be set when returning a failure.
|
231
231
|
// TODO(roth): Replace this with something similar to grpc::Status,
|
232
232
|
// so that we don't expose grpc_error to this API.
|
233
|
-
|
233
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
234
234
|
|
235
235
|
/// Used only if type is PICK_COMPLETE.
|
236
236
|
/// Callback set by LB policy to be notified of trailing metadata.
|
@@ -243,7 +243,7 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
243
243
|
// TODO(roth): The arguments to this callback should be moved into a
|
244
244
|
// struct, so that we can later add new fields without breaking
|
245
245
|
// existing implementations.
|
246
|
-
std::function<void(
|
246
|
+
std::function<void(grpc_error_handle, MetadataInterface*, CallState*)>
|
247
247
|
recv_trailing_metadata_ready;
|
248
248
|
};
|
249
249
|
|
@@ -387,13 +387,13 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
387
387
|
// A picker that returns PICK_TRANSIENT_FAILURE for all picks.
|
388
388
|
class TransientFailurePicker : public SubchannelPicker {
|
389
389
|
public:
|
390
|
-
explicit TransientFailurePicker(
|
390
|
+
explicit TransientFailurePicker(grpc_error_handle error) : error_(error) {}
|
391
391
|
~TransientFailurePicker() override { GRPC_ERROR_UNREF(error_); }
|
392
392
|
|
393
393
|
PickResult Pick(PickArgs args) override;
|
394
394
|
|
395
395
|
private:
|
396
|
-
|
396
|
+
grpc_error_handle error_;
|
397
397
|
};
|
398
398
|
|
399
399
|
protected:
|
@@ -39,7 +39,7 @@ class LoadBalancingPolicyFactory {
|
|
39
39
|
virtual const char* name() const = 0;
|
40
40
|
|
41
41
|
virtual RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
42
|
-
const Json& json,
|
42
|
+
const Json& json, grpc_error_handle* error) const = 0;
|
43
43
|
};
|
44
44
|
|
45
45
|
} // namespace grpc_core
|
@@ -109,7 +109,7 @@ bool LoadBalancingPolicyRegistry::LoadBalancingPolicyExists(
|
|
109
109
|
return false;
|
110
110
|
}
|
111
111
|
if (requires_config != nullptr) {
|
112
|
-
|
112
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
113
113
|
// Check if the load balancing policy allows an empty config
|
114
114
|
*requires_config =
|
115
115
|
factory->ParseLoadBalancingConfig(Json(), &error) == nullptr;
|
@@ -122,7 +122,7 @@ namespace {
|
|
122
122
|
|
123
123
|
// Returns the JSON node of policy (with both policy name and config content)
|
124
124
|
// given the JSON node of a LoadBalancingConfig array.
|
125
|
-
|
125
|
+
grpc_error_handle ParseLoadBalancingConfigHelper(
|
126
126
|
const Json& lb_config_array, Json::Object::const_iterator* result) {
|
127
127
|
if (lb_config_array.type() != Json::Type::ARRAY) {
|
128
128
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING("type should be array");
|
@@ -163,8 +163,8 @@ grpc_error* ParseLoadBalancingConfigHelper(
|
|
163
163
|
} // namespace
|
164
164
|
|
165
165
|
RefCountedPtr<LoadBalancingPolicy::Config>
|
166
|
-
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
167
|
-
|
166
|
+
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
167
|
+
const Json& json, grpc_error_handle* error) {
|
168
168
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
169
169
|
GPR_ASSERT(g_state != nullptr);
|
170
170
|
Json::Object::const_iterator policy;
|
@@ -57,7 +57,7 @@ class LoadBalancingPolicyRegistry {
|
|
57
57
|
/// Returns a parsed object of the load balancing policy to be used from a
|
58
58
|
/// LoadBalancingConfig array \a json.
|
59
59
|
static RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
60
|
-
const Json& json,
|
60
|
+
const Json& json, grpc_error_handle* error);
|
61
61
|
};
|
62
62
|
|
63
63
|
} // namespace grpc_core
|
@@ -60,8 +60,6 @@ namespace grpc_core {
|
|
60
60
|
|
61
61
|
namespace {
|
62
62
|
|
63
|
-
const char kDefaultPort[] = "https";
|
64
|
-
|
65
63
|
class AresDnsResolver : public Resolver {
|
66
64
|
public:
|
67
65
|
explicit AresDnsResolver(ResolverArgs args);
|
@@ -80,10 +78,10 @@ class AresDnsResolver : public Resolver {
|
|
80
78
|
void MaybeStartResolvingLocked();
|
81
79
|
void StartResolvingLocked();
|
82
80
|
|
83
|
-
static void OnNextResolution(void* arg,
|
84
|
-
static void OnResolved(void* arg,
|
85
|
-
void OnNextResolutionLocked(
|
86
|
-
void OnResolvedLocked(
|
81
|
+
static void OnNextResolution(void* arg, grpc_error_handle error);
|
82
|
+
static void OnResolved(void* arg, grpc_error_handle error);
|
83
|
+
void OnNextResolutionLocked(grpc_error_handle error);
|
84
|
+
void OnResolvedLocked(grpc_error_handle error);
|
87
85
|
|
88
86
|
/// DNS server to use (if not system default)
|
89
87
|
std::string dns_server_;
|
@@ -193,18 +191,18 @@ void AresDnsResolver::ShutdownLocked() {
|
|
193
191
|
}
|
194
192
|
}
|
195
193
|
|
196
|
-
void AresDnsResolver::OnNextResolution(void* arg,
|
194
|
+
void AresDnsResolver::OnNextResolution(void* arg, grpc_error_handle error) {
|
197
195
|
AresDnsResolver* r = static_cast<AresDnsResolver*>(arg);
|
198
196
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
199
197
|
r->work_serializer_->Run([r, error]() { r->OnNextResolutionLocked(error); },
|
200
198
|
DEBUG_LOCATION);
|
201
199
|
}
|
202
200
|
|
203
|
-
void AresDnsResolver::OnNextResolutionLocked(
|
201
|
+
void AresDnsResolver::OnNextResolutionLocked(grpc_error_handle error) {
|
204
202
|
GRPC_CARES_TRACE_LOG(
|
205
203
|
"resolver:%p re-resolution timer fired. error: %s. shutdown_initiated_: "
|
206
204
|
"%d",
|
207
|
-
this,
|
205
|
+
this, grpc_error_std_string(error).c_str(), shutdown_initiated_);
|
208
206
|
have_next_resolution_timer_ = false;
|
209
207
|
if (error == GRPC_ERROR_NONE && !shutdown_initiated_) {
|
210
208
|
if (!resolving_) {
|
@@ -227,7 +225,7 @@ bool ValueInJsonArray(const Json::Array& array, const char* value) {
|
|
227
225
|
}
|
228
226
|
|
229
227
|
std::string ChooseServiceConfig(char* service_config_choice_json,
|
230
|
-
|
228
|
+
grpc_error_handle* error) {
|
231
229
|
Json json = Json::Parse(service_config_choice_json, error);
|
232
230
|
if (*error != GRPC_ERROR_NONE) return "";
|
233
231
|
if (json.type() != Json::Type::ARRAY) {
|
@@ -236,7 +234,7 @@ std::string ChooseServiceConfig(char* service_config_choice_json,
|
|
236
234
|
return "";
|
237
235
|
}
|
238
236
|
const Json* service_config = nullptr;
|
239
|
-
absl::InlinedVector<
|
237
|
+
absl::InlinedVector<grpc_error_handle, 4> error_list;
|
240
238
|
for (const Json& choice : json.array_value()) {
|
241
239
|
if (choice.type() != Json::Type::OBJECT) {
|
242
240
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -305,14 +303,14 @@ std::string ChooseServiceConfig(char* service_config_choice_json,
|
|
305
303
|
return service_config->Dump();
|
306
304
|
}
|
307
305
|
|
308
|
-
void AresDnsResolver::OnResolved(void* arg,
|
306
|
+
void AresDnsResolver::OnResolved(void* arg, grpc_error_handle error) {
|
309
307
|
AresDnsResolver* r = static_cast<AresDnsResolver*>(arg);
|
310
308
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
311
309
|
r->work_serializer_->Run([r, error]() { r->OnResolvedLocked(error); },
|
312
310
|
DEBUG_LOCATION);
|
313
311
|
}
|
314
312
|
|
315
|
-
void AresDnsResolver::OnResolvedLocked(
|
313
|
+
void AresDnsResolver::OnResolvedLocked(grpc_error_handle error) {
|
316
314
|
GPR_ASSERT(resolving_);
|
317
315
|
resolving_ = false;
|
318
316
|
gpr_free(pending_request_);
|
@@ -354,7 +352,7 @@ void AresDnsResolver::OnResolvedLocked(grpc_error* error) {
|
|
354
352
|
backoff_.Reset();
|
355
353
|
} else {
|
356
354
|
GRPC_CARES_TRACE_LOG("resolver:%p dns resolution failed: %s", this,
|
357
|
-
|
355
|
+
grpc_error_std_string(error).c_str());
|
358
356
|
std::string error_message =
|
359
357
|
absl::StrCat("DNS resolution failed for service: ", name_to_resolve_);
|
360
358
|
result_handler_->ReturnError(grpc_error_set_int(
|
@@ -362,10 +360,14 @@ void AresDnsResolver::OnResolvedLocked(grpc_error* error) {
|
|
362
360
|
&error, 1),
|
363
361
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE));
|
364
362
|
// Set retry timer.
|
363
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
364
|
+
// in a loop while draining the currently-held WorkSerializer.
|
365
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
366
|
+
ExecCtx::Get()->InvalidateNow();
|
365
367
|
grpc_millis next_try = backoff_.NextAttemptTime();
|
366
368
|
grpc_millis timeout = next_try - ExecCtx::Get()->Now();
|
367
369
|
GRPC_CARES_TRACE_LOG("resolver:%p dns resolution failed (will retry): %s",
|
368
|
-
this,
|
370
|
+
this, grpc_error_std_string(error).c_str());
|
369
371
|
GPR_ASSERT(!have_next_resolution_timer_);
|
370
372
|
have_next_resolution_timer_ = true;
|
371
373
|
// TODO(roth): We currently deal with this ref manually. Once the
|
@@ -389,6 +391,10 @@ void AresDnsResolver::MaybeStartResolvingLocked() {
|
|
389
391
|
// can start the next resolution.
|
390
392
|
if (have_next_resolution_timer_) return;
|
391
393
|
if (last_resolution_timestamp_ >= 0) {
|
394
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
395
|
+
// in a loop while draining the currently-held WorkSerializer.
|
396
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
397
|
+
ExecCtx::Get()->InvalidateNow();
|
392
398
|
const grpc_millis earliest_next_resolution =
|
393
399
|
last_resolution_timestamp_ + min_time_between_resolutions_;
|
394
400
|
const grpc_millis ms_until_next_resolution =
|
@@ -423,7 +429,7 @@ void AresDnsResolver::StartResolvingLocked() {
|
|
423
429
|
resolving_ = true;
|
424
430
|
service_config_json_ = nullptr;
|
425
431
|
pending_request_ = grpc_dns_lookup_ares_locked(
|
426
|
-
dns_server_.c_str(), name_to_resolve_.c_str(),
|
432
|
+
dns_server_.c_str(), name_to_resolve_.c_str(), kDefaultSecurePort,
|
427
433
|
interested_parties_, &on_resolved_, &addresses_,
|
428
434
|
enable_srv_queries_ ? &balancer_addresses_ : nullptr,
|
429
435
|
request_service_config_ ? &service_config_json_ : nullptr,
|
@@ -455,7 +461,7 @@ class AresDnsResolverFactory : public ResolverFactory {
|
|
455
461
|
extern grpc_address_resolver_vtable* grpc_resolve_address_impl;
|
456
462
|
static grpc_address_resolver_vtable* default_resolver;
|
457
463
|
|
458
|
-
static
|
464
|
+
static grpc_error_handle blocking_resolve_address_ares(
|
459
465
|
const char* name, const char* default_port,
|
460
466
|
grpc_resolved_addresses** addresses) {
|
461
467
|
return default_resolver->blocking_resolve_address(name, default_port,
|
@@ -490,7 +496,7 @@ void grpc_resolver_dns_ares_init() {
|
|
490
496
|
g_use_ares_dns_resolver = true;
|
491
497
|
gpr_log(GPR_DEBUG, "Using ares dns resolver");
|
492
498
|
address_sorting_init();
|
493
|
-
|
499
|
+
grpc_error_handle error = grpc_ares_init();
|
494
500
|
if (error != GRPC_ERROR_NONE) {
|
495
501
|
GRPC_LOG_IF_ERROR("grpc_ares_init() failed", error);
|
496
502
|
return;
|
@@ -42,7 +42,7 @@ class GrpcPolledFd {
|
|
42
42
|
virtual bool IsFdStillReadableLocked() = 0;
|
43
43
|
/* Called once and only once. Must cause cancellation of any pending
|
44
44
|
* read/write callbacks. */
|
45
|
-
virtual void ShutdownLocked(
|
45
|
+
virtual void ShutdownLocked(grpc_error_handle error) = 0;
|
46
46
|
/* Get the underlying ares_socket_t that this was created from */
|
47
47
|
virtual ares_socket_t GetWrappedAresSocketLocked() = 0;
|
48
48
|
/* A unique name, for logging */
|
data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
// Copyright 2021 The gRPC Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
#include <grpc/support/port_platform.h>
|
15
|
+
|
16
|
+
#include "src/core/lib/iomgr/port.h"
|
17
|
+
#if GRPC_ARES == 1 && defined(GRPC_USE_EVENT_ENGINE)
|
18
|
+
|
19
|
+
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
|
20
|
+
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
|
21
|
+
|
22
|
+
namespace grpc_core {
|
23
|
+
|
24
|
+
std::unique_ptr<GrpcPolledFdFactory> NewGrpcPolledFdFactory(
|
25
|
+
std::shared_ptr<WorkSerializer> /* work_serializer */) {
|
26
|
+
return nullptr;
|
27
|
+
}
|
28
|
+
|
29
|
+
} // namespace grpc_core
|
30
|
+
|
31
|
+
#endif /* GRPC_ARES == 1 && defined(GRPC_USE_EVENT_ENGINE) */
|
@@ -75,7 +75,7 @@ class GrpcPolledFdLibuv : public GrpcPolledFd {
|
|
75
75
|
return false;
|
76
76
|
}
|
77
77
|
|
78
|
-
void ShutdownInternalLocked(
|
78
|
+
void ShutdownInternalLocked(grpc_error_handle error) {
|
79
79
|
uv_poll_stop(handle_);
|
80
80
|
uv_close(reinterpret_cast<uv_handle_t*>(handle_), ares_uv_poll_close_cb);
|
81
81
|
if (read_closure_ != nullptr) {
|
@@ -88,7 +88,7 @@ class GrpcPolledFdLibuv : public GrpcPolledFd {
|
|
88
88
|
}
|
89
89
|
}
|
90
90
|
|
91
|
-
void ShutdownLocked(
|
91
|
+
void ShutdownLocked(grpc_error_handle error) override {
|
92
92
|
if (grpc_core::ExecCtx::Get() == nullptr) {
|
93
93
|
grpc_core::ExecCtx exec_ctx;
|
94
94
|
ShutdownInternalLocked(error);
|
@@ -127,7 +127,7 @@ static void ares_uv_poll_cb_locked(AresUvPollCbArg* arg) {
|
|
127
127
|
int events = arg_struct->events;
|
128
128
|
GrpcPolledFdLibuv* polled_fd =
|
129
129
|
reinterpret_cast<GrpcPolledFdLibuv*>(handle->data);
|
130
|
-
|
130
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
131
131
|
if (status < 0) {
|
132
132
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("cares polling error");
|
133
133
|
error =
|
@@ -33,10 +33,10 @@
|
|
33
33
|
#include <grpc/support/string_util.h>
|
34
34
|
#include <grpc/support/time.h>
|
35
35
|
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
|
36
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
36
37
|
#include "src/core/lib/gpr/string.h"
|
37
38
|
#include "src/core/lib/iomgr/ev_posix.h"
|
38
39
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
39
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
40
40
|
|
41
41
|
namespace grpc_core {
|
42
42
|
|
@@ -72,7 +72,7 @@ class GrpcPolledFdPosix : public GrpcPolledFd {
|
|
72
72
|
bytes_available > 0;
|
73
73
|
}
|
74
74
|
|
75
|
-
void ShutdownLocked(
|
75
|
+
void ShutdownLocked(grpc_error_handle error) override {
|
76
76
|
grpc_fd_shutdown(fd_, error);
|
77
77
|
}
|
78
78
|
|
@@ -30,10 +30,10 @@
|
|
30
30
|
#include <grpc/support/string_util.h>
|
31
31
|
#include <grpc/support/time.h>
|
32
32
|
#include <string.h>
|
33
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
33
34
|
#include "src/core/lib/gpr/string.h"
|
34
35
|
#include "src/core/lib/gprpp/memory.h"
|
35
36
|
#include "src/core/lib/iomgr/iocp_windows.h"
|
36
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
37
37
|
#include "src/core/lib/iomgr/sockaddr_windows.h"
|
38
38
|
#include "src/core/lib/iomgr/socket_windows.h"
|
39
39
|
#include "src/core/lib/iomgr/tcp_windows.h"
|
@@ -131,12 +131,12 @@ class GrpcPolledFdWindows {
|
|
131
131
|
grpc_winsocket_destroy(winsocket_);
|
132
132
|
}
|
133
133
|
|
134
|
-
void ScheduleAndNullReadClosure(
|
134
|
+
void ScheduleAndNullReadClosure(grpc_error_handle error) {
|
135
135
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, read_closure_, error);
|
136
136
|
read_closure_ = nullptr;
|
137
137
|
}
|
138
138
|
|
139
|
-
void ScheduleAndNullWriteClosure(
|
139
|
+
void ScheduleAndNullWriteClosure(grpc_error_handle error) {
|
140
140
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, write_closure_, error);
|
141
141
|
write_closure_ = nullptr;
|
142
142
|
}
|
@@ -253,7 +253,7 @@ class GrpcPolledFdWindows {
|
|
253
253
|
|
254
254
|
bool IsFdStillReadableLocked() { return read_buf_has_data_; }
|
255
255
|
|
256
|
-
void ShutdownLocked(
|
256
|
+
void ShutdownLocked(grpc_error_handle error) {
|
257
257
|
grpc_winsocket_shutdown(winsocket_);
|
258
258
|
}
|
259
259
|
|
@@ -420,7 +420,7 @@ class GrpcPolledFdWindows {
|
|
420
420
|
abort();
|
421
421
|
}
|
422
422
|
|
423
|
-
static void OnTcpConnect(void* arg,
|
423
|
+
static void OnTcpConnect(void* arg, grpc_error_handle error) {
|
424
424
|
GrpcPolledFdWindows* grpc_polled_fd =
|
425
425
|
static_cast<GrpcPolledFdWindows*>(arg);
|
426
426
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
@@ -431,12 +431,12 @@ class GrpcPolledFdWindows {
|
|
431
431
|
DEBUG_LOCATION);
|
432
432
|
}
|
433
433
|
|
434
|
-
void OnTcpConnectLocked(
|
434
|
+
void OnTcpConnectLocked(grpc_error_handle error) {
|
435
435
|
GRPC_CARES_TRACE_LOG(
|
436
436
|
"fd:%s InnerOnTcpConnectLocked error:|%s| "
|
437
437
|
"pending_register_for_readable:%d"
|
438
438
|
" pending_register_for_writeable:%d",
|
439
|
-
GetName(),
|
439
|
+
GetName(), grpc_error_std_string(error).c_str(),
|
440
440
|
pending_continue_register_for_on_readable_locked_,
|
441
441
|
pending_continue_register_for_on_writeable_locked_);
|
442
442
|
GPR_ASSERT(!connect_done_);
|
@@ -576,7 +576,7 @@ class GrpcPolledFdWindows {
|
|
576
576
|
return out;
|
577
577
|
}
|
578
578
|
|
579
|
-
static void OnIocpReadable(void* arg,
|
579
|
+
static void OnIocpReadable(void* arg, grpc_error_handle error) {
|
580
580
|
GrpcPolledFdWindows* polled_fd = static_cast<GrpcPolledFdWindows*>(arg);
|
581
581
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
582
582
|
polled_fd->work_serializer_->Run(
|
@@ -589,7 +589,7 @@ class GrpcPolledFdWindows {
|
|
589
589
|
// c-ares reads from this socket later, but it shouldn't necessarily cancel
|
590
590
|
// the entire resolution attempt. Doing so will allow the "inject broken
|
591
591
|
// nameserver list" test to pass on Windows.
|
592
|
-
void OnIocpReadableLocked(
|
592
|
+
void OnIocpReadableLocked(grpc_error_handle error) {
|
593
593
|
if (error == GRPC_ERROR_NONE) {
|
594
594
|
if (winsocket_->read_info.wsa_error != 0) {
|
595
595
|
/* WSAEMSGSIZE would be due to receiving more data
|
@@ -603,7 +603,7 @@ class GrpcPolledFdWindows {
|
|
603
603
|
"fd:|%s| OnIocpReadableInner winsocket_->read_info.wsa_error "
|
604
604
|
"code:|%d| msg:|%s|",
|
605
605
|
GetName(), winsocket_->read_info.wsa_error,
|
606
|
-
|
606
|
+
grpc_error_std_string(error).c_str());
|
607
607
|
}
|
608
608
|
}
|
609
609
|
}
|
@@ -621,7 +621,7 @@ class GrpcPolledFdWindows {
|
|
621
621
|
ScheduleAndNullReadClosure(error);
|
622
622
|
}
|
623
623
|
|
624
|
-
static void OnIocpWriteable(void* arg,
|
624
|
+
static void OnIocpWriteable(void* arg, grpc_error_handle error) {
|
625
625
|
GrpcPolledFdWindows* polled_fd = static_cast<GrpcPolledFdWindows*>(arg);
|
626
626
|
GRPC_ERROR_REF(error); // error owned by lambda
|
627
627
|
polled_fd->work_serializer_->Run(
|
@@ -629,7 +629,7 @@ class GrpcPolledFdWindows {
|
|
629
629
|
DEBUG_LOCATION);
|
630
630
|
}
|
631
631
|
|
632
|
-
void OnIocpWriteableLocked(
|
632
|
+
void OnIocpWriteableLocked(grpc_error_handle error) {
|
633
633
|
GRPC_CARES_TRACE_LOG("OnIocpWriteableInner. fd:|%s|", GetName());
|
634
634
|
GPR_ASSERT(socket_type_ == SOCK_STREAM);
|
635
635
|
if (error == GRPC_ERROR_NONE) {
|
@@ -640,7 +640,7 @@ class GrpcPolledFdWindows {
|
|
640
640
|
"fd:|%s| OnIocpWriteableInner. winsocket_->write_info.wsa_error "
|
641
641
|
"code:|%d| msg:|%s|",
|
642
642
|
GetName(), winsocket_->write_info.wsa_error,
|
643
|
-
|
643
|
+
grpc_error_std_string(error).c_str());
|
644
644
|
}
|
645
645
|
}
|
646
646
|
GPR_ASSERT(tcp_write_state_ == WRITE_PENDING);
|
@@ -851,7 +851,7 @@ class GrpcPolledFdWindowsWrapper : public GrpcPolledFd {
|
|
851
851
|
return wrapped_->IsFdStillReadableLocked();
|
852
852
|
}
|
853
853
|
|
854
|
-
void ShutdownLocked(
|
854
|
+
void ShutdownLocked(grpc_error_handle error) override {
|
855
855
|
wrapped_->ShutdownLocked(error);
|
856
856
|
}
|
857
857
|
|
@@ -38,14 +38,14 @@
|
|
38
38
|
|
39
39
|
#include <address_sorting/address_sorting.h>
|
40
40
|
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
|
41
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
42
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
41
43
|
#include "src/core/lib/gpr/string.h"
|
42
44
|
#include "src/core/lib/gprpp/host_port.h"
|
43
45
|
#include "src/core/lib/iomgr/error.h"
|
44
46
|
#include "src/core/lib/iomgr/executor.h"
|
45
47
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
46
48
|
#include "src/core/lib/iomgr/nameser.h"
|
47
|
-
#include "src/core/lib/iomgr/parse_address.h"
|
48
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
49
49
|
#include "src/core/lib/iomgr/timer.h"
|
50
50
|
#include "src/core/lib/transport/authority_override.h"
|
51
51
|
|
@@ -77,7 +77,7 @@ struct grpc_ares_request {
|
|
77
77
|
size_t pending_queries;
|
78
78
|
|
79
79
|
/** the errors explaining query failures, appended to in query callbacks */
|
80
|
-
|
80
|
+
grpc_error_handle error;
|
81
81
|
};
|
82
82
|
|
83
83
|
typedef struct fd_node {
|
@@ -268,11 +268,13 @@ static grpc_millis calculate_next_ares_backup_poll_alarm_ms(
|
|
268
268
|
grpc_core::ExecCtx::Get()->Now();
|
269
269
|
}
|
270
270
|
|
271
|
-
static void on_timeout_locked(grpc_ares_ev_driver* driver,
|
271
|
+
static void on_timeout_locked(grpc_ares_ev_driver* driver,
|
272
|
+
grpc_error_handle error) {
|
272
273
|
GRPC_CARES_TRACE_LOG(
|
273
274
|
"request:%p ev_driver=%p on_timeout_locked. driver->shutting_down=%d. "
|
274
275
|
"err=%s",
|
275
|
-
driver->request, driver, driver->shutting_down,
|
276
|
+
driver->request, driver, driver->shutting_down,
|
277
|
+
grpc_error_std_string(error).c_str());
|
276
278
|
if (!driver->shutting_down && error == GRPC_ERROR_NONE) {
|
277
279
|
grpc_ares_ev_driver_shutdown_locked(driver);
|
278
280
|
}
|
@@ -280,7 +282,7 @@ static void on_timeout_locked(grpc_ares_ev_driver* driver, grpc_error* error) {
|
|
280
282
|
GRPC_ERROR_UNREF(error);
|
281
283
|
}
|
282
284
|
|
283
|
-
static void on_timeout(void* arg,
|
285
|
+
static void on_timeout(void* arg, grpc_error_handle error) {
|
284
286
|
grpc_ares_ev_driver* driver = static_cast<grpc_ares_ev_driver*>(arg);
|
285
287
|
GRPC_ERROR_REF(error); // ref owned by lambda
|
286
288
|
driver->work_serializer->Run(
|
@@ -290,9 +292,9 @@ static void on_timeout(void* arg, grpc_error* error) {
|
|
290
292
|
static void grpc_ares_notify_on_event_locked(grpc_ares_ev_driver* ev_driver);
|
291
293
|
|
292
294
|
static void on_ares_backup_poll_alarm_locked(grpc_ares_ev_driver* driver,
|
293
|
-
|
295
|
+
grpc_error_handle error);
|
294
296
|
|
295
|
-
static void on_ares_backup_poll_alarm(void* arg,
|
297
|
+
static void on_ares_backup_poll_alarm(void* arg, grpc_error_handle error) {
|
296
298
|
grpc_ares_ev_driver* driver = static_cast<grpc_ares_ev_driver*>(arg);
|
297
299
|
GRPC_ERROR_REF(error);
|
298
300
|
driver->work_serializer->Run(
|
@@ -309,12 +311,13 @@ static void on_ares_backup_poll_alarm(void* arg, grpc_error* error) {
|
|
309
311
|
* For the latter, we use this backup poller. Also see
|
310
312
|
* https://github.com/grpc/grpc/pull/17688 description for more details. */
|
311
313
|
static void on_ares_backup_poll_alarm_locked(grpc_ares_ev_driver* driver,
|
312
|
-
|
314
|
+
grpc_error_handle error) {
|
313
315
|
GRPC_CARES_TRACE_LOG(
|
314
316
|
"request:%p ev_driver=%p on_ares_backup_poll_alarm_locked. "
|
315
317
|
"driver->shutting_down=%d. "
|
316
318
|
"err=%s",
|
317
|
-
driver->request, driver, driver->shutting_down,
|
319
|
+
driver->request, driver, driver->shutting_down,
|
320
|
+
grpc_error_std_string(error).c_str());
|
318
321
|
if (!driver->shutting_down && error == GRPC_ERROR_NONE) {
|
319
322
|
fd_node* fdn = driver->fds;
|
320
323
|
while (fdn != nullptr) {
|
@@ -329,6 +332,10 @@ static void on_ares_backup_poll_alarm_locked(grpc_ares_ev_driver* driver,
|
|
329
332
|
fdn = fdn->next;
|
330
333
|
}
|
331
334
|
if (!driver->shutting_down) {
|
335
|
+
// InvalidateNow to avoid getting stuck re-initializing this timer
|
336
|
+
// in a loop while draining the currently-held WorkSerializer.
|
337
|
+
// Also see https://github.com/grpc/grpc/issues/26079.
|
338
|
+
grpc_core::ExecCtx::Get()->InvalidateNow();
|
332
339
|
grpc_millis next_ares_backup_poll_alarm =
|
333
340
|
calculate_next_ares_backup_poll_alarm_ms(driver);
|
334
341
|
grpc_ares_ev_driver_ref(driver);
|
@@ -345,7 +352,7 @@ static void on_ares_backup_poll_alarm_locked(grpc_ares_ev_driver* driver,
|
|
345
352
|
GRPC_ERROR_UNREF(error);
|
346
353
|
}
|
347
354
|
|
348
|
-
static void on_readable_locked(fd_node* fdn,
|
355
|
+
static void on_readable_locked(fd_node* fdn, grpc_error_handle error) {
|
349
356
|
GPR_ASSERT(fdn->readable_registered);
|
350
357
|
grpc_ares_ev_driver* ev_driver = fdn->ev_driver;
|
351
358
|
const ares_socket_t as = fdn->grpc_polled_fd->GetWrappedAresSocketLocked();
|
@@ -370,14 +377,14 @@ static void on_readable_locked(fd_node* fdn, grpc_error* error) {
|
|
370
377
|
GRPC_ERROR_UNREF(error);
|
371
378
|
}
|
372
379
|
|
373
|
-
static void on_readable(void* arg,
|
380
|
+
static void on_readable(void* arg, grpc_error_handle error) {
|
374
381
|
fd_node* fdn = static_cast<fd_node*>(arg);
|
375
382
|
GRPC_ERROR_REF(error); /* ref owned by lambda */
|
376
383
|
fdn->ev_driver->work_serializer->Run(
|
377
384
|
[fdn, error]() { on_readable_locked(fdn, error); }, DEBUG_LOCATION);
|
378
385
|
}
|
379
386
|
|
380
|
-
static void on_writable_locked(fd_node* fdn,
|
387
|
+
static void on_writable_locked(fd_node* fdn, grpc_error_handle error) {
|
381
388
|
GPR_ASSERT(fdn->writable_registered);
|
382
389
|
grpc_ares_ev_driver* ev_driver = fdn->ev_driver;
|
383
390
|
const ares_socket_t as = fdn->grpc_polled_fd->GetWrappedAresSocketLocked();
|
@@ -400,7 +407,7 @@ static void on_writable_locked(fd_node* fdn, grpc_error* error) {
|
|
400
407
|
GRPC_ERROR_UNREF(error);
|
401
408
|
}
|
402
409
|
|
403
|
-
static void on_writable(void* arg,
|
410
|
+
static void on_writable(void* arg, grpc_error_handle error) {
|
404
411
|
fd_node* fdn = static_cast<fd_node*>(arg);
|
405
412
|
GRPC_ERROR_REF(error); /* ref owned by lambda */
|
406
413
|
fdn->ev_driver->work_serializer->Run(
|
@@ -516,7 +523,7 @@ static void noop_inject_channel_config(ares_channel /*channel*/) {}
|
|
516
523
|
void (*grpc_ares_test_only_inject_config)(ares_channel channel) =
|
517
524
|
noop_inject_channel_config;
|
518
525
|
|
519
|
-
|
526
|
+
grpc_error_handle grpc_ares_ev_driver_create_locked(
|
520
527
|
grpc_ares_ev_driver** ev_driver, grpc_pollset_set* pollset_set,
|
521
528
|
int query_timeout_ms,
|
522
529
|
std::shared_ptr<grpc_core::WorkSerializer> work_serializer,
|
@@ -529,7 +536,7 @@ grpc_error* grpc_ares_ev_driver_create_locked(
|
|
529
536
|
grpc_ares_test_only_inject_config((*ev_driver)->channel);
|
530
537
|
GRPC_CARES_TRACE_LOG("request:%p grpc_ares_ev_driver_create_locked", request);
|
531
538
|
if (status != ARES_SUCCESS) {
|
532
|
-
|
539
|
+
grpc_error_handle err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
533
540
|
absl::StrCat("Failed to init ares channel. C-ares error: ",
|
534
541
|
ares_strerror(status))
|
535
542
|
.c_str());
|
@@ -713,7 +720,8 @@ static void on_hostbyname_done_locked(void* arg, int status, int /*timeouts*/,
|
|
713
720
|
hr->qtype, hr->host, hr->is_balancer, ares_strerror(status));
|
714
721
|
GRPC_CARES_TRACE_LOG("request:%p on_hostbyname_done_locked: %s", r,
|
715
722
|
error_msg.c_str());
|
716
|
-
|
723
|
+
grpc_error_handle error =
|
724
|
+
GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
|
717
725
|
r->error = grpc_error_add_child(error, r->error);
|
718
726
|
}
|
719
727
|
destroy_hostbyname_request_locked(hr);
|
@@ -757,7 +765,8 @@ static void on_srv_query_done_locked(void* arg, int status, int /*timeouts*/,
|
|
757
765
|
ares_strerror(status));
|
758
766
|
GRPC_CARES_TRACE_LOG("request:%p on_srv_query_done_locked: %s", r,
|
759
767
|
error_msg.c_str());
|
760
|
-
|
768
|
+
grpc_error_handle error =
|
769
|
+
GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
|
761
770
|
r->error = grpc_error_add_child(error, r->error);
|
762
771
|
}
|
763
772
|
delete q;
|
@@ -773,7 +782,7 @@ static void on_txt_done_locked(void* arg, int status, int /*timeouts*/,
|
|
773
782
|
const size_t prefix_len = sizeof(g_service_config_attribute_prefix) - 1;
|
774
783
|
struct ares_txt_ext* result = nullptr;
|
775
784
|
struct ares_txt_ext* reply = nullptr;
|
776
|
-
|
785
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
777
786
|
if (status != ARES_SUCCESS) goto fail;
|
778
787
|
GRPC_CARES_TRACE_LOG("request:%p on_txt_done_locked name=%s ARES_SUCCESS", r,
|
779
788
|
q->name().c_str());
|
@@ -825,7 +834,7 @@ void grpc_dns_lookup_ares_continue_after_check_localhost_and_ip_literals_locked(
|
|
825
834
|
const char* default_port, grpc_pollset_set* interested_parties,
|
826
835
|
int query_timeout_ms,
|
827
836
|
std::shared_ptr<grpc_core::WorkSerializer> work_serializer) {
|
828
|
-
|
837
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
829
838
|
grpc_ares_hostbyname_request* hr = nullptr;
|
830
839
|
/* parse name, splitting it into host and port parts */
|
831
840
|
std::string host;
|
@@ -1116,7 +1125,7 @@ void (*grpc_cancel_ares_request_locked)(grpc_ares_request* r) =
|
|
1116
1125
|
// Windows. Calling them may cause race conditions when other parts of the
|
1117
1126
|
// binary calls these functions concurrently.
|
1118
1127
|
#ifdef GPR_WINDOWS
|
1119
|
-
|
1128
|
+
grpc_error_handle grpc_ares_init(void) {
|
1120
1129
|
int status = ares_library_init(ARES_LIB_INIT_ALL);
|
1121
1130
|
if (status != ARES_SUCCESS) {
|
1122
1131
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
@@ -1128,7 +1137,7 @@ grpc_error* grpc_ares_init(void) {
|
|
1128
1137
|
|
1129
1138
|
void grpc_ares_cleanup(void) { ares_library_cleanup(); }
|
1130
1139
|
#else
|
1131
|
-
|
1140
|
+
grpc_error_handle grpc_ares_init(void) { return GRPC_ERROR_NONE; }
|
1132
1141
|
void grpc_ares_cleanup(void) {}
|
1133
1142
|
#endif // GPR_WINDOWS
|
1134
1143
|
|
@@ -1159,7 +1168,7 @@ typedef struct grpc_resolve_address_ares_request {
|
|
1159
1168
|
} grpc_resolve_address_ares_request;
|
1160
1169
|
|
1161
1170
|
static void on_dns_lookup_done_locked(grpc_resolve_address_ares_request* r,
|
1162
|
-
|
1171
|
+
grpc_error_handle error) {
|
1163
1172
|
gpr_free(r->ares_request);
|
1164
1173
|
grpc_resolved_addresses** resolved_addresses = r->addrs_out;
|
1165
1174
|
if (r->addresses == nullptr || r->addresses->empty()) {
|
@@ -1180,7 +1189,7 @@ static void on_dns_lookup_done_locked(grpc_resolve_address_ares_request* r,
|
|
1180
1189
|
delete r;
|
1181
1190
|
}
|
1182
1191
|
|
1183
|
-
static void on_dns_lookup_done(void* arg,
|
1192
|
+
static void on_dns_lookup_done(void* arg, grpc_error_handle error) {
|
1184
1193
|
grpc_resolve_address_ares_request* r =
|
1185
1194
|
static_cast<grpc_resolve_address_ares_request*>(arg);
|
1186
1195
|
GRPC_ERROR_REF(error); // ref owned by lambda
|