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
@@ -31,6 +31,7 @@
|
|
31
31
|
#include "absl/log/log.h"
|
32
32
|
#include "absl/status/status.h"
|
33
33
|
#include "absl/strings/string_view.h"
|
34
|
+
#include "src/core/credentials/transport/tls/spiffe_utils.h"
|
34
35
|
#include "src/core/credentials/transport/tls/ssl_utils.h"
|
35
36
|
#include "src/core/lib/debug/trace.h"
|
36
37
|
#include "src/core/lib/iomgr/error.h"
|
@@ -39,26 +40,37 @@
|
|
39
40
|
#include "src/core/lib/slice/slice_internal.h"
|
40
41
|
#include "src/core/tsi/ssl_transport_security_utils.h"
|
41
42
|
#include "src/core/util/load_file.h"
|
43
|
+
#include "src/core/util/match.h"
|
42
44
|
#include "src/core/util/stat.h"
|
43
45
|
#include "src/core/util/status_helper.h"
|
44
46
|
|
45
47
|
namespace grpc_core {
|
46
48
|
namespace {
|
47
49
|
|
48
|
-
absl::Status ValidateRootCertificates(
|
49
|
-
if (
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
parsed_roots
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
50
|
+
absl::Status ValidateRootCertificates(const RootCertInfo* root_cert_info) {
|
51
|
+
if (root_cert_info == nullptr) return absl::OkStatus();
|
52
|
+
return Match(
|
53
|
+
*root_cert_info,
|
54
|
+
[&](const std::string& root_certificates) {
|
55
|
+
if (root_certificates.empty()) return absl::OkStatus();
|
56
|
+
absl::StatusOr<std::vector<X509*>> parsed_roots =
|
57
|
+
ParsePemCertificateChain(root_certificates);
|
58
|
+
if (!parsed_roots.ok()) {
|
59
|
+
return absl::Status(
|
60
|
+
parsed_roots.status().code(),
|
61
|
+
absl::StrCat("Failed to parse root certificates as PEM: ",
|
62
|
+
parsed_roots.status().message()));
|
63
|
+
}
|
64
|
+
for (X509* x509 : *parsed_roots) {
|
65
|
+
X509_free(x509);
|
66
|
+
}
|
67
|
+
return absl::OkStatus();
|
68
|
+
},
|
69
|
+
[&](const SpiffeBundleMap&) {
|
70
|
+
// SpiffeBundleMap validation is done when it is created - a value here
|
71
|
+
// inherently means that it is valid.
|
72
|
+
return absl::OkStatus();
|
73
|
+
});
|
62
74
|
}
|
63
75
|
|
64
76
|
absl::Status ValidatePemKeyCertPair(absl::string_view cert_chain,
|
@@ -88,23 +100,35 @@ absl::Status ValidatePemKeyCertPair(absl::string_view cert_chain,
|
|
88
100
|
return absl::OkStatus();
|
89
101
|
}
|
90
102
|
|
103
|
+
bool HasRootCertInfoChanged(
|
104
|
+
const absl::StatusOr<std::shared_ptr<RootCertInfo>>& old,
|
105
|
+
const absl::StatusOr<std::shared_ptr<RootCertInfo>>& updated) {
|
106
|
+
if (old.status() != updated.status()) return true; // Status changed.
|
107
|
+
if (!old.ok()) return false; // Both have same non-OK status.
|
108
|
+
// Both have OK status.
|
109
|
+
if (*old == nullptr) return *updated != nullptr;
|
110
|
+
if (*updated == nullptr) return true;
|
111
|
+
// Both have non-null value.
|
112
|
+
return **old != **updated;
|
113
|
+
}
|
114
|
+
|
91
115
|
} // namespace
|
92
116
|
|
93
117
|
StaticDataCertificateProvider::StaticDataCertificateProvider(
|
94
118
|
std::string root_certificate, PemKeyCertPairList pem_key_cert_pairs)
|
95
119
|
: distributor_(MakeRefCounted<grpc_tls_certificate_distributor>()),
|
96
|
-
|
120
|
+
root_cert_info_(std::make_shared<RootCertInfo>(root_certificate)),
|
97
121
|
pem_key_cert_pairs_(std::move(pem_key_cert_pairs)) {
|
98
122
|
distributor_->SetWatchStatusCallback([this](std::string cert_name,
|
99
123
|
bool root_being_watched,
|
100
124
|
bool identity_being_watched) {
|
101
125
|
MutexLock lock(&mu_);
|
102
|
-
std::
|
126
|
+
std::shared_ptr<RootCertInfo> root_cert_info;
|
103
127
|
std::optional<PemKeyCertPairList> pem_key_cert_pairs;
|
104
128
|
StaticDataCertificateProvider::WatcherInfo& info = watcher_info_[cert_name];
|
105
129
|
if (!info.root_being_watched && root_being_watched &&
|
106
|
-
!
|
107
|
-
|
130
|
+
!IsRootCertInfoEmpty(root_cert_info_.get())) {
|
131
|
+
root_cert_info = root_cert_info_;
|
108
132
|
}
|
109
133
|
info.root_being_watched = root_being_watched;
|
110
134
|
if (!info.identity_being_watched && identity_being_watched &&
|
@@ -115,10 +139,10 @@ StaticDataCertificateProvider::StaticDataCertificateProvider(
|
|
115
139
|
if (!info.root_being_watched && !info.identity_being_watched) {
|
116
140
|
watcher_info_.erase(cert_name);
|
117
141
|
}
|
118
|
-
const bool root_has_update =
|
142
|
+
const bool root_has_update = root_cert_info != nullptr;
|
119
143
|
const bool identity_has_update = pem_key_cert_pairs.has_value();
|
120
144
|
if (root_has_update || identity_has_update) {
|
121
|
-
distributor_->SetKeyMaterials(cert_name, std::move(
|
145
|
+
distributor_->SetKeyMaterials(cert_name, std::move(root_cert_info),
|
122
146
|
std::move(pem_key_cert_pairs));
|
123
147
|
}
|
124
148
|
grpc_error_handle root_cert_error;
|
@@ -150,7 +174,7 @@ UniqueTypeName StaticDataCertificateProvider::type() const {
|
|
150
174
|
}
|
151
175
|
|
152
176
|
absl::Status StaticDataCertificateProvider::ValidateCredentials() const {
|
153
|
-
absl::Status status = ValidateRootCertificates(
|
177
|
+
absl::Status status = ValidateRootCertificates(root_cert_info_.get());
|
154
178
|
if (!status.ok()) {
|
155
179
|
return status;
|
156
180
|
}
|
@@ -177,10 +201,12 @@ static constexpr int64_t kMinimumFileWatcherRefreshIntervalSeconds = 1;
|
|
177
201
|
|
178
202
|
FileWatcherCertificateProvider::FileWatcherCertificateProvider(
|
179
203
|
std::string private_key_path, std::string identity_certificate_path,
|
180
|
-
std::string root_cert_path,
|
204
|
+
std::string root_cert_path, std::string spiffe_bundle_map_path,
|
205
|
+
int64_t refresh_interval_sec)
|
181
206
|
: private_key_path_(std::move(private_key_path)),
|
182
207
|
identity_certificate_path_(std::move(identity_certificate_path)),
|
183
208
|
root_cert_path_(std::move(root_cert_path)),
|
209
|
+
spiffe_bundle_map_path_(std::move(spiffe_bundle_map_path)),
|
184
210
|
refresh_interval_sec_(refresh_interval_sec),
|
185
211
|
distributor_(MakeRefCounted<grpc_tls_certificate_distributor>()) {
|
186
212
|
if (refresh_interval_sec_ < kMinimumFileWatcherRefreshIntervalSeconds) {
|
@@ -192,7 +218,9 @@ FileWatcherCertificateProvider::FileWatcherCertificateProvider(
|
|
192
218
|
// Private key and identity cert files must be both set or both unset.
|
193
219
|
CHECK(private_key_path_.empty() == identity_certificate_path_.empty());
|
194
220
|
// Must be watching either root or identity certs.
|
195
|
-
|
221
|
+
bool watching_root =
|
222
|
+
!root_cert_path_.empty() || !spiffe_bundle_map_path_.empty();
|
223
|
+
CHECK(!private_key_path_.empty() || watching_root);
|
196
224
|
gpr_event_init(&shutdown_event_);
|
197
225
|
ForceUpdate();
|
198
226
|
auto thread_lambda = [](void* arg) {
|
@@ -216,13 +244,13 @@ FileWatcherCertificateProvider::FileWatcherCertificateProvider(
|
|
216
244
|
bool root_being_watched,
|
217
245
|
bool identity_being_watched) {
|
218
246
|
MutexLock lock(&mu_);
|
219
|
-
|
247
|
+
absl::StatusOr<std::shared_ptr<RootCertInfo>> roots = nullptr;
|
220
248
|
std::optional<PemKeyCertPairList> pem_key_cert_pairs;
|
221
249
|
FileWatcherCertificateProvider::WatcherInfo& info =
|
222
250
|
watcher_info_[cert_name];
|
223
251
|
if (!info.root_being_watched && root_being_watched &&
|
224
|
-
|
225
|
-
|
252
|
+
root_cert_info_.ok() && *root_cert_info_ != nullptr) {
|
253
|
+
roots = root_cert_info_;
|
226
254
|
}
|
227
255
|
info.root_being_watched = root_being_watched;
|
228
256
|
if (!info.identity_being_watched && identity_being_watched &&
|
@@ -234,13 +262,13 @@ FileWatcherCertificateProvider::FileWatcherCertificateProvider(
|
|
234
262
|
watcher_info_.erase(cert_name);
|
235
263
|
}
|
236
264
|
ExecCtx exec_ctx;
|
237
|
-
if (
|
238
|
-
distributor_->SetKeyMaterials(cert_name,
|
265
|
+
if ((roots.ok() && *roots != nullptr) || pem_key_cert_pairs.has_value()) {
|
266
|
+
distributor_->SetKeyMaterials(cert_name, roots.ok() ? *roots : nullptr,
|
239
267
|
pem_key_cert_pairs);
|
240
268
|
}
|
241
269
|
grpc_error_handle root_cert_error;
|
242
270
|
grpc_error_handle identity_cert_error;
|
243
|
-
if (root_being_watched && !
|
271
|
+
if (root_being_watched && (!roots.ok() || *roots == nullptr)) {
|
244
272
|
root_cert_error =
|
245
273
|
GRPC_ERROR_CREATE("Unable to get latest root certificates.");
|
246
274
|
}
|
@@ -270,7 +298,10 @@ UniqueTypeName FileWatcherCertificateProvider::type() const {
|
|
270
298
|
|
271
299
|
absl::Status FileWatcherCertificateProvider::ValidateCredentials() const {
|
272
300
|
MutexLock lock(&mu_);
|
273
|
-
|
301
|
+
if (!root_cert_info_.ok()) {
|
302
|
+
return root_cert_info_.status();
|
303
|
+
}
|
304
|
+
absl::Status status = ValidateRootCertificates(root_cert_info_->get());
|
274
305
|
if (!status.ok()) {
|
275
306
|
return status;
|
276
307
|
}
|
@@ -285,25 +316,34 @@ absl::Status FileWatcherCertificateProvider::ValidateCredentials() const {
|
|
285
316
|
}
|
286
317
|
|
287
318
|
void FileWatcherCertificateProvider::ForceUpdate() {
|
288
|
-
|
319
|
+
absl::StatusOr<std::shared_ptr<RootCertInfo>> root_cert_info = nullptr;
|
289
320
|
std::optional<PemKeyCertPairList> pem_key_cert_pairs;
|
290
|
-
if (!
|
291
|
-
|
321
|
+
if (!spiffe_bundle_map_path_.empty()) {
|
322
|
+
auto map = SpiffeBundleMap::FromFile(spiffe_bundle_map_path_);
|
323
|
+
if (map.ok()) {
|
324
|
+
root_cert_info = std::make_shared<RootCertInfo>(std::move(*map));
|
325
|
+
} else {
|
326
|
+
root_cert_info = absl::InvalidArgumentError(
|
327
|
+
absl::StrFormat("spiffe bundle map file %s failed to load: %s",
|
328
|
+
spiffe_bundle_map_path_, map.status().ToString()));
|
329
|
+
}
|
330
|
+
} else if (!root_cert_path_.empty()) {
|
331
|
+
std::optional<std::string> root_certificate =
|
332
|
+
ReadRootCertificatesFromFile(root_cert_path_);
|
333
|
+
if (root_certificate.has_value()) {
|
334
|
+
root_cert_info =
|
335
|
+
std::make_shared<RootCertInfo>(std::move(*root_certificate));
|
336
|
+
}
|
292
337
|
}
|
293
338
|
if (!private_key_path_.empty()) {
|
294
339
|
pem_key_cert_pairs = ReadIdentityKeyCertPairFromFiles(
|
295
340
|
private_key_path_, identity_certificate_path_);
|
296
341
|
}
|
297
342
|
MutexLock lock(&mu_);
|
298
|
-
const bool
|
299
|
-
(
|
300
|
-
|
301
|
-
|
302
|
-
if (root_certificate.has_value()) {
|
303
|
-
root_certificate_ = std::move(*root_certificate);
|
304
|
-
} else {
|
305
|
-
root_certificate_ = "";
|
306
|
-
}
|
343
|
+
const bool root_changed =
|
344
|
+
HasRootCertInfoChanged(root_cert_info_, root_cert_info);
|
345
|
+
if (root_changed) {
|
346
|
+
root_cert_info_ = std::move(root_cert_info);
|
307
347
|
}
|
308
348
|
const bool identity_cert_changed =
|
309
349
|
(!pem_key_cert_pairs.has_value() && !pem_key_cert_pairs_.empty()) ||
|
@@ -316,7 +356,7 @@ void FileWatcherCertificateProvider::ForceUpdate() {
|
|
316
356
|
pem_key_cert_pairs_ = {};
|
317
357
|
}
|
318
358
|
}
|
319
|
-
if (
|
359
|
+
if (root_changed || identity_cert_changed) {
|
320
360
|
ExecCtx exec_ctx;
|
321
361
|
grpc_error_handle root_cert_error =
|
322
362
|
GRPC_ERROR_CREATE("Unable to get latest root certificates.");
|
@@ -325,24 +365,24 @@ void FileWatcherCertificateProvider::ForceUpdate() {
|
|
325
365
|
for (const auto& p : watcher_info_) {
|
326
366
|
const std::string& cert_name = p.first;
|
327
367
|
const WatcherInfo& info = p.second;
|
328
|
-
std::
|
368
|
+
std::shared_ptr<RootCertInfo> root_to_report;
|
329
369
|
std::optional<PemKeyCertPairList> identity_to_report;
|
330
370
|
// Set key materials to the distributor if their contents changed.
|
331
|
-
if (info.root_being_watched &&
|
332
|
-
|
333
|
-
root_to_report = root_certificate_;
|
371
|
+
if (info.root_being_watched && root_changed) {
|
372
|
+
root_to_report = root_cert_info_.ok() ? *root_cert_info_ : nullptr;
|
334
373
|
}
|
335
374
|
if (info.identity_being_watched && !pem_key_cert_pairs_.empty() &&
|
336
375
|
identity_cert_changed) {
|
337
376
|
identity_to_report = pem_key_cert_pairs_;
|
338
377
|
}
|
339
|
-
if (root_to_report
|
378
|
+
if (root_to_report != nullptr || identity_to_report.has_value()) {
|
340
379
|
distributor_->SetKeyMaterials(cert_name, std::move(root_to_report),
|
341
380
|
std::move(identity_to_report));
|
342
381
|
}
|
343
382
|
// Report errors to the distributor if the contents are empty.
|
344
383
|
const bool report_root_error =
|
345
|
-
info.root_being_watched &&
|
384
|
+
info.root_being_watched &&
|
385
|
+
(!root_cert_info_.ok() || *root_cert_info_ == nullptr);
|
346
386
|
const bool report_identity_error =
|
347
387
|
info.identity_being_watched && pem_key_cert_pairs_.empty();
|
348
388
|
if (report_root_error || report_identity_error) {
|
@@ -369,9 +409,8 @@ FileWatcherCertificateProvider::ReadRootCertificatesFromFile(
|
|
369
409
|
}
|
370
410
|
|
371
411
|
namespace {
|
372
|
-
|
373
|
-
//
|
374
|
-
// it logs the error and returns 0.
|
412
|
+
// This helper function gets the last-modified time of |filename|. When
|
413
|
+
// failed, it logs the error and returns 0.
|
375
414
|
time_t GetModificationTime(const char* filename) {
|
376
415
|
time_t ts = 0;
|
377
416
|
(void)GetFileModificationTime(filename, &ts);
|
@@ -473,12 +512,15 @@ grpc_tls_certificate_provider* grpc_tls_certificate_provider_static_data_create(
|
|
473
512
|
grpc_tls_certificate_provider*
|
474
513
|
grpc_tls_certificate_provider_file_watcher_create(
|
475
514
|
const char* private_key_path, const char* identity_certificate_path,
|
476
|
-
const char* root_cert_path,
|
515
|
+
const char* root_cert_path, const char* spiffe_bundle_map_path,
|
516
|
+
unsigned int refresh_interval_sec) {
|
477
517
|
grpc_core::ExecCtx exec_ctx;
|
478
518
|
return new grpc_core::FileWatcherCertificateProvider(
|
479
519
|
private_key_path == nullptr ? "" : private_key_path,
|
480
520
|
identity_certificate_path == nullptr ? "" : identity_certificate_path,
|
481
|
-
root_cert_path == nullptr ? "" : root_cert_path,
|
521
|
+
root_cert_path == nullptr ? "" : root_cert_path,
|
522
|
+
spiffe_bundle_map_path == nullptr ? "" : spiffe_bundle_map_path,
|
523
|
+
refresh_interval_sec);
|
482
524
|
}
|
483
525
|
|
484
526
|
void grpc_tls_certificate_provider_release(
|
@@ -31,6 +31,7 @@
|
|
31
31
|
#include "absl/status/statusor.h"
|
32
32
|
#include "absl/strings/string_view.h"
|
33
33
|
#include "src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h"
|
34
|
+
#include "src/core/credentials/transport/tls/spiffe_utils.h"
|
34
35
|
#include "src/core/credentials/transport/tls/ssl_utils.h"
|
35
36
|
#include "src/core/util/ref_counted.h"
|
36
37
|
#include "src/core/util/ref_counted_ptr.h"
|
@@ -121,7 +122,7 @@ class StaticDataCertificateProvider final
|
|
121
122
|
}
|
122
123
|
|
123
124
|
RefCountedPtr<grpc_tls_certificate_distributor> distributor_;
|
124
|
-
std::
|
125
|
+
std::shared_ptr<RootCertInfo> root_cert_info_;
|
125
126
|
PemKeyCertPairList pem_key_cert_pairs_;
|
126
127
|
// Guards members below.
|
127
128
|
Mutex mu_;
|
@@ -137,6 +138,7 @@ class FileWatcherCertificateProvider final
|
|
137
138
|
FileWatcherCertificateProvider(std::string private_key_path,
|
138
139
|
std::string identity_certificate_path,
|
139
140
|
std::string root_cert_path,
|
141
|
+
std::string spiffe_bundle_map_path,
|
140
142
|
int64_t refresh_interval_sec);
|
141
143
|
|
142
144
|
~FileWatcherCertificateProvider() override;
|
@@ -178,6 +180,7 @@ class FileWatcherCertificateProvider final
|
|
178
180
|
std::string private_key_path_;
|
179
181
|
std::string identity_certificate_path_;
|
180
182
|
std::string root_cert_path_;
|
183
|
+
std::string spiffe_bundle_map_path_;
|
181
184
|
int64_t refresh_interval_sec_ = 0;
|
182
185
|
|
183
186
|
RefCountedPtr<grpc_tls_certificate_distributor> distributor_;
|
@@ -188,8 +191,18 @@ class FileWatcherCertificateProvider final
|
|
188
191
|
mutable Mutex mu_;
|
189
192
|
// The most-recent credential data. It will be empty if the most recent read
|
190
193
|
// attempt failed.
|
191
|
-
std::string root_certificate_ ABSL_GUARDED_BY(mu_);
|
192
194
|
PemKeyCertPairList pem_key_cert_pairs_ ABSL_GUARDED_BY(mu_);
|
195
|
+
// The most-recent root data.
|
196
|
+
// - If unset, the status will be OK and the value will be nullptr
|
197
|
+
// - If a SPIFFE Bundle Map is configured and fails to read, the status will
|
198
|
+
// be not-Ok
|
199
|
+
// - If a string root cert is configured and fails to read, the status will be
|
200
|
+
// OK with a nullptr
|
201
|
+
// - Otherwise, holds either a SpiffeBundleMap or a string root cert
|
202
|
+
// TODO(gtcooke94) - refactor the handling for string root cert files such
|
203
|
+
// that their failure is a non-ok status rather than a nullptr
|
204
|
+
absl::StatusOr<std::shared_ptr<RootCertInfo>> root_cert_info_
|
205
|
+
ABSL_GUARDED_BY(mu_) = nullptr;
|
193
206
|
// Stores each cert_name we get from the distributor callback and its watcher
|
194
207
|
// information.
|
195
208
|
std::map<std::string, WatcherInfo> watcher_info_ ABSL_GUARDED_BY(mu_);
|