grpc 1.55.0 → 1.56.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +102 -68
- data/include/grpc/event_engine/event_engine.h +4 -3
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/grpc_security.h +19 -0
- data/include/grpc/module.modulemap +2 -0
- data/include/grpc/support/json.h +218 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +5 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +4 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +86 -104
- data/src/core/ext/filters/client_channel/client_channel.h +6 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -18
- data/src/core/ext/filters/client_channel/client_channel_internal.h +16 -21
- data/src/core/ext/filters/client_channel/config_selector.h +9 -24
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +5 -4
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +455 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +186 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +2 -7
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +53 -21
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +23 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -6
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +16 -7
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +18 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +12 -9
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +76 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +42 -40
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +4 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +52 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +14 -16
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +40 -43
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +7 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +12 -19
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +35 -33
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +29 -4
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +28 -27
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +163 -46
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +16 -1
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +10 -40
- data/src/core/ext/filters/client_channel/subchannel.cc +10 -196
- data/src/core/ext/filters/client_channel/subchannel.h +3 -43
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +5 -5
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +100 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -8
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +16 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +46 -95
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +176 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +325 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +567 -543
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +150 -9
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +46 -32
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +18 -5
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -15
- data/src/core/ext/transport/chttp2/transport/parsing.cc +12 -12
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +11 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +15 -0
- data/src/core/ext/xds/certificate_provider_store.cc +4 -9
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +30 -42
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -9
- data/src/core/ext/xds/xds_api.cc +9 -6
- data/src/core/ext/xds/xds_api.h +3 -2
- data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
- data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +21 -9
- data/src/core/ext/xds/xds_bootstrap_grpc.h +5 -0
- data/src/core/ext/xds/xds_client.cc +5 -4
- data/src/core/ext/xds/xds_client_stats.h +1 -1
- data/src/core/ext/xds/xds_cluster.cc +20 -19
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +11 -8
- data/src/core/ext/xds/xds_common_types.cc +3 -1
- data/src/core/ext/xds/xds_http_fault_filter.cc +16 -13
- data/src/core/ext/xds/xds_http_fault_filter.h +2 -1
- data/src/core/ext/xds/xds_http_filters.h +4 -2
- data/src/core/ext/xds/xds_http_rbac_filter.cc +154 -67
- data/src/core/ext/xds/xds_http_rbac_filter.h +2 -1
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +15 -11
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +2 -1
- data/src/core/ext/xds/xds_lb_policy_registry.cc +22 -16
- data/src/core/ext/xds/xds_listener.cc +1 -0
- data/src/core/ext/xds/xds_route_config.cc +40 -3
- data/src/core/ext/xds/xds_routing.cc +2 -2
- data/src/core/ext/xds/xds_transport_grpc.cc +3 -1
- data/src/core/lib/avl/avl.h +5 -0
- data/src/core/lib/backoff/random_early_detection.h +5 -0
- data/src/core/lib/channel/channel_args.cc +80 -22
- data/src/core/lib/channel/channel_args.h +34 -1
- data/src/core/lib/channel/channel_trace.cc +16 -12
- data/src/core/lib/channel/channelz.cc +159 -132
- data/src/core/lib/channel/channelz.h +42 -35
- data/src/core/lib/channel/channelz_registry.cc +23 -20
- data/src/core/lib/channel/connected_channel.cc +17 -6
- data/src/core/lib/channel/promise_based_filter.cc +0 -4
- data/src/core/lib/channel/promise_based_filter.h +2 -0
- data/src/core/lib/compression/compression_internal.cc +2 -5
- data/src/core/lib/config/config_vars.cc +20 -18
- data/src/core/lib/config/config_vars.h +4 -4
- data/src/core/lib/config/load_config.cc +13 -0
- data/src/core/lib/config/load_config.h +6 -0
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/stats_data.h +1 -1
- data/src/core/lib/debug/trace.cc +24 -55
- data/src/core/lib/debug/trace.h +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +211 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
- data/src/core/lib/event_engine/default_event_engine.cc +13 -1
- data/src/core/lib/event_engine/default_event_engine_factory.cc +14 -2
- data/src/core/lib/event_engine/poller.h +2 -2
- data/src/core/lib/event_engine/posix.h +4 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -18
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +33 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +33 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +10 -8
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
- data/src/core/lib/event_engine/shim.cc +7 -1
- data/src/core/lib/event_engine/{thread_pool.cc → thread_pool/original_thread_pool.cc} +28 -25
- data/src/core/lib/event_engine/{thread_pool.h → thread_pool/original_thread_pool.h} +11 -15
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
- data/src/core/lib/event_engine/{executor/executor.h → thread_pool/thread_pool_factory.cc} +17 -15
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +489 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +249 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +166 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +108 -0
- data/src/core/lib/event_engine/windows/iocp.cc +4 -3
- data/src/core/lib/event_engine/windows/iocp.h +3 -3
- data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
- data/src/core/lib/event_engine/windows/win_socket.h +4 -4
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +11 -10
- data/src/core/lib/event_engine/windows/windows_endpoint.h +3 -2
- data/src/core/lib/event_engine/windows/windows_engine.cc +19 -17
- data/src/core/lib/event_engine/windows/windows_engine.h +6 -6
- data/src/core/lib/event_engine/windows/windows_listener.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_listener.h +3 -2
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
- data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
- data/src/core/lib/experiments/config.cc +38 -7
- data/src/core/lib/experiments/config.h +16 -0
- data/src/core/lib/experiments/experiments.cc +67 -20
- data/src/core/lib/experiments/experiments.h +27 -21
- data/src/core/lib/gpr/log_internal.h +55 -0
- data/src/core/lib/gprpp/crash.cc +10 -0
- data/src/core/lib/gprpp/crash.h +3 -0
- data/src/core/lib/gprpp/per_cpu.cc +33 -0
- data/src/core/lib/gprpp/per_cpu.h +29 -6
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +10 -8
- data/src/core/lib/iomgr/ev_apple.cc +12 -12
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +10 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +15 -1
- data/src/core/lib/iomgr/iocp_windows.cc +24 -3
- data/src/core/lib/iomgr/iocp_windows.h +11 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -2
- data/src/core/lib/iomgr/socket_windows.cc +61 -7
- data/src/core/lib/iomgr/socket_windows.h +9 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -3
- data/src/core/lib/iomgr/tcp_server_posix.cc +182 -119
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -0
- data/src/core/lib/iomgr/tcp_server_windows.cc +1 -1
- data/src/core/lib/json/json.h +2 -166
- data/src/core/lib/json/json_object_loader.cc +8 -9
- data/src/core/lib/json/json_object_loader.h +25 -18
- data/src/core/lib/json/json_reader.cc +13 -6
- data/src/core/lib/json/json_util.cc +6 -11
- data/src/core/lib/json/json_writer.cc +7 -8
- data/src/core/lib/load_balancing/lb_policy.h +13 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +2 -1
- data/src/core/lib/matchers/matchers.cc +3 -4
- data/src/core/lib/matchers/matchers.h +2 -1
- data/src/core/lib/promise/activity.cc +5 -0
- data/src/core/lib/promise/activity.h +10 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/party.cc +31 -13
- data/src/core/lib/promise/party.h +11 -2
- data/src/core/lib/promise/pipe.h +9 -2
- data/src/core/lib/promise/prioritized_race.h +95 -0
- data/src/core/lib/promise/sleep.cc +2 -1
- data/src/core/lib/resolver/server_address.cc +0 -8
- data/src/core/lib/resolver/server_address.h +0 -6
- data/src/core/lib/resource_quota/memory_quota.cc +7 -7
- data/src/core/lib/resource_quota/memory_quota.h +1 -2
- data/src/core/lib/security/authorization/audit_logging.cc +98 -0
- data/src/core/lib/security/authorization/audit_logging.h +73 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -2
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +18 -1
- data/src/core/lib/security/authorization/rbac_policy.cc +36 -4
- data/src/core/lib/security/authorization/rbac_policy.h +19 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
- data/src/core/lib/security/authorization/stdout_logger.h +61 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +8 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +14 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +19 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +4 -2
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +15 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +1 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +1 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +5 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -1
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +1 -1
- data/src/core/lib/security/util/json_util.cc +1 -0
- data/src/core/lib/service_config/service_config_call_data.h +49 -20
- data/src/core/lib/service_config/service_config_impl.cc +2 -1
- data/src/core/lib/surface/call.cc +38 -23
- data/src/core/lib/surface/completion_queue.cc +6 -2
- data/src/core/lib/surface/validate_metadata.cc +37 -22
- data/src/core/lib/surface/validate_metadata.h +13 -3
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +15 -12
- data/src/core/lib/transport/batch_builder.h +39 -35
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/tsi/ssl_transport_security.cc +5 -2
- data/src/core/tsi/ssl_transport_security.h +13 -1
- data/src/ruby/ext/grpc/extconf.rb +8 -9
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +7 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +31 -22
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_openbsd.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +795 -795
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +18 -6
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +15 -7
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +24 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +74 -74
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +11 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +23 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +13 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +2 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +115 -133
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +57 -47
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +21 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +5 -288
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +143 -83
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +95 -183
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +71 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +33 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +162 -6
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +18 -11
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +6 -13
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -14
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_lock.c → refcount_no_threads.c} +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +77 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +218 -44
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +588 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +27 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +17 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +39 -48
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -140
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +72 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +14 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +5 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +6 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +32 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +0 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +28 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +2 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +91 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +149 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +774 -615
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +42 -10
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +11 -6
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +2 -4
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +24 -16
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +65 -18
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +37 -18
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +187 -193
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +13 -129
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +85 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +17 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +5 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -2
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
- data/third_party/cares/cares/include/ares.h +23 -1
- data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
- data/third_party/cares/cares/include/ares_rules.h +2 -2
- data/third_party/cares/cares/include/ares_version.h +3 -3
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
- data/third_party/cares/cares/src/lib/ares_data.c +16 -0
- data/third_party/cares/cares/src/lib/ares_data.h +7 -0
- data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
- data/third_party/cares/cares/src/lib/ares_init.c +97 -485
- data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
- data/third_party/cares/cares/src/lib/ares_private.h +30 -16
- data/third_party/cares/cares/src/lib/ares_process.c +55 -16
- data/third_party/cares/cares/src/lib/ares_query.c +1 -35
- data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
- data/third_party/cares/cares/src/lib/ares_send.c +5 -7
- data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
- data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
- data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
- data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
- data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
- metadata +50 -12
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -175
- data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
@@ -43,6 +43,7 @@ static ULONG g_iocp_kick_token;
|
|
43
43
|
static OVERLAPPED g_iocp_custom_overlap;
|
44
44
|
|
45
45
|
static gpr_atm g_custom_events = 0;
|
46
|
+
static gpr_atm g_pending_socket_shutdowns = 0;
|
46
47
|
|
47
48
|
static HANDLE g_iocp;
|
48
49
|
|
@@ -90,6 +91,7 @@ grpc_iocp_work_status grpc_iocp_work(grpc_core::Timestamp deadline) {
|
|
90
91
|
} else {
|
91
92
|
abort();
|
92
93
|
}
|
94
|
+
gpr_mu_lock(&socket->state_mu);
|
93
95
|
if (socket->shutdown_called) {
|
94
96
|
info->bytes_transferred = 0;
|
95
97
|
info->wsa_error = WSA_OPERATION_ABORTED;
|
@@ -100,7 +102,11 @@ grpc_iocp_work_status grpc_iocp_work(grpc_core::Timestamp deadline) {
|
|
100
102
|
info->wsa_error = success ? 0 : WSAGetLastError();
|
101
103
|
}
|
102
104
|
GPR_ASSERT(overlapped == &info->overlapped);
|
103
|
-
grpc_socket_become_ready(socket, info);
|
105
|
+
bool should_destroy = grpc_socket_become_ready(socket, info);
|
106
|
+
gpr_mu_unlock(&socket->state_mu);
|
107
|
+
if (should_destroy) {
|
108
|
+
grpc_winsocket_finish(socket);
|
109
|
+
}
|
104
110
|
return GRPC_IOCP_WORK_WORK;
|
105
111
|
}
|
106
112
|
|
@@ -122,11 +128,13 @@ void grpc_iocp_kick(void) {
|
|
122
128
|
void grpc_iocp_flush(void) {
|
123
129
|
grpc_core::ExecCtx exec_ctx;
|
124
130
|
grpc_iocp_work_status work_status;
|
125
|
-
|
131
|
+
// This method is called during grpc_shutdown. We make the loop
|
132
|
+
// spin until any pending socket shutdowns are complete.
|
126
133
|
do {
|
127
134
|
work_status = grpc_iocp_work(grpc_core::Timestamp::InfPast());
|
128
135
|
} while (work_status == GRPC_IOCP_WORK_KICK ||
|
129
|
-
grpc_core::ExecCtx::Get()->Flush()
|
136
|
+
grpc_core::ExecCtx::Get()->Flush() ||
|
137
|
+
gpr_atm_acq_load(&g_pending_socket_shutdowns) != 0);
|
130
138
|
}
|
131
139
|
|
132
140
|
void grpc_iocp_shutdown(void) {
|
@@ -155,4 +163,17 @@ void grpc_iocp_add_socket(grpc_winsocket* socket) {
|
|
155
163
|
GPR_ASSERT(ret == g_iocp);
|
156
164
|
}
|
157
165
|
|
166
|
+
void grpc_iocp_register_socket_shutdown_socket_locked(grpc_winsocket* socket) {
|
167
|
+
if (!socket->shutdown_registered) {
|
168
|
+
socket->shutdown_registered = true;
|
169
|
+
gpr_atm_full_fetch_add(&g_pending_socket_shutdowns, 1);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
void grpc_iocp_finish_socket_shutdown(grpc_winsocket* socket) {
|
174
|
+
if (socket->shutdown_registered) {
|
175
|
+
gpr_atm_full_fetch_add(&g_pending_socket_shutdowns, -1);
|
176
|
+
}
|
177
|
+
}
|
178
|
+
|
158
179
|
#endif // GRPC_WINSOCK_SOCKET
|
@@ -43,6 +43,17 @@ void grpc_iocp_flush(void);
|
|
43
43
|
void grpc_iocp_shutdown(void);
|
44
44
|
void grpc_iocp_add_socket(grpc_winsocket*);
|
45
45
|
|
46
|
+
// Register that this socket has started shutting down.
|
47
|
+
// This prevents gRPC from completing its own shutdown until this socket's
|
48
|
+
// shutdown is finished. IOCP must continue doing work until all such sockets
|
49
|
+
// have finished shutting down. The socket's state_mu must be locked.
|
50
|
+
void grpc_iocp_register_socket_shutdown_socket_locked(grpc_winsocket* socket);
|
51
|
+
|
52
|
+
// Mark that this socket has finished shutting down.
|
53
|
+
// The socket's state lock does not need to be held since this function is only
|
54
|
+
// called once the socket is ready to be destroyed.
|
55
|
+
void grpc_iocp_finish_socket_shutdown(grpc_winsocket* socket);
|
56
|
+
|
46
57
|
#endif
|
47
58
|
|
48
59
|
#endif // GRPC_SRC_CORE_LIB_IOMGR_IOCP_WINDOWS_H
|
@@ -73,7 +73,7 @@ static bool apple_iomgr_platform_is_any_background_poller_thread(void) {
|
|
73
73
|
}
|
74
74
|
|
75
75
|
static bool apple_iomgr_platform_add_closure_to_background_poller(
|
76
|
-
grpc_closure* closure
|
76
|
+
grpc_closure* /*closure*/, grpc_error_handle /*error*/) {
|
77
77
|
return false;
|
78
78
|
}
|
79
79
|
|
@@ -357,8 +357,10 @@ grpc_error_handle grpc_set_socket_tcp_user_timeout(
|
|
357
357
|
return absl::OkStatus();
|
358
358
|
}
|
359
359
|
if (newval != timeout) {
|
360
|
-
|
361
|
-
|
360
|
+
gpr_log(GPR_INFO,
|
361
|
+
"Setting TCP_USER_TIMEOUT to value %d ms. Actual "
|
362
|
+
"TCP_USER_TIMEOUT value is %d ms",
|
363
|
+
timeout, newval);
|
362
364
|
return absl::OkStatus();
|
363
365
|
}
|
364
366
|
}
|
@@ -76,6 +76,51 @@ void grpc_winsocket_shutdown(grpc_winsocket* winsocket) {
|
|
76
76
|
return;
|
77
77
|
}
|
78
78
|
winsocket->shutdown_called = true;
|
79
|
+
bool register_shutdown = false;
|
80
|
+
// If there is already a scheduled read closure, run it immediately. This
|
81
|
+
// follows the same semantics applied to posix endpoint which also runs any
|
82
|
+
// already registered closure immediately in the event of a shutdown.
|
83
|
+
if (winsocket->read_info.closure && !winsocket->read_info.has_pending_iocp) {
|
84
|
+
winsocket->read_info.bytes_transferred = 0;
|
85
|
+
winsocket->read_info.wsa_error = WSA_OPERATION_ABORTED;
|
86
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, winsocket->read_info.closure,
|
87
|
+
absl::OkStatus());
|
88
|
+
// Note that while the read_info.closure closure is run, it is not set to
|
89
|
+
// NULL here. This ensures that the socket cannot get deleted yet until any
|
90
|
+
// pending I/O operations are flushed by the thread executing
|
91
|
+
// grpc_iocp_work. We set read_info.closure_already_executed_at_shutdown to
|
92
|
+
// true so that when the pending read I/O operations are flushed, the
|
93
|
+
// associated closure is not executed in the grpc_socket_became_ready
|
94
|
+
// function.
|
95
|
+
winsocket->read_info.closure_already_executed_at_shutdown = true;
|
96
|
+
register_shutdown = true;
|
97
|
+
}
|
98
|
+
|
99
|
+
// If there is already a scheduled write closure, run it immediately. This
|
100
|
+
// follows the same semantics applied to posix endpoint which also runs any
|
101
|
+
// already registered closure immediately in the event of a shutdown.
|
102
|
+
if (winsocket->write_info.closure &&
|
103
|
+
!winsocket->write_info.has_pending_iocp) {
|
104
|
+
winsocket->write_info.bytes_transferred = 0;
|
105
|
+
winsocket->write_info.wsa_error = WSA_OPERATION_ABORTED;
|
106
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, winsocket->write_info.closure,
|
107
|
+
absl::OkStatus());
|
108
|
+
// Note that while the write_info.closure closure is run, it is not set to
|
109
|
+
// NULL here. This ensures that the socket cannot get deleted yet until any
|
110
|
+
// pending I/O operations are flushed by the thread executing
|
111
|
+
// grpc_iocp_work. We set
|
112
|
+
// write_info.closure.closure_already_executed_at_shutdown to true so that
|
113
|
+
// when the pending write I/O operations are flushed, the associated closure
|
114
|
+
// is not executed in the grpc_socket_became_ready function.
|
115
|
+
winsocket->write_info.closure_already_executed_at_shutdown = true;
|
116
|
+
register_shutdown = true;
|
117
|
+
}
|
118
|
+
|
119
|
+
if (register_shutdown) {
|
120
|
+
// Instruct gRPC to avoid completing any shutdowns until this socket is
|
121
|
+
// cleaned up.
|
122
|
+
grpc_iocp_register_socket_shutdown_socket_locked(winsocket);
|
123
|
+
}
|
79
124
|
gpr_mu_unlock(&winsocket->state_mu);
|
80
125
|
|
81
126
|
status = WSAIoctl(winsocket->socket, SIO_GET_EXTENSION_FUNCTION_POINTER,
|
@@ -90,6 +135,8 @@ void grpc_winsocket_shutdown(grpc_winsocket* winsocket) {
|
|
90
135
|
utf8_message);
|
91
136
|
gpr_free(utf8_message);
|
92
137
|
}
|
138
|
+
// Calling closesocket triggers invocation of any pending I/O operations with
|
139
|
+
// ABORTED status.
|
93
140
|
closesocket(winsocket->socket);
|
94
141
|
}
|
95
142
|
|
@@ -105,13 +152,20 @@ static bool check_destroyable(grpc_winsocket* winsocket) {
|
|
105
152
|
winsocket->read_info.closure == NULL;
|
106
153
|
}
|
107
154
|
|
155
|
+
void grpc_winsocket_finish(grpc_winsocket* winsocket) {
|
156
|
+
grpc_iocp_finish_socket_shutdown(winsocket);
|
157
|
+
destroy(winsocket);
|
158
|
+
}
|
159
|
+
|
108
160
|
void grpc_winsocket_destroy(grpc_winsocket* winsocket) {
|
109
161
|
gpr_mu_lock(&winsocket->state_mu);
|
110
162
|
GPR_ASSERT(!winsocket->destroy_called);
|
111
163
|
winsocket->destroy_called = true;
|
112
164
|
bool should_destroy = check_destroyable(winsocket);
|
113
165
|
gpr_mu_unlock(&winsocket->state_mu);
|
114
|
-
if (should_destroy)
|
166
|
+
if (should_destroy) {
|
167
|
+
grpc_winsocket_finish(winsocket);
|
168
|
+
}
|
115
169
|
}
|
116
170
|
|
117
171
|
// Calling notify_on_read or write means either of two things:
|
@@ -140,19 +194,19 @@ void grpc_socket_notify_on_read(grpc_winsocket* socket, grpc_closure* closure) {
|
|
140
194
|
socket_notify_on_iocp(socket, closure, &socket->read_info);
|
141
195
|
}
|
142
196
|
|
143
|
-
|
197
|
+
bool grpc_socket_become_ready(grpc_winsocket* socket,
|
144
198
|
grpc_winsocket_callback_info* info) {
|
145
199
|
GPR_ASSERT(!info->has_pending_iocp);
|
146
|
-
gpr_mu_lock(&socket->state_mu);
|
147
200
|
if (info->closure) {
|
148
|
-
|
201
|
+
// Only run the closure once at shutdown.
|
202
|
+
if (!info->closure_already_executed_at_shutdown) {
|
203
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, info->closure, absl::OkStatus());
|
204
|
+
}
|
149
205
|
info->closure = NULL;
|
150
206
|
} else {
|
151
207
|
info->has_pending_iocp = 1;
|
152
208
|
}
|
153
|
-
|
154
|
-
gpr_mu_unlock(&socket->state_mu);
|
155
|
-
if (should_destroy) destroy(socket);
|
209
|
+
return check_destroyable(socket);
|
156
210
|
}
|
157
211
|
|
158
212
|
static gpr_once g_probe_ipv6_once = GPR_ONCE_INIT;
|
@@ -61,6 +61,9 @@ typedef struct grpc_winsocket_callback_info {
|
|
61
61
|
// The results of the overlapped operation.
|
62
62
|
DWORD bytes_transferred;
|
63
63
|
int wsa_error;
|
64
|
+
// Tracks whether the final closure has already been run when the socket is
|
65
|
+
// shut down. This allows closures to be run immediately upon socket shutdown.
|
66
|
+
bool closure_already_executed_at_shutdown = false;
|
64
67
|
} grpc_winsocket_callback_info;
|
65
68
|
|
66
69
|
// This is a wrapper to a Windows socket. A socket can have one outstanding
|
@@ -81,6 +84,7 @@ typedef struct grpc_winsocket {
|
|
81
84
|
|
82
85
|
gpr_mu state_mu;
|
83
86
|
bool shutdown_called;
|
87
|
+
bool shutdown_registered;
|
84
88
|
|
85
89
|
// You can't add the same socket twice to the same IO Completion Port.
|
86
90
|
// This prevents that.
|
@@ -109,8 +113,8 @@ void grpc_socket_notify_on_write(grpc_winsocket* winsocket,
|
|
109
113
|
void grpc_socket_notify_on_read(grpc_winsocket* winsocket,
|
110
114
|
grpc_closure* closure);
|
111
115
|
|
112
|
-
|
113
|
-
grpc_winsocket_callback_info*
|
116
|
+
bool grpc_socket_become_ready(grpc_winsocket* socket,
|
117
|
+
grpc_winsocket_callback_info* info);
|
114
118
|
|
115
119
|
// Returns true if this system can create AF_INET6 sockets bound to ::1.
|
116
120
|
// The value is probed once, and cached for the life of the process.
|
@@ -120,6 +124,9 @@ void grpc_wsa_socket_flags_init();
|
|
120
124
|
|
121
125
|
DWORD grpc_get_default_wsa_socket_flags();
|
122
126
|
|
127
|
+
// Final cleanup operations on the socket prior to deletion.
|
128
|
+
void grpc_winsocket_finish(grpc_winsocket*);
|
129
|
+
|
123
130
|
#endif
|
124
131
|
|
125
132
|
#endif // GRPC_SRC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H
|
@@ -33,6 +33,7 @@
|
|
33
33
|
#include <grpc/support/sync.h>
|
34
34
|
|
35
35
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
36
|
+
#include "src/core/lib/event_engine/shim.h"
|
36
37
|
#include "src/core/lib/gprpp/crash.h"
|
37
38
|
#include "src/core/lib/gprpp/host_port.h"
|
38
39
|
#include "src/core/lib/iomgr/cfstream_handle.h"
|
@@ -40,6 +41,7 @@
|
|
40
41
|
#include "src/core/lib/iomgr/endpoint_cfstream.h"
|
41
42
|
#include "src/core/lib/iomgr/error.h"
|
42
43
|
#include "src/core/lib/iomgr/error_cfstream.h"
|
44
|
+
#include "src/core/lib/iomgr/event_engine_shims/tcp_client.h"
|
43
45
|
#include "src/core/lib/iomgr/tcp_client.h"
|
44
46
|
#include "src/core/lib/iomgr/timer.h"
|
45
47
|
|
@@ -149,9 +151,14 @@ static void ParseResolvedAddress(const grpc_resolved_address* addr,
|
|
149
151
|
|
150
152
|
static int64_t CFStreamClientConnect(
|
151
153
|
grpc_closure* closure, grpc_endpoint** ep,
|
152
|
-
grpc_pollset_set* interested_parties
|
153
|
-
const grpc_event_engine::experimental::EndpointConfig&
|
154
|
+
grpc_pollset_set* /*interested_parties*/,
|
155
|
+
const grpc_event_engine::experimental::EndpointConfig& config,
|
154
156
|
const grpc_resolved_address* resolved_addr, grpc_core::Timestamp deadline) {
|
157
|
+
if (grpc_event_engine::experimental::UseEventEngineClient()) {
|
158
|
+
return grpc_event_engine::experimental::event_engine_tcp_client_connect(
|
159
|
+
closure, ep, config, resolved_addr, deadline);
|
160
|
+
}
|
161
|
+
|
155
162
|
auto addr_uri = grpc_sockaddr_to_uri(resolved_addr);
|
156
163
|
if (!addr_uri.ok()) {
|
157
164
|
grpc_error_handle error = GRPC_ERROR_CREATE(addr_uri.status().ToString());
|
@@ -198,7 +205,11 @@ static int64_t CFStreamClientConnect(
|
|
198
205
|
return 0;
|
199
206
|
}
|
200
207
|
|
201
|
-
static bool CFStreamClientCancelConnect(int64_t
|
208
|
+
static bool CFStreamClientCancelConnect(int64_t connection_handle) {
|
209
|
+
if (grpc_event_engine::experimental::UseEventEngineClient()) {
|
210
|
+
return grpc_event_engine::experimental::
|
211
|
+
event_engine_tcp_client_cancel_connect(connection_handle);
|
212
|
+
}
|
202
213
|
return false;
|
203
214
|
}
|
204
215
|
|