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
@@ -0,0 +1,57 @@
|
|
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
|
+
#ifdef GRPC_USE_EVENT_ENGINE
|
17
|
+
#include <grpc/event_engine/event_engine.h>
|
18
|
+
|
19
|
+
#include "src/core/lib/iomgr/error.h"
|
20
|
+
#include "src/core/lib/iomgr/event_engine/closure.h"
|
21
|
+
#include "src/core/lib/iomgr/event_engine/iomgr.h"
|
22
|
+
#include "src/core/lib/iomgr/timer.h"
|
23
|
+
#include "src/core/lib/surface/init.h"
|
24
|
+
#include "src/core/lib/transport/error_utils.h"
|
25
|
+
|
26
|
+
namespace {
|
27
|
+
using ::grpc_event_engine::experimental::EventEngine;
|
28
|
+
using ::grpc_event_engine::experimental::GrpcClosureToCallback;
|
29
|
+
|
30
|
+
void timer_init(grpc_timer* timer, grpc_millis deadline,
|
31
|
+
grpc_closure* closure) {
|
32
|
+
timer->ee_task_handle = grpc_iomgr_event_engine()->RunAt(
|
33
|
+
grpc_core::ToAbslTime(
|
34
|
+
grpc_millis_to_timespec(deadline, GPR_CLOCK_REALTIME)),
|
35
|
+
GrpcClosureToCallback(closure, GRPC_ERROR_NONE), {});
|
36
|
+
}
|
37
|
+
|
38
|
+
void timer_cancel(grpc_timer* timer) {
|
39
|
+
auto handle = timer->ee_task_handle;
|
40
|
+
grpc_iomgr_event_engine()->TryCancel(handle);
|
41
|
+
}
|
42
|
+
|
43
|
+
/* Internal API */
|
44
|
+
grpc_timer_check_result timer_check(grpc_millis* /* next */) {
|
45
|
+
return GRPC_TIMERS_NOT_CHECKED;
|
46
|
+
}
|
47
|
+
void timer_list_init() {}
|
48
|
+
void timer_list_shutdown(void) {}
|
49
|
+
void timer_consume_kick(void) {}
|
50
|
+
|
51
|
+
} // namespace
|
52
|
+
|
53
|
+
grpc_timer_vtable grpc_event_engine_timer_vtable = {
|
54
|
+
timer_init, timer_cancel, timer_check,
|
55
|
+
timer_list_init, timer_list_shutdown, timer_consume_kick};
|
56
|
+
|
57
|
+
#endif // GRPC_USE_EVENT_ENGINE
|
@@ -20,14 +20,17 @@
|
|
20
20
|
|
21
21
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
22
22
|
|
23
|
+
#include <grpc/event_engine/event_engine.h>
|
23
24
|
#include <grpc/support/log.h>
|
24
25
|
#include <grpc/support/sync.h>
|
25
26
|
|
26
27
|
#include "src/core/lib/gprpp/thd.h"
|
27
28
|
#include "src/core/lib/iomgr/combiner.h"
|
29
|
+
#include "src/core/lib/iomgr/event_engine/closure.h"
|
30
|
+
#include "src/core/lib/iomgr/event_engine/iomgr.h"
|
28
31
|
#include "src/core/lib/profiling/timers.h"
|
29
32
|
|
30
|
-
static void exec_ctx_run(grpc_closure* closure,
|
33
|
+
static void exec_ctx_run(grpc_closure* closure, grpc_error_handle error) {
|
31
34
|
#ifndef NDEBUG
|
32
35
|
closure->scheduled = false;
|
33
36
|
if (grpc_trace_closure.enabled()) {
|
@@ -46,9 +49,14 @@ static void exec_ctx_run(grpc_closure* closure, grpc_error* error) {
|
|
46
49
|
GRPC_ERROR_UNREF(error);
|
47
50
|
}
|
48
51
|
|
49
|
-
static void exec_ctx_sched(grpc_closure* closure,
|
52
|
+
static void exec_ctx_sched(grpc_closure* closure, grpc_error_handle error) {
|
53
|
+
#if defined(GRPC_USE_EVENT_ENGINE) && \
|
54
|
+
defined(GRPC_EVENT_ENGINE_REPLACE_EXEC_CTX)
|
55
|
+
grpc_iomgr_event_engine()->Run(GrpcClosureToCallback(closure, error), {});
|
56
|
+
#else
|
50
57
|
grpc_closure_list_append(grpc_core::ExecCtx::Get()->closure_list(), closure,
|
51
58
|
error);
|
59
|
+
#endif
|
52
60
|
}
|
53
61
|
|
54
62
|
static gpr_timespec g_start_time;
|
@@ -152,7 +160,7 @@ bool ExecCtx::Flush() {
|
|
152
160
|
closure_list_.head = closure_list_.tail = nullptr;
|
153
161
|
while (c != nullptr) {
|
154
162
|
grpc_closure* next = c->next_data.next;
|
155
|
-
|
163
|
+
grpc_error_handle error = c->error_data.error;
|
156
164
|
did_something = true;
|
157
165
|
exec_ctx_run(c, error);
|
158
166
|
c = next;
|
@@ -174,7 +182,7 @@ grpc_millis ExecCtx::Now() {
|
|
174
182
|
}
|
175
183
|
|
176
184
|
void ExecCtx::Run(const DebugLocation& location, grpc_closure* closure,
|
177
|
-
|
185
|
+
grpc_error_handle error) {
|
178
186
|
(void)location;
|
179
187
|
if (closure == nullptr) {
|
180
188
|
GRPC_ERROR_UNREF(error);
|
@@ -228,7 +228,7 @@ class ExecCtx {
|
|
228
228
|
}
|
229
229
|
|
230
230
|
static void Run(const DebugLocation& location, grpc_closure* closure,
|
231
|
-
|
231
|
+
grpc_error_handle error);
|
232
232
|
|
233
233
|
static void RunList(const DebugLocation& location, grpc_closure_list* list);
|
234
234
|
|
@@ -349,8 +349,7 @@ class ApplicationCallbackExecCtx {
|
|
349
349
|
}
|
350
350
|
}
|
351
351
|
|
352
|
-
static void Enqueue(
|
353
|
-
int is_success) {
|
352
|
+
static void Enqueue(grpc_completion_queue_functor* functor, int is_success) {
|
354
353
|
functor->internal_success = is_success;
|
355
354
|
functor->internal_next = nullptr;
|
356
355
|
|
@@ -375,8 +374,8 @@ class ApplicationCallbackExecCtx {
|
|
375
374
|
|
376
375
|
private:
|
377
376
|
uintptr_t flags_{0u};
|
378
|
-
|
379
|
-
|
377
|
+
grpc_completion_queue_functor* head_{nullptr};
|
378
|
+
grpc_completion_queue_functor* tail_{nullptr};
|
380
379
|
GPR_TLS_CLASS_DECL(callback_exec_ctx_);
|
381
380
|
};
|
382
381
|
} // namespace grpc_core
|
@@ -41,8 +41,7 @@ void ThreadPoolWorker::Run() {
|
|
41
41
|
break;
|
42
42
|
}
|
43
43
|
// Runs closure
|
44
|
-
auto* closure =
|
45
|
-
static_cast<grpc_experimental_completion_queue_functor*>(elem);
|
44
|
+
auto* closure = static_cast<grpc_completion_queue_functor*>(elem);
|
46
45
|
closure->functor_run(closure, closure->internal_success);
|
47
46
|
}
|
48
47
|
}
|
@@ -120,7 +119,7 @@ ThreadPool::~ThreadPool() {
|
|
120
119
|
delete queue_;
|
121
120
|
}
|
122
121
|
|
123
|
-
void ThreadPool::Add(
|
122
|
+
void ThreadPool::Add(grpc_completion_queue_functor* closure) {
|
124
123
|
AssertHasNotBeenShutDown();
|
125
124
|
queue_->Put(static_cast<void*>(closure));
|
126
125
|
}
|
@@ -43,7 +43,7 @@ class ThreadPoolInterface {
|
|
43
43
|
// current thread to be blocked (in case of unable to schedule).
|
44
44
|
// Closure should contain a function pointer and arguments it will take, more
|
45
45
|
// details for closure struct at /grpc/include/grpc/impl/codegen/grpc_types.h
|
46
|
-
virtual void Add(
|
46
|
+
virtual void Add(grpc_completion_queue_functor* closure) = 0;
|
47
47
|
|
48
48
|
// Returns the current number of pending closures
|
49
49
|
virtual int num_pending_closures() const = 0;
|
@@ -120,7 +120,7 @@ class ThreadPool : public ThreadPoolInterface {
|
|
120
120
|
|
121
121
|
// Adds given closure into pending queue immediately. Since closure queue has
|
122
122
|
// infinite length, this routine will not block.
|
123
|
-
void Add(
|
123
|
+
void Add(grpc_completion_queue_functor* closure) override;
|
124
124
|
|
125
125
|
int num_pending_closures() const override;
|
126
126
|
int pool_capacity() const override;
|
@@ -57,27 +57,27 @@ GPR_TLS_DECL(g_this_thread_state);
|
|
57
57
|
|
58
58
|
Executor* executors[static_cast<size_t>(ExecutorType::NUM_EXECUTORS)];
|
59
59
|
|
60
|
-
void default_enqueue_short(grpc_closure* closure,
|
60
|
+
void default_enqueue_short(grpc_closure* closure, grpc_error_handle error) {
|
61
61
|
executors[static_cast<size_t>(ExecutorType::DEFAULT)]->Enqueue(
|
62
62
|
closure, error, true /* is_short */);
|
63
63
|
}
|
64
64
|
|
65
|
-
void default_enqueue_long(grpc_closure* closure,
|
65
|
+
void default_enqueue_long(grpc_closure* closure, grpc_error_handle error) {
|
66
66
|
executors[static_cast<size_t>(ExecutorType::DEFAULT)]->Enqueue(
|
67
67
|
closure, error, false /* is_short */);
|
68
68
|
}
|
69
69
|
|
70
|
-
void resolver_enqueue_short(grpc_closure* closure,
|
70
|
+
void resolver_enqueue_short(grpc_closure* closure, grpc_error_handle error) {
|
71
71
|
executors[static_cast<size_t>(ExecutorType::RESOLVER)]->Enqueue(
|
72
72
|
closure, error, true /* is_short */);
|
73
73
|
}
|
74
74
|
|
75
|
-
void resolver_enqueue_long(grpc_closure* closure,
|
75
|
+
void resolver_enqueue_long(grpc_closure* closure, grpc_error_handle error) {
|
76
76
|
executors[static_cast<size_t>(ExecutorType::RESOLVER)]->Enqueue(
|
77
77
|
closure, error, false /* is_short */);
|
78
78
|
}
|
79
79
|
|
80
|
-
using EnqueueFunc = void (*)(grpc_closure* closure,
|
80
|
+
using EnqueueFunc = void (*)(grpc_closure* closure, grpc_error_handle error);
|
81
81
|
|
82
82
|
const EnqueueFunc
|
83
83
|
executor_enqueue_fns_[static_cast<size_t>(ExecutorType::NUM_EXECUTORS)]
|
@@ -115,7 +115,7 @@ size_t Executor::RunClosures(const char* executor_name,
|
|
115
115
|
grpc_closure* c = list.head;
|
116
116
|
while (c != nullptr) {
|
117
117
|
grpc_closure* next = c->next_data.next;
|
118
|
-
|
118
|
+
grpc_error_handle error = c->error_data.error;
|
119
119
|
#ifndef NDEBUG
|
120
120
|
EXECUTOR_TRACE("(%s) run %p [created by %s:%d]", executor_name, c,
|
121
121
|
c->file_created, c->line_created);
|
@@ -251,7 +251,7 @@ void Executor::ThreadMain(void* arg) {
|
|
251
251
|
gpr_tls_set(&g_this_thread_state, reinterpret_cast<intptr_t>(nullptr));
|
252
252
|
}
|
253
253
|
|
254
|
-
void Executor::Enqueue(grpc_closure* closure,
|
254
|
+
void Executor::Enqueue(grpc_closure* closure, grpc_error_handle error,
|
255
255
|
bool is_short) {
|
256
256
|
bool retry_push;
|
257
257
|
if (is_short) {
|
@@ -404,7 +404,7 @@ void Executor::InitAll() {
|
|
404
404
|
EXECUTOR_TRACE0("Executor::InitAll() done");
|
405
405
|
}
|
406
406
|
|
407
|
-
void Executor::Run(grpc_closure* closure,
|
407
|
+
void Executor::Run(grpc_closure* closure, grpc_error_handle error,
|
408
408
|
ExecutorType executor_type, ExecutorJobType job_type) {
|
409
409
|
executor_enqueue_fns_[static_cast<size_t>(executor_type)]
|
410
410
|
[static_cast<size_t>(job_type)](closure, error);
|
@@ -70,7 +70,7 @@ class Executor {
|
|
70
70
|
|
71
71
|
/** Enqueue the closure onto the executor. is_short is true if the closure is
|
72
72
|
* a short job (i.e expected to not block and complete quickly) */
|
73
|
-
void Enqueue(grpc_closure* closure,
|
73
|
+
void Enqueue(grpc_closure* closure, grpc_error_handle error, bool is_short);
|
74
74
|
|
75
75
|
// TODO(sreek): Currently we have two executors (available globally): The
|
76
76
|
// default executor and the resolver executor.
|
@@ -83,7 +83,7 @@ class Executor {
|
|
83
83
|
// Initialize ALL the executors
|
84
84
|
static void InitAll();
|
85
85
|
|
86
|
-
static void Run(grpc_closure* closure,
|
86
|
+
static void Run(grpc_closure* closure, grpc_error_handle error,
|
87
87
|
ExecutorType executor_type = ExecutorType::DEFAULT,
|
88
88
|
ExecutorJobType job_type = ExecutorJobType::SHORT);
|
89
89
|
|
data/src/core/lib/iomgr/iomgr.cc
CHANGED
@@ -94,7 +94,6 @@ void grpc_iomgr_shutdown() {
|
|
94
94
|
{
|
95
95
|
grpc_timer_manager_shutdown();
|
96
96
|
grpc_iomgr_platform_flush();
|
97
|
-
grpc_core::Executor::ShutdownAll();
|
98
97
|
|
99
98
|
gpr_mu_lock(&g_mu);
|
100
99
|
g_shutdown = 1;
|
@@ -149,6 +148,7 @@ void grpc_iomgr_shutdown() {
|
|
149
148
|
gpr_mu_unlock(&g_mu);
|
150
149
|
grpc_timer_list_shutdown();
|
151
150
|
grpc_core::ExecCtx::Get()->Flush();
|
151
|
+
grpc_core::Executor::ShutdownAll();
|
152
152
|
}
|
153
153
|
|
154
154
|
/* ensure all threads have left g_mu */
|
@@ -169,7 +169,7 @@ bool grpc_iomgr_is_any_background_poller_thread() {
|
|
169
169
|
}
|
170
170
|
|
171
171
|
bool grpc_iomgr_add_closure_to_background_poller(grpc_closure* closure,
|
172
|
-
|
172
|
+
grpc_error_handle error) {
|
173
173
|
return grpc_iomgr_platform_add_closure_to_background_poller(closure, error);
|
174
174
|
}
|
175
175
|
|
data/src/core/lib/iomgr/iomgr.h
CHANGED
@@ -52,7 +52,7 @@ bool grpc_iomgr_is_any_background_poller_thread();
|
|
52
52
|
* that the closure may or may not run yet when this function returns, and the
|
53
53
|
* closure should not be blocking or long-running. */
|
54
54
|
bool grpc_iomgr_add_closure_to_background_poller(grpc_closure* closure,
|
55
|
-
|
55
|
+
grpc_error_handle error);
|
56
56
|
|
57
57
|
/* Exposed only for testing */
|
58
58
|
size_t grpc_iomgr_count_objects_for_testing();
|
@@ -45,7 +45,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
|
|
45
45
|
return false;
|
46
46
|
}
|
47
47
|
static bool iomgr_platform_add_closure_to_background_poller(
|
48
|
-
grpc_closure* /*closure*/,
|
48
|
+
grpc_closure* /*closure*/, grpc_error_handle /*error*/) {
|
49
49
|
return false;
|
50
50
|
}
|
51
51
|
|
@@ -50,8 +50,8 @@ bool grpc_iomgr_platform_is_any_background_poller_thread() {
|
|
50
50
|
return iomgr_platform_vtable->is_any_background_poller_thread();
|
51
51
|
}
|
52
52
|
|
53
|
-
bool grpc_iomgr_platform_add_closure_to_background_poller(
|
54
|
-
|
53
|
+
bool grpc_iomgr_platform_add_closure_to_background_poller(
|
54
|
+
grpc_closure* closure, grpc_error_handle error) {
|
55
55
|
return iomgr_platform_vtable->add_closure_to_background_poller(closure,
|
56
56
|
error);
|
57
57
|
}
|
@@ -38,7 +38,7 @@ typedef struct grpc_iomgr_platform_vtable {
|
|
38
38
|
void (*shutdown_background_closure)(void);
|
39
39
|
bool (*is_any_background_poller_thread)(void);
|
40
40
|
bool (*add_closure_to_background_poller)(grpc_closure* closure,
|
41
|
-
|
41
|
+
grpc_error_handle error);
|
42
42
|
} grpc_iomgr_platform_vtable;
|
43
43
|
|
44
44
|
void grpc_iomgr_register_object(grpc_iomgr_object* obj, const char* name);
|
@@ -65,8 +65,8 @@ bool grpc_iomgr_platform_is_any_background_poller_thread(void);
|
|
65
65
|
/** Return true if the closure is registered into the background poller. Note
|
66
66
|
* that the closure may or may not run yet when this function returns, and the
|
67
67
|
* closure should not be blocking or long-running. */
|
68
|
-
bool grpc_iomgr_platform_add_closure_to_background_poller(
|
69
|
-
|
68
|
+
bool grpc_iomgr_platform_add_closure_to_background_poller(
|
69
|
+
grpc_closure* closure, grpc_error_handle error);
|
70
70
|
|
71
71
|
bool grpc_iomgr_abort_on_leaks(void);
|
72
72
|
|
@@ -41,11 +41,13 @@ extern grpc_address_resolver_vtable grpc_posix_resolver_vtable;
|
|
41
41
|
static void iomgr_platform_init(void) {
|
42
42
|
grpc_wakeup_fd_global_init();
|
43
43
|
grpc_event_engine_init();
|
44
|
+
grpc_tcp_posix_init();
|
44
45
|
}
|
45
46
|
|
46
47
|
static void iomgr_platform_flush(void) {}
|
47
48
|
|
48
49
|
static void iomgr_platform_shutdown(void) {
|
50
|
+
grpc_tcp_posix_shutdown();
|
49
51
|
grpc_event_engine_shutdown();
|
50
52
|
grpc_wakeup_fd_global_destroy();
|
51
53
|
}
|
@@ -59,7 +61,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
|
|
59
61
|
}
|
60
62
|
|
61
63
|
static bool iomgr_platform_add_closure_to_background_poller(
|
62
|
-
grpc_closure* closure,
|
64
|
+
grpc_closure* closure, grpc_error_handle error) {
|
63
65
|
return grpc_add_closure_to_background_poller(closure, error);
|
64
66
|
}
|
65
67
|
|
@@ -72,7 +72,7 @@ static bool apple_iomgr_platform_is_any_background_poller_thread(void) {
|
|
72
72
|
}
|
73
73
|
|
74
74
|
static bool apple_iomgr_platform_add_closure_to_background_poller(
|
75
|
-
grpc_closure* closure,
|
75
|
+
grpc_closure* closure, grpc_error_handle error) {
|
76
76
|
return false;
|
77
77
|
}
|
78
78
|
|
@@ -84,7 +84,43 @@ static grpc_iomgr_platform_vtable apple_vtable = {
|
|
84
84
|
apple_iomgr_platform_is_any_background_poller_thread,
|
85
85
|
apple_iomgr_platform_add_closure_to_background_poller};
|
86
86
|
|
87
|
+
namespace {
|
88
|
+
struct CFStreamEnv {
|
89
|
+
bool enable_cfstream;
|
90
|
+
bool enable_cfstream_run_loop;
|
91
|
+
};
|
92
|
+
|
93
|
+
// Parses environment variables for CFStream specific settings
|
94
|
+
CFStreamEnv ParseEnvForCFStream() {
|
95
|
+
CFStreamEnv env;
|
96
|
+
char* enable_cfstream_str = getenv(grpc_cfstream_env_var);
|
97
|
+
env.enable_cfstream =
|
98
|
+
enable_cfstream_str == nullptr || enable_cfstream_str[0] != '0';
|
99
|
+
char* enable_cfstream_run_loop_str = getenv(grpc_cfstream_run_loop_env_var);
|
100
|
+
// CFStream run-loop is disabled by default. The user has to enable it
|
101
|
+
// explicitly with environment variable.
|
102
|
+
env.enable_cfstream_run_loop = enable_cfstream_run_loop_str != nullptr &&
|
103
|
+
enable_cfstream_run_loop_str[0] == '1';
|
104
|
+
return env;
|
105
|
+
}
|
106
|
+
|
107
|
+
void MaybeInitializeTcpPosix(void) {
|
108
|
+
CFStreamEnv env = ParseEnvForCFStream();
|
109
|
+
if (!env.enable_cfstream || !env.enable_cfstream_run_loop) {
|
110
|
+
grpc_tcp_posix_init();
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
void MaybeShutdownTcpPosix(void) {
|
115
|
+
CFStreamEnv env = ParseEnvForCFStream();
|
116
|
+
if (!env.enable_cfstream || !env.enable_cfstream_run_loop) {
|
117
|
+
grpc_tcp_posix_shutdown();
|
118
|
+
}
|
119
|
+
}
|
120
|
+
} // namespace
|
121
|
+
|
87
122
|
static void iomgr_platform_init(void) {
|
123
|
+
MaybeInitializeTcpPosix();
|
88
124
|
grpc_wakeup_fd_global_init();
|
89
125
|
grpc_event_engine_init();
|
90
126
|
}
|
@@ -94,6 +130,7 @@ static void iomgr_platform_flush(void) {}
|
|
94
130
|
static void iomgr_platform_shutdown(void) {
|
95
131
|
grpc_event_engine_shutdown();
|
96
132
|
grpc_wakeup_fd_global_destroy();
|
133
|
+
MaybeShutdownTcpPosix();
|
97
134
|
}
|
98
135
|
|
99
136
|
static void iomgr_platform_shutdown_background_closure(void) {
|
@@ -105,7 +142,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
|
|
105
142
|
}
|
106
143
|
|
107
144
|
static bool iomgr_platform_add_closure_to_background_poller(
|
108
|
-
grpc_closure* closure,
|
145
|
+
grpc_closure* closure, grpc_error_handle error) {
|
109
146
|
return grpc_add_closure_to_background_poller(closure, error);
|
110
147
|
}
|
111
148
|
|
@@ -118,22 +155,15 @@ static grpc_iomgr_platform_vtable vtable = {
|
|
118
155
|
iomgr_platform_add_closure_to_background_poller};
|
119
156
|
|
120
157
|
void grpc_set_default_iomgr_platform() {
|
121
|
-
|
122
|
-
|
123
|
-
enable_cfstream_str == nullptr || enable_cfstream_str[0] != '0';
|
124
|
-
char* enable_cfstream_run_loop_str = getenv(grpc_cfstream_run_loop_env_var);
|
125
|
-
// CFStream run-loop is disabled by default. The user has to enable it
|
126
|
-
// explicitly with environment variable.
|
127
|
-
bool enable_cfstream_run_loop = enable_cfstream_run_loop_str != nullptr &&
|
128
|
-
enable_cfstream_run_loop_str[0] == '1';
|
129
|
-
if (!enable_cfstream) {
|
158
|
+
CFStreamEnv env = ParseEnvForCFStream();
|
159
|
+
if (!env.enable_cfstream) {
|
130
160
|
// Use POSIX sockets for both client and server
|
131
161
|
grpc_set_tcp_client_impl(&grpc_posix_tcp_client_vtable);
|
132
162
|
grpc_set_tcp_server_impl(&grpc_posix_tcp_server_vtable);
|
133
163
|
grpc_set_pollset_vtable(&grpc_posix_pollset_vtable);
|
134
164
|
grpc_set_pollset_set_vtable(&grpc_posix_pollset_set_vtable);
|
135
165
|
grpc_set_iomgr_platform_vtable(&vtable);
|
136
|
-
} else if (enable_cfstream && !enable_cfstream_run_loop) {
|
166
|
+
} else if (env.enable_cfstream && !env.enable_cfstream_run_loop) {
|
137
167
|
// Use CFStream with dispatch queue for client; use POSIX sockets for server
|
138
168
|
grpc_set_tcp_client_impl(&grpc_cfstream_client_vtable);
|
139
169
|
grpc_set_tcp_server_impl(&grpc_posix_tcp_server_vtable);
|