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
@@ -65,7 +65,7 @@ extern grpc_ares_request* (*grpc_dns_lookup_ares_locked)(
|
|
65
65
|
grpc_pollset_set* interested_parties, grpc_closure* on_done,
|
66
66
|
grpc_core::UniquePtr<grpc_core::ServerAddressList>* addresses,
|
67
67
|
bool check_grpclb, char** service_config_json, int query_timeout_ms,
|
68
|
-
|
68
|
+
grpc_core::Combiner* combiner);
|
69
69
|
|
70
70
|
/* Cancel the pending grpc_ares_request \a request */
|
71
71
|
extern void (*grpc_cancel_ares_request_locked)(grpc_ares_request* request);
|
@@ -31,7 +31,7 @@ static grpc_ares_request* grpc_dns_lookup_ares_locked_impl(
|
|
31
31
|
grpc_pollset_set* interested_parties, grpc_closure* on_done,
|
32
32
|
grpc_core::UniquePtr<grpc_core::ServerAddressList>* addrs,
|
33
33
|
bool check_grpclb, char** service_config_json, int query_timeout_ms,
|
34
|
-
|
34
|
+
grpc_core::Combiner* combiner) {
|
35
35
|
return NULL;
|
36
36
|
}
|
37
37
|
|
@@ -40,7 +40,7 @@ grpc_ares_request* (*grpc_dns_lookup_ares_locked)(
|
|
40
40
|
grpc_pollset_set* interested_parties, grpc_closure* on_done,
|
41
41
|
grpc_core::UniquePtr<grpc_core::ServerAddressList>* addrs,
|
42
42
|
bool check_grpclb, char** service_config_json, int query_timeout_ms,
|
43
|
-
|
43
|
+
grpc_core::Combiner* combiner) = grpc_dns_lookup_ares_locked_impl;
|
44
44
|
|
45
45
|
static void grpc_cancel_ares_request_locked_impl(grpc_ares_request* r) {}
|
46
46
|
|
@@ -66,7 +66,9 @@ class NativeDnsResolver : public Resolver {
|
|
66
66
|
void MaybeStartResolvingLocked();
|
67
67
|
void StartResolvingLocked();
|
68
68
|
|
69
|
+
static void OnNextResolution(void* arg, grpc_error* error);
|
69
70
|
static void OnNextResolutionLocked(void* arg, grpc_error* error);
|
71
|
+
static void OnResolved(void* arg, grpc_error* error);
|
70
72
|
static void OnResolvedLocked(void* arg, grpc_error* error);
|
71
73
|
|
72
74
|
/// name to resolve
|
@@ -115,11 +117,6 @@ NativeDnsResolver::NativeDnsResolver(ResolverArgs args)
|
|
115
117
|
if (args.pollset_set != nullptr) {
|
116
118
|
grpc_pollset_set_add_pollset_set(interested_parties_, args.pollset_set);
|
117
119
|
}
|
118
|
-
GRPC_CLOSURE_INIT(&on_next_resolution_,
|
119
|
-
NativeDnsResolver::OnNextResolutionLocked, this,
|
120
|
-
grpc_combiner_scheduler(args.combiner));
|
121
|
-
GRPC_CLOSURE_INIT(&on_resolved_, NativeDnsResolver::OnResolvedLocked, this,
|
122
|
-
grpc_combiner_scheduler(args.combiner));
|
123
120
|
}
|
124
121
|
|
125
122
|
NativeDnsResolver::~NativeDnsResolver() {
|
@@ -150,6 +147,14 @@ void NativeDnsResolver::ShutdownLocked() {
|
|
150
147
|
}
|
151
148
|
}
|
152
149
|
|
150
|
+
void NativeDnsResolver::OnNextResolution(void* arg, grpc_error* error) {
|
151
|
+
NativeDnsResolver* r = static_cast<NativeDnsResolver*>(arg);
|
152
|
+
r->combiner()->Run(
|
153
|
+
GRPC_CLOSURE_INIT(&r->on_next_resolution_,
|
154
|
+
NativeDnsResolver::OnNextResolutionLocked, r, nullptr),
|
155
|
+
GRPC_ERROR_REF(error));
|
156
|
+
}
|
157
|
+
|
153
158
|
void NativeDnsResolver::OnNextResolutionLocked(void* arg, grpc_error* error) {
|
154
159
|
NativeDnsResolver* r = static_cast<NativeDnsResolver*>(arg);
|
155
160
|
r->have_next_resolution_timer_ = false;
|
@@ -159,6 +164,14 @@ void NativeDnsResolver::OnNextResolutionLocked(void* arg, grpc_error* error) {
|
|
159
164
|
r->Unref(DEBUG_LOCATION, "retry-timer");
|
160
165
|
}
|
161
166
|
|
167
|
+
void NativeDnsResolver::OnResolved(void* arg, grpc_error* error) {
|
168
|
+
NativeDnsResolver* r = static_cast<NativeDnsResolver*>(arg);
|
169
|
+
r->combiner()->Run(
|
170
|
+
GRPC_CLOSURE_INIT(&r->on_resolved_, NativeDnsResolver::OnResolvedLocked,
|
171
|
+
r, nullptr),
|
172
|
+
GRPC_ERROR_REF(error));
|
173
|
+
}
|
174
|
+
|
162
175
|
void NativeDnsResolver::OnResolvedLocked(void* arg, grpc_error* error) {
|
163
176
|
NativeDnsResolver* r = static_cast<NativeDnsResolver*>(arg);
|
164
177
|
GPR_ASSERT(r->resolving_);
|
@@ -202,6 +215,9 @@ void NativeDnsResolver::OnResolvedLocked(void* arg, grpc_error* error) {
|
|
202
215
|
} else {
|
203
216
|
gpr_log(GPR_DEBUG, "retrying immediately");
|
204
217
|
}
|
218
|
+
GRPC_CLOSURE_INIT(&r->on_next_resolution_,
|
219
|
+
NativeDnsResolver::OnNextResolution, r,
|
220
|
+
grpc_schedule_on_exec_ctx);
|
205
221
|
grpc_timer_init(&r->next_resolution_timer_, next_try,
|
206
222
|
&r->on_next_resolution_);
|
207
223
|
}
|
@@ -229,6 +245,9 @@ void NativeDnsResolver::MaybeStartResolvingLocked() {
|
|
229
245
|
// new closure API is done, find a way to track this ref with the timer
|
230
246
|
// callback as part of the type system.
|
231
247
|
Ref(DEBUG_LOCATION, "next_resolution_timer_cooldown").release();
|
248
|
+
GRPC_CLOSURE_INIT(&on_next_resolution_,
|
249
|
+
NativeDnsResolver::OnNextResolution, this,
|
250
|
+
grpc_schedule_on_exec_ctx);
|
232
251
|
grpc_timer_init(&next_resolution_timer_,
|
233
252
|
ExecCtx::Get()->Now() + ms_until_next_resolution,
|
234
253
|
&on_next_resolution_);
|
@@ -247,6 +266,8 @@ void NativeDnsResolver::StartResolvingLocked() {
|
|
247
266
|
GPR_ASSERT(!resolving_);
|
248
267
|
resolving_ = true;
|
249
268
|
addresses_ = nullptr;
|
269
|
+
GRPC_CLOSURE_INIT(&on_resolved_, NativeDnsResolver::OnResolved, this,
|
270
|
+
grpc_schedule_on_exec_ctx);
|
250
271
|
grpc_resolve_address(name_to_resolve_, kDefaultPort, interested_parties_,
|
251
272
|
&on_resolved_, &addresses_);
|
252
273
|
last_resolution_timestamp_ = grpc_core::ExecCtx::Get()->Now();
|
@@ -268,7 +289,7 @@ class NativeDnsResolverFactory : public ResolverFactory {
|
|
268
289
|
|
269
290
|
OrphanablePtr<Resolver> CreateResolver(ResolverArgs args) const override {
|
270
291
|
if (!IsValidUri(args.uri)) return nullptr;
|
271
|
-
return
|
292
|
+
return MakeOrphanable<NativeDnsResolver>(std::move(args));
|
272
293
|
}
|
273
294
|
|
274
295
|
const char* scheme() const override { return "dns"; }
|
@@ -284,8 +305,7 @@ void grpc_resolver_dns_native_init() {
|
|
284
305
|
if (gpr_stricmp(resolver.get(), "native") == 0) {
|
285
306
|
gpr_log(GPR_DEBUG, "Using native dns resolver");
|
286
307
|
grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
|
287
|
-
grpc_core::
|
288
|
-
grpc_core::New<grpc_core::NativeDnsResolverFactory>()));
|
308
|
+
grpc_core::MakeUnique<grpc_core::NativeDnsResolverFactory>());
|
289
309
|
} else {
|
290
310
|
grpc_core::ResolverRegistry::Builder::InitRegistry();
|
291
311
|
grpc_core::ResolverFactory* existing_factory =
|
@@ -293,8 +313,7 @@ void grpc_resolver_dns_native_init() {
|
|
293
313
|
if (existing_factory == nullptr) {
|
294
314
|
gpr_log(GPR_DEBUG, "Using native dns resolver");
|
295
315
|
grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
|
296
|
-
grpc_core::
|
297
|
-
grpc_core::New<grpc_core::NativeDnsResolverFactory>()));
|
316
|
+
grpc_core::MakeUnique<grpc_core::NativeDnsResolverFactory>());
|
298
317
|
}
|
299
318
|
}
|
300
319
|
}
|
@@ -98,8 +98,6 @@ FakeResolver::FakeResolver(ResolverArgs args)
|
|
98
98
|
: Resolver(args.combiner, std::move(args.result_handler)),
|
99
99
|
response_generator_(
|
100
100
|
FakeResolverResponseGenerator::GetFromArgs(args.args)) {
|
101
|
-
GRPC_CLOSURE_INIT(&reresolution_closure_, ReturnReresolutionResult, this,
|
102
|
-
grpc_combiner_scheduler(combiner()));
|
103
101
|
// Channels sharing the same subchannels may have different resolver response
|
104
102
|
// generators. If we don't remove this arg, subchannel pool will create new
|
105
103
|
// subchannels for the same address instead of reusing existing ones because
|
@@ -129,7 +127,9 @@ void FakeResolver::RequestReresolutionLocked() {
|
|
129
127
|
if (!reresolution_closure_pending_) {
|
130
128
|
reresolution_closure_pending_ = true;
|
131
129
|
Ref().release(); // ref held by closure
|
132
|
-
|
130
|
+
GRPC_CLOSURE_INIT(&reresolution_closure_, ReturnReresolutionResult, this,
|
131
|
+
nullptr);
|
132
|
+
combiner()->Run(&reresolution_closure_, GRPC_ERROR_NONE);
|
133
133
|
}
|
134
134
|
}
|
135
135
|
}
|
@@ -159,7 +159,7 @@ void FakeResolver::MaybeSendResultLocked() {
|
|
159
159
|
}
|
160
160
|
}
|
161
161
|
|
162
|
-
void FakeResolver::ReturnReresolutionResult(void* arg, grpc_error* error) {
|
162
|
+
void FakeResolver::ReturnReresolutionResult(void* arg, grpc_error* /*error*/) {
|
163
163
|
FakeResolver* self = static_cast<FakeResolver*>(arg);
|
164
164
|
self->reresolution_closure_pending_ = false;
|
165
165
|
self->MaybeSendResultLocked();
|
@@ -183,7 +183,7 @@ struct SetResponseClosureArg {
|
|
183
183
|
};
|
184
184
|
|
185
185
|
void FakeResolverResponseGenerator::SetResponseLocked(void* arg,
|
186
|
-
grpc_error* error) {
|
186
|
+
grpc_error* /*error*/) {
|
187
187
|
SetResponseClosureArg* closure_arg = static_cast<SetResponseClosureArg*>(arg);
|
188
188
|
auto& resolver = closure_arg->resolver;
|
189
189
|
if (!resolver->shutdown_) {
|
@@ -208,15 +208,14 @@ void FakeResolverResponseGenerator::SetResponse(Resolver::Result result) {
|
|
208
208
|
SetResponseClosureArg* closure_arg = New<SetResponseClosureArg>();
|
209
209
|
closure_arg->resolver = std::move(resolver);
|
210
210
|
closure_arg->result = std::move(result);
|
211
|
-
|
212
|
-
GRPC_CLOSURE_INIT(
|
213
|
-
|
214
|
-
grpc_combiner_scheduler(closure_arg->resolver->combiner())),
|
211
|
+
closure_arg->resolver->combiner()->Run(
|
212
|
+
GRPC_CLOSURE_INIT(&closure_arg->set_response_closure, SetResponseLocked,
|
213
|
+
closure_arg, nullptr),
|
215
214
|
GRPC_ERROR_NONE);
|
216
215
|
}
|
217
216
|
|
218
217
|
void FakeResolverResponseGenerator::SetReresolutionResponseLocked(
|
219
|
-
void* arg, grpc_error* error) {
|
218
|
+
void* arg, grpc_error* /*error*/) {
|
220
219
|
SetResponseClosureArg* closure_arg = static_cast<SetResponseClosureArg*>(arg);
|
221
220
|
auto& resolver = closure_arg->resolver;
|
222
221
|
if (!resolver->shutdown_) {
|
@@ -238,11 +237,9 @@ void FakeResolverResponseGenerator::SetReresolutionResponse(
|
|
238
237
|
closure_arg->resolver = std::move(resolver);
|
239
238
|
closure_arg->result = std::move(result);
|
240
239
|
closure_arg->has_result = true;
|
241
|
-
|
242
|
-
GRPC_CLOSURE_INIT(
|
243
|
-
|
244
|
-
closure_arg,
|
245
|
-
grpc_combiner_scheduler(closure_arg->resolver->combiner())),
|
240
|
+
closure_arg->resolver->combiner()->Run(
|
241
|
+
GRPC_CLOSURE_INIT(&closure_arg->set_response_closure,
|
242
|
+
SetReresolutionResponseLocked, closure_arg, nullptr),
|
246
243
|
GRPC_ERROR_NONE);
|
247
244
|
}
|
248
245
|
|
@@ -255,16 +252,14 @@ void FakeResolverResponseGenerator::UnsetReresolutionResponse() {
|
|
255
252
|
}
|
256
253
|
SetResponseClosureArg* closure_arg = New<SetResponseClosureArg>();
|
257
254
|
closure_arg->resolver = std::move(resolver);
|
258
|
-
|
259
|
-
GRPC_CLOSURE_INIT(
|
260
|
-
|
261
|
-
closure_arg,
|
262
|
-
grpc_combiner_scheduler(closure_arg->resolver->combiner())),
|
255
|
+
closure_arg->resolver->combiner()->Run(
|
256
|
+
GRPC_CLOSURE_INIT(&closure_arg->set_response_closure,
|
257
|
+
SetReresolutionResponseLocked, closure_arg, nullptr),
|
263
258
|
GRPC_ERROR_NONE);
|
264
259
|
}
|
265
260
|
|
266
261
|
void FakeResolverResponseGenerator::SetFailureLocked(void* arg,
|
267
|
-
grpc_error* error) {
|
262
|
+
grpc_error* /*error*/) {
|
268
263
|
SetResponseClosureArg* closure_arg = static_cast<SetResponseClosureArg*>(arg);
|
269
264
|
auto& resolver = closure_arg->resolver;
|
270
265
|
if (!resolver->shutdown_) {
|
@@ -283,10 +278,9 @@ void FakeResolverResponseGenerator::SetFailure() {
|
|
283
278
|
}
|
284
279
|
SetResponseClosureArg* closure_arg = New<SetResponseClosureArg>();
|
285
280
|
closure_arg->resolver = std::move(resolver);
|
286
|
-
|
287
|
-
GRPC_CLOSURE_INIT(
|
288
|
-
|
289
|
-
grpc_combiner_scheduler(closure_arg->resolver->combiner())),
|
281
|
+
closure_arg->resolver->combiner()->Run(
|
282
|
+
GRPC_CLOSURE_INIT(&closure_arg->set_response_closure, SetFailureLocked,
|
283
|
+
closure_arg, nullptr),
|
290
284
|
GRPC_ERROR_NONE);
|
291
285
|
}
|
292
286
|
|
@@ -300,10 +294,9 @@ void FakeResolverResponseGenerator::SetFailureOnReresolution() {
|
|
300
294
|
SetResponseClosureArg* closure_arg = New<SetResponseClosureArg>();
|
301
295
|
closure_arg->resolver = std::move(resolver);
|
302
296
|
closure_arg->immediate = false;
|
303
|
-
|
304
|
-
GRPC_CLOSURE_INIT(
|
305
|
-
|
306
|
-
grpc_combiner_scheduler(closure_arg->resolver->combiner())),
|
297
|
+
closure_arg->resolver->combiner()->Run(
|
298
|
+
GRPC_CLOSURE_INIT(&closure_arg->set_response_closure, SetFailureLocked,
|
299
|
+
closure_arg, nullptr),
|
307
300
|
GRPC_ERROR_NONE);
|
308
301
|
}
|
309
302
|
|
@@ -316,10 +309,9 @@ void FakeResolverResponseGenerator::SetFakeResolver(
|
|
316
309
|
SetResponseClosureArg* closure_arg = New<SetResponseClosureArg>();
|
317
310
|
closure_arg->resolver = resolver_->Ref();
|
318
311
|
closure_arg->result = std::move(result_);
|
319
|
-
|
312
|
+
resolver_->combiner()->Run(
|
320
313
|
GRPC_CLOSURE_INIT(&closure_arg->set_response_closure, SetResponseLocked,
|
321
|
-
closure_arg,
|
322
|
-
grpc_combiner_scheduler(resolver_->combiner())),
|
314
|
+
closure_arg, nullptr),
|
323
315
|
GRPC_ERROR_NONE);
|
324
316
|
has_result_ = false;
|
325
317
|
}
|
@@ -379,10 +371,10 @@ namespace {
|
|
379
371
|
|
380
372
|
class FakeResolverFactory : public ResolverFactory {
|
381
373
|
public:
|
382
|
-
bool IsValidUri(const grpc_uri* uri) const override { return true; }
|
374
|
+
bool IsValidUri(const grpc_uri* /*uri*/) const override { return true; }
|
383
375
|
|
384
376
|
OrphanablePtr<Resolver> CreateResolver(ResolverArgs args) const override {
|
385
|
-
return
|
377
|
+
return MakeOrphanable<FakeResolver>(std::move(args));
|
386
378
|
}
|
387
379
|
|
388
380
|
const char* scheme() const override { return "fake"; }
|
@@ -394,8 +386,7 @@ class FakeResolverFactory : public ResolverFactory {
|
|
394
386
|
|
395
387
|
void grpc_resolver_fake_init() {
|
396
388
|
grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
|
397
|
-
grpc_core::
|
398
|
-
grpc_core::New<grpc_core::FakeResolverFactory>()));
|
389
|
+
grpc_core::MakeUnique<grpc_core::FakeResolverFactory>());
|
399
390
|
}
|
400
391
|
|
401
392
|
void grpc_resolver_fake_shutdown() {}
|
@@ -78,7 +78,7 @@ void SockaddrResolver::StartLocked() {
|
|
78
78
|
// Factory
|
79
79
|
//
|
80
80
|
|
81
|
-
void DoNothing(void* ignored) {}
|
81
|
+
void DoNothing(void* /*ignored*/) {}
|
82
82
|
|
83
83
|
bool ParseUri(const grpc_uri* uri,
|
84
84
|
bool parse(const grpc_uri* uri, grpc_resolved_address* dst),
|
@@ -119,8 +119,8 @@ OrphanablePtr<Resolver> CreateSockaddrResolver(
|
|
119
119
|
ServerAddressList addresses;
|
120
120
|
if (!ParseUri(args.uri, parse, &addresses)) return nullptr;
|
121
121
|
// Instantiate resolver.
|
122
|
-
return
|
123
|
-
|
122
|
+
return MakeOrphanable<SockaddrResolver>(std::move(addresses),
|
123
|
+
std::move(args));
|
124
124
|
}
|
125
125
|
|
126
126
|
class IPv4ResolverFactory : public ResolverFactory {
|
@@ -160,7 +160,7 @@ class UnixResolverFactory : public ResolverFactory {
|
|
160
160
|
return CreateSockaddrResolver(std::move(args), grpc_parse_unix);
|
161
161
|
}
|
162
162
|
|
163
|
-
UniquePtr<char> GetDefaultAuthority(grpc_uri* uri) const override {
|
163
|
+
UniquePtr<char> GetDefaultAuthority(grpc_uri* /*uri*/) const override {
|
164
164
|
return UniquePtr<char>(gpr_strdup("localhost"));
|
165
165
|
}
|
166
166
|
|
@@ -174,15 +174,12 @@ class UnixResolverFactory : public ResolverFactory {
|
|
174
174
|
|
175
175
|
void grpc_resolver_sockaddr_init() {
|
176
176
|
grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
|
177
|
-
grpc_core::
|
178
|
-
grpc_core::New<grpc_core::IPv4ResolverFactory>()));
|
177
|
+
grpc_core::MakeUnique<grpc_core::IPv4ResolverFactory>());
|
179
178
|
grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
|
180
|
-
grpc_core::
|
181
|
-
grpc_core::New<grpc_core::IPv6ResolverFactory>()));
|
179
|
+
grpc_core::MakeUnique<grpc_core::IPv6ResolverFactory>());
|
182
180
|
#ifdef GRPC_HAVE_UNIX_SOCKET
|
183
181
|
grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
|
184
|
-
grpc_core::
|
185
|
-
grpc_core::New<grpc_core::UnixResolverFactory>()));
|
182
|
+
grpc_core::MakeUnique<grpc_core::UnixResolverFactory>());
|
186
183
|
#endif
|
187
184
|
}
|
188
185
|
|
@@ -19,39 +19,84 @@
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
21
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
22
|
+
#include "src/core/ext/filters/client_channel/xds/xds_client.h"
|
23
|
+
#include "src/core/lib/gprpp/string_view.h"
|
22
24
|
|
23
25
|
namespace grpc_core {
|
24
26
|
|
25
27
|
namespace {
|
26
28
|
|
29
|
+
//
|
30
|
+
// XdsResolver
|
31
|
+
//
|
32
|
+
|
27
33
|
class XdsResolver : public Resolver {
|
28
34
|
public:
|
29
35
|
explicit XdsResolver(ResolverArgs args)
|
30
36
|
: Resolver(args.combiner, std::move(args.result_handler)),
|
31
|
-
args_(grpc_channel_args_copy(args.args))
|
37
|
+
args_(grpc_channel_args_copy(args.args)),
|
38
|
+
interested_parties_(args.pollset_set) {
|
39
|
+
char* path = args.uri->path;
|
40
|
+
if (path[0] == '/') ++path;
|
41
|
+
server_name_.reset(gpr_strdup(path));
|
42
|
+
}
|
43
|
+
|
32
44
|
~XdsResolver() override { grpc_channel_args_destroy(args_); }
|
33
45
|
|
34
46
|
void StartLocked() override;
|
35
47
|
|
36
|
-
void ShutdownLocked() override{}
|
48
|
+
void ShutdownLocked() override { xds_client_.reset(); }
|
37
49
|
|
38
50
|
private:
|
51
|
+
class ServiceConfigWatcher : public XdsClient::ServiceConfigWatcherInterface {
|
52
|
+
public:
|
53
|
+
explicit ServiceConfigWatcher(RefCountedPtr<XdsResolver> resolver)
|
54
|
+
: resolver_(std::move(resolver)) {}
|
55
|
+
void OnServiceConfigChanged(
|
56
|
+
RefCountedPtr<ServiceConfig> service_config) override;
|
57
|
+
void OnError(grpc_error* error) override;
|
58
|
+
|
59
|
+
private:
|
60
|
+
RefCountedPtr<XdsResolver> resolver_;
|
61
|
+
};
|
62
|
+
|
63
|
+
UniquePtr<char> server_name_;
|
39
64
|
const grpc_channel_args* args_;
|
65
|
+
grpc_pollset_set* interested_parties_;
|
66
|
+
OrphanablePtr<XdsClient> xds_client_;
|
40
67
|
};
|
41
68
|
|
42
|
-
void XdsResolver::
|
43
|
-
|
44
|
-
|
45
|
-
" \"loadBalancingConfig\":[\n"
|
46
|
-
" { \"xds_experimental\":{} }\n"
|
47
|
-
" ]\n"
|
48
|
-
"}";
|
69
|
+
void XdsResolver::ServiceConfigWatcher::OnServiceConfigChanged(
|
70
|
+
RefCountedPtr<ServiceConfig> service_config) {
|
71
|
+
grpc_arg xds_client_arg = resolver_->xds_client_->MakeChannelArg();
|
49
72
|
Result result;
|
50
|
-
result.args =
|
51
|
-
|
73
|
+
result.args =
|
74
|
+
grpc_channel_args_copy_and_add(resolver_->args_, &xds_client_arg, 1);
|
75
|
+
result.service_config = std::move(service_config);
|
76
|
+
resolver_->result_handler()->ReturnResult(std::move(result));
|
77
|
+
}
|
78
|
+
|
79
|
+
void XdsResolver::ServiceConfigWatcher::OnError(grpc_error* error) {
|
80
|
+
grpc_arg xds_client_arg = resolver_->xds_client_->MakeChannelArg();
|
81
|
+
Result result;
|
82
|
+
result.args =
|
83
|
+
grpc_channel_args_copy_and_add(resolver_->args_, &xds_client_arg, 1);
|
84
|
+
result.service_config_error = error;
|
85
|
+
resolver_->result_handler()->ReturnResult(std::move(result));
|
86
|
+
}
|
87
|
+
|
88
|
+
void XdsResolver::StartLocked() {
|
52
89
|
grpc_error* error = GRPC_ERROR_NONE;
|
53
|
-
|
54
|
-
|
90
|
+
xds_client_ = MakeOrphanable<XdsClient>(
|
91
|
+
combiner(), interested_parties_, StringView(server_name_.get()),
|
92
|
+
MakeUnique<ServiceConfigWatcher>(Ref()), *args_, &error);
|
93
|
+
if (error != GRPC_ERROR_NONE) {
|
94
|
+
gpr_log(GPR_ERROR,
|
95
|
+
"Failed to create xds client -- channel will remain in "
|
96
|
+
"TRANSIENT_FAILURE: %s",
|
97
|
+
grpc_error_string(error));
|
98
|
+
result_handler()->ReturnError(error);
|
99
|
+
}
|
55
100
|
}
|
56
101
|
|
57
102
|
//
|
@@ -70,7 +115,7 @@ class XdsResolverFactory : public ResolverFactory {
|
|
70
115
|
|
71
116
|
OrphanablePtr<Resolver> CreateResolver(ResolverArgs args) const override {
|
72
117
|
if (!IsValidUri(args.uri)) return nullptr;
|
73
|
-
return
|
118
|
+
return MakeOrphanable<XdsResolver>(std::move(args));
|
74
119
|
}
|
75
120
|
|
76
121
|
const char* scheme() const override { return "xds-experimental"; }
|
@@ -82,8 +127,7 @@ class XdsResolverFactory : public ResolverFactory {
|
|
82
127
|
|
83
128
|
void grpc_resolver_xds_init() {
|
84
129
|
grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
|
85
|
-
grpc_core::
|
86
|
-
grpc_core::New<grpc_core::XdsResolverFactory>()));
|
130
|
+
grpc_core::MakeUnique<grpc_core::XdsResolverFactory>());
|
87
131
|
}
|
88
132
|
|
89
133
|
void grpc_resolver_xds_shutdown() {}
|