grpc 1.24.0 → 1.25.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +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/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 +71 -43
- 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
@@ -24,7 +24,6 @@
|
|
24
24
|
#include <grpc/support/string_util.h>
|
25
25
|
|
26
26
|
#include "src/core/ext/filters/client_channel/resolver.h"
|
27
|
-
#include "src/core/lib/gprpp/abstract.h"
|
28
27
|
#include "src/core/lib/gprpp/memory.h"
|
29
28
|
#include "src/core/lib/gprpp/orphanable.h"
|
30
29
|
#include "src/core/lib/iomgr/pollset_set.h"
|
@@ -40,7 +39,7 @@ struct ResolverArgs {
|
|
40
39
|
/// Used to drive I/O in the name resolution process.
|
41
40
|
grpc_pollset_set* pollset_set = nullptr;
|
42
41
|
/// The combiner under which all resolver calls will be run.
|
43
|
-
|
42
|
+
Combiner* combiner = nullptr;
|
44
43
|
/// The result handler to be used by the resolver.
|
45
44
|
UniquePtr<Resolver::ResultHandler> result_handler;
|
46
45
|
};
|
@@ -49,11 +48,10 @@ class ResolverFactory {
|
|
49
48
|
public:
|
50
49
|
/// Returns a bool indicating whether the input uri is valid to create a
|
51
50
|
/// resolver.
|
52
|
-
virtual bool IsValidUri(const grpc_uri* uri) const
|
51
|
+
virtual bool IsValidUri(const grpc_uri* uri) const = 0;
|
53
52
|
|
54
53
|
/// Returns a new resolver instance.
|
55
|
-
virtual OrphanablePtr<Resolver> CreateResolver(ResolverArgs args) const
|
56
|
-
GRPC_ABSTRACT;
|
54
|
+
virtual OrphanablePtr<Resolver> CreateResolver(ResolverArgs args) const = 0;
|
57
55
|
|
58
56
|
/// Returns a string representing the default authority to use for this
|
59
57
|
/// scheme.
|
@@ -65,11 +63,9 @@ class ResolverFactory {
|
|
65
63
|
|
66
64
|
/// Returns the URI scheme that this factory implements.
|
67
65
|
/// Caller does NOT take ownership of result.
|
68
|
-
virtual const char* scheme() const
|
66
|
+
virtual const char* scheme() const = 0;
|
69
67
|
|
70
68
|
virtual ~ResolverFactory() {}
|
71
|
-
|
72
|
-
GRPC_ABSTRACT_BASE_CLASS
|
73
69
|
};
|
74
70
|
|
75
71
|
} // namespace grpc_core
|
@@ -145,7 +145,7 @@ bool ResolverRegistry::IsValidTarget(const char* target) {
|
|
145
145
|
|
146
146
|
OrphanablePtr<Resolver> ResolverRegistry::CreateResolver(
|
147
147
|
const char* target, const grpc_channel_args* args,
|
148
|
-
grpc_pollset_set* pollset_set,
|
148
|
+
grpc_pollset_set* pollset_set, Combiner* combiner,
|
149
149
|
UniquePtr<Resolver::ResultHandler> result_handler) {
|
150
150
|
GPR_ASSERT(g_state != nullptr);
|
151
151
|
grpc_uri* uri = nullptr;
|
@@ -68,7 +68,7 @@ class ResolverRegistry {
|
|
68
68
|
/// \a result_handler is used to return results from the resolver.
|
69
69
|
static OrphanablePtr<Resolver> CreateResolver(
|
70
70
|
const char* target, const grpc_channel_args* args,
|
71
|
-
grpc_pollset_set* pollset_set,
|
71
|
+
grpc_pollset_set* pollset_set, Combiner* combiner,
|
72
72
|
UniquePtr<Resolver::ResultHandler> result_handler);
|
73
73
|
|
74
74
|
/// Returns the default authority to pass from a client for \a target.
|
@@ -53,9 +53,8 @@ size_t ClientChannelServiceConfigParser::ParserIndex() {
|
|
53
53
|
}
|
54
54
|
|
55
55
|
void ClientChannelServiceConfigParser::Register() {
|
56
|
-
g_client_channel_service_config_parser_index =
|
57
|
-
|
58
|
-
New<ClientChannelServiceConfigParser>()));
|
56
|
+
g_client_channel_service_config_parser_index = ServiceConfig::RegisterParser(
|
57
|
+
MakeUnique<ClientChannelServiceConfigParser>());
|
59
58
|
}
|
60
59
|
|
61
60
|
namespace {
|
@@ -439,10 +438,9 @@ ClientChannelServiceConfigParser::ParseGlobalParams(const grpc_json* json,
|
|
439
438
|
*error = GRPC_ERROR_CREATE_FROM_VECTOR("Client channel global parser",
|
440
439
|
&error_list);
|
441
440
|
if (*error == GRPC_ERROR_NONE) {
|
442
|
-
return
|
443
|
-
|
444
|
-
|
445
|
-
retry_throttling, health_check_service_name));
|
441
|
+
return MakeUnique<ClientChannelGlobalParsedConfig>(
|
442
|
+
std::move(parsed_lb_config), std::move(lb_policy_name),
|
443
|
+
retry_throttling, health_check_service_name);
|
446
444
|
}
|
447
445
|
return nullptr;
|
448
446
|
}
|
@@ -493,9 +491,8 @@ ClientChannelServiceConfigParser::ParsePerMethodParams(const grpc_json* json,
|
|
493
491
|
}
|
494
492
|
*error = GRPC_ERROR_CREATE_FROM_VECTOR("Client channel parser", &error_list);
|
495
493
|
if (*error == GRPC_ERROR_NONE) {
|
496
|
-
return
|
497
|
-
|
498
|
-
std::move(retry_policy)));
|
494
|
+
return MakeUnique<ClientChannelMethodParsedConfig>(timeout, wait_for_ready,
|
495
|
+
std::move(retry_policy));
|
499
496
|
}
|
500
497
|
return nullptr;
|
501
498
|
}
|
@@ -123,8 +123,7 @@ class ResolvingLoadBalancingPolicy::ResolvingControlHelper
|
|
123
123
|
gpr_log(GPR_INFO,
|
124
124
|
"resolving_lb=%p helper=%p: pending child policy %p reports "
|
125
125
|
"state=%s",
|
126
|
-
parent_.get(), this, child_,
|
127
|
-
grpc_connectivity_state_name(state));
|
126
|
+
parent_.get(), this, child_, ConnectivityStateName(state));
|
128
127
|
}
|
129
128
|
if (state != GRPC_CHANNEL_READY) return;
|
130
129
|
grpc_pollset_set_del_pollset_set(
|
@@ -153,7 +152,8 @@ class ResolvingLoadBalancingPolicy::ResolvingControlHelper
|
|
153
152
|
}
|
154
153
|
}
|
155
154
|
|
156
|
-
void AddTraceEvent(TraceSeverity severity
|
155
|
+
void AddTraceEvent(TraceSeverity /*severity*/,
|
156
|
+
StringView /*message*/) override {}
|
157
157
|
|
158
158
|
void set_child(LoadBalancingPolicy* child) { child_ = child; }
|
159
159
|
|
@@ -188,16 +188,15 @@ ResolvingLoadBalancingPolicy::ResolvingLoadBalancingPolicy(
|
|
188
188
|
GPR_ASSERT(process_resolver_result != nullptr);
|
189
189
|
resolver_ = ResolverRegistry::CreateResolver(
|
190
190
|
target_uri_.get(), args.args, interested_parties(), combiner(),
|
191
|
-
|
191
|
+
MakeUnique<ResolverResultHandler>(Ref()));
|
192
192
|
// Since the validity of args has been checked when create the channel,
|
193
193
|
// CreateResolver() must return a non-null result.
|
194
194
|
GPR_ASSERT(resolver_ != nullptr);
|
195
195
|
if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
|
196
196
|
gpr_log(GPR_INFO, "resolving_lb=%p: starting name resolution", this);
|
197
197
|
}
|
198
|
-
channel_control_helper()->UpdateState(
|
199
|
-
|
200
|
-
UniquePtr<SubchannelPicker>(New<QueuePicker>(Ref())));
|
198
|
+
channel_control_helper()->UpdateState(GRPC_CHANNEL_CONNECTING,
|
199
|
+
MakeUnique<QueuePicker>(Ref()));
|
201
200
|
resolver_->StartLocked();
|
202
201
|
}
|
203
202
|
|
@@ -263,7 +262,7 @@ void ResolvingLoadBalancingPolicy::OnResolverError(grpc_error* error) {
|
|
263
262
|
"Resolver transient failure", &error, 1);
|
264
263
|
channel_control_helper()->UpdateState(
|
265
264
|
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
266
|
-
|
265
|
+
MakeUnique<TransientFailurePicker>(state_error));
|
267
266
|
}
|
268
267
|
GRPC_ERROR_UNREF(error);
|
269
268
|
}
|
@@ -74,7 +74,7 @@ class ResolvingLoadBalancingPolicy : public LoadBalancingPolicy {
|
|
74
74
|
// No-op -- should never get updates from the channel.
|
75
75
|
// TODO(roth): Need to support updating child LB policy's config for xds
|
76
76
|
// use case.
|
77
|
-
void UpdateLocked(UpdateArgs args) override {}
|
77
|
+
void UpdateLocked(UpdateArgs /*args*/) override {}
|
78
78
|
|
79
79
|
void ExitIdleLocked() override;
|
80
80
|
|
@@ -118,27 +118,27 @@ void ServerRetryThrottleData::RecordSuccess() {
|
|
118
118
|
|
119
119
|
namespace {
|
120
120
|
|
121
|
-
void* copy_server_name(void* key, void* unused) {
|
121
|
+
void* copy_server_name(void* key, void* /*unused*/) {
|
122
122
|
return gpr_strdup(static_cast<const char*>(key));
|
123
123
|
}
|
124
124
|
|
125
|
-
long compare_server_name(void* key1, void* key2, void* unused) {
|
125
|
+
long compare_server_name(void* key1, void* key2, void* /*unused*/) {
|
126
126
|
return strcmp(static_cast<const char*>(key1), static_cast<const char*>(key2));
|
127
127
|
}
|
128
128
|
|
129
|
-
void destroy_server_retry_throttle_data(void* value, void* unused) {
|
129
|
+
void destroy_server_retry_throttle_data(void* value, void* /*unused*/) {
|
130
130
|
ServerRetryThrottleData* throttle_data =
|
131
131
|
static_cast<ServerRetryThrottleData*>(value);
|
132
132
|
throttle_data->Unref();
|
133
133
|
}
|
134
134
|
|
135
|
-
void* copy_server_retry_throttle_data(void* value, void* unused) {
|
135
|
+
void* copy_server_retry_throttle_data(void* value, void* /*unused*/) {
|
136
136
|
ServerRetryThrottleData* throttle_data =
|
137
137
|
static_cast<ServerRetryThrottleData*>(value);
|
138
138
|
return throttle_data->Ref().release();
|
139
139
|
}
|
140
140
|
|
141
|
-
void destroy_server_name(void* key, void* unused) { gpr_free(key); }
|
141
|
+
void destroy_server_name(void* key, void* /*unused*/) { gpr_free(key); }
|
142
142
|
|
143
143
|
const grpc_avl_vtable avl_vtable = {
|
144
144
|
destroy_server_name, copy_server_name, compare_server_name,
|
@@ -32,6 +32,7 @@ class ServerRetryThrottleData : public RefCounted<ServerRetryThrottleData> {
|
|
32
32
|
public:
|
33
33
|
ServerRetryThrottleData(intptr_t max_milli_tokens, intptr_t milli_token_ratio,
|
34
34
|
ServerRetryThrottleData* old_throttle_data);
|
35
|
+
~ServerRetryThrottleData();
|
35
36
|
|
36
37
|
/// Records a failure. Returns true if it's okay to send a retry.
|
37
38
|
bool RecordFailure();
|
@@ -43,10 +44,6 @@ class ServerRetryThrottleData : public RefCounted<ServerRetryThrottleData> {
|
|
43
44
|
intptr_t milli_token_ratio() const { return milli_token_ratio_; }
|
44
45
|
|
45
46
|
private:
|
46
|
-
GRPC_ALLOW_CLASS_TO_USE_NON_PUBLIC_DELETE
|
47
|
-
|
48
|
-
~ServerRetryThrottleData();
|
49
|
-
|
50
47
|
void GetReplacementThrottleDataIfNeeded(
|
51
48
|
ServerRetryThrottleData** throttle_data);
|
52
49
|
|
@@ -62,8 +62,6 @@ class ServiceConfig : public RefCounted<ServiceConfig> {
|
|
62
62
|
class ParsedConfig {
|
63
63
|
public:
|
64
64
|
virtual ~ParsedConfig() = default;
|
65
|
-
|
66
|
-
GRPC_ABSTRACT_BASE_CLASS;
|
67
65
|
};
|
68
66
|
|
69
67
|
/// This is the base class that all service config parsers should derive from.
|
@@ -71,19 +69,21 @@ class ServiceConfig : public RefCounted<ServiceConfig> {
|
|
71
69
|
public:
|
72
70
|
virtual ~Parser() = default;
|
73
71
|
|
74
|
-
virtual UniquePtr<ParsedConfig> ParseGlobalParams(
|
75
|
-
|
72
|
+
virtual UniquePtr<ParsedConfig> ParseGlobalParams(
|
73
|
+
const grpc_json* /* json */, grpc_error** error) {
|
74
|
+
// Avoid unused parameter warning on debug-only parameter
|
75
|
+
(void)error;
|
76
76
|
GPR_DEBUG_ASSERT(error != nullptr);
|
77
77
|
return nullptr;
|
78
78
|
}
|
79
79
|
|
80
|
-
virtual UniquePtr<ParsedConfig> ParsePerMethodParams(
|
81
|
-
|
80
|
+
virtual UniquePtr<ParsedConfig> ParsePerMethodParams(
|
81
|
+
const grpc_json* /* json */, grpc_error** error) {
|
82
|
+
// Avoid unused parameter warning on debug-only parameter
|
83
|
+
(void)error;
|
82
84
|
GPR_DEBUG_ASSERT(error != nullptr);
|
83
85
|
return nullptr;
|
84
86
|
}
|
85
|
-
|
86
|
-
GRPC_ABSTRACT_BASE_CLASS;
|
87
87
|
};
|
88
88
|
|
89
89
|
static constexpr int kNumPreallocatedParsers = 4;
|
@@ -95,15 +95,14 @@ ConnectedSubchannel::~ConnectedSubchannel() {
|
|
95
95
|
GRPC_CHANNEL_STACK_UNREF(channel_stack_, "connected_subchannel_dtor");
|
96
96
|
}
|
97
97
|
|
98
|
-
void ConnectedSubchannel::
|
99
|
-
grpc_pollset_set* interested_parties,
|
100
|
-
|
98
|
+
void ConnectedSubchannel::StartWatch(
|
99
|
+
grpc_pollset_set* interested_parties,
|
100
|
+
OrphanablePtr<ConnectivityStateWatcherInterface> watcher) {
|
101
101
|
grpc_transport_op* op = grpc_make_transport_op(nullptr);
|
102
|
-
|
103
|
-
op->
|
104
|
-
op->on_connectivity_state_change = closure;
|
102
|
+
op->start_connectivity_watch = std::move(watcher);
|
103
|
+
op->start_connectivity_watch_state = GRPC_CHANNEL_READY;
|
105
104
|
op->bind_pollset_set = interested_parties;
|
106
|
-
elem = grpc_channel_stack_element(channel_stack_, 0);
|
105
|
+
grpc_channel_element* elem = grpc_channel_stack_element(channel_stack_, 0);
|
107
106
|
elem->filter->start_transport_op(elem, op);
|
108
107
|
}
|
109
108
|
|
@@ -310,19 +309,14 @@ void SubchannelCall::IncrementRefCount(const grpc_core::DebugLocation& location,
|
|
310
309
|
// Subchannel::ConnectedSubchannelStateWatcher
|
311
310
|
//
|
312
311
|
|
313
|
-
class Subchannel::ConnectedSubchannelStateWatcher
|
312
|
+
class Subchannel::ConnectedSubchannelStateWatcher
|
313
|
+
: public AsyncConnectivityStateWatcherInterface {
|
314
314
|
public:
|
315
315
|
// Must be instantiated while holding c->mu.
|
316
316
|
explicit ConnectedSubchannelStateWatcher(Subchannel* c) : subchannel_(c) {
|
317
317
|
// Steal subchannel ref for connecting.
|
318
318
|
GRPC_SUBCHANNEL_WEAK_REF(subchannel_, "state_watcher");
|
319
319
|
GRPC_SUBCHANNEL_WEAK_UNREF(subchannel_, "connecting");
|
320
|
-
// Start watching for connectivity state changes.
|
321
|
-
GRPC_CLOSURE_INIT(&on_connectivity_changed_, OnConnectivityChanged, this,
|
322
|
-
grpc_schedule_on_exec_ctx);
|
323
|
-
c->connected_subchannel_->NotifyOnStateChange(c->pollset_set_,
|
324
|
-
&pending_connectivity_state_,
|
325
|
-
&on_connectivity_changed_);
|
326
320
|
}
|
327
321
|
|
328
322
|
~ConnectedSubchannelStateWatcher() {
|
@@ -330,54 +324,41 @@ class Subchannel::ConnectedSubchannelStateWatcher {
|
|
330
324
|
}
|
331
325
|
|
332
326
|
private:
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
{
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
c->connected_subchannel_.get(), c,
|
347
|
-
grpc_connectivity_state_name(
|
348
|
-
self->pending_connectivity_state_));
|
349
|
-
}
|
350
|
-
c->connected_subchannel_.reset();
|
351
|
-
if (c->channelz_node() != nullptr) {
|
352
|
-
c->channelz_node()->SetChildSocket(nullptr);
|
353
|
-
}
|
354
|
-
c->SetConnectivityStateLocked(GRPC_CHANNEL_TRANSIENT_FAILURE);
|
355
|
-
c->backoff_begun_ = false;
|
356
|
-
c->backoff_.Reset();
|
327
|
+
void OnConnectivityStateChange(grpc_connectivity_state new_state) override {
|
328
|
+
Subchannel* c = subchannel_;
|
329
|
+
MutexLock lock(&c->mu_);
|
330
|
+
switch (new_state) {
|
331
|
+
case GRPC_CHANNEL_TRANSIENT_FAILURE:
|
332
|
+
case GRPC_CHANNEL_SHUTDOWN: {
|
333
|
+
if (!c->disconnected_ && c->connected_subchannel_ != nullptr) {
|
334
|
+
if (grpc_trace_subchannel.enabled()) {
|
335
|
+
gpr_log(GPR_INFO,
|
336
|
+
"Connected subchannel %p of subchannel %p has gone into "
|
337
|
+
"%s. Attempting to reconnect.",
|
338
|
+
c->connected_subchannel_.get(), c,
|
339
|
+
ConnectivityStateName(new_state));
|
357
340
|
}
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
c->SetConnectivityStateLocked(self->pending_connectivity_state_);
|
366
|
-
c->connected_subchannel_->NotifyOnStateChange(
|
367
|
-
nullptr, &self->pending_connectivity_state_,
|
368
|
-
&self->on_connectivity_changed_);
|
369
|
-
return; // So we don't delete ourself below.
|
341
|
+
c->connected_subchannel_.reset();
|
342
|
+
if (c->channelz_node() != nullptr) {
|
343
|
+
c->channelz_node()->SetChildSocket(nullptr);
|
344
|
+
}
|
345
|
+
c->SetConnectivityStateLocked(GRPC_CHANNEL_TRANSIENT_FAILURE);
|
346
|
+
c->backoff_begun_ = false;
|
347
|
+
c->backoff_.Reset();
|
370
348
|
}
|
349
|
+
break;
|
350
|
+
}
|
351
|
+
default: {
|
352
|
+
// In principle, this should never happen. We should not get
|
353
|
+
// a callback for READY, because that was the state we started
|
354
|
+
// this watch from. And a connected subchannel should never go
|
355
|
+
// from READY to CONNECTING or IDLE.
|
356
|
+
c->SetConnectivityStateLocked(new_state);
|
371
357
|
}
|
372
358
|
}
|
373
|
-
// Don't delete until we've released the lock, because this might
|
374
|
-
// cause the subchannel (which contains the lock) to be destroyed.
|
375
|
-
Delete(self);
|
376
359
|
}
|
377
360
|
|
378
361
|
Subchannel* subchannel_;
|
379
|
-
grpc_closure on_connectivity_changed_;
|
380
|
-
grpc_connectivity_state pending_connectivity_state_ = GRPC_CHANNEL_READY;
|
381
362
|
};
|
382
363
|
|
383
364
|
//
|
@@ -386,7 +367,7 @@ class Subchannel::ConnectedSubchannelStateWatcher {
|
|
386
367
|
|
387
368
|
void Subchannel::ConnectivityStateWatcherList::AddWatcherLocked(
|
388
369
|
OrphanablePtr<ConnectivityStateWatcherInterface> watcher) {
|
389
|
-
watchers_.insert(
|
370
|
+
watchers_.insert(std::make_pair(watcher.get(), std::move(watcher)));
|
390
371
|
}
|
391
372
|
|
392
373
|
void Subchannel::ConnectivityStateWatcherList::RemoveWatcherLocked(
|
@@ -420,7 +401,7 @@ void Subchannel::ConnectivityStateWatcherList::NotifyLocked(
|
|
420
401
|
// State needed for tracking the connectivity state with a particular
|
421
402
|
// health check service name.
|
422
403
|
class Subchannel::HealthWatcherMap::HealthWatcher
|
423
|
-
: public
|
404
|
+
: public AsyncConnectivityStateWatcherInterface {
|
424
405
|
public:
|
425
406
|
HealthWatcher(Subchannel* c, UniquePtr<char> health_check_service_name,
|
426
407
|
grpc_connectivity_state subchannel_state)
|
@@ -429,8 +410,6 @@ class Subchannel::HealthWatcherMap::HealthWatcher
|
|
429
410
|
state_(subchannel_state == GRPC_CHANNEL_READY ? GRPC_CHANNEL_CONNECTING
|
430
411
|
: subchannel_state) {
|
431
412
|
GRPC_SUBCHANNEL_WEAK_REF(subchannel_, "health_watcher");
|
432
|
-
GRPC_CLOSURE_INIT(&on_health_changed_, OnHealthChanged, this,
|
433
|
-
grpc_schedule_on_exec_ctx);
|
434
413
|
// If the subchannel is already connected, start health checking.
|
435
414
|
if (subchannel_state == GRPC_CHANNEL_READY) StartHealthCheckingLocked();
|
436
415
|
}
|
@@ -447,7 +426,7 @@ class Subchannel::HealthWatcherMap::HealthWatcher
|
|
447
426
|
|
448
427
|
void AddWatcherLocked(
|
449
428
|
grpc_connectivity_state initial_state,
|
450
|
-
OrphanablePtr<ConnectivityStateWatcherInterface> watcher) {
|
429
|
+
OrphanablePtr<Subchannel::ConnectivityStateWatcherInterface> watcher) {
|
451
430
|
if (state_ != initial_state) {
|
452
431
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel;
|
453
432
|
if (state_ == GRPC_CHANNEL_READY) {
|
@@ -459,7 +438,8 @@ class Subchannel::HealthWatcherMap::HealthWatcher
|
|
459
438
|
watcher_list_.AddWatcherLocked(std::move(watcher));
|
460
439
|
}
|
461
440
|
|
462
|
-
void RemoveWatcherLocked(
|
441
|
+
void RemoveWatcherLocked(
|
442
|
+
Subchannel::ConnectivityStateWatcherInterface* watcher) {
|
463
443
|
watcher_list_.RemoveWatcherLocked(watcher);
|
464
444
|
}
|
465
445
|
|
@@ -492,38 +472,24 @@ class Subchannel::HealthWatcherMap::HealthWatcher
|
|
492
472
|
}
|
493
473
|
|
494
474
|
private:
|
475
|
+
void OnConnectivityStateChange(grpc_connectivity_state new_state) override {
|
476
|
+
MutexLock lock(&subchannel_->mu_);
|
477
|
+
if (new_state != GRPC_CHANNEL_SHUTDOWN && health_check_client_ != nullptr) {
|
478
|
+
state_ = new_state;
|
479
|
+
watcher_list_.NotifyLocked(subchannel_, new_state);
|
480
|
+
}
|
481
|
+
}
|
482
|
+
|
495
483
|
void StartHealthCheckingLocked() {
|
496
484
|
GPR_ASSERT(health_check_client_ == nullptr);
|
497
485
|
health_check_client_ = MakeOrphanable<HealthCheckClient>(
|
498
486
|
health_check_service_name_.get(), subchannel_->connected_subchannel_,
|
499
|
-
subchannel_->pollset_set_, subchannel_->channelz_node_);
|
500
|
-
Ref().release(); // Ref for health callback tracked manually.
|
501
|
-
health_check_client_->NotifyOnHealthChange(&state_, &on_health_changed_);
|
502
|
-
}
|
503
|
-
|
504
|
-
static void OnHealthChanged(void* arg, grpc_error* error) {
|
505
|
-
auto* self = static_cast<HealthWatcher*>(arg);
|
506
|
-
Subchannel* c = self->subchannel_;
|
507
|
-
{
|
508
|
-
MutexLock lock(&c->mu_);
|
509
|
-
if (self->state_ != GRPC_CHANNEL_SHUTDOWN &&
|
510
|
-
self->health_check_client_ != nullptr) {
|
511
|
-
self->watcher_list_.NotifyLocked(c, self->state_);
|
512
|
-
// Renew watch.
|
513
|
-
self->health_check_client_->NotifyOnHealthChange(
|
514
|
-
&self->state_, &self->on_health_changed_);
|
515
|
-
return; // So we don't unref below.
|
516
|
-
}
|
517
|
-
}
|
518
|
-
// Don't unref until we've released the lock, because this might
|
519
|
-
// cause the subchannel (which contains the lock) to be destroyed.
|
520
|
-
self->Unref();
|
487
|
+
subchannel_->pollset_set_, subchannel_->channelz_node_, Ref());
|
521
488
|
}
|
522
489
|
|
523
490
|
Subchannel* subchannel_;
|
524
491
|
UniquePtr<char> health_check_service_name_;
|
525
492
|
OrphanablePtr<HealthCheckClient> health_check_client_;
|
526
|
-
grpc_closure on_health_changed_;
|
527
493
|
grpc_connectivity_state state_;
|
528
494
|
ConnectivityStateWatcherList watcher_list_;
|
529
495
|
};
|
@@ -1088,8 +1054,9 @@ bool Subchannel::PublishTransportLocked() {
|
|
1088
1054
|
if (channelz_node_ != nullptr) {
|
1089
1055
|
channelz_node_->SetChildSocket(std::move(socket));
|
1090
1056
|
}
|
1091
|
-
//
|
1092
|
-
|
1057
|
+
// Start watching connected subchannel.
|
1058
|
+
connected_subchannel_->StartWatch(
|
1059
|
+
pollset_set_, MakeOrphanable<ConnectedSubchannelStateWatcher>(this));
|
1093
1060
|
// Report initial state.
|
1094
1061
|
SetConnectivityStateLocked(GRPC_CHANNEL_READY);
|
1095
1062
|
return true;
|