grpc 1.37.1 → 1.38.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +64 -58
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +5 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +101 -93
- data/src/core/ext/xds/xds_api.h +6 -6
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +4 -4
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +36 -34
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +477 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +68 -45
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
@@ -162,8 +162,8 @@ class XdsClusterManagerLb : public LoadBalancingPolicy {
|
|
162
162
|
OrphanablePtr<LoadBalancingPolicy> CreateChildPolicyLocked(
|
163
163
|
const grpc_channel_args* args);
|
164
164
|
|
165
|
-
static void OnDelayedRemovalTimer(void* arg,
|
166
|
-
void OnDelayedRemovalTimerLocked(
|
165
|
+
static void OnDelayedRemovalTimer(void* arg, grpc_error_handle error);
|
166
|
+
void OnDelayedRemovalTimerLocked(grpc_error_handle error);
|
167
167
|
|
168
168
|
// The owning LB policy.
|
169
169
|
RefCountedPtr<XdsClusterManagerLb> xds_cluster_manager_policy_;
|
@@ -337,44 +337,29 @@ void XdsClusterManagerLb::UpdateStateLocked() {
|
|
337
337
|
gpr_log(GPR_INFO, "[xds_cluster_manager_lb %p] connectivity changed to %s",
|
338
338
|
this, ConnectivityStateName(connectivity_state));
|
339
339
|
}
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
cluster_map[cluster_name];
|
349
|
-
child_picker = children_[cluster_name]->picker_wrapper();
|
350
|
-
if (child_picker == nullptr) {
|
351
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_cluster_manager_lb_trace)) {
|
352
|
-
gpr_log(
|
353
|
-
GPR_INFO,
|
340
|
+
ClusterPicker::ClusterMap cluster_map;
|
341
|
+
for (const auto& p : config_->cluster_map()) {
|
342
|
+
const std::string& cluster_name = p.first;
|
343
|
+
RefCountedPtr<ChildPickerWrapper>& child_picker = cluster_map[cluster_name];
|
344
|
+
child_picker = children_[cluster_name]->picker_wrapper();
|
345
|
+
if (child_picker == nullptr) {
|
346
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_cluster_manager_lb_trace)) {
|
347
|
+
gpr_log(GPR_INFO,
|
354
348
|
"[xds_cluster_manager_lb %p] child %s has not yet returned a "
|
355
349
|
"picker; creating a QueuePicker.",
|
356
350
|
this, cluster_name.c_str());
|
357
|
-
}
|
358
|
-
child_picker = MakeRefCounted<ChildPickerWrapper>(
|
359
|
-
cluster_name, absl::make_unique<QueuePicker>(
|
360
|
-
Ref(DEBUG_LOCATION, "QueuePicker")));
|
361
|
-
}
|
362
351
|
}
|
363
|
-
|
364
|
-
|
352
|
+
child_picker = MakeRefCounted<ChildPickerWrapper>(
|
353
|
+
cluster_name,
|
354
|
+
absl::make_unique<QueuePicker>(Ref(DEBUG_LOCATION, "QueuePicker")));
|
365
355
|
}
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
374
|
-
"TRANSIENT_FAILURE from XdsClusterManagerLb"),
|
375
|
-
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
376
|
-
status = grpc_error_to_absl_status(error);
|
377
|
-
picker = absl::make_unique<TransientFailurePicker>(error);
|
356
|
+
}
|
357
|
+
std::unique_ptr<SubchannelPicker> picker =
|
358
|
+
absl::make_unique<ClusterPicker>(std::move(cluster_map));
|
359
|
+
absl::Status status;
|
360
|
+
if (connectivity_state == GRPC_CHANNEL_TRANSIENT_FAILURE) {
|
361
|
+
status = absl::Status(absl::StatusCode::kUnavailable,
|
362
|
+
"TRANSIENT_FAILURE from XdsClusterManagerLb");
|
378
363
|
}
|
379
364
|
channel_control_helper()->UpdateState(connectivity_state, status,
|
380
365
|
std::move(picker));
|
@@ -513,7 +498,7 @@ void XdsClusterManagerLb::ClusterChild::DeactivateLocked() {
|
|
513
498
|
}
|
514
499
|
|
515
500
|
void XdsClusterManagerLb::ClusterChild::OnDelayedRemovalTimer(
|
516
|
-
void* arg,
|
501
|
+
void* arg, grpc_error_handle error) {
|
517
502
|
ClusterChild* self = static_cast<ClusterChild*>(arg);
|
518
503
|
GRPC_ERROR_REF(error); // Ref owned by the lambda
|
519
504
|
self->xds_cluster_manager_policy_->work_serializer()->Run(
|
@@ -522,7 +507,7 @@ void XdsClusterManagerLb::ClusterChild::OnDelayedRemovalTimer(
|
|
522
507
|
}
|
523
508
|
|
524
509
|
void XdsClusterManagerLb::ClusterChild::OnDelayedRemovalTimerLocked(
|
525
|
-
|
510
|
+
grpc_error_handle error) {
|
526
511
|
delayed_removal_timer_callback_pending_ = false;
|
527
512
|
if (error == GRPC_ERROR_NONE && !shutdown_) {
|
528
513
|
xds_cluster_manager_policy_->children_.erase(name_);
|
@@ -616,7 +601,7 @@ class XdsClusterManagerLbFactory : public LoadBalancingPolicyFactory {
|
|
616
601
|
const char* name() const override { return kXdsClusterManager; }
|
617
602
|
|
618
603
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
619
|
-
const Json& json,
|
604
|
+
const Json& json, grpc_error_handle* error) const override {
|
620
605
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
621
606
|
if (json.type() == Json::Type::JSON_NULL) {
|
622
607
|
// xds_cluster_manager was mentioned as a policy in the deprecated
|
@@ -627,7 +612,7 @@ class XdsClusterManagerLbFactory : public LoadBalancingPolicyFactory {
|
|
627
612
|
"config instead.");
|
628
613
|
return nullptr;
|
629
614
|
}
|
630
|
-
std::vector<
|
615
|
+
std::vector<grpc_error_handle> error_list;
|
631
616
|
XdsClusterManagerLbConfig::ClusterMap cluster_map;
|
632
617
|
std::set<std::string /*cluster_name*/> clusters_to_be_used;
|
633
618
|
auto it = json.object_value().find("children");
|
@@ -646,14 +631,14 @@ class XdsClusterManagerLbFactory : public LoadBalancingPolicyFactory {
|
|
646
631
|
continue;
|
647
632
|
}
|
648
633
|
RefCountedPtr<LoadBalancingPolicy::Config> child_config;
|
649
|
-
std::vector<
|
634
|
+
std::vector<grpc_error_handle> child_errors =
|
650
635
|
ParseChildConfig(p.second, &child_config);
|
651
636
|
if (!child_errors.empty()) {
|
652
637
|
// Can't use GRPC_ERROR_CREATE_FROM_VECTOR() here, because the error
|
653
638
|
// string is not static in this case.
|
654
|
-
|
639
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
655
640
|
absl::StrCat("field:children name:", child_name).c_str());
|
656
|
-
for (
|
641
|
+
for (grpc_error_handle child_error : child_errors) {
|
657
642
|
error = grpc_error_add_child(error, child_error);
|
658
643
|
}
|
659
644
|
error_list.push_back(error);
|
@@ -676,10 +661,10 @@ class XdsClusterManagerLbFactory : public LoadBalancingPolicyFactory {
|
|
676
661
|
}
|
677
662
|
|
678
663
|
private:
|
679
|
-
static std::vector<
|
664
|
+
static std::vector<grpc_error_handle> ParseChildConfig(
|
680
665
|
const Json& json,
|
681
666
|
RefCountedPtr<LoadBalancingPolicy::Config>* child_config) {
|
682
|
-
std::vector<
|
667
|
+
std::vector<grpc_error_handle> error_list;
|
683
668
|
if (json.type() != Json::Type::OBJECT) {
|
684
669
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
685
670
|
"value should be of type object"));
|
@@ -690,12 +675,12 @@ class XdsClusterManagerLbFactory : public LoadBalancingPolicyFactory {
|
|
690
675
|
error_list.push_back(
|
691
676
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("did not find childPolicy"));
|
692
677
|
} else {
|
693
|
-
|
678
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
694
679
|
*child_config = LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(
|
695
680
|
it->second, &parse_error);
|
696
681
|
if (*child_config == nullptr) {
|
697
682
|
GPR_DEBUG_ASSERT(parse_error != GRPC_ERROR_NONE);
|
698
|
-
std::vector<
|
683
|
+
std::vector<grpc_error_handle> child_errors;
|
699
684
|
child_errors.push_back(parse_error);
|
700
685
|
error_list.push_back(
|
701
686
|
GRPC_ERROR_CREATE_FROM_VECTOR("field:childPolicy", &child_errors));
|
@@ -101,7 +101,8 @@ class XdsClusterResolverLbConfig : public LoadBalancingPolicy::Config {
|
|
101
101
|
// Xds Cluster Resolver LB policy.
|
102
102
|
class XdsClusterResolverLb : public LoadBalancingPolicy {
|
103
103
|
public:
|
104
|
-
XdsClusterResolverLb(RefCountedPtr<XdsClient> xds_client, Args args
|
104
|
+
XdsClusterResolverLb(RefCountedPtr<XdsClient> xds_client, Args args,
|
105
|
+
std::string server_name, bool is_xds_uri);
|
105
106
|
|
106
107
|
const char* name() const override { return kXdsClusterResolver; }
|
107
108
|
|
@@ -184,7 +185,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
184
185
|
void OnEndpointChanged(XdsApi::EdsUpdate update) override {
|
185
186
|
new Notifier(discovery_mechanism_, std::move(update));
|
186
187
|
}
|
187
|
-
void OnError(
|
188
|
+
void OnError(grpc_error_handle error) override {
|
188
189
|
new Notifier(discovery_mechanism_, error);
|
189
190
|
}
|
190
191
|
void OnResourceDoesNotExist() override {
|
@@ -197,7 +198,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
197
198
|
Notifier(RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism,
|
198
199
|
XdsApi::EdsUpdate update);
|
199
200
|
Notifier(RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism,
|
200
|
-
|
201
|
+
grpc_error_handle error);
|
201
202
|
explicit Notifier(
|
202
203
|
RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism);
|
203
204
|
~Notifier() { discovery_mechanism_.reset(DEBUG_LOCATION, "Notifier"); }
|
@@ -205,8 +206,8 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
205
206
|
private:
|
206
207
|
enum Type { kUpdate, kError, kDoesNotExist };
|
207
208
|
|
208
|
-
static void RunInExecCtx(void* arg,
|
209
|
-
void RunInWorkSerializer(
|
209
|
+
static void RunInExecCtx(void* arg, grpc_error_handle error);
|
210
|
+
void RunInWorkSerializer(grpc_error_handle error);
|
210
211
|
|
211
212
|
RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism_;
|
212
213
|
grpc_closure closure_;
|
@@ -249,7 +250,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
249
250
|
|
250
251
|
void ReturnResult(Resolver::Result result) override;
|
251
252
|
|
252
|
-
void ReturnError(
|
253
|
+
void ReturnError(grpc_error_handle error) override;
|
253
254
|
|
254
255
|
private:
|
255
256
|
RefCountedPtr<LogicalDNSDiscoveryMechanism> discovery_mechanism_;
|
@@ -303,7 +304,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
303
304
|
void ShutdownLocked() override;
|
304
305
|
|
305
306
|
void OnEndpointChanged(size_t index, XdsApi::EdsUpdate update);
|
306
|
-
void OnError(size_t index,
|
307
|
+
void OnError(size_t index, grpc_error_handle error);
|
307
308
|
void OnResourceDoesNotExist(size_t index);
|
308
309
|
|
309
310
|
void MaybeDestroyChildPolicyLocked();
|
@@ -317,6 +318,9 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
317
318
|
grpc_channel_args* CreateChildPolicyArgsLocked(
|
318
319
|
const grpc_channel_args* args_in);
|
319
320
|
|
321
|
+
// The xds client and endpoint watcher.
|
322
|
+
RefCountedPtr<XdsClient> xds_client_;
|
323
|
+
|
320
324
|
// Server name from target URI.
|
321
325
|
std::string server_name_;
|
322
326
|
bool is_xds_uri_;
|
@@ -328,9 +332,6 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
328
332
|
// Internal state.
|
329
333
|
bool shutting_down_ = false;
|
330
334
|
|
331
|
-
// The xds client and endpoint watcher.
|
332
|
-
RefCountedPtr<XdsClient> xds_client_;
|
333
|
-
|
334
335
|
// Vector of discovery mechansism entries in priority order.
|
335
336
|
std::vector<DiscoveryMechanismEntry> discovery_mechanisms_;
|
336
337
|
|
@@ -429,7 +430,7 @@ XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
|
429
430
|
XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
430
431
|
Notifier(RefCountedPtr<XdsClusterResolverLb::EdsDiscoveryMechanism>
|
431
432
|
discovery_mechanism,
|
432
|
-
|
433
|
+
grpc_error_handle error)
|
433
434
|
: discovery_mechanism_(std::move(discovery_mechanism)), type_(kError) {
|
434
435
|
GRPC_CLOSURE_INIT(&closure_, &RunInExecCtx, this, nullptr);
|
435
436
|
ExecCtx::Run(DEBUG_LOCATION, &closure_, error);
|
@@ -445,7 +446,7 @@ XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
|
445
446
|
}
|
446
447
|
|
447
448
|
void XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
448
|
-
RunInExecCtx(void* arg,
|
449
|
+
RunInExecCtx(void* arg, grpc_error_handle error) {
|
449
450
|
Notifier* self = static_cast<Notifier*>(arg);
|
450
451
|
GRPC_ERROR_REF(error);
|
451
452
|
self->discovery_mechanism_->parent()->work_serializer()->Run(
|
@@ -453,7 +454,7 @@ void XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
|
453
454
|
}
|
454
455
|
|
455
456
|
void XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
456
|
-
RunInWorkSerializer(
|
457
|
+
RunInWorkSerializer(grpc_error_handle error) {
|
457
458
|
switch (type_) {
|
458
459
|
case kUpdate:
|
459
460
|
discovery_mechanism_->parent()->OnEndpointChanged(
|
@@ -541,7 +542,7 @@ void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::ResolverResultHandler::
|
|
541
542
|
}
|
542
543
|
|
543
544
|
void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::ResolverResultHandler::
|
544
|
-
ReturnError(
|
545
|
+
ReturnError(grpc_error_handle error) {
|
545
546
|
discovery_mechanism_->parent()->OnError(discovery_mechanism_->index(), error);
|
546
547
|
}
|
547
548
|
|
@@ -550,26 +551,17 @@ void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::ResolverResultHandler::
|
|
550
551
|
//
|
551
552
|
|
552
553
|
XdsClusterResolverLb::XdsClusterResolverLb(RefCountedPtr<XdsClient> xds_client,
|
553
|
-
Args args
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
}
|
560
|
-
// Record server name.
|
561
|
-
const char* server_uri =
|
562
|
-
grpc_channel_args_find_string(args.args, GRPC_ARG_SERVER_URI);
|
563
|
-
GPR_ASSERT(server_uri != nullptr);
|
564
|
-
absl::StatusOr<URI> uri = URI::Parse(server_uri);
|
565
|
-
GPR_ASSERT(uri.ok() && !uri->path().empty());
|
566
|
-
server_name_ = std::string(absl::StripPrefix(uri->path(), "/"));
|
567
|
-
is_xds_uri_ = uri->scheme() == "xds";
|
554
|
+
Args args, std::string server_name,
|
555
|
+
bool is_xds_uri)
|
556
|
+
: LoadBalancingPolicy(std::move(args)),
|
557
|
+
xds_client_(std::move(xds_client)),
|
558
|
+
server_name_(std::move(server_name)),
|
559
|
+
is_xds_uri_(is_xds_uri) {
|
568
560
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_cluster_resolver_trace)) {
|
569
561
|
gpr_log(GPR_INFO,
|
570
|
-
"[xds_cluster_resolver_lb %p]
|
571
|
-
"
|
572
|
-
this,
|
562
|
+
"[xds_cluster_resolver_lb %p] created -- xds_client=%p, "
|
563
|
+
"server_name=%s, is_xds_uri=%d",
|
564
|
+
this, xds_client_.get(), server_name_.c_str(), is_xds_uri_);
|
573
565
|
}
|
574
566
|
// EDS-only flow.
|
575
567
|
if (!is_xds_uri_) {
|
@@ -738,11 +730,11 @@ void XdsClusterResolverLb::OnEndpointChanged(size_t index,
|
|
738
730
|
UpdatePriorityList(std::move(priority_list));
|
739
731
|
}
|
740
732
|
|
741
|
-
void XdsClusterResolverLb::OnError(size_t index,
|
733
|
+
void XdsClusterResolverLb::OnError(size_t index, grpc_error_handle error) {
|
742
734
|
gpr_log(GPR_ERROR,
|
743
735
|
"[xds_cluster_resolver_lb %p] discovery mechanism %" PRIuPTR
|
744
736
|
" xds watcher reported error: %s",
|
745
|
-
this, index,
|
737
|
+
this, index, grpc_error_std_string(error).c_str());
|
746
738
|
GRPC_ERROR_UNREF(error);
|
747
739
|
if (shutting_down_) return;
|
748
740
|
if (!discovery_mechanisms_[index].first_update_received) {
|
@@ -1010,7 +1002,7 @@ XdsClusterResolverLb::CreateChildPolicyConfigLocked() {
|
|
1010
1002
|
"[xds_cluster_resolver_lb %p] generated config for child policy: %s",
|
1011
1003
|
this, json_str.c_str());
|
1012
1004
|
}
|
1013
|
-
|
1005
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1014
1006
|
RefCountedPtr<LoadBalancingPolicy::Config> config =
|
1015
1007
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(json, &error);
|
1016
1008
|
if (error != GRPC_ERROR_NONE) {
|
@@ -1020,7 +1012,7 @@ XdsClusterResolverLb::CreateChildPolicyConfigLocked() {
|
|
1020
1012
|
"[xds_cluster_resolver_lb %p] error parsing generated child policy "
|
1021
1013
|
"config -- "
|
1022
1014
|
"will put channel in TRANSIENT_FAILURE: %s",
|
1023
|
-
this,
|
1015
|
+
this, grpc_error_std_string(error).c_str());
|
1024
1016
|
error = grpc_error_set_int(
|
1025
1017
|
grpc_error_add_child(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1026
1018
|
"xds_cluster_resolver LB policy: error "
|
@@ -1054,10 +1046,14 @@ void XdsClusterResolverLb::UpdateChildPolicyLocked() {
|
|
1054
1046
|
|
1055
1047
|
grpc_channel_args* XdsClusterResolverLb::CreateChildPolicyArgsLocked(
|
1056
1048
|
const grpc_channel_args* args) {
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1049
|
+
absl::InlinedVector<grpc_arg, 2> new_args = {
|
1050
|
+
// Inhibit client-side health checking, since the balancer does this
|
1051
|
+
// for us.
|
1052
|
+
grpc_channel_arg_integer_create(
|
1053
|
+
const_cast<char*>(GRPC_ARG_INHIBIT_HEALTH_CHECKING), 1),
|
1054
|
+
};
|
1055
|
+
if (!is_xds_uri_) new_args.push_back(xds_client_->MakeChannelArg());
|
1056
|
+
return grpc_channel_args_copy_and_add(args, new_args.data(), new_args.size());
|
1061
1057
|
}
|
1062
1058
|
|
1063
1059
|
OrphanablePtr<LoadBalancingPolicy>
|
@@ -1096,24 +1092,45 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1096
1092
|
public:
|
1097
1093
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
1098
1094
|
LoadBalancingPolicy::Args args) const override {
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1095
|
+
// Find server name.
|
1096
|
+
const char* server_uri =
|
1097
|
+
grpc_channel_args_find_string(args.args, GRPC_ARG_SERVER_URI);
|
1098
|
+
GPR_ASSERT(server_uri != nullptr);
|
1099
|
+
absl::StatusOr<URI> uri = URI::Parse(server_uri);
|
1100
|
+
GPR_ASSERT(uri.ok() && !uri->path().empty());
|
1101
|
+
absl::string_view server_name = absl::StripPrefix(uri->path(), "/");
|
1102
|
+
// Determine if it's an xds URI.
|
1103
|
+
bool is_xds_uri = uri->scheme() == "xds";
|
1104
|
+
// Get XdsClient.
|
1105
|
+
RefCountedPtr<XdsClient> xds_client =
|
1106
|
+
XdsClient::GetFromChannelArgs(*args.args);
|
1107
|
+
if (xds_client == nullptr) {
|
1108
|
+
if (!is_xds_uri) {
|
1109
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1110
|
+
xds_client = XdsClient::GetOrCreate(args.args, &error);
|
1111
|
+
if (error != GRPC_ERROR_NONE) {
|
1112
|
+
gpr_log(GPR_ERROR,
|
1113
|
+
"cannot get or create XdsClient to instantiate "
|
1114
|
+
"xds_cluster_resolver LB policy: %s",
|
1115
|
+
grpc_error_std_string(error).c_str());
|
1116
|
+
GRPC_ERROR_UNREF(error);
|
1117
|
+
return nullptr;
|
1118
|
+
}
|
1119
|
+
} else {
|
1120
|
+
gpr_log(GPR_ERROR,
|
1121
|
+
"XdsClient not present in channel args -- cannot instantiate "
|
1122
|
+
"xds_cluster_resolver LB policy");
|
1123
|
+
return nullptr;
|
1124
|
+
}
|
1108
1125
|
}
|
1109
|
-
return MakeOrphanable<XdsClusterResolverChildHandler>(
|
1110
|
-
|
1126
|
+
return MakeOrphanable<XdsClusterResolverChildHandler>(
|
1127
|
+
std::move(xds_client), std::move(args), server_name, is_xds_uri);
|
1111
1128
|
}
|
1112
1129
|
|
1113
1130
|
const char* name() const override { return kXdsClusterResolver; }
|
1114
1131
|
|
1115
1132
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
1116
|
-
const Json& json,
|
1133
|
+
const Json& json, grpc_error_handle* error) const override {
|
1117
1134
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
1118
1135
|
if (json.type() == Json::Type::JSON_NULL) {
|
1119
1136
|
// xds_cluster_resolver was mentioned as a policy in the deprecated
|
@@ -1124,7 +1141,7 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1124
1141
|
"Please use loadBalancingConfig field of service config instead.");
|
1125
1142
|
return nullptr;
|
1126
1143
|
}
|
1127
|
-
std::vector<
|
1144
|
+
std::vector<grpc_error_handle> error_list;
|
1128
1145
|
std::vector<XdsClusterResolverLbConfig::DiscoveryMechanism>
|
1129
1146
|
discovery_mechanisms;
|
1130
1147
|
auto it = json.object_value().find("discoveryMechanisms");
|
@@ -1138,13 +1155,13 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1138
1155
|
const Json::Array& array = it->second.array_value();
|
1139
1156
|
for (size_t i = 0; i < array.size(); ++i) {
|
1140
1157
|
XdsClusterResolverLbConfig::DiscoveryMechanism discovery_mechanism;
|
1141
|
-
std::vector<
|
1158
|
+
std::vector<grpc_error_handle> discovery_mechanism_errors =
|
1142
1159
|
ParseDiscoveryMechanism(array[i], &discovery_mechanism);
|
1143
1160
|
if (!discovery_mechanism_errors.empty()) {
|
1144
|
-
|
1161
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
1145
1162
|
absl::StrCat("field:discovery_mechanism element: ", i, " error")
|
1146
1163
|
.c_str());
|
1147
|
-
for (
|
1164
|
+
for (grpc_error_handle discovery_mechanism_error :
|
1148
1165
|
discovery_mechanism_errors) {
|
1149
1166
|
error = grpc_error_add_child(error, discovery_mechanism_error);
|
1150
1167
|
}
|
@@ -1259,10 +1276,10 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1259
1276
|
}
|
1260
1277
|
|
1261
1278
|
private:
|
1262
|
-
static std::vector<
|
1279
|
+
static std::vector<grpc_error_handle> ParseDiscoveryMechanism(
|
1263
1280
|
const Json& json,
|
1264
1281
|
XdsClusterResolverLbConfig::DiscoveryMechanism* discovery_mechanism) {
|
1265
|
-
std::vector<
|
1282
|
+
std::vector<grpc_error_handle> error_list;
|
1266
1283
|
if (json.type() != Json::Type::OBJECT) {
|
1267
1284
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1268
1285
|
"value should be of type object"));
|
@@ -1339,10 +1356,13 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1339
1356
|
class XdsClusterResolverChildHandler : public ChildPolicyHandler {
|
1340
1357
|
public:
|
1341
1358
|
XdsClusterResolverChildHandler(RefCountedPtr<XdsClient> xds_client,
|
1342
|
-
Args args
|
1359
|
+
Args args, absl::string_view server_name,
|
1360
|
+
bool is_xds_uri)
|
1343
1361
|
: ChildPolicyHandler(std::move(args),
|
1344
1362
|
&grpc_lb_xds_cluster_resolver_trace),
|
1345
|
-
xds_client_(std::move(xds_client))
|
1363
|
+
xds_client_(std::move(xds_client)),
|
1364
|
+
server_name_(server_name),
|
1365
|
+
is_xds_uri_(is_xds_uri) {}
|
1346
1366
|
|
1347
1367
|
bool ConfigChangeRequiresNewPolicyInstance(
|
1348
1368
|
LoadBalancingPolicy::Config* old_config,
|
@@ -1359,11 +1379,14 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1359
1379
|
|
1360
1380
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
1361
1381
|
const char* /*name*/, LoadBalancingPolicy::Args args) const override {
|
1362
|
-
return MakeOrphanable<XdsClusterResolverLb>(xds_client_, std::move(args)
|
1382
|
+
return MakeOrphanable<XdsClusterResolverLb>(xds_client_, std::move(args),
|
1383
|
+
server_name_, is_xds_uri_);
|
1363
1384
|
}
|
1364
1385
|
|
1365
1386
|
private:
|
1366
1387
|
RefCountedPtr<XdsClient> xds_client_;
|
1388
|
+
std::string server_name_;
|
1389
|
+
bool is_xds_uri_;
|
1367
1390
|
};
|
1368
1391
|
};
|
1369
1392
|
|