grpc 1.43.1 → 1.44.0.pre2
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 +84 -64
- data/include/grpc/grpc_security.h +10 -0
- data/include/grpc/impl/codegen/compression_types.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +6 -0
- data/src/core/ext/filters/client_channel/backend_metric.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel.cc +62 -68
- data/src/core/ext/filters/client_channel/client_channel.h +8 -8
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +4 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -14
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +3 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +31 -32
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
- 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/pick_first/pick_first.cc +43 -29
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +120 -68
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +60 -48
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +62 -61
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +16 -11
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +11 -5
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +19 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +50 -105
- data/src/core/ext/filters/client_channel/lb_policy.cc +15 -14
- data/src/core/ext/filters/client_channel/lb_policy.h +19 -3
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +207 -81
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +22 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +19 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +23 -38
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +118 -207
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +25 -32
- 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 +82 -73
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +10 -10
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +2 -5
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +157 -67
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +2 -2
- data/src/core/ext/filters/client_channel/retry_filter.cc +37 -64
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -1
- data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +1 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +12 -16
- data/src/core/ext/filters/client_channel/subchannel.h +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +37 -48
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +6 -8
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +51 -122
- data/src/core/ext/filters/http/client_authority_filter.cc +8 -24
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +42 -140
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +5 -25
- data/src/core/ext/filters/http/server/http_server_filter.cc +50 -135
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/rbac/rbac_filter.cc +157 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +74 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +605 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +70 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +3 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +11 -6
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +1 -1
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +89 -29
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +45 -186
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +341 -279
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +69 -159
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +19 -32
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +94 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -24
- data/src/core/ext/transport/chttp2/transport/internal.h +0 -33
- data/src/core/ext/transport/chttp2/transport/parsing.cc +0 -6
- data/src/core/ext/transport/chttp2/transport/writing.cc +47 -116
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +11 -63
- data/src/core/ext/transport/inproc/inproc_transport.h +0 -3
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +61 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +146 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +188 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/eval.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/explain.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/value.upbdefs.h +55 -0
- data/src/core/ext/xds/upb_utils.h +65 -0
- data/src/core/ext/xds/xds_api.cc +81 -3458
- data/src/core/ext/xds/xds_api.h +56 -611
- data/src/core/ext/xds/xds_bootstrap.cc +189 -125
- data/src/core/ext/xds/xds_bootstrap.h +20 -15
- data/src/core/ext/xds/xds_certificate_provider.h +1 -0
- data/src/core/ext/xds/xds_channel_creds.cc +108 -0
- data/src/core/ext/xds/xds_channel_creds.h +50 -0
- data/src/core/ext/xds/xds_client.cc +584 -994
- data/src/core/ext/xds/xds_client.h +78 -135
- data/src/core/ext/xds/xds_cluster.cc +451 -0
- data/src/core/ext/xds/xds_cluster.h +111 -0
- data/src/core/ext/xds/xds_common_types.cc +388 -0
- data/src/core/ext/xds/xds_common_types.h +110 -0
- data/src/core/ext/xds/xds_endpoint.cc +364 -0
- data/src/core/ext/xds/xds_endpoint.h +135 -0
- data/src/core/ext/xds/xds_http_filters.cc +5 -0
- data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
- data/src/core/ext/xds/xds_listener.cc +1036 -0
- data/src/core/ext/xds/xds_listener.h +220 -0
- data/src/core/ext/{transport/chttp2/transport/hpack_utils.h → xds/xds_resource_type.cc} +12 -9
- data/src/core/ext/xds/xds_resource_type.h +98 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
- data/src/core/ext/xds/xds_route_config.cc +993 -0
- data/src/core/ext/xds/xds_route_config.h +215 -0
- data/src/core/ext/xds/xds_routing.cc +11 -8
- data/src/core/ext/xds/xds_routing.h +8 -5
- data/src/core/ext/xds/xds_server_config_fetcher.cc +159 -99
- data/src/core/lib/address_utils/parse_address.cc +20 -0
- data/src/core/lib/address_utils/parse_address.h +5 -0
- data/src/core/lib/address_utils/sockaddr_utils.cc +33 -36
- data/src/core/lib/address_utils/sockaddr_utils.h +1 -16
- data/src/core/lib/backoff/backoff.cc +4 -30
- data/src/core/lib/backoff/backoff.h +3 -3
- data/src/core/lib/channel/channel_args.cc +0 -1
- data/src/core/lib/channel/channel_stack.cc +8 -0
- data/src/core/lib/channel/channel_stack.h +1 -1
- data/src/core/lib/channel/channel_stack_builder.cc +5 -9
- data/src/core/lib/channel/channel_stack_builder.h +4 -7
- data/src/core/lib/channel/channelz.cc +1 -0
- data/src/core/lib/compression/compression.cc +19 -111
- data/src/core/lib/compression/compression_internal.cc +142 -202
- data/src/core/lib/compression/compression_internal.h +64 -69
- data/src/core/lib/compression/message_compress.cc +11 -11
- data/src/core/lib/compression/message_compress.h +2 -2
- data/src/core/lib/gpr/useful.h +4 -0
- data/src/core/lib/gprpp/bitset.h +7 -0
- data/src/core/lib/gprpp/chunked_vector.h +45 -3
- data/src/core/lib/gprpp/status_helper.cc +20 -28
- data/src/core/lib/gprpp/status_helper.h +6 -19
- data/src/core/lib/gprpp/table.h +11 -0
- data/src/core/lib/http/httpcli.cc +37 -46
- data/src/core/lib/http/httpcli.h +3 -15
- data/src/core/lib/iomgr/call_combiner.cc +15 -4
- data/src/core/lib/iomgr/closure.h +29 -9
- data/src/core/lib/iomgr/combiner.cc +25 -3
- data/src/core/lib/iomgr/error.cc +2 -0
- data/src/core/lib/iomgr/error.h +3 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +3 -2
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +6 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +2 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +66 -48
- data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
- data/src/core/lib/iomgr/exec_ctx.cc +22 -9
- data/src/core/lib/iomgr/executor.cc +10 -1
- data/src/core/lib/iomgr/fork_posix.cc +3 -2
- data/src/core/lib/iomgr/iomgr_custom.cc +4 -1
- data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +2 -2
- data/src/core/lib/iomgr/port.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +5 -24
- data/src/core/lib/iomgr/resolve_address.h +47 -44
- data/src/core/lib/iomgr/resolve_address_custom.cc +131 -109
- data/src/core/lib/iomgr/resolve_address_custom.h +101 -19
- data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +82 -66
- data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +93 -74
- data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
- data/src/core/lib/iomgr/resolved_address.h +39 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +1 -0
- data/src/core/lib/iomgr/unix_sockets_posix.cc +22 -34
- data/src/core/lib/iomgr/unix_sockets_posix.h +4 -7
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +6 -15
- data/src/core/lib/matchers/matchers.cc +1 -1
- data/src/core/lib/promise/activity.h +49 -20
- data/src/core/lib/promise/detail/status.h +5 -0
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +10 -5
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_registry.cc +3 -2
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_registry.h +4 -5
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +1 -1
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +4 -4
- data/src/core/lib/resource_quota/api.h +0 -1
- data/src/core/lib/{gprpp → resource_quota}/arena.cc +16 -13
- data/src/core/lib/{gprpp → resource_quota}/arena.h +24 -13
- data/src/core/lib/security/authorization/evaluate_args.cc +30 -15
- data/src/core/lib/security/authorization/evaluate_args.h +1 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
- data/src/core/lib/security/authorization/matchers.cc +227 -0
- data/src/core/lib/security/authorization/matchers.h +211 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
- data/src/core/lib/security/authorization/rbac_policy.h +170 -0
- data/src/core/lib/security/context/security_context.cc +4 -2
- data/src/core/lib/security/context/security_context.h +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +5 -5
- data/src/core/lib/security/credentials/composite/composite_credentials.h +4 -3
- data/src/core/lib/security/credentials/credentials.h +10 -20
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +6 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +7 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.h +2 -7
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
- data/src/core/lib/security/credentials/fake/fake_credentials.h +8 -7
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +2 -5
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +16 -19
- data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -5
- data/src/core/lib/security/credentials/jwt/json_token.cc +4 -6
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +16 -28
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +8 -8
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +6 -13
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +44 -57
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +13 -15
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +5 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +1 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +6 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +7 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +1 -1
- data/src/core/lib/security/security_connector/security_connector.cc +0 -4
- data/src/core/lib/security/security_connector/security_connector.h +5 -1
- data/src/core/lib/security/security_connector/ssl_utils.cc +14 -24
- data/src/core/lib/security/security_connector/ssl_utils.h +5 -14
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +2 -3
- data/src/core/lib/security/transport/auth_filters.h +7 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +53 -33
- data/src/core/lib/security/transport/server_auth_filter.cc +40 -35
- data/src/core/{ext → lib}/service_config/service_config.cc +2 -2
- data/src/core/{ext → lib}/service_config/service_config.h +4 -4
- data/src/core/{ext → lib}/service_config/service_config_call_data.h +5 -5
- data/src/core/{ext → lib}/service_config/service_config_parser.cc +1 -1
- data/src/core/{ext → lib}/service_config/service_config_parser.h +3 -3
- data/src/core/lib/slice/slice.cc +3 -1
- data/src/core/lib/slice/slice.h +43 -13
- data/src/core/lib/slice/slice_intern.cc +3 -101
- data/src/core/lib/slice/slice_internal.h +1 -2
- data/src/core/lib/slice/slice_refcount.h +4 -13
- data/src/core/lib/slice/slice_refcount_base.h +0 -16
- data/src/core/lib/surface/call.cc +140 -382
- data/src/core/lib/surface/call.h +4 -4
- data/src/core/lib/surface/channel.cc +42 -44
- data/src/core/lib/surface/channel.h +4 -4
- data/src/core/lib/surface/init.cc +0 -2
- data/src/core/lib/surface/lame_client.cc +0 -1
- data/src/core/lib/surface/server.cc +12 -29
- data/src/core/lib/surface/server.h +2 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/error_utils.h +14 -0
- data/src/core/lib/transport/metadata_batch.h +799 -717
- data/src/core/lib/transport/parsed_metadata.cc +2 -0
- data/src/core/lib/transport/parsed_metadata.h +95 -92
- data/src/core/lib/transport/timeout_encoding.cc +200 -66
- data/src/core/lib/transport/timeout_encoding.h +40 -10
- data/src/core/lib/transport/transport.h +1 -1
- data/src/core/lib/transport/transport_op_string.cc +6 -39
- data/src/core/lib/uri/uri_parser.cc +223 -53
- data/src/core/lib/uri/uri_parser.h +36 -23
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -4
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -5
- data/src/core/tsi/ssl_transport_security.cc +53 -13
- data/src/core/tsi/ssl_transport_security.h +18 -6
- data/src/ruby/ext/grpc/extconf.rb +10 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -1
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
- data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
- data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
- data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
- data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
- data/third_party/abseil-cpp/absl/random/random.h +189 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +29 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +13 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +10 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +23 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +4 -0
- data/third_party/xxhash/xxhash.h +607 -352
- metadata +149 -77
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +0 -107
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +0 -46
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +0 -60
- data/src/core/lib/compression/algorithm_metadata.h +0 -62
- data/src/core/lib/compression/compression_args.cc +0 -140
- data/src/core/lib/compression/compression_args.h +0 -58
- data/src/core/lib/compression/stream_compression.cc +0 -81
- data/src/core/lib/compression/stream_compression.h +0 -117
- data/src/core/lib/compression/stream_compression_gzip.cc +0 -231
- data/src/core/lib/compression/stream_compression_gzip.h +0 -28
- data/src/core/lib/compression/stream_compression_identity.cc +0 -91
- data/src/core/lib/compression/stream_compression_identity.h +0 -29
- data/src/core/lib/security/credentials/credentials_metadata.cc +0 -61
- data/src/core/lib/slice/static_slice.cc +0 -377
- data/src/core/lib/slice/static_slice.h +0 -300
- data/src/core/lib/transport/metadata.cc +0 -714
- data/src/core/lib/transport/metadata.h +0 -449
- data/src/core/lib/transport/metadata_batch.cc +0 -99
- data/src/core/lib/transport/static_metadata.cc +0 -1032
- data/src/core/lib/transport/static_metadata.h +0 -322
- data/src/core/lib/transport/status_metadata.cc +0 -63
- data/src/core/lib/transport/status_metadata.h +0 -48
@@ -80,7 +80,6 @@
|
|
80
80
|
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
81
81
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
82
82
|
#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"
|
83
|
-
#include "src/core/ext/filters/client_channel/server_address.h"
|
84
83
|
#include "src/core/lib/address_utils/parse_address.h"
|
85
84
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
86
85
|
#include "src/core/lib/backoff/backoff.h"
|
@@ -96,11 +95,11 @@
|
|
96
95
|
#include "src/core/lib/iomgr/sockaddr.h"
|
97
96
|
#include "src/core/lib/iomgr/socket_utils.h"
|
98
97
|
#include "src/core/lib/iomgr/timer.h"
|
98
|
+
#include "src/core/lib/resolver/server_address.h"
|
99
99
|
#include "src/core/lib/slice/slice_internal.h"
|
100
100
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
101
101
|
#include "src/core/lib/surface/call.h"
|
102
102
|
#include "src/core/lib/surface/channel.h"
|
103
|
-
#include "src/core/lib/transport/static_metadata.h"
|
104
103
|
|
105
104
|
#define GRPC_GRPCLB_INITIAL_CONNECT_BACKOFF_SECONDS 1
|
106
105
|
#define GRPC_GRPCLB_RECONNECT_BACKOFF_MULTIPLIER 1.6
|
@@ -113,9 +112,6 @@ namespace grpc_core {
|
|
113
112
|
|
114
113
|
TraceFlag grpc_lb_glb_trace(false, "glb");
|
115
114
|
|
116
|
-
const char kGrpcLbClientStatsMetadataKey[] = "grpclb_client_stats";
|
117
|
-
const char kGrpcLbLbTokenMetadataKey[] = "lb-token";
|
118
|
-
|
119
115
|
const char kGrpcLbAddressAttributeKey[] = "grpclb";
|
120
116
|
|
121
117
|
namespace {
|
@@ -401,10 +397,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
401
397
|
void ShutdownLocked() override;
|
402
398
|
|
403
399
|
// Helper functions used in UpdateLocked().
|
404
|
-
void
|
405
|
-
const grpc_channel_args& args);
|
406
|
-
static ServerAddressList AddNullLbTokenToAddresses(
|
407
|
-
const ServerAddressList& addresses);
|
400
|
+
void UpdateBalancerChannelLocked(const grpc_channel_args& args);
|
408
401
|
|
409
402
|
void CancelBalancerChannelConnectivityWatchLocked();
|
410
403
|
|
@@ -473,7 +466,10 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
473
466
|
// Whether we're in fallback mode.
|
474
467
|
bool fallback_mode_ = false;
|
475
468
|
// The backend addresses from the resolver.
|
476
|
-
ServerAddressList fallback_backend_addresses_;
|
469
|
+
absl::StatusOr<ServerAddressList> fallback_backend_addresses_;
|
470
|
+
// The last resolution note from our parent.
|
471
|
+
// To be passed to child policy when fallback_backend_addresses_ is empty.
|
472
|
+
std::string resolution_note_;
|
477
473
|
// State for fallback-at-startup checks.
|
478
474
|
// Timeout after startup after which we will go into fallback mode if
|
479
475
|
// we have not received a serverlist from the balancer.
|
@@ -653,7 +649,7 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
653
649
|
// a string and rely on the client_load_reporting filter to know
|
654
650
|
// how to interpret it.
|
655
651
|
args.initial_metadata->Add(
|
656
|
-
|
652
|
+
GrpcLbClientStatsMetadata::key(),
|
657
653
|
absl::string_view(reinterpret_cast<const char*>(client_stats), 0));
|
658
654
|
// Update calls-started.
|
659
655
|
client_stats->AddCallStarted();
|
@@ -666,7 +662,7 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
666
662
|
char* lb_token = static_cast<char*>(
|
667
663
|
args.call_state->Alloc(subchannel_wrapper->lb_token().size() + 1));
|
668
664
|
strcpy(lb_token, subchannel_wrapper->lb_token().c_str());
|
669
|
-
args.initial_metadata->Add(
|
665
|
+
args.initial_metadata->Add(LbTokenMetadata::key(), lb_token);
|
670
666
|
}
|
671
667
|
// Unwrap subchannel to pass up to the channel.
|
672
668
|
complete_pick->subchannel = subchannel_wrapper->wrapped_subchannel();
|
@@ -794,7 +790,7 @@ GrpcLb::BalancerCallState::BalancerCallState(
|
|
794
790
|
lb_call_ = grpc_channel_create_pollset_set_call(
|
795
791
|
grpclb_policy()->lb_channel_, nullptr, GRPC_PROPAGATE_DEFAULTS,
|
796
792
|
grpclb_policy_->interested_parties(),
|
797
|
-
|
793
|
+
Slice::FromStaticString("/grpc.lb.v1.LoadBalancer/BalanceLoad").c_slice(),
|
798
794
|
nullptr, deadline, nullptr);
|
799
795
|
// Init the LB call request payload.
|
800
796
|
upb::Arena arena;
|
@@ -1441,8 +1437,20 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1441
1437
|
const bool is_initial_update = lb_channel_ == nullptr;
|
1442
1438
|
config_ = args.config;
|
1443
1439
|
GPR_ASSERT(config_ != nullptr);
|
1444
|
-
|
1445
|
-
|
1440
|
+
// Update fallback address list.
|
1441
|
+
fallback_backend_addresses_ = std::move(args.addresses);
|
1442
|
+
if (fallback_backend_addresses_.ok()) {
|
1443
|
+
// Add null LB token attributes.
|
1444
|
+
for (ServerAddress& address : *fallback_backend_addresses_) {
|
1445
|
+
address = address.WithAttribute(
|
1446
|
+
kGrpcLbAddressAttributeKey,
|
1447
|
+
absl::make_unique<TokenAndClientStatsAttribute>("", nullptr));
|
1448
|
+
}
|
1449
|
+
}
|
1450
|
+
resolution_note_ = std::move(args.resolution_note);
|
1451
|
+
// Update balancer channel.
|
1452
|
+
UpdateBalancerChannelLocked(*args.args);
|
1453
|
+
// Update the existing child policy, if any.
|
1446
1454
|
if (child_policy_ != nullptr) CreateOrUpdateChildPolicyLocked();
|
1447
1455
|
// If this is the initial update, start the fallback-at-startup checks
|
1448
1456
|
// and the balancer call.
|
@@ -1471,21 +1479,7 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1471
1479
|
// helpers for UpdateLocked()
|
1472
1480
|
//
|
1473
1481
|
|
1474
|
-
|
1475
|
-
const ServerAddressList& addresses) {
|
1476
|
-
ServerAddressList addresses_out;
|
1477
|
-
for (const ServerAddress& address : addresses) {
|
1478
|
-
addresses_out.emplace_back(address.WithAttribute(
|
1479
|
-
kGrpcLbAddressAttributeKey,
|
1480
|
-
absl::make_unique<TokenAndClientStatsAttribute>("", nullptr)));
|
1481
|
-
}
|
1482
|
-
return addresses_out;
|
1483
|
-
}
|
1484
|
-
|
1485
|
-
void GrpcLb::ProcessAddressesAndChannelArgsLocked(
|
1486
|
-
const ServerAddressList& addresses, const grpc_channel_args& args) {
|
1487
|
-
// Update fallback address list.
|
1488
|
-
fallback_backend_addresses_ = AddNullLbTokenToAddresses(addresses);
|
1482
|
+
void GrpcLb::UpdateBalancerChannelLocked(const grpc_channel_args& args) {
|
1489
1483
|
// Make sure that GRPC_ARG_LB_POLICY_NAME is set in channel args,
|
1490
1484
|
// since we use this to trigger the client_load_reporting filter.
|
1491
1485
|
static const char* args_to_remove[] = {GRPC_ARG_LB_POLICY_NAME};
|
@@ -1687,9 +1681,14 @@ void GrpcLb::CreateOrUpdateChildPolicyLocked() {
|
|
1687
1681
|
// If CreateOrUpdateChildPolicyLocked() is invoked when we haven't
|
1688
1682
|
// received any serverlist from the balancer, we use the fallback backends
|
1689
1683
|
// returned by the resolver. Note that the fallback backend list may be
|
1690
|
-
// empty, in which case the new
|
1691
|
-
// picks pending.
|
1684
|
+
// empty, in which case the new child policy will fail the picks.
|
1692
1685
|
update_args.addresses = fallback_backend_addresses_;
|
1686
|
+
if (fallback_backend_addresses_.ok() &&
|
1687
|
+
fallback_backend_addresses_->empty()) {
|
1688
|
+
update_args.resolution_note = absl::StrCat(
|
1689
|
+
"grpclb in fallback mode without any balancer addresses: ",
|
1690
|
+
resolution_note_);
|
1691
|
+
}
|
1693
1692
|
} else {
|
1694
1693
|
update_args.addresses = serverlist_->GetServerAddressList(
|
1695
1694
|
lb_calld_ == nullptr ? nullptr : lb_calld_->client_stats());
|
@@ -36,12 +36,5 @@
|
|
36
36
|
#define GRPC_ARG_GRPCLB_SUBCHANNEL_CACHE_INTERVAL_MS \
|
37
37
|
"grpc.internal.grpclb_subchannel_cache_interval_ms"
|
38
38
|
|
39
|
-
namespace grpc_core {
|
40
|
-
|
41
|
-
extern const char kGrpcLbClientStatsMetadataKey[];
|
42
|
-
extern const char kGrpcLbLbTokenMetadataKey[];
|
43
|
-
|
44
|
-
} // namespace grpc_core
|
45
|
-
|
46
39
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_GRPCLB_GRPCLB_H \
|
47
40
|
*/
|
@@ -29,10 +29,10 @@
|
|
29
29
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
30
30
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h"
|
31
31
|
#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h"
|
32
|
-
#include "src/core/ext/filters/client_channel/server_address.h"
|
33
32
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
34
33
|
#include "src/core/lib/channel/channel_args.h"
|
35
34
|
#include "src/core/lib/gpr/string.h"
|
35
|
+
#include "src/core/lib/resolver/server_address.h"
|
36
36
|
#include "src/core/lib/security/credentials/credentials.h"
|
37
37
|
#include "src/core/lib/slice/slice_internal.h"
|
38
38
|
|
@@ -1,20 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
*
|
17
|
-
*/
|
1
|
+
//
|
2
|
+
// Copyright 2015 gRPC authors.
|
3
|
+
//
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
// you may not use this file except in compliance with the License.
|
6
|
+
// You may obtain a copy of the License at
|
7
|
+
//
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
//
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
// See the License for the specific language governing permissions and
|
14
|
+
// limitations under the License.
|
15
|
+
//
|
18
16
|
|
19
17
|
#include <grpc/support/port_platform.h>
|
20
18
|
|
@@ -24,11 +22,11 @@
|
|
24
22
|
|
25
23
|
#include "src/core/ext/filters/client_channel/lb_policy/subchannel_list.h"
|
26
24
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
27
|
-
#include "src/core/ext/filters/client_channel/server_address.h"
|
28
25
|
#include "src/core/ext/filters/client_channel/subchannel.h"
|
29
26
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
30
27
|
#include "src/core/lib/channel/channel_args.h"
|
31
28
|
#include "src/core/lib/gprpp/sync.h"
|
29
|
+
#include "src/core/lib/resolver/server_address.h"
|
32
30
|
#include "src/core/lib/transport/connectivity_state.h"
|
33
31
|
#include "src/core/lib/transport/error_utils.h"
|
34
32
|
|
@@ -181,20 +179,25 @@ void PickFirst::ResetBackoffLocked() {
|
|
181
179
|
}
|
182
180
|
|
183
181
|
void PickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
|
184
|
-
// Create a subchannel list from
|
182
|
+
// Create a subchannel list from latest_update_args_.
|
183
|
+
ServerAddressList addresses;
|
184
|
+
if (latest_update_args_.addresses.ok()) {
|
185
|
+
addresses = *latest_update_args_.addresses;
|
186
|
+
}
|
185
187
|
auto subchannel_list = MakeOrphanable<PickFirstSubchannelList>(
|
186
|
-
this, &grpc_lb_pick_first_trace,
|
188
|
+
this, &grpc_lb_pick_first_trace, std::move(addresses),
|
187
189
|
*latest_update_args_.args);
|
188
190
|
// Empty update or no valid subchannels.
|
189
191
|
if (subchannel_list->num_subchannels() == 0) {
|
190
192
|
// Unsubscribe from all current subchannels.
|
191
193
|
subchannel_list_ = std::move(subchannel_list); // Empty list.
|
192
194
|
selected_ = nullptr;
|
193
|
-
//
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
195
|
+
// Put the channel in TRANSIENT_FAILURE.
|
196
|
+
absl::Status status =
|
197
|
+
latest_update_args_.addresses.ok()
|
198
|
+
? absl::UnavailableError(absl::StrCat(
|
199
|
+
"empty address list: ", latest_update_args_.resolution_note))
|
200
|
+
: latest_update_args_.addresses.status();
|
198
201
|
channel_control_helper()->UpdateState(
|
199
202
|
GRPC_CHANNEL_TRANSIENT_FAILURE, status,
|
200
203
|
absl::make_unique<TransientFailurePicker>(status));
|
@@ -258,17 +261,28 @@ void PickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
|
|
258
261
|
|
259
262
|
void PickFirst::UpdateLocked(UpdateArgs args) {
|
260
263
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_pick_first_trace)) {
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
+
if (args.addresses.ok()) {
|
265
|
+
gpr_log(GPR_INFO,
|
266
|
+
"Pick First %p received update with %" PRIuPTR " addresses", this,
|
267
|
+
args.addresses->size());
|
268
|
+
} else {
|
269
|
+
gpr_log(GPR_INFO, "Pick First %p received update with address error: %s",
|
270
|
+
this, args.addresses.status().ToString().c_str());
|
271
|
+
}
|
264
272
|
}
|
265
|
-
//
|
273
|
+
// Add GRPC_ARG_INHIBIT_HEALTH_CHECKING channel arg.
|
266
274
|
grpc_arg new_arg = grpc_channel_arg_integer_create(
|
267
275
|
const_cast<char*>(GRPC_ARG_INHIBIT_HEALTH_CHECKING), 1);
|
268
276
|
const grpc_channel_args* new_args =
|
269
277
|
grpc_channel_args_copy_and_add(args.args, &new_arg, 1);
|
270
278
|
std::swap(new_args, args.args);
|
271
279
|
grpc_channel_args_destroy(new_args);
|
280
|
+
// If the update contains a resolver error and we have a previous update
|
281
|
+
// that was not a resolver error, keep using the previous addresses.
|
282
|
+
if (!args.addresses.ok() && latest_update_args_.config != nullptr) {
|
283
|
+
args.addresses = std::move(latest_update_args_.addresses);
|
284
|
+
}
|
285
|
+
// Update latest_update_args_.
|
272
286
|
latest_update_args_ = std::move(args);
|
273
287
|
// If we are not in idle, start connection attempt immediately.
|
274
288
|
// Otherwise, we defer the attempt into ExitIdleLocked().
|
@@ -224,7 +224,7 @@ class PriorityLb : public LoadBalancingPolicy {
|
|
224
224
|
// Current channel args and config from the resolver.
|
225
225
|
const grpc_channel_args* args_ = nullptr;
|
226
226
|
RefCountedPtr<PriorityLbConfig> config_;
|
227
|
-
HierarchicalAddressMap addresses_;
|
227
|
+
absl::StatusOr<HierarchicalAddressMap> addresses_;
|
228
228
|
|
229
229
|
// Internal state.
|
230
230
|
bool shutting_down_ = false;
|
@@ -557,7 +557,11 @@ void PriorityLb::ChildPriority::UpdateLocked(
|
|
557
557
|
// Construct update args.
|
558
558
|
UpdateArgs update_args;
|
559
559
|
update_args.config = std::move(config);
|
560
|
-
|
560
|
+
if (priority_policy_->addresses_.ok()) {
|
561
|
+
update_args.addresses = (*priority_policy_->addresses_)[name_];
|
562
|
+
} else {
|
563
|
+
update_args.addresses = priority_policy_->addresses_.status();
|
564
|
+
}
|
561
565
|
update_args.args = grpc_channel_args_copy(priority_policy_->args_);
|
562
566
|
// Update the policy.
|
563
567
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_priority_trace)) {
|