grpc 1.37.1 → 1.39.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +96 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +334 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +91 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +28 -13
- data/include/grpc/impl/codegen/port_platform.h +22 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +630 -3103
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +755 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -54
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +146 -155
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -32
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2449 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +25 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +348 -199
- data/src/core/ext/xds/xds_api.h +21 -12
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/slice_allocator.cc +89 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +67 -46
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +94 -46
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -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));
|
@@ -28,6 +28,7 @@
|
|
28
28
|
#include "src/core/ext/filters/client_channel/lb_policy.h"
|
29
29
|
#include "src/core/ext/filters/client_channel/lb_policy/address_filtering.h"
|
30
30
|
#include "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h"
|
31
|
+
#include "src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h"
|
31
32
|
#include "src/core/ext/filters/client_channel/lb_policy/xds/xds.h"
|
32
33
|
#include "src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h"
|
33
34
|
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
@@ -71,13 +72,16 @@ class XdsClusterResolverLbConfig : public LoadBalancingPolicy::Config {
|
|
71
72
|
};
|
72
73
|
DiscoveryMechanismType type;
|
73
74
|
std::string eds_service_name;
|
75
|
+
std::string dns_hostname;
|
74
76
|
|
75
77
|
bool operator==(const DiscoveryMechanism& other) const {
|
76
78
|
return (cluster_name == other.cluster_name &&
|
77
79
|
lrs_load_reporting_server_name ==
|
78
80
|
other.lrs_load_reporting_server_name &&
|
79
81
|
max_concurrent_requests == other.max_concurrent_requests &&
|
80
|
-
type == other.type &&
|
82
|
+
type == other.type &&
|
83
|
+
eds_service_name == other.eds_service_name &&
|
84
|
+
dns_hostname == other.dns_hostname);
|
81
85
|
}
|
82
86
|
};
|
83
87
|
|
@@ -101,7 +105,8 @@ class XdsClusterResolverLbConfig : public LoadBalancingPolicy::Config {
|
|
101
105
|
// Xds Cluster Resolver LB policy.
|
102
106
|
class XdsClusterResolverLb : public LoadBalancingPolicy {
|
103
107
|
public:
|
104
|
-
XdsClusterResolverLb(RefCountedPtr<XdsClient> xds_client, Args args
|
108
|
+
XdsClusterResolverLb(RefCountedPtr<XdsClient> xds_client, Args args,
|
109
|
+
std::string server_name, bool is_xds_uri);
|
105
110
|
|
106
111
|
const char* name() const override { return kXdsClusterResolver; }
|
107
112
|
|
@@ -130,17 +135,6 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
130
135
|
virtual Json::Array override_child_policy() = 0;
|
131
136
|
virtual bool disable_reresolution() = 0;
|
132
137
|
|
133
|
-
// Caller must ensure that config_ is set before calling.
|
134
|
-
absl::string_view GetXdsClusterResolverResourceName() const {
|
135
|
-
if (!parent_->is_xds_uri_) return parent_->server_name_;
|
136
|
-
if (!parent_->config_->discovery_mechanisms()[index_]
|
137
|
-
.eds_service_name.empty()) {
|
138
|
-
return parent_->config_->discovery_mechanisms()[index_]
|
139
|
-
.eds_service_name;
|
140
|
-
}
|
141
|
-
return parent_->config_->discovery_mechanisms()[index_].cluster_name;
|
142
|
-
}
|
143
|
-
|
144
138
|
// Returns a pair containing the cluster and eds_service_name
|
145
139
|
// to use for LRS load reporting. Caller must ensure that config_ is set
|
146
140
|
// before calling.
|
@@ -184,7 +178,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
184
178
|
void OnEndpointChanged(XdsApi::EdsUpdate update) override {
|
185
179
|
new Notifier(discovery_mechanism_, std::move(update));
|
186
180
|
}
|
187
|
-
void OnError(
|
181
|
+
void OnError(grpc_error_handle error) override {
|
188
182
|
new Notifier(discovery_mechanism_, error);
|
189
183
|
}
|
190
184
|
void OnResourceDoesNotExist() override {
|
@@ -197,7 +191,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
197
191
|
Notifier(RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism,
|
198
192
|
XdsApi::EdsUpdate update);
|
199
193
|
Notifier(RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism,
|
200
|
-
|
194
|
+
grpc_error_handle error);
|
201
195
|
explicit Notifier(
|
202
196
|
RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism);
|
203
197
|
~Notifier() { discovery_mechanism_.reset(DEBUG_LOCATION, "Notifier"); }
|
@@ -205,8 +199,8 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
205
199
|
private:
|
206
200
|
enum Type { kUpdate, kError, kDoesNotExist };
|
207
201
|
|
208
|
-
static void RunInExecCtx(void* arg,
|
209
|
-
void RunInWorkSerializer(
|
202
|
+
static void RunInExecCtx(void* arg, grpc_error_handle error);
|
203
|
+
void RunInWorkSerializer(grpc_error_handle error);
|
210
204
|
|
211
205
|
RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism_;
|
212
206
|
grpc_closure closure_;
|
@@ -217,6 +211,18 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
217
211
|
RefCountedPtr<EdsDiscoveryMechanism> discovery_mechanism_;
|
218
212
|
};
|
219
213
|
|
214
|
+
absl::string_view GetEdsResourceName() const {
|
215
|
+
if (!parent()->is_xds_uri_) return parent()->server_name_;
|
216
|
+
if (!parent()
|
217
|
+
->config_->discovery_mechanisms()[index()]
|
218
|
+
.eds_service_name.empty()) {
|
219
|
+
return parent()
|
220
|
+
->config_->discovery_mechanisms()[index()]
|
221
|
+
.eds_service_name;
|
222
|
+
}
|
223
|
+
return parent()->config_->discovery_mechanisms()[index()].cluster_name;
|
224
|
+
}
|
225
|
+
|
220
226
|
// Note that this is not owned, so this pointer must never be dereferenced.
|
221
227
|
EndpointWatcher* watcher_ = nullptr;
|
222
228
|
};
|
@@ -249,14 +255,16 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
249
255
|
|
250
256
|
void ReturnResult(Resolver::Result result) override;
|
251
257
|
|
252
|
-
void ReturnError(
|
258
|
+
void ReturnError(grpc_error_handle error) override;
|
253
259
|
|
254
260
|
private:
|
255
261
|
RefCountedPtr<LogicalDNSDiscoveryMechanism> discovery_mechanism_;
|
256
262
|
};
|
257
|
-
|
263
|
+
|
264
|
+
// This is necessary only because of a bug in msvc where nested class cannot
|
258
265
|
// access protected member in base class.
|
259
266
|
friend class ResolverResultHandler;
|
267
|
+
|
260
268
|
OrphanablePtr<Resolver> resolver_;
|
261
269
|
};
|
262
270
|
|
@@ -303,7 +311,7 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
303
311
|
void ShutdownLocked() override;
|
304
312
|
|
305
313
|
void OnEndpointChanged(size_t index, XdsApi::EdsUpdate update);
|
306
|
-
void OnError(size_t index,
|
314
|
+
void OnError(size_t index, grpc_error_handle error);
|
307
315
|
void OnResourceDoesNotExist(size_t index);
|
308
316
|
|
309
317
|
void MaybeDestroyChildPolicyLocked();
|
@@ -317,6 +325,9 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
317
325
|
grpc_channel_args* CreateChildPolicyArgsLocked(
|
318
326
|
const grpc_channel_args* args_in);
|
319
327
|
|
328
|
+
// The xds client and endpoint watcher.
|
329
|
+
RefCountedPtr<XdsClient> xds_client_;
|
330
|
+
|
320
331
|
// Server name from target URI.
|
321
332
|
std::string server_name_;
|
322
333
|
bool is_xds_uri_;
|
@@ -328,9 +339,6 @@ class XdsClusterResolverLb : public LoadBalancingPolicy {
|
|
328
339
|
// Internal state.
|
329
340
|
bool shutting_down_ = false;
|
330
341
|
|
331
|
-
// The xds client and endpoint watcher.
|
332
|
-
RefCountedPtr<XdsClient> xds_client_;
|
333
|
-
|
334
342
|
// Vector of discovery mechansism entries in priority order.
|
335
343
|
std::vector<DiscoveryMechanismEntry> discovery_mechanisms_;
|
336
344
|
|
@@ -388,13 +396,12 @@ void XdsClusterResolverLb::EdsDiscoveryMechanism::Start() {
|
|
388
396
|
gpr_log(GPR_INFO,
|
389
397
|
"[xds_cluster_resolver_lb %p] eds discovery mechanism %" PRIuPTR
|
390
398
|
":%p starting xds watch for %s",
|
391
|
-
parent(), index(), this,
|
392
|
-
std::string(GetXdsClusterResolverResourceName()).c_str());
|
399
|
+
parent(), index(), this, std::string(GetEdsResourceName()).c_str());
|
393
400
|
}
|
394
401
|
auto watcher = absl::make_unique<EndpointWatcher>(
|
395
402
|
Ref(DEBUG_LOCATION, "EdsDiscoveryMechanism"));
|
396
403
|
watcher_ = watcher.get();
|
397
|
-
parent()->xds_client_->WatchEndpointData(
|
404
|
+
parent()->xds_client_->WatchEndpointData(GetEdsResourceName(),
|
398
405
|
std::move(watcher));
|
399
406
|
}
|
400
407
|
|
@@ -403,11 +410,10 @@ void XdsClusterResolverLb::EdsDiscoveryMechanism::Orphan() {
|
|
403
410
|
gpr_log(GPR_INFO,
|
404
411
|
"[xds_cluster_resolver_lb %p] eds discovery mechanism %" PRIuPTR
|
405
412
|
":%p cancelling xds watch for %s",
|
406
|
-
parent(), index(), this,
|
407
|
-
std::string(GetXdsClusterResolverResourceName()).c_str());
|
413
|
+
parent(), index(), this, std::string(GetEdsResourceName()).c_str());
|
408
414
|
}
|
409
|
-
parent()->xds_client_->CancelEndpointDataWatch(
|
410
|
-
|
415
|
+
parent()->xds_client_->CancelEndpointDataWatch(GetEdsResourceName(),
|
416
|
+
watcher_);
|
411
417
|
Unref();
|
412
418
|
}
|
413
419
|
|
@@ -429,7 +435,7 @@ XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
|
429
435
|
XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
430
436
|
Notifier(RefCountedPtr<XdsClusterResolverLb::EdsDiscoveryMechanism>
|
431
437
|
discovery_mechanism,
|
432
|
-
|
438
|
+
grpc_error_handle error)
|
433
439
|
: discovery_mechanism_(std::move(discovery_mechanism)), type_(kError) {
|
434
440
|
GRPC_CLOSURE_INIT(&closure_, &RunInExecCtx, this, nullptr);
|
435
441
|
ExecCtx::Run(DEBUG_LOCATION, &closure_, error);
|
@@ -445,7 +451,7 @@ XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
|
445
451
|
}
|
446
452
|
|
447
453
|
void XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
448
|
-
RunInExecCtx(void* arg,
|
454
|
+
RunInExecCtx(void* arg, grpc_error_handle error) {
|
449
455
|
Notifier* self = static_cast<Notifier*>(arg);
|
450
456
|
GRPC_ERROR_REF(error);
|
451
457
|
self->discovery_mechanism_->parent()->work_serializer()->Run(
|
@@ -453,7 +459,7 @@ void XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
|
453
459
|
}
|
454
460
|
|
455
461
|
void XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
456
|
-
RunInWorkSerializer(
|
462
|
+
RunInWorkSerializer(grpc_error_handle error) {
|
457
463
|
switch (type_) {
|
458
464
|
case kUpdate:
|
459
465
|
discovery_mechanism_->parent()->OnEndpointChanged(
|
@@ -476,7 +482,8 @@ void XdsClusterResolverLb::EdsDiscoveryMechanism::EndpointWatcher::Notifier::
|
|
476
482
|
//
|
477
483
|
|
478
484
|
void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::Start() {
|
479
|
-
std::string target =
|
485
|
+
std::string target =
|
486
|
+
parent()->config_->discovery_mechanisms()[index()].dns_hostname;
|
480
487
|
grpc_channel_args* args = nullptr;
|
481
488
|
FakeResolverResponseGenerator* fake_resolver_response_generator =
|
482
489
|
grpc_channel_args_find_pointer<FakeResolverResponseGenerator>(
|
@@ -488,6 +495,7 @@ void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::Start() {
|
|
488
495
|
fake_resolver_response_generator);
|
489
496
|
args = grpc_channel_args_copy_and_add(parent()->args_, &new_arg, 1);
|
490
497
|
} else {
|
498
|
+
target = absl::StrCat("dns:", target);
|
491
499
|
args = grpc_channel_args_copy(parent()->args_);
|
492
500
|
}
|
493
501
|
resolver_ = ResolverRegistry::CreateResolver(
|
@@ -541,7 +549,7 @@ void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::ResolverResultHandler::
|
|
541
549
|
}
|
542
550
|
|
543
551
|
void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::ResolverResultHandler::
|
544
|
-
ReturnError(
|
552
|
+
ReturnError(grpc_error_handle error) {
|
545
553
|
discovery_mechanism_->parent()->OnError(discovery_mechanism_->index(), error);
|
546
554
|
}
|
547
555
|
|
@@ -550,26 +558,17 @@ void XdsClusterResolverLb::LogicalDNSDiscoveryMechanism::ResolverResultHandler::
|
|
550
558
|
//
|
551
559
|
|
552
560
|
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";
|
561
|
+
Args args, std::string server_name,
|
562
|
+
bool is_xds_uri)
|
563
|
+
: LoadBalancingPolicy(std::move(args)),
|
564
|
+
xds_client_(std::move(xds_client)),
|
565
|
+
server_name_(std::move(server_name)),
|
566
|
+
is_xds_uri_(is_xds_uri) {
|
568
567
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_xds_cluster_resolver_trace)) {
|
569
568
|
gpr_log(GPR_INFO,
|
570
|
-
"[xds_cluster_resolver_lb %p]
|
571
|
-
"
|
572
|
-
this,
|
569
|
+
"[xds_cluster_resolver_lb %p] created -- xds_client=%p, "
|
570
|
+
"server_name=%s, is_xds_uri=%d",
|
571
|
+
this, xds_client_.get(), server_name_.c_str(), is_xds_uri_);
|
573
572
|
}
|
574
573
|
// EDS-only flow.
|
575
574
|
if (!is_xds_uri_) {
|
@@ -738,11 +737,11 @@ void XdsClusterResolverLb::OnEndpointChanged(size_t index,
|
|
738
737
|
UpdatePriorityList(std::move(priority_list));
|
739
738
|
}
|
740
739
|
|
741
|
-
void XdsClusterResolverLb::OnError(size_t index,
|
740
|
+
void XdsClusterResolverLb::OnError(size_t index, grpc_error_handle error) {
|
742
741
|
gpr_log(GPR_ERROR,
|
743
742
|
"[xds_cluster_resolver_lb %p] discovery mechanism %" PRIuPTR
|
744
743
|
" xds watcher reported error: %s",
|
745
|
-
this, index,
|
744
|
+
this, index, grpc_error_std_string(error).c_str());
|
746
745
|
GRPC_ERROR_UNREF(error);
|
747
746
|
if (shutting_down_) return;
|
748
747
|
if (!discovery_mechanisms_[index].first_update_received) {
|
@@ -842,6 +841,13 @@ ServerAddressList XdsClusterResolverLb::CreateChildPolicyAddressesLocked() {
|
|
842
841
|
std::vector<std::string> hierarchical_path = {
|
843
842
|
priority_child_name, locality_name->AsHumanReadableString()};
|
844
843
|
for (const auto& endpoint : locality.endpoints) {
|
844
|
+
const ServerAddressWeightAttribute* weight_attribute = static_cast<
|
845
|
+
const ServerAddressWeightAttribute*>(endpoint.GetAttribute(
|
846
|
+
ServerAddressWeightAttribute::kServerAddressWeightAttributeKey));
|
847
|
+
uint32_t weight = locality.lb_weight;
|
848
|
+
if (weight_attribute != nullptr) {
|
849
|
+
weight = locality.lb_weight * weight_attribute->weight();
|
850
|
+
}
|
845
851
|
addresses.emplace_back(
|
846
852
|
endpoint
|
847
853
|
.WithAttribute(kHierarchicalPathAttributeKey,
|
@@ -849,10 +855,10 @@ ServerAddressList XdsClusterResolverLb::CreateChildPolicyAddressesLocked() {
|
|
849
855
|
.WithAttribute(kXdsLocalityNameAttributeKey,
|
850
856
|
absl::make_unique<XdsLocalityAttribute>(
|
851
857
|
locality_name->Ref()))
|
852
|
-
.WithAttribute(
|
853
|
-
|
854
|
-
|
855
|
-
|
858
|
+
.WithAttribute(
|
859
|
+
ServerAddressWeightAttribute::
|
860
|
+
kServerAddressWeightAttributeKey,
|
861
|
+
absl::make_unique<ServerAddressWeightAttribute>(weight)));
|
856
862
|
}
|
857
863
|
}
|
858
864
|
}
|
@@ -1010,7 +1016,7 @@ XdsClusterResolverLb::CreateChildPolicyConfigLocked() {
|
|
1010
1016
|
"[xds_cluster_resolver_lb %p] generated config for child policy: %s",
|
1011
1017
|
this, json_str.c_str());
|
1012
1018
|
}
|
1013
|
-
|
1019
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1014
1020
|
RefCountedPtr<LoadBalancingPolicy::Config> config =
|
1015
1021
|
LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(json, &error);
|
1016
1022
|
if (error != GRPC_ERROR_NONE) {
|
@@ -1020,7 +1026,7 @@ XdsClusterResolverLb::CreateChildPolicyConfigLocked() {
|
|
1020
1026
|
"[xds_cluster_resolver_lb %p] error parsing generated child policy "
|
1021
1027
|
"config -- "
|
1022
1028
|
"will put channel in TRANSIENT_FAILURE: %s",
|
1023
|
-
this,
|
1029
|
+
this, grpc_error_std_string(error).c_str());
|
1024
1030
|
error = grpc_error_set_int(
|
1025
1031
|
grpc_error_add_child(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1026
1032
|
"xds_cluster_resolver LB policy: error "
|
@@ -1054,10 +1060,14 @@ void XdsClusterResolverLb::UpdateChildPolicyLocked() {
|
|
1054
1060
|
|
1055
1061
|
grpc_channel_args* XdsClusterResolverLb::CreateChildPolicyArgsLocked(
|
1056
1062
|
const grpc_channel_args* args) {
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1063
|
+
absl::InlinedVector<grpc_arg, 2> new_args = {
|
1064
|
+
// Inhibit client-side health checking, since the balancer does this
|
1065
|
+
// for us.
|
1066
|
+
grpc_channel_arg_integer_create(
|
1067
|
+
const_cast<char*>(GRPC_ARG_INHIBIT_HEALTH_CHECKING), 1),
|
1068
|
+
};
|
1069
|
+
if (!is_xds_uri_) new_args.push_back(xds_client_->MakeChannelArg());
|
1070
|
+
return grpc_channel_args_copy_and_add(args, new_args.data(), new_args.size());
|
1061
1071
|
}
|
1062
1072
|
|
1063
1073
|
OrphanablePtr<LoadBalancingPolicy>
|
@@ -1096,24 +1106,45 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1096
1106
|
public:
|
1097
1107
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
1098
1108
|
LoadBalancingPolicy::Args args) const override {
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1109
|
+
// Find server name.
|
1110
|
+
const char* server_uri =
|
1111
|
+
grpc_channel_args_find_string(args.args, GRPC_ARG_SERVER_URI);
|
1112
|
+
GPR_ASSERT(server_uri != nullptr);
|
1113
|
+
absl::StatusOr<URI> uri = URI::Parse(server_uri);
|
1114
|
+
GPR_ASSERT(uri.ok() && !uri->path().empty());
|
1115
|
+
absl::string_view server_name = absl::StripPrefix(uri->path(), "/");
|
1116
|
+
// Determine if it's an xds URI.
|
1117
|
+
bool is_xds_uri = uri->scheme() == "xds" || uri->scheme() == "google-c2p";
|
1118
|
+
// Get XdsClient.
|
1119
|
+
RefCountedPtr<XdsClient> xds_client =
|
1120
|
+
XdsClient::GetFromChannelArgs(*args.args);
|
1121
|
+
if (xds_client == nullptr) {
|
1122
|
+
if (!is_xds_uri) {
|
1123
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1124
|
+
xds_client = XdsClient::GetOrCreate(args.args, &error);
|
1125
|
+
if (error != GRPC_ERROR_NONE) {
|
1126
|
+
gpr_log(GPR_ERROR,
|
1127
|
+
"cannot get or create XdsClient to instantiate "
|
1128
|
+
"xds_cluster_resolver LB policy: %s",
|
1129
|
+
grpc_error_std_string(error).c_str());
|
1130
|
+
GRPC_ERROR_UNREF(error);
|
1131
|
+
return nullptr;
|
1132
|
+
}
|
1133
|
+
} else {
|
1134
|
+
gpr_log(GPR_ERROR,
|
1135
|
+
"XdsClient not present in channel args -- cannot instantiate "
|
1136
|
+
"xds_cluster_resolver LB policy");
|
1137
|
+
return nullptr;
|
1138
|
+
}
|
1108
1139
|
}
|
1109
|
-
return MakeOrphanable<XdsClusterResolverChildHandler>(
|
1110
|
-
|
1140
|
+
return MakeOrphanable<XdsClusterResolverChildHandler>(
|
1141
|
+
std::move(xds_client), std::move(args), server_name, is_xds_uri);
|
1111
1142
|
}
|
1112
1143
|
|
1113
1144
|
const char* name() const override { return kXdsClusterResolver; }
|
1114
1145
|
|
1115
1146
|
RefCountedPtr<LoadBalancingPolicy::Config> ParseLoadBalancingConfig(
|
1116
|
-
const Json& json,
|
1147
|
+
const Json& json, grpc_error_handle* error) const override {
|
1117
1148
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
1118
1149
|
if (json.type() == Json::Type::JSON_NULL) {
|
1119
1150
|
// xds_cluster_resolver was mentioned as a policy in the deprecated
|
@@ -1124,7 +1155,7 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1124
1155
|
"Please use loadBalancingConfig field of service config instead.");
|
1125
1156
|
return nullptr;
|
1126
1157
|
}
|
1127
|
-
std::vector<
|
1158
|
+
std::vector<grpc_error_handle> error_list;
|
1128
1159
|
std::vector<XdsClusterResolverLbConfig::DiscoveryMechanism>
|
1129
1160
|
discovery_mechanisms;
|
1130
1161
|
auto it = json.object_value().find("discoveryMechanisms");
|
@@ -1138,13 +1169,13 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1138
1169
|
const Json::Array& array = it->second.array_value();
|
1139
1170
|
for (size_t i = 0; i < array.size(); ++i) {
|
1140
1171
|
XdsClusterResolverLbConfig::DiscoveryMechanism discovery_mechanism;
|
1141
|
-
std::vector<
|
1172
|
+
std::vector<grpc_error_handle> discovery_mechanism_errors =
|
1142
1173
|
ParseDiscoveryMechanism(array[i], &discovery_mechanism);
|
1143
1174
|
if (!discovery_mechanism_errors.empty()) {
|
1144
|
-
|
1175
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
1145
1176
|
absl::StrCat("field:discovery_mechanism element: ", i, " error")
|
1146
1177
|
.c_str());
|
1147
|
-
for (
|
1178
|
+
for (grpc_error_handle discovery_mechanism_error :
|
1148
1179
|
discovery_mechanism_errors) {
|
1149
1180
|
error = grpc_error_add_child(error, discovery_mechanism_error);
|
1150
1181
|
}
|
@@ -1184,65 +1215,11 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1184
1215
|
}
|
1185
1216
|
policy_it = policy.find("RING_HASH");
|
1186
1217
|
if (policy_it != policy.end()) {
|
1187
|
-
if (policy_it->second.type() != Json::Type::OBJECT) {
|
1188
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1189
|
-
"field:RING_HASH error:type should be object"));
|
1190
|
-
continue;
|
1191
|
-
}
|
1192
|
-
// TODO(donnadionne): Move this to a method in
|
1193
|
-
// ring_hash_experimental and call it here.
|
1194
|
-
const Json::Object& ring_hash = policy_it->second.object_value();
|
1195
1218
|
xds_lb_policy = array[i];
|
1196
|
-
size_t min_ring_size
|
1197
|
-
size_t max_ring_size
|
1198
|
-
|
1199
|
-
|
1200
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1201
|
-
"field:min_ring_size missing"));
|
1202
|
-
} else if (ring_hash_it->second.type() != Json::Type::NUMBER) {
|
1203
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1204
|
-
"field:min_ring_size error: should be of "
|
1205
|
-
"number"));
|
1206
|
-
} else {
|
1207
|
-
min_ring_size = gpr_parse_nonnegative_int(
|
1208
|
-
ring_hash_it->second.string_value().c_str());
|
1209
|
-
}
|
1210
|
-
ring_hash_it = ring_hash.find("max_ring_size");
|
1211
|
-
if (ring_hash_it == ring_hash.end()) {
|
1212
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1213
|
-
"field:max_ring_size missing"));
|
1214
|
-
} else if (ring_hash_it->second.type() != Json::Type::NUMBER) {
|
1215
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1216
|
-
"field:max_ring_size error: should be of "
|
1217
|
-
"number"));
|
1218
|
-
} else {
|
1219
|
-
max_ring_size = gpr_parse_nonnegative_int(
|
1220
|
-
ring_hash_it->second.string_value().c_str());
|
1221
|
-
}
|
1222
|
-
if (min_ring_size <= 0 || min_ring_size > 8388608 ||
|
1223
|
-
max_ring_size <= 0 || max_ring_size > 8388608 ||
|
1224
|
-
min_ring_size > max_ring_size) {
|
1225
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1226
|
-
"field:max_ring_size and or min_ring_size error: "
|
1227
|
-
"values need to be in the range of 1 to 8388608 "
|
1228
|
-
"and max_ring_size cannot be smaller than "
|
1229
|
-
"min_ring_size"));
|
1230
|
-
}
|
1231
|
-
ring_hash_it = ring_hash.find("hash_function");
|
1232
|
-
if (ring_hash_it == ring_hash.end()) {
|
1233
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1234
|
-
"field:hash_function missing"));
|
1235
|
-
} else if (ring_hash_it->second.type() != Json::Type::STRING) {
|
1236
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1237
|
-
"field:hash_function error: should be a "
|
1238
|
-
"string"));
|
1239
|
-
} else if (ring_hash_it->second.string_value() != "XX_HASH" &&
|
1240
|
-
ring_hash_it->second.string_value() != "MURMUR_HASH_2") {
|
1241
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1242
|
-
"field:hash_function error: unsupported "
|
1243
|
-
"hash_function"));
|
1244
|
-
}
|
1245
|
-
break;
|
1219
|
+
size_t min_ring_size;
|
1220
|
+
size_t max_ring_size;
|
1221
|
+
ParseRingHashLbConfig(policy_it->second, &min_ring_size,
|
1222
|
+
&max_ring_size, &error_list);
|
1246
1223
|
}
|
1247
1224
|
}
|
1248
1225
|
}
|
@@ -1259,10 +1236,10 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1259
1236
|
}
|
1260
1237
|
|
1261
1238
|
private:
|
1262
|
-
static std::vector<
|
1239
|
+
static std::vector<grpc_error_handle> ParseDiscoveryMechanism(
|
1263
1240
|
const Json& json,
|
1264
1241
|
XdsClusterResolverLbConfig::DiscoveryMechanism* discovery_mechanism) {
|
1265
|
-
std::vector<
|
1242
|
+
std::vector<grpc_error_handle> error_list;
|
1266
1243
|
if (json.type() != Json::Type::OBJECT) {
|
1267
1244
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1268
1245
|
"value should be of type object"));
|
@@ -1314,35 +1291,46 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1314
1291
|
if (it->second.string_value() == "EDS") {
|
1315
1292
|
discovery_mechanism->type = XdsClusterResolverLbConfig::
|
1316
1293
|
DiscoveryMechanism::DiscoveryMechanismType::EDS;
|
1294
|
+
it = json.object_value().find("edsServiceName");
|
1295
|
+
if (it != json.object_value().end()) {
|
1296
|
+
if (it->second.type() != Json::Type::STRING) {
|
1297
|
+
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1298
|
+
"field:edsServiceName error:type should be string"));
|
1299
|
+
} else {
|
1300
|
+
discovery_mechanism->eds_service_name = it->second.string_value();
|
1301
|
+
}
|
1302
|
+
}
|
1317
1303
|
} else if (it->second.string_value() == "LOGICAL_DNS") {
|
1318
1304
|
discovery_mechanism->type = XdsClusterResolverLbConfig::
|
1319
1305
|
DiscoveryMechanism::DiscoveryMechanismType::LOGICAL_DNS;
|
1306
|
+
it = json.object_value().find("dnsHostname");
|
1307
|
+
if (it == json.object_value().end()) {
|
1308
|
+
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1309
|
+
"field:dnsHostname error:required field missing"));
|
1310
|
+
} else if (it->second.type() != Json::Type::STRING) {
|
1311
|
+
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1312
|
+
"field:dnsHostname error:type should be string"));
|
1313
|
+
} else {
|
1314
|
+
discovery_mechanism->dns_hostname = it->second.string_value();
|
1315
|
+
}
|
1320
1316
|
} else {
|
1321
1317
|
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1322
1318
|
"field:type error:invalid type"));
|
1323
1319
|
}
|
1324
1320
|
}
|
1325
|
-
// EDS service name.
|
1326
|
-
it = json.object_value().find("edsServiceName");
|
1327
|
-
if (it != json.object_value().end()) {
|
1328
|
-
if (it->second.type() != Json::Type::STRING) {
|
1329
|
-
error_list.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1330
|
-
"field:xds_cluster_resolverServiceName error:type should be "
|
1331
|
-
"string"));
|
1332
|
-
} else {
|
1333
|
-
discovery_mechanism->eds_service_name = it->second.string_value();
|
1334
|
-
}
|
1335
|
-
}
|
1336
1321
|
return error_list;
|
1337
1322
|
}
|
1338
1323
|
|
1339
1324
|
class XdsClusterResolverChildHandler : public ChildPolicyHandler {
|
1340
1325
|
public:
|
1341
1326
|
XdsClusterResolverChildHandler(RefCountedPtr<XdsClient> xds_client,
|
1342
|
-
Args args
|
1327
|
+
Args args, absl::string_view server_name,
|
1328
|
+
bool is_xds_uri)
|
1343
1329
|
: ChildPolicyHandler(std::move(args),
|
1344
1330
|
&grpc_lb_xds_cluster_resolver_trace),
|
1345
|
-
xds_client_(std::move(xds_client))
|
1331
|
+
xds_client_(std::move(xds_client)),
|
1332
|
+
server_name_(server_name),
|
1333
|
+
is_xds_uri_(is_xds_uri) {}
|
1346
1334
|
|
1347
1335
|
bool ConfigChangeRequiresNewPolicyInstance(
|
1348
1336
|
LoadBalancingPolicy::Config* old_config,
|
@@ -1359,11 +1347,14 @@ class XdsClusterResolverLbFactory : public LoadBalancingPolicyFactory {
|
|
1359
1347
|
|
1360
1348
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
1361
1349
|
const char* /*name*/, LoadBalancingPolicy::Args args) const override {
|
1362
|
-
return MakeOrphanable<XdsClusterResolverLb>(xds_client_, std::move(args)
|
1350
|
+
return MakeOrphanable<XdsClusterResolverLb>(xds_client_, std::move(args),
|
1351
|
+
server_name_, is_xds_uri_);
|
1363
1352
|
}
|
1364
1353
|
|
1365
1354
|
private:
|
1366
1355
|
RefCountedPtr<XdsClient> xds_client_;
|
1356
|
+
std::string server_name_;
|
1357
|
+
bool is_xds_uri_;
|
1367
1358
|
};
|
1368
1359
|
};
|
1369
1360
|
|