grpc 1.74.1 → 1.75.0.pre1
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 +83 -41
- data/include/grpc/credentials.h +7 -1
- data/src/core/call/client_call.cc +4 -4
- data/src/core/call/filter_fusion.h +1230 -0
- data/src/core/call/metadata.cc +22 -0
- data/src/core/call/metadata.h +24 -2
- data/src/core/channelz/channelz.cc +10 -17
- data/src/core/channelz/channelz.h +58 -19
- data/src/core/channelz/channelz_registry.cc +0 -162
- data/src/core/channelz/channelz_registry.h +14 -7
- data/src/core/channelz/property_list.cc +19 -23
- data/src/core/channelz/property_list.h +3 -1
- data/src/core/channelz/v2tov1/convert.cc +683 -0
- data/src/core/channelz/v2tov1/convert.h +58 -0
- data/src/core/channelz/v2tov1/legacy_api.cc +425 -0
- data/src/core/channelz/v2tov1/legacy_api.h +32 -0
- data/src/core/channelz/v2tov1/property_list.cc +118 -0
- data/src/core/channelz/v2tov1/property_list.h +52 -0
- data/src/core/client_channel/client_channel_filter.cc +5 -4
- data/src/core/client_channel/client_channel_filter.h +2 -2
- data/src/core/client_channel/client_channel_internal.h +2 -1
- data/src/core/client_channel/load_balanced_call_destination.cc +6 -5
- data/src/core/client_channel/subchannel.cc +14 -6
- data/src/core/client_channel/subchannel.h +2 -0
- data/src/core/config/core_configuration.cc +3 -1
- data/src/core/config/core_configuration.h +12 -0
- data/src/core/credentials/transport/alts/alts_credentials.cc +5 -0
- data/src/core/credentials/transport/alts/check_gcp_environment_windows.cc +2 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +3 -1
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +1 -1
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +8 -3
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +29 -24
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +19 -8
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +96 -54
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +15 -2
- data/src/core/credentials/transport/tls/spiffe_utils.cc +371 -0
- data/src/core/credentials/transport/tls/spiffe_utils.h +171 -0
- data/src/core/credentials/transport/tls/ssl_utils.cc +11 -10
- data/src/core/credentials/transport/tls/ssl_utils.h +4 -2
- data/src/core/credentials/transport/tls/tls_credentials.cc +2 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +11 -26
- data/src/core/credentials/transport/tls/tls_security_connector.h +12 -12
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -2
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -6
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +8 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -6
- data/src/core/ext/filters/message_size/message_size_filter.cc +4 -4
- data/src/core/ext/filters/rbac/rbac_filter.cc +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame.cc +89 -6
- data/src/core/ext/transport/chttp2/transport/frame.h +38 -0
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +5 -14
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +294 -78
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +128 -9
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +11 -38
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +52 -35
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +61 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +142 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +81 -3
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +2 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +22 -5
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +607 -0
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +254 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +6 -4
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h +4959 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +1111 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h +108 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +142 -54
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +18 -14
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +2 -2
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c +716 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.h +227 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +86 -88
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +2 -2
- data/src/core/filter/auth/auth_filters.h +2 -2
- data/src/core/filter/fused_filters.cc +154 -0
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +1 -1
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +965 -0
- data/src/core/handshaker/security/secure_endpoint.cc +28 -13
- data/src/core/handshaker/security/secure_endpoint.h +8 -0
- data/src/core/lib/channel/promise_based_filter.cc +15 -25
- data/src/core/lib/channel/promise_based_filter.h +6 -5
- data/src/core/lib/event_engine/ares_resolver.h +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +9 -5
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +2 -1
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +263 -0
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.h +107 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +31 -3
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +12 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +12 -10
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +6 -4
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +15 -14
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -5
- data/src/core/lib/event_engine/posix_engine/event_poller.h +0 -8
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +11 -5
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +3 -2
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +1 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +3 -4
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +188 -199
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +30 -45
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +1 -1
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +2 -1
- data/src/core/lib/experiments/experiments.cc +120 -6
- data/src/core/lib/experiments/experiments.h +46 -3
- data/src/core/lib/iomgr/combiner.cc +1 -1
- data/src/core/lib/iomgr/exec_ctx.h +3 -9
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_posix.cc +3 -3
- data/src/core/lib/promise/activity.h +2 -2
- data/src/core/lib/promise/mpsc.cc +8 -8
- data/src/core/lib/promise/party.cc +7 -7
- data/src/core/lib/promise/party.h +4 -4
- data/src/core/lib/promise/poll.h +10 -0
- data/src/core/lib/resource_quota/memory_quota.cc +90 -3
- data/src/core/lib/resource_quota/memory_quota.h +20 -9
- data/src/core/lib/resource_quota/periodic_update.cc +14 -0
- data/src/core/lib/resource_quota/periodic_update.h +8 -0
- data/src/core/lib/resource_quota/resource_quota.cc +15 -4
- data/src/core/lib/resource_quota/resource_quota.h +3 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
- data/src/core/lib/surface/call.cc +5 -5
- data/src/core/lib/surface/call.h +6 -5
- data/src/core/lib/surface/completion_queue.cc +2 -4
- data/src/core/lib/surface/filter_stack_call.cc +1 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.h +3 -3
- data/src/core/load_balancing/endpoint_list.cc +29 -2
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +3 -3
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -1
- data/src/core/load_balancing/pick_first/pick_first.cc +12 -5
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +5 -3
- data/src/core/net/socket_mutator.cc +19 -0
- data/src/core/net/socket_mutator.h +25 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -0
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +6 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +2 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +8 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -1
- data/src/core/resolver/xds/xds_dependency_manager.cc +1 -1
- data/src/core/server/server.cc +1 -1
- data/src/core/server/server_call_tracer_filter.cc +0 -66
- data/src/core/server/server_call_tracer_filter.h +64 -0
- data/src/core/server/server_config_selector_filter.cc +1 -1
- data/src/core/service_config/service_config_channel_arg_filter.cc +3 -60
- data/src/core/service_config/service_config_channel_arg_filter.h +82 -0
- data/src/core/telemetry/call_tracer.cc +20 -14
- data/src/core/telemetry/call_tracer.h +22 -17
- data/src/core/telemetry/metrics.h +8 -8
- data/src/core/telemetry/stats_data.cc +151 -151
- data/src/core/telemetry/stats_data.h +87 -87
- data/src/core/transport/auth_context.cc +20 -0
- data/src/core/transport/auth_context.h +4 -0
- data/src/core/transport/auth_context_comparator_registry.h +69 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -3
- data/src/core/tsi/ssl_transport_security.cc +202 -32
- data/src/core/tsi/ssl_transport_security.h +19 -10
- data/src/core/tsi/ssl_transport_security_utils.cc +21 -0
- data/src/core/tsi/ssl_transport_security_utils.h +4 -0
- data/src/core/util/http_client/httpcli_security_connector.cc +3 -1
- data/src/core/util/latent_see.cc +178 -146
- data/src/core/util/latent_see.h +245 -188
- data/src/core/util/single_set_ptr.h +5 -2
- data/src/core/util/useful.h +91 -0
- data/src/core/util/windows/directory_reader.cc +1 -0
- data/src/core/util/windows/thd.cc +1 -3
- data/src/core/util/work_serializer.cc +1 -1
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +32 -5
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +5 -0
- data/src/core/xds/grpc/xds_certificate_provider.cc +5 -6
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/cares/cares/include/ares.h +925 -460
- data/third_party/cares/cares/include/ares_dns.h +86 -71
- data/third_party/cares/cares/include/ares_dns_record.h +1118 -0
- data/third_party/cares/cares/include/ares_nameser.h +215 -189
- data/third_party/cares/cares/include/ares_version.h +37 -14
- data/third_party/cares/cares/src/lib/ares_addrinfo2hostent.c +305 -0
- data/third_party/cares/cares/src/lib/ares_addrinfo_localhost.c +245 -0
- data/third_party/cares/cares/src/lib/ares_android.c +216 -164
- data/third_party/cares/cares/src/lib/ares_android.h +25 -14
- data/third_party/cares/cares/src/lib/ares_cancel.c +68 -44
- data/third_party/cares/cares/src/lib/ares_close_sockets.c +137 -0
- data/third_party/cares/cares/src/lib/ares_conn.c +511 -0
- data/third_party/cares/cares/src/lib/ares_conn.h +196 -0
- data/third_party/cares/cares/src/lib/ares_cookie.c +461 -0
- data/third_party/cares/cares/src/lib/ares_data.c +93 -181
- data/third_party/cares/cares/src/lib/ares_data.h +50 -39
- data/third_party/cares/cares/src/lib/ares_destroy.c +127 -89
- data/third_party/cares/cares/src/lib/ares_free_hostent.c +35 -24
- data/third_party/cares/cares/src/lib/ares_free_string.c +24 -16
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +45 -38
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +549 -663
- data/third_party/cares/cares/src/lib/ares_getenv.c +25 -15
- data/third_party/cares/cares/src/lib/ares_getenv.h +26 -18
- data/third_party/cares/cares/src/lib/ares_gethostbyaddr.c +163 -221
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +222 -223
- data/third_party/cares/cares/src/lib/ares_getnameinfo.c +328 -338
- data/third_party/cares/cares/src/lib/ares_hosts_file.c +952 -0
- data/third_party/cares/cares/src/lib/ares_inet_net_pton.h +25 -19
- data/third_party/cares/cares/src/lib/ares_init.c +425 -2091
- data/third_party/cares/cares/src/lib/ares_ipv6.h +63 -33
- data/third_party/cares/cares/src/lib/ares_library_init.c +110 -54
- data/third_party/cares/cares/src/lib/ares_metrics.c +261 -0
- data/third_party/cares/cares/src/lib/ares_options.c +418 -332
- data/third_party/cares/cares/src/lib/ares_parse_into_addrinfo.c +179 -0
- data/third_party/cares/cares/src/lib/ares_private.h +558 -356
- data/third_party/cares/cares/src/lib/ares_process.c +1224 -1369
- data/third_party/cares/cares/src/lib/ares_qcache.c +430 -0
- data/third_party/cares/cares/src/lib/ares_query.c +126 -121
- data/third_party/cares/cares/src/lib/ares_search.c +564 -262
- data/third_party/cares/cares/src/lib/ares_send.c +264 -93
- data/third_party/cares/cares/src/lib/ares_set_socket_functions.c +588 -0
- data/third_party/cares/cares/src/lib/ares_setup.h +115 -111
- data/third_party/cares/cares/src/lib/ares_socket.c +425 -0
- data/third_party/cares/cares/src/lib/ares_socket.h +163 -0
- data/third_party/cares/cares/src/lib/ares_sortaddrinfo.c +447 -0
- data/third_party/cares/cares/src/lib/ares_strerror.c +83 -48
- data/third_party/cares/cares/src/lib/ares_sysconfig.c +639 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_files.c +839 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_mac.c +373 -0
- data/third_party/cares/cares/src/lib/ares_sysconfig_win.c +621 -0
- data/third_party/cares/cares/src/lib/ares_timeout.c +136 -73
- data/third_party/cares/cares/src/lib/ares_update_servers.c +1362 -0
- data/third_party/cares/cares/src/lib/ares_version.c +29 -4
- data/third_party/cares/cares/src/lib/config-dos.h +88 -89
- data/third_party/cares/cares/src/lib/config-win32.h +122 -77
- data/third_party/cares/cares/src/lib/dsa/ares_array.c +394 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable.c +447 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable.h +174 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_asvp.c +224 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_dict.c +228 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_strvp.c +210 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_szvp.c +188 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_vpstr.c +186 -0
- data/third_party/cares/cares/src/lib/dsa/ares_htable_vpvp.c +194 -0
- data/third_party/cares/cares/src/lib/dsa/ares_llist.c +382 -0
- data/third_party/cares/cares/src/lib/dsa/ares_slist.c +479 -0
- data/third_party/cares/cares/src/lib/dsa/ares_slist.h +207 -0
- data/third_party/cares/cares/src/lib/event/ares_event.h +191 -0
- data/third_party/cares/cares/src/lib/event/ares_event_configchg.c +743 -0
- data/third_party/cares/cares/src/lib/event/ares_event_epoll.c +192 -0
- data/third_party/cares/cares/src/lib/event/ares_event_kqueue.c +248 -0
- data/third_party/cares/cares/src/lib/event/ares_event_poll.c +140 -0
- data/third_party/cares/cares/src/lib/event/ares_event_select.c +159 -0
- data/third_party/cares/cares/src/lib/event/ares_event_thread.c +567 -0
- data/third_party/cares/cares/src/lib/event/ares_event_wake_pipe.c +166 -0
- data/third_party/cares/cares/src/lib/event/ares_event_win32.c +978 -0
- data/third_party/cares/cares/src/lib/event/ares_event_win32.h +161 -0
- data/third_party/cares/cares/src/lib/include/ares_array.h +276 -0
- data/third_party/cares/cares/src/lib/include/ares_buf.h +732 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_asvp.h +130 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_dict.h +123 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_strvp.h +130 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_szvp.h +118 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_vpstr.h +111 -0
- data/third_party/cares/cares/src/lib/include/ares_htable_vpvp.h +128 -0
- data/third_party/cares/cares/src/lib/include/ares_llist.h +239 -0
- data/third_party/cares/cares/src/lib/include/ares_mem.h +38 -0
- data/third_party/cares/cares/src/lib/include/ares_str.h +244 -0
- data/third_party/cares/cares/src/lib/inet_net_pton.c +202 -157
- data/third_party/cares/cares/src/lib/inet_ntop.c +87 -69
- data/third_party/cares/cares/src/lib/legacy/ares_create_query.c +78 -0
- data/third_party/cares/cares/src/lib/legacy/ares_expand_name.c +99 -0
- data/third_party/cares/cares/src/lib/legacy/ares_expand_string.c +107 -0
- data/third_party/cares/cares/src/lib/legacy/ares_fds.c +80 -0
- data/third_party/cares/cares/src/lib/legacy/ares_getsock.c +85 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_a_reply.c +107 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_aaaa_reply.c +109 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_caa_reply.c +137 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_mx_reply.c +110 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_naptr_reply.c +132 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_ns_reply.c +154 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_ptr_reply.c +213 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_soa_reply.c +115 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_srv_reply.c +114 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_txt_reply.c +144 -0
- data/third_party/cares/cares/src/lib/legacy/ares_parse_uri_reply.c +113 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_mapping.c +982 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_multistring.c +307 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_multistring.h +72 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_name.c +673 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_parse.c +1329 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_private.h +273 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_record.c +1661 -0
- data/third_party/cares/cares/src/lib/record/ares_dns_write.c +1229 -0
- data/third_party/cares/cares/src/lib/str/ares_buf.c +1498 -0
- data/third_party/cares/cares/src/lib/str/ares_str.c +508 -0
- data/third_party/cares/cares/src/lib/str/ares_strsplit.c +90 -0
- data/third_party/cares/cares/src/lib/str/ares_strsplit.h +51 -0
- data/third_party/cares/cares/src/lib/thirdparty/apple/dnsinfo.h +122 -0
- data/third_party/cares/cares/src/lib/util/ares_iface_ips.c +628 -0
- data/third_party/cares/cares/src/lib/util/ares_iface_ips.h +139 -0
- data/third_party/cares/cares/src/lib/util/ares_math.c +158 -0
- data/third_party/cares/cares/src/lib/util/ares_math.h +45 -0
- data/third_party/cares/cares/src/lib/util/ares_rand.c +389 -0
- data/third_party/cares/cares/src/lib/util/ares_rand.h +36 -0
- data/third_party/cares/cares/src/lib/util/ares_threads.c +614 -0
- data/third_party/cares/cares/src/lib/util/ares_threads.h +60 -0
- data/third_party/cares/cares/src/lib/util/ares_time.h +48 -0
- data/third_party/cares/cares/src/lib/util/ares_timeval.c +95 -0
- data/third_party/cares/cares/src/lib/util/ares_uri.c +1626 -0
- data/third_party/cares/cares/src/lib/util/ares_uri.h +252 -0
- data/third_party/cares/cares/src/lib/windows_port.c +16 -9
- metadata +121 -49
- data/src/core/util/ring_buffer.h +0 -122
- data/third_party/cares/cares/include/ares_rules.h +0 -125
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +0 -266
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +0 -240
- data/third_party/cares/cares/src/lib/ares__close_sockets.c +0 -61
- data/third_party/cares/cares/src/lib/ares__get_hostent.c +0 -260
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +0 -229
- data/third_party/cares/cares/src/lib/ares__read_line.c +0 -73
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +0 -258
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +0 -507
- data/third_party/cares/cares/src/lib/ares__timeval.c +0 -111
- data/third_party/cares/cares/src/lib/ares_create_query.c +0 -197
- data/third_party/cares/cares/src/lib/ares_expand_name.c +0 -311
- data/third_party/cares/cares/src/lib/ares_expand_string.c +0 -67
- data/third_party/cares/cares/src/lib/ares_fds.c +0 -59
- data/third_party/cares/cares/src/lib/ares_getsock.c +0 -66
- data/third_party/cares/cares/src/lib/ares_iphlpapi.h +0 -221
- data/third_party/cares/cares/src/lib/ares_llist.c +0 -63
- data/third_party/cares/cares/src/lib/ares_llist.h +0 -39
- data/third_party/cares/cares/src/lib/ares_mkquery.c +0 -24
- data/third_party/cares/cares/src/lib/ares_nowarn.c +0 -260
- data/third_party/cares/cares/src/lib/ares_nowarn.h +0 -61
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +0 -90
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +0 -92
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +0 -199
- data/third_party/cares/cares/src/lib/ares_parse_mx_reply.c +0 -164
- data/third_party/cares/cares/src/lib/ares_parse_naptr_reply.c +0 -183
- data/third_party/cares/cares/src/lib/ares_parse_ns_reply.c +0 -177
- data/third_party/cares/cares/src/lib/ares_parse_ptr_reply.c +0 -228
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +0 -179
- data/third_party/cares/cares/src/lib/ares_parse_srv_reply.c +0 -168
- data/third_party/cares/cares/src/lib/ares_parse_txt_reply.c +0 -214
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +0 -184
- data/third_party/cares/cares/src/lib/ares_platform.c +0 -11042
- data/third_party/cares/cares/src/lib/ares_platform.h +0 -43
- data/third_party/cares/cares/src/lib/ares_rand.c +0 -279
- data/third_party/cares/cares/src/lib/ares_strcasecmp.c +0 -66
- data/third_party/cares/cares/src/lib/ares_strcasecmp.h +0 -30
- data/third_party/cares/cares/src/lib/ares_strdup.c +0 -42
- data/third_party/cares/cares/src/lib/ares_strdup.h +0 -24
- data/third_party/cares/cares/src/lib/ares_strsplit.c +0 -94
- data/third_party/cares/cares/src/lib/ares_strsplit.h +0 -42
- data/third_party/cares/cares/src/lib/ares_writev.c +0 -79
- data/third_party/cares/cares/src/lib/ares_writev.h +0 -36
- data/third_party/cares/cares/src/lib/bitncmp.c +0 -59
- data/third_party/cares/cares/src/lib/bitncmp.h +0 -26
- data/third_party/cares/cares/src/lib/setup_once.h +0 -554
- data/third_party/cares/cares/src/tools/ares_getopt.h +0 -53
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright
|
1
|
+
// Copyright 2025 gRPC authors.
|
2
2
|
//
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
// you may not use this file except in compliance with the License.
|
@@ -32,57 +32,56 @@ namespace grpc_core {
|
|
32
32
|
class GlobalStatsCollector;
|
33
33
|
class Http2GlobalStatsCollector;
|
34
34
|
class Http2StatsCollector;
|
35
|
-
class
|
36
|
-
class
|
35
|
+
class HistogramCollector_80_10_64;
|
36
|
+
class Histogram_80_10_64 {
|
37
37
|
public:
|
38
38
|
static int BucketFor(int value);
|
39
39
|
const uint64_t* buckets() const { return buckets_; }
|
40
|
-
size_t bucket_count() const { return
|
40
|
+
size_t bucket_count() const { return 10; }
|
41
41
|
void Increment(int value) {
|
42
|
-
++buckets_[
|
42
|
+
++buckets_[Histogram_80_10_64::BucketFor(value)];
|
43
43
|
}
|
44
|
-
friend
|
45
|
-
|
46
|
-
const Histogram_16777216_20_64& right);
|
44
|
+
friend Histogram_80_10_64 operator-(const Histogram_80_10_64& left,
|
45
|
+
const Histogram_80_10_64& right);
|
47
46
|
|
48
47
|
private:
|
49
|
-
friend class
|
50
|
-
uint64_t buckets_[
|
48
|
+
friend class HistogramCollector_80_10_64;
|
49
|
+
uint64_t buckets_[10]{};
|
51
50
|
};
|
52
|
-
class
|
51
|
+
class HistogramCollector_80_10_64 {
|
53
52
|
public:
|
54
53
|
void Increment(int value) {
|
55
|
-
buckets_[
|
54
|
+
buckets_[Histogram_80_10_64::BucketFor(value)].fetch_add(
|
56
55
|
1, std::memory_order_relaxed);
|
57
56
|
}
|
58
|
-
void Collect(
|
57
|
+
void Collect(Histogram_80_10_64* result) const;
|
59
58
|
|
60
59
|
private:
|
61
|
-
std::atomic<uint64_t> buckets_[
|
60
|
+
std::atomic<uint64_t> buckets_[10]{};
|
62
61
|
};
|
63
|
-
class
|
64
|
-
class
|
62
|
+
class HistogramCollector_100_20_64;
|
63
|
+
class Histogram_100_20_64 {
|
65
64
|
public:
|
66
65
|
static int BucketFor(int value);
|
67
66
|
const uint64_t* buckets() const { return buckets_; }
|
68
67
|
size_t bucket_count() const { return 20; }
|
69
68
|
void Increment(int value) {
|
70
|
-
++buckets_[
|
69
|
+
++buckets_[Histogram_100_20_64::BucketFor(value)];
|
71
70
|
}
|
72
|
-
friend
|
73
|
-
|
71
|
+
friend Histogram_100_20_64 operator-(const Histogram_100_20_64& left,
|
72
|
+
const Histogram_100_20_64& right);
|
74
73
|
|
75
74
|
private:
|
76
|
-
friend class
|
75
|
+
friend class HistogramCollector_100_20_64;
|
77
76
|
uint64_t buckets_[20]{};
|
78
77
|
};
|
79
|
-
class
|
78
|
+
class HistogramCollector_100_20_64 {
|
80
79
|
public:
|
81
80
|
void Increment(int value) {
|
82
|
-
buckets_[
|
81
|
+
buckets_[Histogram_100_20_64::BucketFor(value)].fetch_add(
|
83
82
|
1, std::memory_order_relaxed);
|
84
83
|
}
|
85
|
-
void Collect(
|
84
|
+
void Collect(Histogram_100_20_64* result) const;
|
86
85
|
|
87
86
|
private:
|
88
87
|
std::atomic<uint64_t> buckets_[20]{};
|
@@ -141,6 +140,61 @@ class HistogramCollector_65536_26_64 {
|
|
141
140
|
private:
|
142
141
|
std::atomic<uint64_t> buckets_[26]{};
|
143
142
|
};
|
143
|
+
class HistogramCollector_100000_20_64;
|
144
|
+
class Histogram_100000_20_64 {
|
145
|
+
public:
|
146
|
+
static int BucketFor(int value);
|
147
|
+
const uint64_t* buckets() const { return buckets_; }
|
148
|
+
size_t bucket_count() const { return 20; }
|
149
|
+
void Increment(int value) {
|
150
|
+
++buckets_[Histogram_100000_20_64::BucketFor(value)];
|
151
|
+
}
|
152
|
+
friend Histogram_100000_20_64 operator-(const Histogram_100000_20_64& left,
|
153
|
+
const Histogram_100000_20_64& right);
|
154
|
+
|
155
|
+
private:
|
156
|
+
friend class HistogramCollector_100000_20_64;
|
157
|
+
uint64_t buckets_[20]{};
|
158
|
+
};
|
159
|
+
class HistogramCollector_100000_20_64 {
|
160
|
+
public:
|
161
|
+
void Increment(int value) {
|
162
|
+
buckets_[Histogram_100000_20_64::BucketFor(value)].fetch_add(
|
163
|
+
1, std::memory_order_relaxed);
|
164
|
+
}
|
165
|
+
void Collect(Histogram_100000_20_64* result) const;
|
166
|
+
|
167
|
+
private:
|
168
|
+
std::atomic<uint64_t> buckets_[20]{};
|
169
|
+
};
|
170
|
+
class HistogramCollector_1800000_40_64;
|
171
|
+
class Histogram_1800000_40_64 {
|
172
|
+
public:
|
173
|
+
static int BucketFor(int value);
|
174
|
+
const uint64_t* buckets() const { return buckets_; }
|
175
|
+
size_t bucket_count() const { return 40; }
|
176
|
+
void Increment(int value) {
|
177
|
+
++buckets_[Histogram_1800000_40_64::BucketFor(value)];
|
178
|
+
}
|
179
|
+
friend Histogram_1800000_40_64 operator-(
|
180
|
+
const Histogram_1800000_40_64& left,
|
181
|
+
const Histogram_1800000_40_64& right);
|
182
|
+
|
183
|
+
private:
|
184
|
+
friend class HistogramCollector_1800000_40_64;
|
185
|
+
uint64_t buckets_[40]{};
|
186
|
+
};
|
187
|
+
class HistogramCollector_1800000_40_64 {
|
188
|
+
public:
|
189
|
+
void Increment(int value) {
|
190
|
+
buckets_[Histogram_1800000_40_64::BucketFor(value)].fetch_add(
|
191
|
+
1, std::memory_order_relaxed);
|
192
|
+
}
|
193
|
+
void Collect(Histogram_1800000_40_64* result) const;
|
194
|
+
|
195
|
+
private:
|
196
|
+
std::atomic<uint64_t> buckets_[40]{};
|
197
|
+
};
|
144
198
|
class Histogram_16777216_8_8 {
|
145
199
|
public:
|
146
200
|
static int BucketFor(int value);
|
@@ -159,29 +213,30 @@ class Histogram_16777216_8_8 {
|
|
159
213
|
private:
|
160
214
|
uint8_t buckets_[8]{};
|
161
215
|
};
|
162
|
-
class
|
163
|
-
class
|
216
|
+
class HistogramCollector_16777216_20_64;
|
217
|
+
class Histogram_16777216_20_64 {
|
164
218
|
public:
|
165
219
|
static int BucketFor(int value);
|
166
220
|
const uint64_t* buckets() const { return buckets_; }
|
167
221
|
size_t bucket_count() const { return 20; }
|
168
222
|
void Increment(int value) {
|
169
|
-
++buckets_[
|
223
|
+
++buckets_[Histogram_16777216_20_64::BucketFor(value)];
|
170
224
|
}
|
171
|
-
friend
|
172
|
-
|
225
|
+
friend Histogram_16777216_20_64 operator-(
|
226
|
+
const Histogram_16777216_20_64& left,
|
227
|
+
const Histogram_16777216_20_64& right);
|
173
228
|
|
174
229
|
private:
|
175
|
-
friend class
|
230
|
+
friend class HistogramCollector_16777216_20_64;
|
176
231
|
uint64_t buckets_[20]{};
|
177
232
|
};
|
178
|
-
class
|
233
|
+
class HistogramCollector_16777216_20_64 {
|
179
234
|
public:
|
180
235
|
void Increment(int value) {
|
181
|
-
buckets_[
|
236
|
+
buckets_[Histogram_16777216_20_64::BucketFor(value)].fetch_add(
|
182
237
|
1, std::memory_order_relaxed);
|
183
238
|
}
|
184
|
-
void Collect(
|
239
|
+
void Collect(Histogram_16777216_20_64* result) const;
|
185
240
|
|
186
241
|
private:
|
187
242
|
std::atomic<uint64_t> buckets_[20]{};
|
@@ -214,61 +269,6 @@ class HistogramCollector_16777216_50_64 {
|
|
214
269
|
private:
|
215
270
|
std::atomic<uint64_t> buckets_[50]{};
|
216
271
|
};
|
217
|
-
class HistogramCollector_80_10_64;
|
218
|
-
class Histogram_80_10_64 {
|
219
|
-
public:
|
220
|
-
static int BucketFor(int value);
|
221
|
-
const uint64_t* buckets() const { return buckets_; }
|
222
|
-
size_t bucket_count() const { return 10; }
|
223
|
-
void Increment(int value) {
|
224
|
-
++buckets_[Histogram_80_10_64::BucketFor(value)];
|
225
|
-
}
|
226
|
-
friend Histogram_80_10_64 operator-(const Histogram_80_10_64& left,
|
227
|
-
const Histogram_80_10_64& right);
|
228
|
-
|
229
|
-
private:
|
230
|
-
friend class HistogramCollector_80_10_64;
|
231
|
-
uint64_t buckets_[10]{};
|
232
|
-
};
|
233
|
-
class HistogramCollector_80_10_64 {
|
234
|
-
public:
|
235
|
-
void Increment(int value) {
|
236
|
-
buckets_[Histogram_80_10_64::BucketFor(value)].fetch_add(
|
237
|
-
1, std::memory_order_relaxed);
|
238
|
-
}
|
239
|
-
void Collect(Histogram_80_10_64* result) const;
|
240
|
-
|
241
|
-
private:
|
242
|
-
std::atomic<uint64_t> buckets_[10]{};
|
243
|
-
};
|
244
|
-
class HistogramCollector_1800000_40_64;
|
245
|
-
class Histogram_1800000_40_64 {
|
246
|
-
public:
|
247
|
-
static int BucketFor(int value);
|
248
|
-
const uint64_t* buckets() const { return buckets_; }
|
249
|
-
size_t bucket_count() const { return 40; }
|
250
|
-
void Increment(int value) {
|
251
|
-
++buckets_[Histogram_1800000_40_64::BucketFor(value)];
|
252
|
-
}
|
253
|
-
friend Histogram_1800000_40_64 operator-(
|
254
|
-
const Histogram_1800000_40_64& left,
|
255
|
-
const Histogram_1800000_40_64& right);
|
256
|
-
|
257
|
-
private:
|
258
|
-
friend class HistogramCollector_1800000_40_64;
|
259
|
-
uint64_t buckets_[40]{};
|
260
|
-
};
|
261
|
-
class HistogramCollector_1800000_40_64 {
|
262
|
-
public:
|
263
|
-
void Increment(int value) {
|
264
|
-
buckets_[Histogram_1800000_40_64::BucketFor(value)].fetch_add(
|
265
|
-
1, std::memory_order_relaxed);
|
266
|
-
}
|
267
|
-
void Collect(Histogram_1800000_40_64* result) const;
|
268
|
-
|
269
|
-
private:
|
270
|
-
std::atomic<uint64_t> buckets_[40]{};
|
271
|
-
};
|
272
272
|
struct GlobalStats {
|
273
273
|
enum class Counter {
|
274
274
|
kClientCallsCreated,
|
@@ -27,6 +27,7 @@
|
|
27
27
|
|
28
28
|
#include "absl/log/check.h"
|
29
29
|
#include "absl/log/log.h"
|
30
|
+
#include "src/core/config/core_configuration.h"
|
30
31
|
#include "src/core/lib/channel/channel_args.h"
|
31
32
|
#include "src/core/lib/debug/trace.h"
|
32
33
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
@@ -151,6 +152,10 @@ void grpc_auth_context::add_property(const char* name, const char* value,
|
|
151
152
|
prop->value_length = value_length;
|
152
153
|
}
|
153
154
|
|
155
|
+
void grpc_auth_context::set_protocol(absl::string_view protocol) {
|
156
|
+
protocol_ = protocol;
|
157
|
+
}
|
158
|
+
|
154
159
|
void grpc_auth_context_add_property(grpc_auth_context* ctx, const char* name,
|
155
160
|
const char* value, size_t value_length) {
|
156
161
|
GRPC_TRACE_LOG(api, INFO) << absl::StrFormat(
|
@@ -233,3 +238,18 @@ grpc_auth_context* grpc_find_auth_context_in_args(
|
|
233
238
|
}
|
234
239
|
return nullptr;
|
235
240
|
}
|
241
|
+
|
242
|
+
std::optional<bool> grpc_auth_context::CompareAuthContext(
|
243
|
+
const grpc_auth_context* other) {
|
244
|
+
if (protocol_.empty() || other->protocol_.empty() ||
|
245
|
+
protocol_ != other->protocol_) {
|
246
|
+
return std::nullopt;
|
247
|
+
}
|
248
|
+
auto* comparator = grpc_core::CoreConfiguration::Get()
|
249
|
+
.auth_context_comparator_registry()
|
250
|
+
.GetComparator(protocol_);
|
251
|
+
if (comparator == nullptr) {
|
252
|
+
return std::nullopt;
|
253
|
+
}
|
254
|
+
return (*comparator)(this, other);
|
255
|
+
}
|
@@ -120,6 +120,9 @@ struct grpc_auth_context
|
|
120
120
|
void ensure_capacity();
|
121
121
|
void add_property(const char* name, const char* value, size_t value_length);
|
122
122
|
void add_cstring_property(const char* name, const char* value);
|
123
|
+
void set_protocol(absl::string_view protocol);
|
124
|
+
// Returns std::nullopt if auth context comparison is not supported.
|
125
|
+
std::optional<bool> CompareAuthContext(const grpc_auth_context* other);
|
123
126
|
|
124
127
|
private:
|
125
128
|
grpc_core::RefCountedPtr<grpc_auth_context> chained_;
|
@@ -127,6 +130,7 @@ struct grpc_auth_context
|
|
127
130
|
const char* peer_identity_property_name_ = nullptr;
|
128
131
|
std::unique_ptr<Extension> extension_;
|
129
132
|
grpc_core::OrphanablePtr<grpc_core::ConnectionContext> connection_context_;
|
133
|
+
std::string protocol_;
|
130
134
|
};
|
131
135
|
|
132
136
|
// --- Channel args for auth context ---
|
@@ -0,0 +1,69 @@
|
|
1
|
+
//
|
2
|
+
// Copyright 2025 gRPC authors.
|
3
|
+
//
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
// you may not use this file except in compliance with the License.
|
6
|
+
// You may obtain a copy of the License at
|
7
|
+
//
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
//
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
// See the License for the specific language governing permissions and
|
14
|
+
// limitations under the License.
|
15
|
+
//
|
16
|
+
|
17
|
+
#ifndef GRPC_SRC_CORE_TRANSPORT_AUTH_CONTEXT_COMPARATOR_REGISTRY_H
|
18
|
+
#define GRPC_SRC_CORE_TRANSPORT_AUTH_CONTEXT_COMPARATOR_REGISTRY_H
|
19
|
+
|
20
|
+
#include <grpc/impl/grpc_types.h>
|
21
|
+
|
22
|
+
#include "absl/functional/any_invocable.h"
|
23
|
+
#include "src/core/lib/channel/channel_args.h"
|
24
|
+
|
25
|
+
struct grpc_auth_context;
|
26
|
+
|
27
|
+
class AuthContextComparatorRegistry {
|
28
|
+
private:
|
29
|
+
using Compare = absl::AnyInvocable<bool(const grpc_auth_context*,
|
30
|
+
const grpc_auth_context*)>;
|
31
|
+
using ComparatorMap = std::map<std::string, std::unique_ptr<Compare>>;
|
32
|
+
|
33
|
+
public:
|
34
|
+
class Builder {
|
35
|
+
public:
|
36
|
+
void RegisterComparator(
|
37
|
+
std::string name,
|
38
|
+
std::unique_ptr<absl::AnyInvocable<bool(const grpc_auth_context*,
|
39
|
+
const grpc_auth_context*)>>
|
40
|
+
comparator) {
|
41
|
+
if (comparators_.find(name) != comparators_.end()) {
|
42
|
+
LOG(FATAL) << "Duplicate comparator registration: " << name;
|
43
|
+
}
|
44
|
+
comparators_[name] = std::move(comparator);
|
45
|
+
}
|
46
|
+
|
47
|
+
AuthContextComparatorRegistry Build() {
|
48
|
+
return AuthContextComparatorRegistry(std::move(comparators_));
|
49
|
+
}
|
50
|
+
|
51
|
+
private:
|
52
|
+
ComparatorMap comparators_;
|
53
|
+
};
|
54
|
+
|
55
|
+
Compare* GetComparator(absl::string_view name) const {
|
56
|
+
auto it = comparators_.find(std::string(name));
|
57
|
+
if (it == comparators_.end()) {
|
58
|
+
return nullptr;
|
59
|
+
}
|
60
|
+
return it->second.get();
|
61
|
+
}
|
62
|
+
|
63
|
+
private:
|
64
|
+
explicit AuthContextComparatorRegistry(ComparatorMap comparators)
|
65
|
+
: comparators_(std::move(comparators)) {}
|
66
|
+
ComparatorMap comparators_;
|
67
|
+
};
|
68
|
+
|
69
|
+
#endif // GRPC_SRC_CORE_TRANSPORT_AUTH_CONTEXT_COMPARATOR_REGISTRY_H
|
@@ -235,11 +235,10 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
|
|
235
235
|
return;
|
236
236
|
}
|
237
237
|
if (recv_buffer == nullptr) {
|
238
|
-
VLOG(2)
|
239
|
-
<< "recv_buffer is nullptr in alts_tsi_handshaker_handle_response()";
|
238
|
+
VLOG(2) << "failed to receive a response from the alts handshaker service";
|
240
239
|
handle_response_done(
|
241
240
|
client, TSI_INTERNAL_ERROR,
|
242
|
-
"
|
241
|
+
"failed to receive a response from the alts handshaker service",
|
243
242
|
nullptr, 0, nullptr);
|
244
243
|
return;
|
245
244
|
}
|