grpc 1.24.0 → 1.25.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 +306 -243
- data/etc/roots.pem +0 -100
- data/include/grpc/grpc_security.h +44 -18
- data/include/grpc/impl/codegen/grpc_types.h +15 -0
- data/include/grpc/impl/codegen/port_platform.h +27 -11
- data/include/grpc/impl/codegen/sync_generic.h +1 -1
- data/src/boringssl/err_data.c +695 -650
- data/src/core/ext/filters/client_channel/client_channel.cc +257 -179
- data/src/core/ext/filters/client_channel/client_channel.h +24 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +2 -3
- data/src/core/ext/filters/client_channel/client_channel_factory.h +1 -5
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +18 -45
- data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -13
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +65 -55
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -14
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +113 -36
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -19
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +814 -1589
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +2 -5
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -6
- data/src/core/ext/filters/client_channel/resolver.cc +1 -2
- data/src/core/ext/filters/client_channel/resolver.h +8 -16
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +25 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +46 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +10 -17
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +7 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +111 -44
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +22 -14
- 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_fallback.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +29 -10
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +27 -36
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +7 -10
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -16
- data/src/core/ext/filters/client_channel/resolver_factory.h +4 -8
- data/src/core/ext/filters/client_channel/resolver_registry.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +7 -8
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +1 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -5
- data/src/core/ext/filters/client_channel/retry_throttle.h +1 -4
- data/src/core/ext/filters/client_channel/service_config.h +8 -8
- data/src/core/ext/filters/client_channel/subchannel.cc +53 -86
- data/src/core/ext/filters/client_channel/subchannel.h +7 -9
- data/src/core/ext/filters/client_channel/subchannel_interface.h +9 -13
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +3 -6
- data/src/core/ext/filters/client_channel/{lb_policy/xds/xds_load_balancer_api.cc → xds/xds_api.cc} +169 -52
- data/src/core/ext/filters/client_channel/xds/xds_api.h +171 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +450 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +99 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel.h +8 -6
- data/src/core/ext/filters/client_channel/xds/xds_channel_args.h +26 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel_secure.cc +28 -11
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +1413 -0
- data/src/core/ext/filters/client_channel/xds/xds_client.h +221 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.cc +1 -5
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.h +3 -4
- data/src/core/ext/filters/deadline/deadline_filter.cc +20 -20
- data/src/core/ext/filters/http/client/http_client_filter.cc +15 -15
- data/src/core/ext/filters/http/client_authority_filter.cc +14 -14
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +12 -12
- data/src/core/ext/filters/max_age/max_age_filter.cc +59 -50
- data/src/core/ext/filters/message_size/message_size_filter.cc +18 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -14
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +233 -175
- data/src/core/ext/transport/chttp2/transport/flow_control.h +21 -24
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +253 -163
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +24 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +13 -15
- data/src/core/ext/transport/chttp2/transport/writing.cc +3 -0
- data/src/core/ext/transport/inproc/inproc_transport.cc +20 -13
- data/src/core/lib/channel/channel_args.cc +16 -0
- data/src/core/lib/channel/channel_args.h +22 -0
- data/src/core/lib/channel/channelz.cc +5 -6
- data/src/core/lib/channel/channelz.h +1 -1
- data/src/core/lib/channel/connected_channel.cc +20 -20
- data/src/core/lib/channel/handshaker.h +3 -4
- data/src/core/lib/channel/handshaker_factory.h +1 -3
- data/src/core/lib/debug/trace.h +3 -2
- data/src/core/lib/gprpp/arena.cc +3 -3
- data/src/core/lib/gprpp/arena.h +2 -3
- data/src/core/lib/gprpp/inlined_vector.h +9 -0
- data/src/core/lib/gprpp/map.h +3 -501
- data/src/core/lib/gprpp/memory.h +45 -41
- data/src/core/lib/gprpp/mpscq.cc +108 -0
- data/src/core/lib/gprpp/mpscq.h +98 -0
- data/src/core/lib/gprpp/orphanable.h +6 -11
- data/src/core/lib/gprpp/ref_counted.h +25 -19
- data/src/core/lib/gprpp/set.h +33 -0
- data/src/core/lib/gprpp/thd.h +2 -4
- data/src/core/lib/http/httpcli.cc +1 -1
- data/src/core/lib/http/httpcli_security_connector.cc +15 -11
- data/src/core/lib/http/parser.cc +1 -1
- data/src/core/lib/iomgr/buffer_list.cc +4 -5
- data/src/core/lib/iomgr/buffer_list.h +5 -6
- data/src/core/lib/iomgr/call_combiner.cc +4 -5
- data/src/core/lib/iomgr/call_combiner.h +2 -2
- data/src/core/lib/iomgr/cfstream_handle.h +3 -5
- data/src/core/lib/iomgr/closure.h +8 -3
- data/src/core/lib/iomgr/combiner.cc +45 -82
- data/src/core/lib/iomgr/combiner.h +32 -8
- data/src/core/lib/iomgr/endpoint_cfstream.cc +5 -3
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -15
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -1
- data/src/core/lib/iomgr/exec_ctx.h +4 -3
- data/src/core/lib/iomgr/executor.cc +4 -2
- data/src/core/lib/iomgr/executor.h +3 -0
- data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -6
- data/src/core/lib/iomgr/executor/threadpool.cc +1 -2
- data/src/core/lib/iomgr/executor/threadpool.h +7 -11
- data/src/core/lib/iomgr/resource_quota.cc +55 -51
- data/src/core/lib/iomgr/resource_quota.h +13 -9
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +13 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +4 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -11
- data/src/core/lib/iomgr/tcp_custom.cc +9 -7
- data/src/core/lib/iomgr/tcp_posix.cc +20 -16
- data/src/core/lib/iomgr/tcp_server.h +1 -4
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -5
- data/src/core/lib/iomgr/tcp_server_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +2 -11
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/udp_server.cc +3 -2
- data/src/core/lib/iomgr/udp_server.h +6 -12
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_string.cc +2 -2
- data/src/core/lib/profiling/basic_timers.cc +2 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -2
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -1
- data/src/core/lib/security/credentials/credentials.h +4 -20
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +4 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +64 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +2 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/security_connector.h +19 -17
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +8 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +14 -6
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +4 -2
- data/src/core/lib/security/transport/client_auth_filter.cc +17 -17
- data/src/core/lib/security/transport/security_handshaker.cc +29 -13
- data/src/core/lib/security/transport/security_handshaker.h +4 -2
- data/src/core/lib/security/transport/server_auth_filter.cc +14 -14
- data/src/core/lib/slice/slice.cc +2 -10
- data/src/core/lib/slice/slice_hash_table.h +4 -6
- data/src/core/lib/slice/slice_intern.cc +42 -39
- data/src/core/lib/slice/slice_internal.h +3 -3
- data/src/core/lib/slice/slice_utils.h +21 -4
- data/src/core/lib/slice/slice_weak_hash_table.h +4 -6
- data/src/core/lib/surface/call.cc +3 -3
- data/src/core/lib/surface/channel.cc +7 -0
- data/src/core/lib/surface/completion_queue.cc +12 -11
- data/src/core/lib/surface/completion_queue.h +4 -2
- data/src/core/lib/surface/init.cc +1 -0
- data/src/core/lib/surface/lame_client.cc +33 -18
- data/src/core/lib/surface/server.cc +77 -76
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/byte_stream.h +3 -7
- data/src/core/lib/transport/connectivity_state.cc +112 -98
- data/src/core/lib/transport/connectivity_state.h +100 -50
- data/src/core/lib/transport/static_metadata.cc +276 -288
- data/src/core/lib/transport/static_metadata.h +73 -76
- data/src/core/lib/transport/status_conversion.cc +1 -1
- data/src/core/lib/transport/status_metadata.cc +1 -1
- data/src/core/lib/transport/transport.cc +2 -2
- data/src/core/lib/transport/transport.h +12 -4
- data/src/core/lib/transport/transport_op_string.cc +14 -11
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +5 -5
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -2
- data/src/core/tsi/fake_transport_security.cc +7 -5
- data/src/core/tsi/grpc_shadow_boringssl.h +2918 -2627
- data/src/core/tsi/local_transport_security.cc +8 -6
- data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +7 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -6
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -2
- data/src/core/tsi/ssl_transport_security.cc +12 -12
- data/src/core/tsi/ssl_transport_security.h +2 -2
- data/src/core/tsi/transport_security_grpc.cc +7 -0
- data/src/core/tsi/transport_security_grpc.h +6 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +1 -1
- data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +2 -2
- data/third_party/boringssl/crypto/asn1/a_bool.c +18 -5
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +17 -221
- data/third_party/boringssl/crypto/asn1/a_dup.c +0 -24
- data/third_party/boringssl/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +10 -72
- data/third_party/boringssl/crypto/asn1/a_int.c +12 -71
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +110 -216
- data/third_party/boringssl/crypto/asn1/a_object.c +16 -5
- data/third_party/boringssl/crypto/asn1/a_strnid.c +1 -0
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -1
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +3 -1
- data/third_party/boringssl/crypto/base64/base64.c +2 -2
- data/third_party/boringssl/crypto/bio/bio.c +73 -9
- data/third_party/boringssl/crypto/bio/connect.c +4 -0
- data/third_party/boringssl/crypto/bio/fd.c +4 -0
- data/third_party/boringssl/crypto/bio/file.c +5 -2
- data/third_party/boringssl/crypto/bio/socket.c +4 -0
- data/third_party/boringssl/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl/crypto/bn_extra/convert.c +11 -7
- data/third_party/boringssl/crypto/bytestring/ber.c +8 -4
- data/third_party/boringssl/crypto/bytestring/cbb.c +19 -7
- data/third_party/boringssl/crypto/bytestring/cbs.c +28 -15
- data/third_party/boringssl/crypto/bytestring/internal.h +28 -7
- data/third_party/boringssl/crypto/bytestring/unicode.c +155 -0
- data/third_party/boringssl/crypto/chacha/chacha.c +36 -19
- data/third_party/boringssl/crypto/chacha/internal.h +45 -0
- data/third_party/boringssl/crypto/cipher_extra/cipher_extra.c +29 -0
- data/third_party/boringssl/crypto/cipher_extra/e_aesccm.c +269 -25
- data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +16 -14
- data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +54 -38
- data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +133 -41
- data/third_party/boringssl/crypto/cipher_extra/e_tls.c +23 -15
- data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +24 -15
- data/third_party/boringssl/crypto/cmac/cmac.c +62 -25
- data/third_party/boringssl/crypto/conf/conf.c +7 -0
- data/third_party/boringssl/crypto/cpu-arm-linux.c +4 -148
- data/third_party/boringssl/crypto/cpu-arm-linux.h +201 -0
- data/third_party/boringssl/crypto/cpu-intel.c +45 -51
- data/third_party/boringssl/crypto/crypto.c +39 -22
- data/third_party/boringssl/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl/crypto/dsa/dsa.c +77 -53
- data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +20 -8
- data/third_party/boringssl/crypto/ec_extra/ec_derive.c +96 -0
- data/third_party/boringssl/crypto/{ecdh/ecdh.c → ecdh_extra/ecdh_extra.c} +20 -58
- data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +1 -9
- data/third_party/boringssl/crypto/engine/engine.c +2 -1
- data/third_party/boringssl/crypto/err/err.c +2 -0
- data/third_party/boringssl/crypto/err/internal.h +2 -2
- data/third_party/boringssl/crypto/evp/evp.c +89 -8
- data/third_party/boringssl/crypto/evp/evp_asn1.c +56 -5
- data/third_party/boringssl/crypto/evp/evp_ctx.c +52 -14
- data/third_party/boringssl/crypto/evp/internal.h +18 -1
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +5 -0
- data/third_party/boringssl/crypto/evp/p_ec.c +51 -3
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +6 -7
- data/third_party/boringssl/crypto/evp/p_ed25519.c +36 -3
- data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +76 -45
- data/third_party/boringssl/crypto/evp/p_rsa.c +3 -1
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +5 -0
- data/third_party/boringssl/crypto/evp/p_x25519.c +110 -0
- data/third_party/boringssl/crypto/evp/p_x25519_asn1.c +249 -0
- data/third_party/boringssl/crypto/evp/scrypt.c +6 -2
- data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +34 -274
- data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +161 -21
- data/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.c +111 -13
- data/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.c +17 -21
- data/third_party/boringssl/crypto/fipsmodule/bcm.c +119 -7
- data/third_party/boringssl/crypto/fipsmodule/bn/bn.c +19 -2
- data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +2 -2
- data/third_party/boringssl/crypto/fipsmodule/bn/ctx.c +93 -160
- data/third_party/boringssl/crypto/fipsmodule/bn/div.c +48 -57
- data/third_party/boringssl/crypto/fipsmodule/bn/div_extra.c +87 -0
- data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +143 -211
- data/third_party/boringssl/crypto/fipsmodule/bn/gcd.c +0 -305
- data/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.c +325 -0
- data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +168 -50
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +68 -92
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.c +7 -6
- data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +11 -14
- data/third_party/boringssl/crypto/fipsmodule/bn/prime.c +358 -443
- data/third_party/boringssl/crypto/fipsmodule/bn/random.c +25 -35
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.c +20 -25
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +76 -5
- data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +14 -14
- data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +7 -2
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.c +383 -516
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_des.c +4 -0
- data/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +3 -4
- data/third_party/boringssl/crypto/fipsmodule/delocate.h +3 -2
- data/third_party/boringssl/crypto/fipsmodule/digest/digest.c +32 -17
- data/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +3 -3
- data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +228 -122
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_key.c +34 -8
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +311 -98
- data/third_party/boringssl/crypto/fipsmodule/ec/felem.c +82 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +263 -97
- data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +22 -59
- data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +317 -234
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +9473 -9475
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +313 -109
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.h +36 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +96 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +126 -792
- data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +84 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/util.c +163 -12
- data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +84 -211
- data/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.c +122 -0
- data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +60 -205
- data/third_party/boringssl/crypto/fipsmodule/fips_shared_support.c +32 -0
- data/third_party/boringssl/crypto/fipsmodule/is_fips.c +2 -0
- data/third_party/boringssl/crypto/fipsmodule/md4/md4.c +3 -1
- data/third_party/boringssl/crypto/fipsmodule/md5/internal.h +37 -0
- data/third_party/boringssl/crypto/fipsmodule/md5/md5.c +11 -8
- data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +35 -79
- data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +7 -39
- data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +7 -27
- data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +123 -309
- data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +189 -126
- data/third_party/boringssl/crypto/fipsmodule/modes/ofb.c +3 -2
- data/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.c +2 -2
- data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +35 -0
- data/third_party/boringssl/crypto/fipsmodule/rand/rand.c +24 -19
- data/third_party/boringssl/crypto/fipsmodule/rand/urandom.c +256 -77
- data/third_party/boringssl/crypto/fipsmodule/rsa/padding.c +10 -7
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +5 -1
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +131 -14
- data/third_party/boringssl/crypto/fipsmodule/self_check/self_check.c +83 -10
- data/third_party/boringssl/crypto/fipsmodule/sha/internal.h +53 -0
- data/third_party/boringssl/crypto/fipsmodule/sha/sha1.c +9 -13
- data/third_party/boringssl/crypto/fipsmodule/sha/sha256.c +18 -12
- data/third_party/boringssl/crypto/fipsmodule/sha/sha512.c +95 -168
- data/third_party/boringssl/crypto/hrss/hrss.c +2201 -0
- data/third_party/boringssl/crypto/hrss/internal.h +62 -0
- data/third_party/boringssl/crypto/internal.h +95 -20
- data/third_party/boringssl/crypto/lhash/lhash.c +45 -33
- data/third_party/boringssl/crypto/mem.c +39 -2
- data/third_party/boringssl/crypto/obj/obj.c +4 -4
- data/third_party/boringssl/crypto/obj/obj_dat.h +6181 -875
- data/third_party/boringssl/crypto/pem/pem_all.c +2 -3
- data/third_party/boringssl/crypto/pem/pem_info.c +144 -162
- data/third_party/boringssl/crypto/pem/pem_lib.c +53 -52
- data/third_party/boringssl/crypto/pem/pem_pkey.c +13 -21
- data/third_party/boringssl/crypto/pkcs7/pkcs7.c +15 -22
- data/third_party/boringssl/crypto/pkcs7/pkcs7_x509.c +168 -16
- data/third_party/boringssl/crypto/pkcs8/internal.h +11 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +24 -15
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +42 -25
- data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +559 -43
- data/third_party/boringssl/crypto/pool/internal.h +1 -1
- data/third_party/boringssl/crypto/pool/pool.c +21 -0
- data/third_party/boringssl/crypto/rand_extra/deterministic.c +8 -0
- data/third_party/boringssl/crypto/rand_extra/fuchsia.c +1 -14
- data/third_party/boringssl/crypto/refcount_lock.c +2 -2
- data/third_party/boringssl/crypto/rsa_extra/rsa_print.c +22 -0
- data/third_party/boringssl/crypto/siphash/siphash.c +80 -0
- data/third_party/boringssl/crypto/stack/stack.c +83 -32
- data/third_party/boringssl/crypto/thread_none.c +2 -2
- data/third_party/boringssl/crypto/thread_pthread.c +2 -2
- data/third_party/boringssl/crypto/thread_win.c +38 -19
- data/third_party/boringssl/crypto/x509/a_strex.c +22 -2
- data/third_party/boringssl/crypto/x509/asn1_gen.c +2 -1
- data/third_party/boringssl/crypto/x509/by_dir.c +7 -0
- data/third_party/boringssl/crypto/x509/by_file.c +12 -10
- data/third_party/boringssl/crypto/x509/t_crl.c +5 -8
- data/third_party/boringssl/crypto/x509/t_req.c +1 -3
- data/third_party/boringssl/crypto/x509/t_x509.c +5 -8
- data/third_party/boringssl/crypto/x509/x509_cmp.c +1 -1
- data/third_party/boringssl/crypto/x509/x509_def.c +1 -1
- data/third_party/boringssl/crypto/x509/x509_lu.c +114 -5
- data/third_party/boringssl/crypto/x509/x509_req.c +20 -0
- data/third_party/boringssl/crypto/x509/x509_set.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_trs.c +1 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +4 -5
- data/third_party/boringssl/crypto/x509/x509_vfy.c +145 -138
- data/third_party/boringssl/crypto/x509/x509_vpm.c +2 -0
- data/third_party/boringssl/crypto/x509/x509cset.c +40 -0
- data/third_party/boringssl/crypto/x509/x509name.c +2 -3
- data/third_party/boringssl/crypto/x509/x_all.c +109 -210
- data/third_party/boringssl/crypto/x509/x_x509.c +6 -0
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +1 -3
- data/third_party/boringssl/crypto/x509v3/internal.h +56 -0
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +2 -0
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -0
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +4 -2
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +5 -2
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +19 -13
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +3 -2
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +1 -6
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +1 -0
- data/third_party/boringssl/crypto/x509v3/v3_ocsp.c +68 -0
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +47 -69
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +5 -2
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +69 -25
- data/third_party/boringssl/include/openssl/aead.h +45 -19
- data/third_party/boringssl/include/openssl/aes.h +32 -7
- data/third_party/boringssl/include/openssl/asn1.h +7 -77
- data/third_party/boringssl/include/openssl/base.h +120 -6
- data/third_party/boringssl/include/openssl/base64.h +4 -1
- data/third_party/boringssl/include/openssl/bio.h +112 -81
- data/third_party/boringssl/include/openssl/blowfish.h +3 -3
- data/third_party/boringssl/include/openssl/bn.h +55 -29
- data/third_party/boringssl/include/openssl/buf.h +2 -2
- data/third_party/boringssl/include/openssl/bytestring.h +54 -32
- data/third_party/boringssl/include/openssl/cast.h +2 -2
- data/third_party/boringssl/include/openssl/cipher.h +46 -16
- data/third_party/boringssl/include/openssl/cmac.h +6 -2
- data/third_party/boringssl/include/openssl/conf.h +3 -6
- data/third_party/boringssl/include/openssl/cpu.h +25 -9
- data/third_party/boringssl/include/openssl/crypto.h +32 -10
- data/third_party/boringssl/include/openssl/curve25519.h +4 -4
- data/third_party/boringssl/include/openssl/dh.h +3 -2
- data/third_party/boringssl/include/openssl/digest.h +21 -7
- data/third_party/boringssl/include/openssl/dsa.h +8 -2
- data/third_party/boringssl/include/openssl/e_os2.h +18 -0
- data/third_party/boringssl/include/openssl/ec.h +25 -21
- data/third_party/boringssl/include/openssl/ec_key.h +36 -8
- data/third_party/boringssl/include/openssl/ecdh.h +17 -0
- data/third_party/boringssl/include/openssl/ecdsa.h +3 -3
- data/third_party/boringssl/include/openssl/engine.h +4 -4
- data/third_party/boringssl/include/openssl/err.h +3 -0
- data/third_party/boringssl/include/openssl/evp.h +199 -42
- data/third_party/boringssl/include/openssl/hmac.h +4 -4
- data/third_party/boringssl/include/openssl/hrss.h +100 -0
- data/third_party/boringssl/include/openssl/lhash.h +131 -23
- data/third_party/boringssl/include/openssl/md4.h +6 -4
- data/third_party/boringssl/include/openssl/md5.h +6 -4
- data/third_party/boringssl/include/openssl/mem.h +6 -2
- data/third_party/boringssl/include/openssl/nid.h +3 -0
- data/third_party/boringssl/include/openssl/obj.h +3 -0
- data/third_party/boringssl/include/openssl/pem.h +102 -64
- data/third_party/boringssl/include/openssl/pkcs7.h +136 -3
- data/third_party/boringssl/include/openssl/pkcs8.h +42 -3
- data/third_party/boringssl/include/openssl/pool.h +13 -2
- data/third_party/boringssl/include/openssl/ripemd.h +5 -4
- data/third_party/boringssl/include/openssl/rsa.h +46 -15
- data/third_party/boringssl/include/openssl/sha.h +40 -28
- data/third_party/boringssl/include/openssl/siphash.h +37 -0
- data/third_party/boringssl/include/openssl/span.h +17 -9
- data/third_party/boringssl/include/openssl/ssl.h +766 -393
- data/third_party/boringssl/include/openssl/ssl3.h +4 -3
- data/third_party/boringssl/include/openssl/stack.h +134 -77
- data/third_party/boringssl/include/openssl/thread.h +1 -1
- data/third_party/boringssl/include/openssl/tls1.h +25 -9
- data/third_party/boringssl/include/openssl/type_check.h +14 -15
- data/third_party/boringssl/include/openssl/x509.h +28 -3
- data/third_party/boringssl/include/openssl/x509_vfy.h +98 -32
- data/third_party/boringssl/include/openssl/x509v3.h +17 -13
- data/third_party/boringssl/ssl/d1_both.cc +9 -18
- data/third_party/boringssl/ssl/d1_lib.cc +4 -3
- data/third_party/boringssl/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl/ssl/d1_srtp.cc +15 -15
- data/third_party/boringssl/ssl/dtls_method.cc +0 -1
- data/third_party/boringssl/ssl/dtls_record.cc +28 -28
- data/third_party/boringssl/ssl/handoff.cc +295 -91
- data/third_party/boringssl/ssl/handshake.cc +133 -72
- data/third_party/boringssl/ssl/handshake_client.cc +218 -189
- data/third_party/boringssl/ssl/handshake_server.cc +399 -272
- data/third_party/boringssl/ssl/internal.h +1413 -928
- data/third_party/boringssl/ssl/s3_both.cc +175 -36
- data/third_party/boringssl/ssl/s3_lib.cc +9 -13
- data/third_party/boringssl/ssl/s3_pkt.cc +63 -29
- data/third_party/boringssl/ssl/ssl_aead_ctx.cc +55 -35
- data/third_party/boringssl/ssl/ssl_asn1.cc +57 -73
- data/third_party/boringssl/ssl/ssl_buffer.cc +13 -12
- data/third_party/boringssl/ssl/ssl_cert.cc +313 -210
- data/third_party/boringssl/ssl/ssl_cipher.cc +159 -221
- data/third_party/boringssl/ssl/ssl_file.cc +2 -0
- data/third_party/boringssl/ssl/ssl_key_share.cc +164 -19
- data/third_party/boringssl/ssl/ssl_lib.cc +847 -555
- data/third_party/boringssl/ssl/ssl_privkey.cc +441 -111
- data/third_party/boringssl/ssl/ssl_session.cc +230 -178
- data/third_party/boringssl/ssl/ssl_transcript.cc +21 -142
- data/third_party/boringssl/ssl/ssl_versions.cc +88 -93
- data/third_party/boringssl/ssl/ssl_x509.cc +279 -218
- data/third_party/boringssl/ssl/t1_enc.cc +5 -96
- data/third_party/boringssl/ssl/t1_lib.cc +931 -678
- data/third_party/boringssl/ssl/tls13_both.cc +251 -121
- data/third_party/boringssl/ssl/tls13_client.cc +129 -73
- data/third_party/boringssl/ssl/tls13_enc.cc +350 -282
- data/third_party/boringssl/ssl/tls13_server.cc +259 -192
- data/third_party/boringssl/ssl/tls_method.cc +26 -21
- data/third_party/boringssl/ssl/tls_record.cc +42 -47
- data/third_party/boringssl/third_party/fiat/curve25519.c +261 -1324
- data/third_party/boringssl/third_party/fiat/curve25519_32.h +911 -0
- data/third_party/boringssl/third_party/fiat/curve25519_64.h +559 -0
- data/third_party/boringssl/third_party/fiat/p256.c +238 -999
- data/third_party/boringssl/third_party/fiat/p256_32.h +3226 -0
- data/third_party/boringssl/third_party/fiat/p256_64.h +1217 -0
- data/third_party/upb/upb/port_def.inc +1 -1
- data/third_party/upb/upb/table.c +2 -1
- metadata +72 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +0 -127
- data/src/core/lib/gpr/mpscq.cc +0 -117
- data/src/core/lib/gpr/mpscq.h +0 -88
- data/src/core/lib/gprpp/abstract.h +0 -47
- data/src/core/lib/gprpp/pair.h +0 -38
- data/third_party/boringssl/crypto/cipher_extra/e_ssl3.c +0 -460
- data/third_party/boringssl/crypto/fipsmodule/modes/ccm.c +0 -256
- data/third_party/boringssl/include/openssl/lhash_macros.h +0 -174
- data/third_party/boringssl/ssl/custom_extensions.cc +0 -265
@@ -30,12 +30,12 @@
|
|
30
30
|
#include "src/core/lib/iomgr/error.h"
|
31
31
|
#include "src/core/lib/profiling/timers.h"
|
32
32
|
|
33
|
-
static grpc_error*
|
34
|
-
|
33
|
+
static grpc_error* clr_init_channel_elem(grpc_channel_element* elem,
|
34
|
+
grpc_channel_element_args* args) {
|
35
35
|
return GRPC_ERROR_NONE;
|
36
36
|
}
|
37
37
|
|
38
|
-
static void
|
38
|
+
static void clr_destroy_channel_elem(grpc_channel_element* elem) {}
|
39
39
|
|
40
40
|
namespace {
|
41
41
|
|
@@ -71,16 +71,16 @@ static void recv_initial_metadata_ready(void* arg, grpc_error* error) {
|
|
71
71
|
GRPC_ERROR_REF(error));
|
72
72
|
}
|
73
73
|
|
74
|
-
static grpc_error*
|
75
|
-
|
74
|
+
static grpc_error* clr_init_call_elem(grpc_call_element* elem,
|
75
|
+
const grpc_call_element_args* args) {
|
76
76
|
GPR_ASSERT(args->context != nullptr);
|
77
77
|
new (elem->call_data) call_data();
|
78
78
|
return GRPC_ERROR_NONE;
|
79
79
|
}
|
80
80
|
|
81
|
-
static void
|
82
|
-
|
83
|
-
|
81
|
+
static void clr_destroy_call_elem(grpc_call_element* elem,
|
82
|
+
const grpc_call_final_info* final_info,
|
83
|
+
grpc_closure* ignored) {
|
84
84
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
85
85
|
if (calld->client_stats != nullptr) {
|
86
86
|
// Record call finished, optionally setting client_failed_to_send and
|
@@ -92,7 +92,7 @@ static void destroy_call_elem(grpc_call_element* elem,
|
|
92
92
|
calld->~call_data();
|
93
93
|
}
|
94
94
|
|
95
|
-
static void
|
95
|
+
static void clr_start_transport_stream_op_batch(
|
96
96
|
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
97
97
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
98
98
|
GPR_TIMER_SCOPE("clr_start_transport_stream_op_batch", 0);
|
@@ -142,14 +142,14 @@ static void start_transport_stream_op_batch(
|
|
142
142
|
}
|
143
143
|
|
144
144
|
const grpc_channel_filter grpc_client_load_reporting_filter = {
|
145
|
-
|
145
|
+
clr_start_transport_stream_op_batch,
|
146
146
|
grpc_channel_next_op,
|
147
147
|
sizeof(call_data),
|
148
|
-
|
148
|
+
clr_init_call_elem,
|
149
149
|
grpc_call_stack_ignore_set_pollset_or_pollset_set,
|
150
|
-
|
150
|
+
clr_destroy_call_elem,
|
151
151
|
0, // sizeof(channel_data)
|
152
|
-
|
153
|
-
|
152
|
+
clr_init_channel_elem,
|
153
|
+
clr_destroy_channel_elem,
|
154
154
|
grpc_channel_next_get_info,
|
155
155
|
"client_load_reporting"};
|
@@ -151,6 +151,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
151
151
|
public:
|
152
152
|
explicit BalancerCallState(
|
153
153
|
RefCountedPtr<LoadBalancingPolicy> parent_grpclb_policy);
|
154
|
+
~BalancerCallState();
|
154
155
|
|
155
156
|
// It's the caller's responsibility to ensure that Orphan() is called from
|
156
157
|
// inside the combiner.
|
@@ -164,10 +165,6 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
164
165
|
bool seen_serverlist() const { return seen_serverlist_; }
|
165
166
|
|
166
167
|
private:
|
167
|
-
GRPC_ALLOW_CLASS_TO_USE_NON_PUBLIC_DELETE
|
168
|
-
|
169
|
-
~BalancerCallState();
|
170
|
-
|
171
168
|
GrpcLb* grpclb_policy() const {
|
172
169
|
return static_cast<GrpcLb*>(grpclb_policy_.get());
|
173
170
|
}
|
@@ -177,6 +174,12 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
177
174
|
|
178
175
|
static bool LoadReportCountersAreZero(grpc_grpclb_request* request);
|
179
176
|
|
177
|
+
static void MaybeSendClientLoadReport(void* arg, grpc_error* error);
|
178
|
+
static void ClientLoadReportDone(void* arg, grpc_error* error);
|
179
|
+
static void OnInitialRequestSent(void* arg, grpc_error* error);
|
180
|
+
static void OnBalancerMessageReceived(void* arg, grpc_error* error);
|
181
|
+
static void OnBalancerStatusReceived(void* arg, grpc_error* error);
|
182
|
+
|
180
183
|
static void MaybeSendClientLoadReportLocked(void* arg, grpc_error* error);
|
181
184
|
static void ClientLoadReportDoneLocked(void* arg, grpc_error* error);
|
182
185
|
static void OnInitialRequestSentLocked(void* arg, grpc_error* error);
|
@@ -315,17 +318,21 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
315
318
|
// Helper functions used in UpdateLocked().
|
316
319
|
void ProcessAddressesAndChannelArgsLocked(const ServerAddressList& addresses,
|
317
320
|
const grpc_channel_args& args);
|
321
|
+
static void OnBalancerChannelConnectivityChanged(void* arg,
|
322
|
+
grpc_error* error);
|
318
323
|
static void OnBalancerChannelConnectivityChangedLocked(void* arg,
|
319
324
|
grpc_error* error);
|
320
325
|
void CancelBalancerChannelConnectivityWatchLocked();
|
321
326
|
|
322
327
|
// Methods for dealing with fallback state.
|
323
328
|
void MaybeEnterFallbackModeAfterStartup();
|
329
|
+
static void OnFallbackTimer(void* arg, grpc_error* error);
|
324
330
|
static void OnFallbackTimerLocked(void* arg, grpc_error* error);
|
325
331
|
|
326
332
|
// Methods for dealing with the balancer call.
|
327
333
|
void StartBalancerCallLocked();
|
328
334
|
void StartBalancerCallRetryTimerLocked();
|
335
|
+
static void OnBalancerCallRetryTimer(void* arg, grpc_error* error);
|
329
336
|
static void OnBalancerCallRetryTimerLocked(void* arg, grpc_error* error);
|
330
337
|
|
331
338
|
// Methods for dealing with the child policy.
|
@@ -660,7 +667,7 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
|
|
660
667
|
gpr_log(GPR_INFO,
|
661
668
|
"[grpclb %p helper %p] pending child policy %p reports state=%s",
|
662
669
|
parent_.get(), this, parent_->pending_child_policy_.get(),
|
663
|
-
|
670
|
+
ConnectivityStateName(state));
|
664
671
|
}
|
665
672
|
if (state != GRPC_CHANNEL_READY) return;
|
666
673
|
grpc_pollset_set_del_pollset_set(
|
@@ -700,8 +707,7 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
|
|
700
707
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
701
708
|
gpr_log(GPR_INFO,
|
702
709
|
"[grpclb %p helper %p] state=%s passing child picker %p as-is",
|
703
|
-
parent_.get(), this,
|
704
|
-
picker.get());
|
710
|
+
parent_.get(), this, ConnectivityStateName(state), picker.get());
|
705
711
|
}
|
706
712
|
parent_->channel_control_helper()->UpdateState(state, std::move(picker));
|
707
713
|
return;
|
@@ -709,8 +715,7 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
|
|
709
715
|
// Cases 2 and 3a: wrap picker from the child in our own picker.
|
710
716
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
711
717
|
gpr_log(GPR_INFO, "[grpclb %p helper %p] state=%s wrapping child picker %p",
|
712
|
-
parent_.get(), this,
|
713
|
-
picker.get());
|
718
|
+
parent_.get(), this, ConnectivityStateName(state), picker.get());
|
714
719
|
}
|
715
720
|
RefCountedPtr<GrpcLbClientStats> client_stats;
|
716
721
|
if (parent_->lb_calld_ != nullptr &&
|
@@ -718,9 +723,8 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
|
|
718
723
|
client_stats = parent_->lb_calld_->client_stats()->Ref();
|
719
724
|
}
|
720
725
|
parent_->channel_control_helper()->UpdateState(
|
721
|
-
state,
|
722
|
-
|
723
|
-
std::move(picker), std::move(client_stats))));
|
726
|
+
state, MakeUnique<Picker>(parent_.get(), parent_->serverlist_,
|
727
|
+
std::move(picker), std::move(client_stats)));
|
724
728
|
}
|
725
729
|
|
726
730
|
void GrpcLb::Helper::RequestReresolution() {
|
@@ -789,14 +793,6 @@ GrpcLb::BalancerCallState::BalancerCallState(
|
|
789
793
|
// Init other data associated with the LB call.
|
790
794
|
grpc_metadata_array_init(&lb_initial_metadata_recv_);
|
791
795
|
grpc_metadata_array_init(&lb_trailing_metadata_recv_);
|
792
|
-
GRPC_CLOSURE_INIT(&lb_on_initial_request_sent_, OnInitialRequestSentLocked,
|
793
|
-
this, grpc_combiner_scheduler(grpclb_policy()->combiner()));
|
794
|
-
GRPC_CLOSURE_INIT(&lb_on_balancer_message_received_,
|
795
|
-
OnBalancerMessageReceivedLocked, this,
|
796
|
-
grpc_combiner_scheduler(grpclb_policy()->combiner()));
|
797
|
-
GRPC_CLOSURE_INIT(&lb_on_balancer_status_received_,
|
798
|
-
OnBalancerStatusReceivedLocked, this,
|
799
|
-
grpc_combiner_scheduler(grpclb_policy()->combiner()));
|
800
796
|
}
|
801
797
|
|
802
798
|
GrpcLb::BalancerCallState::~BalancerCallState() {
|
@@ -854,6 +850,8 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
854
850
|
// with the callback.
|
855
851
|
auto self = Ref(DEBUG_LOCATION, "on_initial_request_sent");
|
856
852
|
self.release();
|
853
|
+
GRPC_CLOSURE_INIT(&lb_on_initial_request_sent_, OnInitialRequestSent, this,
|
854
|
+
grpc_schedule_on_exec_ctx);
|
857
855
|
call_error = grpc_call_start_batch_and_execute(
|
858
856
|
lb_call_, ops, (size_t)(op - ops), &lb_on_initial_request_sent_);
|
859
857
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
@@ -876,6 +874,8 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
876
874
|
// with the callback.
|
877
875
|
self = Ref(DEBUG_LOCATION, "on_message_received");
|
878
876
|
self.release();
|
877
|
+
GRPC_CLOSURE_INIT(&lb_on_balancer_message_received_,
|
878
|
+
OnBalancerMessageReceived, this, grpc_schedule_on_exec_ctx);
|
879
879
|
call_error = grpc_call_start_batch_and_execute(
|
880
880
|
lb_call_, ops, (size_t)(op - ops), &lb_on_balancer_message_received_);
|
881
881
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
@@ -892,6 +892,8 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
892
892
|
// This callback signals the end of the LB call, so it relies on the initial
|
893
893
|
// ref instead of a new ref. When it's invoked, it's the initial ref that is
|
894
894
|
// unreffed.
|
895
|
+
GRPC_CLOSURE_INIT(&lb_on_balancer_status_received_, OnBalancerStatusReceived,
|
896
|
+
this, grpc_schedule_on_exec_ctx);
|
895
897
|
call_error = grpc_call_start_batch_and_execute(
|
896
898
|
lb_call_, ops, (size_t)(op - ops), &lb_on_balancer_status_received_);
|
897
899
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
@@ -900,14 +902,22 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
900
902
|
void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
|
901
903
|
const grpc_millis next_client_load_report_time =
|
902
904
|
ExecCtx::Get()->Now() + client_stats_report_interval_;
|
903
|
-
GRPC_CLOSURE_INIT(&client_load_report_closure_,
|
904
|
-
|
905
|
-
grpc_combiner_scheduler(grpclb_policy()->combiner()));
|
905
|
+
GRPC_CLOSURE_INIT(&client_load_report_closure_, MaybeSendClientLoadReport,
|
906
|
+
this, grpc_schedule_on_exec_ctx);
|
906
907
|
grpc_timer_init(&client_load_report_timer_, next_client_load_report_time,
|
907
908
|
&client_load_report_closure_);
|
908
909
|
client_load_report_timer_callback_pending_ = true;
|
909
910
|
}
|
910
911
|
|
912
|
+
void GrpcLb::BalancerCallState::MaybeSendClientLoadReport(void* arg,
|
913
|
+
grpc_error* error) {
|
914
|
+
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
915
|
+
lb_calld->grpclb_policy()->combiner()->Run(
|
916
|
+
GRPC_CLOSURE_INIT(&lb_calld->client_load_report_closure_,
|
917
|
+
MaybeSendClientLoadReportLocked, lb_calld, nullptr),
|
918
|
+
GRPC_ERROR_REF(error));
|
919
|
+
}
|
920
|
+
|
911
921
|
void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked(
|
912
922
|
void* arg, grpc_error* error) {
|
913
923
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
@@ -972,8 +982,8 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
|
|
972
982
|
memset(&op, 0, sizeof(op));
|
973
983
|
op.op = GRPC_OP_SEND_MESSAGE;
|
974
984
|
op.data.send_message.send_message = send_message_payload_;
|
975
|
-
GRPC_CLOSURE_INIT(&client_load_report_closure_,
|
976
|
-
|
985
|
+
GRPC_CLOSURE_INIT(&client_load_report_closure_, ClientLoadReportDone, this,
|
986
|
+
grpc_schedule_on_exec_ctx);
|
977
987
|
grpc_call_error call_error = grpc_call_start_batch_and_execute(
|
978
988
|
lb_call_, &op, 1, &client_load_report_closure_);
|
979
989
|
if (GPR_UNLIKELY(call_error != GRPC_CALL_OK)) {
|
@@ -984,6 +994,15 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
|
|
984
994
|
}
|
985
995
|
}
|
986
996
|
|
997
|
+
void GrpcLb::BalancerCallState::ClientLoadReportDone(void* arg,
|
998
|
+
grpc_error* error) {
|
999
|
+
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1000
|
+
lb_calld->grpclb_policy()->combiner()->Run(
|
1001
|
+
GRPC_CLOSURE_INIT(&lb_calld->client_load_report_closure_,
|
1002
|
+
ClientLoadReportDoneLocked, lb_calld, nullptr),
|
1003
|
+
GRPC_ERROR_REF(error));
|
1004
|
+
}
|
1005
|
+
|
987
1006
|
void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(void* arg,
|
988
1007
|
grpc_error* error) {
|
989
1008
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
@@ -997,6 +1016,15 @@ void GrpcLb::BalancerCallState::ClientLoadReportDoneLocked(void* arg,
|
|
997
1016
|
lb_calld->ScheduleNextClientLoadReportLocked();
|
998
1017
|
}
|
999
1018
|
|
1019
|
+
void GrpcLb::BalancerCallState::OnInitialRequestSent(void* arg,
|
1020
|
+
grpc_error* error) {
|
1021
|
+
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1022
|
+
lb_calld->grpclb_policy()->combiner()->Run(
|
1023
|
+
GRPC_CLOSURE_INIT(&lb_calld->lb_on_initial_request_sent_,
|
1024
|
+
OnInitialRequestSentLocked, lb_calld, nullptr),
|
1025
|
+
GRPC_ERROR_REF(error));
|
1026
|
+
}
|
1027
|
+
|
1000
1028
|
void GrpcLb::BalancerCallState::OnInitialRequestSentLocked(void* arg,
|
1001
1029
|
grpc_error* error) {
|
1002
1030
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
@@ -1012,6 +1040,15 @@ void GrpcLb::BalancerCallState::OnInitialRequestSentLocked(void* arg,
|
|
1012
1040
|
lb_calld->Unref(DEBUG_LOCATION, "on_initial_request_sent");
|
1013
1041
|
}
|
1014
1042
|
|
1043
|
+
void GrpcLb::BalancerCallState::OnBalancerMessageReceived(void* arg,
|
1044
|
+
grpc_error* error) {
|
1045
|
+
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1046
|
+
lb_calld->grpclb_policy()->combiner()->Run(
|
1047
|
+
GRPC_CLOSURE_INIT(&lb_calld->lb_on_balancer_message_received_,
|
1048
|
+
OnBalancerMessageReceivedLocked, lb_calld, nullptr),
|
1049
|
+
GRPC_ERROR_REF(error));
|
1050
|
+
}
|
1051
|
+
|
1015
1052
|
void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked(
|
1016
1053
|
void* arg, grpc_error* error) {
|
1017
1054
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
@@ -1147,6 +1184,9 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked(
|
|
1147
1184
|
op.flags = 0;
|
1148
1185
|
op.reserved = nullptr;
|
1149
1186
|
// Reuse the "OnBalancerMessageReceivedLocked" ref taken in StartQuery().
|
1187
|
+
GRPC_CLOSURE_INIT(&lb_calld->lb_on_balancer_message_received_,
|
1188
|
+
GrpcLb::BalancerCallState::OnBalancerMessageReceived,
|
1189
|
+
lb_calld, grpc_schedule_on_exec_ctx);
|
1150
1190
|
const grpc_call_error call_error = grpc_call_start_batch_and_execute(
|
1151
1191
|
lb_calld->lb_call_, &op, 1,
|
1152
1192
|
&lb_calld->lb_on_balancer_message_received_);
|
@@ -1156,6 +1196,15 @@ void GrpcLb::BalancerCallState::OnBalancerMessageReceivedLocked(
|
|
1156
1196
|
}
|
1157
1197
|
}
|
1158
1198
|
|
1199
|
+
void GrpcLb::BalancerCallState::OnBalancerStatusReceived(void* arg,
|
1200
|
+
grpc_error* error) {
|
1201
|
+
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
1202
|
+
lb_calld->grpclb_policy()->combiner()->Run(
|
1203
|
+
GRPC_CLOSURE_INIT(&lb_calld->lb_on_balancer_status_received_,
|
1204
|
+
OnBalancerStatusReceivedLocked, lb_calld, nullptr),
|
1205
|
+
GRPC_ERROR_REF(error));
|
1206
|
+
}
|
1207
|
+
|
1159
1208
|
void GrpcLb::BalancerCallState::OnBalancerStatusReceivedLocked(
|
1160
1209
|
void* arg, grpc_error* error) {
|
1161
1210
|
BalancerCallState* lb_calld = static_cast<BalancerCallState*>(arg);
|
@@ -1318,12 +1367,6 @@ GrpcLb::GrpcLb(Args args)
|
|
1318
1367
|
.set_jitter(GRPC_GRPCLB_RECONNECT_JITTER)
|
1319
1368
|
.set_max_backoff(GRPC_GRPCLB_RECONNECT_MAX_BACKOFF_SECONDS *
|
1320
1369
|
1000)) {
|
1321
|
-
// Initialization.
|
1322
|
-
GRPC_CLOSURE_INIT(&lb_on_fallback_, &GrpcLb::OnFallbackTimerLocked, this,
|
1323
|
-
grpc_combiner_scheduler(combiner()));
|
1324
|
-
GRPC_CLOSURE_INIT(&lb_channel_on_connectivity_changed_,
|
1325
|
-
&GrpcLb::OnBalancerChannelConnectivityChangedLocked, this,
|
1326
|
-
grpc_combiner_scheduler(args.combiner));
|
1327
1370
|
// Record server name.
|
1328
1371
|
const grpc_arg* arg = grpc_channel_args_find(args.args, GRPC_ARG_SERVER_URI);
|
1329
1372
|
const char* server_uri = grpc_channel_arg_get_string(arg);
|
@@ -1416,6 +1459,8 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1416
1459
|
// Start timer.
|
1417
1460
|
grpc_millis deadline = ExecCtx::Get()->Now() + fallback_at_startup_timeout_;
|
1418
1461
|
Ref(DEBUG_LOCATION, "on_fallback_timer").release(); // Ref for callback
|
1462
|
+
GRPC_CLOSURE_INIT(&lb_on_fallback_, &GrpcLb::OnFallbackTimer, this,
|
1463
|
+
grpc_schedule_on_exec_ctx);
|
1419
1464
|
grpc_timer_init(&lb_fallback_timer_, deadline, &lb_on_fallback_);
|
1420
1465
|
// Start watching the channel's connectivity state. If the channel
|
1421
1466
|
// goes into state TRANSIENT_FAILURE before the timer fires, we go into
|
@@ -1425,6 +1470,9 @@ void GrpcLb::UpdateLocked(UpdateArgs args) {
|
|
1425
1470
|
GPR_ASSERT(client_channel_elem->filter == &grpc_client_channel_filter);
|
1426
1471
|
// Ref held by callback.
|
1427
1472
|
Ref(DEBUG_LOCATION, "watch_lb_channel_connectivity").release();
|
1473
|
+
GRPC_CLOSURE_INIT(&lb_channel_on_connectivity_changed_,
|
1474
|
+
&GrpcLb::OnBalancerChannelConnectivityChanged, this,
|
1475
|
+
grpc_schedule_on_exec_ctx);
|
1428
1476
|
grpc_client_channel_watch_connectivity_state(
|
1429
1477
|
client_channel_elem,
|
1430
1478
|
grpc_polling_entity_create_from_pollset_set(interested_parties()),
|
@@ -1488,6 +1536,16 @@ void GrpcLb::ProcessAddressesAndChannelArgsLocked(
|
|
1488
1536
|
response_generator_->SetResponse(std::move(result));
|
1489
1537
|
}
|
1490
1538
|
|
1539
|
+
void GrpcLb::OnBalancerChannelConnectivityChanged(void* arg,
|
1540
|
+
grpc_error* error) {
|
1541
|
+
GrpcLb* self = static_cast<GrpcLb*>(arg);
|
1542
|
+
self->combiner()->Run(
|
1543
|
+
GRPC_CLOSURE_INIT(&self->lb_channel_on_connectivity_changed_,
|
1544
|
+
&GrpcLb::OnBalancerChannelConnectivityChangedLocked,
|
1545
|
+
self, nullptr),
|
1546
|
+
GRPC_ERROR_REF(error));
|
1547
|
+
}
|
1548
|
+
|
1491
1549
|
void GrpcLb::OnBalancerChannelConnectivityChangedLocked(void* arg,
|
1492
1550
|
grpc_error* error) {
|
1493
1551
|
GrpcLb* self = static_cast<GrpcLb*>(arg);
|
@@ -1498,6 +1556,9 @@ void GrpcLb::OnBalancerChannelConnectivityChangedLocked(void* arg,
|
|
1498
1556
|
grpc_channel_stack_last_element(
|
1499
1557
|
grpc_channel_get_channel_stack(self->lb_channel_));
|
1500
1558
|
GPR_ASSERT(client_channel_elem->filter == &grpc_client_channel_filter);
|
1559
|
+
GRPC_CLOSURE_INIT(&self->lb_channel_on_connectivity_changed_,
|
1560
|
+
&GrpcLb::OnBalancerChannelConnectivityChanged, self,
|
1561
|
+
grpc_schedule_on_exec_ctx);
|
1501
1562
|
grpc_client_channel_watch_connectivity_state(
|
1502
1563
|
client_channel_elem,
|
1503
1564
|
grpc_polling_entity_create_from_pollset_set(
|
@@ -1567,12 +1628,21 @@ void GrpcLb::StartBalancerCallRetryTimerLocked() {
|
|
1567
1628
|
// with the callback.
|
1568
1629
|
auto self = Ref(DEBUG_LOCATION, "on_balancer_call_retry_timer");
|
1569
1630
|
self.release();
|
1570
|
-
GRPC_CLOSURE_INIT(&lb_on_call_retry_, &GrpcLb::
|
1571
|
-
|
1631
|
+
GRPC_CLOSURE_INIT(&lb_on_call_retry_, &GrpcLb::OnBalancerCallRetryTimer, this,
|
1632
|
+
grpc_schedule_on_exec_ctx);
|
1572
1633
|
retry_timer_callback_pending_ = true;
|
1573
1634
|
grpc_timer_init(&lb_call_retry_timer_, next_try, &lb_on_call_retry_);
|
1574
1635
|
}
|
1575
1636
|
|
1637
|
+
void GrpcLb::OnBalancerCallRetryTimer(void* arg, grpc_error* error) {
|
1638
|
+
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1639
|
+
grpclb_policy->combiner()->Run(
|
1640
|
+
GRPC_CLOSURE_INIT(&grpclb_policy->lb_on_call_retry_,
|
1641
|
+
&GrpcLb::OnBalancerCallRetryTimerLocked, grpclb_policy,
|
1642
|
+
nullptr),
|
1643
|
+
GRPC_ERROR_REF(error));
|
1644
|
+
}
|
1645
|
+
|
1576
1646
|
void GrpcLb::OnBalancerCallRetryTimerLocked(void* arg, grpc_error* error) {
|
1577
1647
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1578
1648
|
grpclb_policy->retry_timer_callback_pending_ = false;
|
@@ -1609,6 +1679,14 @@ void GrpcLb::MaybeEnterFallbackModeAfterStartup() {
|
|
1609
1679
|
}
|
1610
1680
|
}
|
1611
1681
|
|
1682
|
+
void GrpcLb::OnFallbackTimer(void* arg, grpc_error* error) {
|
1683
|
+
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1684
|
+
grpclb_policy->combiner()->Run(
|
1685
|
+
GRPC_CLOSURE_INIT(&grpclb_policy->lb_on_fallback_,
|
1686
|
+
&GrpcLb::OnFallbackTimerLocked, grpclb_policy, nullptr),
|
1687
|
+
GRPC_ERROR_REF(error));
|
1688
|
+
}
|
1689
|
+
|
1612
1690
|
void GrpcLb::OnFallbackTimerLocked(void* arg, grpc_error* error) {
|
1613
1691
|
GrpcLb* grpclb_policy = static_cast<GrpcLb*>(arg);
|
1614
1692
|
// If we receive a serverlist after the timer fires but before this callback
|
@@ -1796,7 +1874,7 @@ class GrpcLbFactory : public LoadBalancingPolicyFactory {
|
|
1796
1874
|
public:
|
1797
1875
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
1798
1876
|
LoadBalancingPolicy::Args args) const override {
|
1799
|
-
return
|
1877
|
+
return MakeOrphanable<GrpcLb>(std::move(args));
|
1800
1878
|
}
|
1801
1879
|
|
1802
1880
|
const char* name() const override { return kGrpclb; }
|
@@ -1871,8 +1949,7 @@ bool maybe_add_client_load_reporting_filter(grpc_channel_stack_builder* builder,
|
|
1871
1949
|
void grpc_lb_policy_grpclb_init() {
|
1872
1950
|
grpc_core::LoadBalancingPolicyRegistry::Builder::
|
1873
1951
|
RegisterLoadBalancingPolicyFactory(
|
1874
|
-
grpc_core::
|
1875
|
-
grpc_core::New<grpc_core::GrpcLbFactory>()));
|
1952
|
+
grpc_core::MakeUnique<grpc_core::GrpcLbFactory>());
|
1876
1953
|
grpc_channel_init_register_stage(GRPC_CLIENT_SUBCHANNEL,
|
1877
1954
|
GRPC_CHANNEL_INIT_BUILTIN_PRIORITY,
|
1878
1955
|
maybe_add_client_load_reporting_filter,
|
@@ -201,7 +201,7 @@ void PickFirst::AttemptToConnectUsingLatestUpdateArgsLocked() {
|
|
201
201
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
202
202
|
channel_control_helper()->UpdateState(
|
203
203
|
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
204
|
-
|
204
|
+
MakeUnique<TransientFailurePicker>(error));
|
205
205
|
return;
|
206
206
|
}
|
207
207
|
// If one of the subchannels in the new list is already in state
|
@@ -294,7 +294,7 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
294
294
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_pick_first_trace)) {
|
295
295
|
gpr_log(GPR_INFO,
|
296
296
|
"Pick First %p selected subchannel connectivity changed to %s", p,
|
297
|
-
|
297
|
+
ConnectivityStateName(connectivity_state));
|
298
298
|
}
|
299
299
|
// If the new state is anything other than READY and there is a
|
300
300
|
// pending update, switch to the pending update.
|
@@ -319,12 +319,11 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
319
319
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
320
320
|
p->channel_control_helper()->UpdateState(
|
321
321
|
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
322
|
-
|
322
|
+
MakeUnique<TransientFailurePicker>(error));
|
323
323
|
} else {
|
324
324
|
p->channel_control_helper()->UpdateState(
|
325
325
|
GRPC_CHANNEL_CONNECTING,
|
326
|
-
|
327
|
-
New<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker"))));
|
326
|
+
MakeUnique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
328
327
|
}
|
329
328
|
} else {
|
330
329
|
if (connectivity_state == GRPC_CHANNEL_TRANSIENT_FAILURE) {
|
@@ -339,20 +338,19 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
339
338
|
p->selected_ = nullptr;
|
340
339
|
p->subchannel_list_.reset();
|
341
340
|
p->channel_control_helper()->UpdateState(
|
342
|
-
GRPC_CHANNEL_IDLE,
|
343
|
-
|
341
|
+
GRPC_CHANNEL_IDLE,
|
342
|
+
MakeUnique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
344
343
|
} else {
|
345
344
|
// This is unlikely but can happen when a subchannel has been asked
|
346
345
|
// to reconnect by a different channel and this channel has dropped
|
347
346
|
// some connectivity state notifications.
|
348
347
|
if (connectivity_state == GRPC_CHANNEL_READY) {
|
349
348
|
p->channel_control_helper()->UpdateState(
|
350
|
-
GRPC_CHANNEL_READY,
|
351
|
-
UniquePtr<SubchannelPicker>(New<Picker>(subchannel()->Ref())));
|
349
|
+
GRPC_CHANNEL_READY, MakeUnique<Picker>(subchannel()->Ref()));
|
352
350
|
} else { // CONNECTING
|
353
351
|
p->channel_control_helper()->UpdateState(
|
354
|
-
connectivity_state,
|
355
|
-
|
352
|
+
connectivity_state,
|
353
|
+
MakeUnique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
356
354
|
}
|
357
355
|
}
|
358
356
|
}
|
@@ -396,7 +394,7 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
396
394
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
|
397
395
|
p->channel_control_helper()->UpdateState(
|
398
396
|
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
399
|
-
|
397
|
+
MakeUnique<TransientFailurePicker>(error));
|
400
398
|
}
|
401
399
|
}
|
402
400
|
sd->CheckConnectivityStateAndStartWatchingLocked();
|
@@ -408,8 +406,7 @@ void PickFirst::PickFirstSubchannelData::ProcessConnectivityChangeLocked(
|
|
408
406
|
if (subchannel_list() == p->subchannel_list_.get()) {
|
409
407
|
p->channel_control_helper()->UpdateState(
|
410
408
|
GRPC_CHANNEL_CONNECTING,
|
411
|
-
|
412
|
-
New<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker"))));
|
409
|
+
MakeUnique<QueuePicker>(p->Ref(DEBUG_LOCATION, "QueuePicker")));
|
413
410
|
}
|
414
411
|
break;
|
415
412
|
}
|
@@ -448,8 +445,7 @@ void PickFirst::PickFirstSubchannelData::ProcessUnselectedReadyLocked() {
|
|
448
445
|
}
|
449
446
|
p->selected_ = this;
|
450
447
|
p->channel_control_helper()->UpdateState(
|
451
|
-
GRPC_CHANNEL_READY,
|
452
|
-
UniquePtr<SubchannelPicker>(New<Picker>(subchannel()->Ref())));
|
448
|
+
GRPC_CHANNEL_READY, MakeUnique<Picker>(subchannel()->Ref()));
|
453
449
|
for (size_t i = 0; i < subchannel_list()->num_subchannels(); ++i) {
|
454
450
|
if (i != Index()) {
|
455
451
|
subchannel_list()->subchannel(i)->ShutdownLocked();
|
@@ -488,7 +484,7 @@ class PickFirstFactory : public LoadBalancingPolicyFactory {
|
|
488
484
|
public:
|
489
485
|
OrphanablePtr<LoadBalancingPolicy> CreateLoadBalancingPolicy(
|
490
486
|
LoadBalancingPolicy::Args args) const override {
|
491
|
-
return
|
487
|
+
return MakeOrphanable<PickFirst>(std::move(args));
|
492
488
|
}
|
493
489
|
|
494
490
|
const char* name() const override { return kPickFirst; }
|
@@ -510,8 +506,7 @@ class PickFirstFactory : public LoadBalancingPolicyFactory {
|
|
510
506
|
void grpc_lb_policy_pick_first_init() {
|
511
507
|
grpc_core::LoadBalancingPolicyRegistry::Builder::
|
512
508
|
RegisterLoadBalancingPolicyFactory(
|
513
|
-
grpc_core::
|
514
|
-
grpc_core::New<grpc_core::PickFirstFactory>()));
|
509
|
+
grpc_core::MakeUnique<grpc_core::PickFirstFactory>());
|
515
510
|
}
|
516
511
|
|
517
512
|
void grpc_lb_policy_pick_first_shutdown() {}
|