grpc 1.30.0 → 1.31.1
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 +560 -619
- data/include/grpc/grpc_security.h +8 -0
- data/include/grpc/grpc_security_constants.h +3 -0
- data/include/grpc/impl/codegen/grpc_types.h +7 -5
- data/include/grpc/impl/codegen/port_platform.h +0 -32
- data/src/core/ext/filters/client_channel/backend_metric.cc +12 -9
- data/src/core/ext/filters/client_channel/client_channel.cc +406 -261
- data/src/core/ext/filters/client_channel/config_selector.cc +62 -0
- data/src/core/ext/filters/client_channel/config_selector.h +93 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +2 -0
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +6 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +39 -23
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +4 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +381 -72
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +5 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +6 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +8 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +9 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +7 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -48
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +21 -18
- data/src/core/ext/filters/client_channel/resolver_registry.cc +13 -14
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +6 -7
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +33 -28
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +39 -20
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +142 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +1 -1
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +327 -123
- data/src/core/ext/filters/client_channel/xds/xds_api.h +72 -7
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +12 -23
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +112 -33
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +10 -10
- data/src/core/ext/filters/http/client/http_client_filter.cc +5 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +2 -1
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +74 -33
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +3 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +56 -80
- data/src/core/ext/filters/message_size/message_size_filter.h +6 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +383 -347
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +6 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +1 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -13
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +19 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +22 -27
- data/src/core/ext/transport/chttp2/transport/flow_control.h +14 -16
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +9 -12
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +12 -13
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +9 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -29
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +13 -17
- data/src/core/ext/transport/chttp2/transport/internal.h +13 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +33 -43
- data/src/core/ext/transport/chttp2/transport/writing.cc +9 -14
- data/src/core/ext/transport/inproc/inproc_transport.cc +35 -15
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +3 -4
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +80 -69
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +24 -23
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +66 -56
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +317 -311
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +42 -34
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +7 -7
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +79 -61
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +55 -49
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +9 -8
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +163 -169
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +51 -45
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +4 -5
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +107 -100
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +137 -117
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +9 -9
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +105 -87
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +12 -13
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +95 -101
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +49 -65
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +49 -42
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +70 -62
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +81 -65
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +91 -80
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +9 -10
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +36 -31
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +648 -696
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +16 -15
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +95 -88
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +234 -199
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +13 -13
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +1 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +20 -18
- data/src/core/ext/upb-generated/envoy/type/http.upb.h +0 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +18 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +14 -14
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +23 -23
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +8 -9
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +15 -16
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +7 -8
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +36 -35
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +0 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +0 -1
- data/src/core/ext/upb-generated/google/api/http.upb.h +29 -28
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +412 -386
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +1 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +33 -54
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +5 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -28
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +8 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +32 -45
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +157 -178
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +14 -13
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +59 -56
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +11 -12
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +0 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +5 -6
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +41 -68
- data/src/core/ext/upb-generated/validate/validate.upb.h +536 -535
- data/src/core/lib/channel/channel_trace.cc +2 -6
- data/src/core/lib/channel/channelz.cc +5 -15
- data/src/core/lib/gpr/log_linux.cc +6 -8
- data/src/core/lib/gpr/log_posix.cc +6 -8
- data/src/core/lib/gpr/string.cc +10 -9
- data/src/core/lib/gpr/string.h +4 -2
- data/src/core/lib/gprpp/global_config_env.cc +8 -6
- data/src/core/lib/http/httpcli.cc +13 -10
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -0
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +10 -10
- data/src/core/lib/iomgr/error_cfstream.cc +9 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +5 -6
- data/src/core/lib/iomgr/ev_epollex_linux.cc +15 -21
- data/src/core/lib/iomgr/ev_poll_posix.cc +6 -5
- data/src/core/lib/iomgr/ev_posix.cc +2 -0
- data/src/core/lib/iomgr/iomgr.cc +10 -0
- data/src/core/lib/iomgr/iomgr.h +10 -0
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
- data/src/core/lib/iomgr/port.h +1 -21
- data/src/core/lib/iomgr/resolve_address_custom.cc +13 -18
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -8
- data/src/core/lib/iomgr/resource_quota.cc +34 -31
- data/src/core/lib/iomgr/sockaddr_utils.cc +7 -5
- data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +95 -55
- data/src/core/lib/iomgr/socket_windows.cc +4 -5
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +9 -11
- data/src/core/lib/iomgr/tcp_client_custom.cc +6 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +27 -36
- data/src/core/lib/iomgr/tcp_client_windows.cc +9 -9
- data/src/core/lib/iomgr/tcp_custom.cc +1 -1
- data/src/core/lib/iomgr/tcp_custom.h +1 -1
- data/src/core/lib/iomgr/tcp_server.cc +3 -4
- data/src/core/lib/iomgr/tcp_server.h +7 -5
- data/src/core/lib/iomgr/tcp_server_custom.cc +6 -14
- data/src/core/lib/iomgr/tcp_server_posix.cc +34 -41
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -7
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -9
- data/src/core/lib/iomgr/tcp_server_windows.cc +16 -16
- data/src/core/lib/iomgr/timer_generic.cc +13 -12
- data/src/core/lib/iomgr/udp_server.cc +24 -23
- data/src/core/lib/iomgr/udp_server.h +5 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +9 -14
- data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +5 -2
- data/src/core/lib/json/json_reader.cc +20 -21
- data/src/core/lib/security/credentials/credentials.h +5 -3
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -6
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -9
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +19 -28
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +20 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +10 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +10 -10
- data/src/core/lib/security/security_connector/security_connector.cc +2 -0
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +18 -11
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +5 -0
- data/src/core/lib/security/security_connector/ssl_utils.cc +44 -23
- data/src/core/lib/security/security_connector/ssl_utils.h +6 -2
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +27 -24
- data/src/core/lib/security/transport/auth_filters.h +0 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +10 -9
- data/src/core/lib/security/util/json_util.cc +12 -13
- data/src/core/lib/slice/slice.cc +38 -1
- data/src/core/lib/slice/slice_internal.h +1 -0
- data/src/core/lib/surface/call.cc +40 -41
- data/src/core/lib/surface/completion_queue.cc +271 -14
- data/src/core/lib/surface/completion_queue.h +8 -0
- data/src/core/lib/surface/init.cc +2 -0
- data/src/core/lib/surface/server.cc +565 -632
- data/src/core/lib/surface/server.h +34 -12
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/transport.h +6 -0
- data/src/core/lib/uri/uri_parser.cc +8 -15
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +23 -13
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -0
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -0
- data/src/core/tsi/ssl_transport_security.cc +108 -11
- data/src/core/tsi/ssl_transport_security.h +14 -2
- data/src/core/tsi/transport_security_interface.h +5 -0
- data/src/ruby/bin/math_services_pb.rb +4 -4
- data/src/ruby/ext/grpc/extconf.rb +5 -2
- data/src/ruby/ext/grpc/rb_call.c +3 -2
- data/src/ruby/ext/grpc/rb_call.h +4 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +57 -12
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +1 -1
- data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +2 -2
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +5 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +28 -12
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +25 -1
- data/src/ruby/spec/support/services.rb +10 -4
- data/src/ruby/spec/user_agent_spec.rb +74 -0
- data/third_party/boringssl-with-bazel/err_data.c +89 -83
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +12 -52
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -22
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +143 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +11 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +24 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +20 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -15
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -5
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +116 -363
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +7 -45
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +13 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +28 -9
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +35 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -154
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +28 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +74 -35
- data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +22 -22
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +69 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +33 -16
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +789 -715
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +9 -2
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +9 -0
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +17 -14
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -7
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +28 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +4 -24
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +5 -5
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +45 -24
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +31 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +12 -9
- data/third_party/re2/re2/bitmap256.h +117 -0
- data/third_party/re2/re2/bitstate.cc +385 -0
- data/third_party/re2/re2/compile.cc +1279 -0
- data/third_party/re2/re2/dfa.cc +2130 -0
- data/third_party/re2/re2/filtered_re2.cc +121 -0
- data/third_party/re2/re2/filtered_re2.h +109 -0
- data/third_party/re2/re2/mimics_pcre.cc +197 -0
- data/third_party/re2/re2/nfa.cc +713 -0
- data/third_party/re2/re2/onepass.cc +623 -0
- data/third_party/re2/re2/parse.cc +2464 -0
- data/third_party/re2/re2/perl_groups.cc +119 -0
- data/third_party/re2/re2/pod_array.h +55 -0
- data/third_party/re2/re2/prefilter.cc +710 -0
- data/third_party/re2/re2/prefilter.h +108 -0
- data/third_party/re2/re2/prefilter_tree.cc +407 -0
- data/third_party/re2/re2/prefilter_tree.h +139 -0
- data/third_party/re2/re2/prog.cc +988 -0
- data/third_party/re2/re2/prog.h +436 -0
- data/third_party/re2/re2/re2.cc +1362 -0
- data/third_party/re2/re2/re2.h +1002 -0
- data/third_party/re2/re2/regexp.cc +980 -0
- data/third_party/re2/re2/regexp.h +659 -0
- data/third_party/re2/re2/set.cc +154 -0
- data/third_party/re2/re2/set.h +80 -0
- data/third_party/re2/re2/simplify.cc +657 -0
- data/third_party/re2/re2/sparse_array.h +392 -0
- data/third_party/re2/re2/sparse_set.h +264 -0
- data/third_party/re2/re2/stringpiece.cc +65 -0
- data/third_party/re2/re2/stringpiece.h +210 -0
- data/third_party/re2/re2/tostring.cc +351 -0
- data/third_party/re2/re2/unicode_casefold.cc +582 -0
- data/third_party/re2/re2/unicode_casefold.h +78 -0
- data/third_party/re2/re2/unicode_groups.cc +6269 -0
- data/third_party/re2/re2/unicode_groups.h +67 -0
- data/third_party/re2/re2/walker-inl.h +246 -0
- data/third_party/re2/util/benchmark.h +156 -0
- data/third_party/re2/util/flags.h +26 -0
- data/third_party/re2/util/logging.h +109 -0
- data/third_party/re2/util/malloc_counter.h +19 -0
- data/third_party/re2/util/mix.h +41 -0
- data/third_party/re2/util/mutex.h +148 -0
- data/third_party/re2/util/pcre.cc +1025 -0
- data/third_party/re2/util/pcre.h +681 -0
- data/third_party/re2/util/rune.cc +260 -0
- data/third_party/re2/util/strutil.cc +149 -0
- data/third_party/re2/util/strutil.h +21 -0
- data/third_party/re2/util/test.h +50 -0
- data/third_party/re2/util/utf.h +44 -0
- data/third_party/re2/util/util.h +42 -0
- data/third_party/upb/upb/decode.c +467 -504
- data/third_party/upb/upb/encode.c +163 -121
- data/third_party/upb/upb/msg.c +130 -64
- data/third_party/upb/upb/msg.h +418 -14
- data/third_party/upb/upb/port_def.inc +35 -6
- data/third_party/upb/upb/port_undef.inc +8 -1
- data/third_party/upb/upb/table.c +53 -75
- data/third_party/upb/upb/table.int.h +11 -43
- data/third_party/upb/upb/upb.c +148 -124
- data/third_party/upb/upb/upb.h +65 -147
- data/third_party/upb/upb/upb.hpp +86 -0
- metadata +90 -30
- data/third_party/upb/upb/generated_util.h +0 -105
@@ -23,6 +23,7 @@
|
|
23
23
|
#include <string.h>
|
24
24
|
|
25
25
|
#include "absl/container/inlined_vector.h"
|
26
|
+
#include "absl/strings/str_format.h"
|
26
27
|
|
27
28
|
#include "src/core/lib/gpr/string.h"
|
28
29
|
|
@@ -168,11 +169,9 @@ LoadBalancingPolicyRegistry::ParseLoadBalancingConfig(const Json& json,
|
|
168
169
|
LoadBalancingPolicyFactory* factory =
|
169
170
|
g_state->GetLoadBalancingPolicyFactory(policy->first.c_str());
|
170
171
|
if (factory == nullptr) {
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
*error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
|
175
|
-
gpr_free(msg);
|
172
|
+
*error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
173
|
+
absl::StrFormat("Factory not found for policy \"%s\"", policy->first)
|
174
|
+
.c_str());
|
176
175
|
return nullptr;
|
177
176
|
}
|
178
177
|
// Parse load balancing config via factory.
|
@@ -25,6 +25,7 @@
|
|
25
25
|
#include <string.h>
|
26
26
|
|
27
27
|
#include "absl/container/inlined_vector.h"
|
28
|
+
#include "absl/strings/str_cat.h"
|
28
29
|
|
29
30
|
#include <grpc/support/alloc.h>
|
30
31
|
#include <grpc/support/string_util.h>
|
@@ -370,9 +371,11 @@ void AresDnsResolver::OnResolvedLocked(grpc_error* error) {
|
|
370
371
|
} else {
|
371
372
|
GRPC_CARES_TRACE_LOG("resolver:%p dns resolution failed: %s", this,
|
372
373
|
grpc_error_string(error));
|
374
|
+
std::string error_message =
|
375
|
+
absl::StrCat("DNS resolution failed for service: ", name_to_resolve_);
|
373
376
|
result_handler()->ReturnError(grpc_error_set_int(
|
374
|
-
|
375
|
-
|
377
|
+
GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(error_message.c_str(),
|
378
|
+
&error, 1),
|
376
379
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE));
|
377
380
|
// Set retry timer.
|
378
381
|
grpc_millis next_try = backoff_.NextAttemptTime();
|
@@ -23,6 +23,8 @@
|
|
23
23
|
#include <ares.h>
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
+
#include "absl/strings/str_cat.h"
|
27
|
+
|
26
28
|
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
|
27
29
|
|
28
30
|
#include <grpc/support/alloc.h>
|
@@ -155,11 +157,10 @@ grpc_error* grpc_ares_ev_driver_create_locked(
|
|
155
157
|
grpc_ares_test_only_inject_config((*ev_driver)->channel);
|
156
158
|
GRPC_CARES_TRACE_LOG("request:%p grpc_ares_ev_driver_create_locked", request);
|
157
159
|
if (status != ARES_SUCCESS) {
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
gpr_free(err_msg);
|
160
|
+
grpc_error* err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
161
|
+
absl::StrCat("Failed to init ares channel. C-ares error: ",
|
162
|
+
ares_strerror(status))
|
163
|
+
.c_str());
|
163
164
|
gpr_free(*ev_driver);
|
164
165
|
return err;
|
165
166
|
}
|
@@ -20,6 +20,8 @@
|
|
20
20
|
#include "src/core/lib/iomgr/port.h"
|
21
21
|
#if GRPC_ARES == 1 && defined(GRPC_UV)
|
22
22
|
|
23
|
+
#include "absl/strings/str_format.h"
|
24
|
+
|
23
25
|
#include <ares.h>
|
24
26
|
#include <uv.h>
|
25
27
|
|
@@ -43,15 +45,14 @@ class GrpcPolledFdLibuv : public GrpcPolledFd {
|
|
43
45
|
public:
|
44
46
|
GrpcPolledFdLibuv(ares_socket_t as,
|
45
47
|
std::shared_ptr<WorkSerializer> work_serializer)
|
46
|
-
:
|
47
|
-
|
48
|
+
: name_(absl::StrFormat("c-ares socket: %" PRIdPTR, (intptr_t)as)),
|
49
|
+
as_(as),
|
50
|
+
work_serializer_(std::move(work_serializer)) {
|
48
51
|
handle_ = new uv_poll_t();
|
49
52
|
uv_poll_init_socket(uv_default_loop(), handle_, as);
|
50
53
|
handle_->data = this;
|
51
54
|
}
|
52
55
|
|
53
|
-
~GrpcPolledFdLibuv() { gpr_free(name_); }
|
54
|
-
|
55
56
|
void RegisterForOnReadableLocked(grpc_closure* read_closure) override {
|
56
57
|
GPR_ASSERT(read_closure_ == nullptr);
|
57
58
|
GPR_ASSERT((poll_events_ & UV_READABLE) == 0);
|
@@ -98,9 +99,10 @@ class GrpcPolledFdLibuv : public GrpcPolledFd {
|
|
98
99
|
|
99
100
|
ares_socket_t GetWrappedAresSocketLocked() override { return as_; }
|
100
101
|
|
101
|
-
const char* GetName() override { return name_; }
|
102
|
+
const char* GetName() override { return name_.c_str(); }
|
102
103
|
|
103
|
-
|
104
|
+
// TODO(apolcyn): Data members should be private.
|
105
|
+
std::string name_;
|
104
106
|
ares_socket_t as_;
|
105
107
|
uv_poll_t* handle_;
|
106
108
|
grpc_closure* read_closure_ = nullptr;
|
@@ -24,6 +24,8 @@
|
|
24
24
|
#include <string.h>
|
25
25
|
#include <sys/ioctl.h>
|
26
26
|
|
27
|
+
#include "absl/strings/str_cat.h"
|
28
|
+
|
27
29
|
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
|
28
30
|
|
29
31
|
#include <grpc/support/alloc.h>
|
@@ -41,15 +43,13 @@ namespace grpc_core {
|
|
41
43
|
class GrpcPolledFdPosix : public GrpcPolledFd {
|
42
44
|
public:
|
43
45
|
GrpcPolledFdPosix(ares_socket_t as, grpc_pollset_set* driver_pollset_set)
|
44
|
-
: as_(as) {
|
45
|
-
|
46
|
-
fd_ = grpc_fd_create((int)as, name_, false);
|
46
|
+
: name_(absl::StrCat("c-ares fd: ", (int)as)), as_(as) {
|
47
|
+
fd_ = grpc_fd_create((int)as, name_.c_str(), false);
|
47
48
|
driver_pollset_set_ = driver_pollset_set;
|
48
49
|
grpc_pollset_set_add_fd(driver_pollset_set_, fd_);
|
49
50
|
}
|
50
51
|
|
51
52
|
~GrpcPolledFdPosix() {
|
52
|
-
gpr_free(name_);
|
53
53
|
grpc_pollset_set_del_fd(driver_pollset_set_, fd_);
|
54
54
|
/* c-ares library will close the fd inside grpc_fd. This fd may be picked up
|
55
55
|
immediately by another thread, and should not be closed by the following
|
@@ -78,9 +78,10 @@ class GrpcPolledFdPosix : public GrpcPolledFd {
|
|
78
78
|
|
79
79
|
ares_socket_t GetWrappedAresSocketLocked() override { return as_; }
|
80
80
|
|
81
|
-
const char* GetName() override { return name_; }
|
81
|
+
const char* GetName() override { return name_.c_str(); }
|
82
82
|
|
83
|
-
|
83
|
+
private:
|
84
|
+
std::string name_;
|
84
85
|
ares_socket_t as_;
|
85
86
|
grpc_fd* fd_;
|
86
87
|
grpc_pollset_set* driver_pollset_set_;
|
@@ -98,7 +99,8 @@ class GrpcPolledFdFactoryPosix : public GrpcPolledFdFactory {
|
|
98
99
|
};
|
99
100
|
|
100
101
|
std::unique_ptr<GrpcPolledFdFactory> NewGrpcPolledFdFactory(
|
101
|
-
std::shared_ptr<WorkSerializer> work_serializer) {
|
102
|
+
std::shared_ptr<WorkSerializer> work_serializer) {
|
103
|
+
(void)work_serializer;
|
102
104
|
return absl::make_unique<GrpcPolledFdFactoryPosix>();
|
103
105
|
}
|
104
106
|
|
@@ -20,6 +20,8 @@
|
|
20
20
|
#include "src/core/lib/iomgr/port.h"
|
21
21
|
#if GRPC_ARES == 1 && defined(GRPC_WINDOWS_SOCKET_ARES_EV_DRIVER)
|
22
22
|
|
23
|
+
#include "absl/strings/str_format.h"
|
24
|
+
|
23
25
|
#include <ares.h>
|
24
26
|
|
25
27
|
#include <grpc/support/alloc.h>
|
@@ -104,10 +106,10 @@ class GrpcPolledFdWindows {
|
|
104
106
|
read_buf_(grpc_empty_slice()),
|
105
107
|
write_buf_(grpc_empty_slice()),
|
106
108
|
tcp_write_state_(WRITE_IDLE),
|
109
|
+
name_(absl::StrFormat("c-ares socket: %" PRIdPTR, as)),
|
107
110
|
gotten_into_driver_list_(false),
|
108
111
|
address_family_(address_family),
|
109
112
|
socket_type_(socket_type) {
|
110
|
-
gpr_asprintf(&name_, "c-ares socket: %" PRIdPTR, as);
|
111
113
|
// Closure Initialization
|
112
114
|
GRPC_CLOSURE_INIT(&outer_read_closure_,
|
113
115
|
&GrpcPolledFdWindows::OnIocpReadable, this,
|
@@ -118,7 +120,7 @@ class GrpcPolledFdWindows {
|
|
118
120
|
GRPC_CLOSURE_INIT(&on_tcp_connect_locked_,
|
119
121
|
&GrpcPolledFdWindows::OnTcpConnect, this,
|
120
122
|
grpc_schedule_on_exec_ctx);
|
121
|
-
winsocket_ = grpc_winsocket_create(as, name_);
|
123
|
+
winsocket_ = grpc_winsocket_create(as, name_.c_str());
|
122
124
|
}
|
123
125
|
|
124
126
|
~GrpcPolledFdWindows() {
|
@@ -127,7 +129,6 @@ class GrpcPolledFdWindows {
|
|
127
129
|
GPR_ASSERT(read_closure_ == nullptr);
|
128
130
|
GPR_ASSERT(write_closure_ == nullptr);
|
129
131
|
grpc_winsocket_destroy(winsocket_);
|
130
|
-
gpr_free(name_);
|
131
132
|
}
|
132
133
|
|
133
134
|
void ScheduleAndNullReadClosure(grpc_error* error) {
|
@@ -260,7 +261,7 @@ class GrpcPolledFdWindows {
|
|
260
261
|
return grpc_winsocket_wrapped_socket(winsocket_);
|
261
262
|
}
|
262
263
|
|
263
|
-
const char* GetName() { return name_; }
|
264
|
+
const char* GetName() { return name_.c_str(); }
|
264
265
|
|
265
266
|
ares_ssize_t RecvFrom(WSAErrorContext* wsa_error_ctx, void* data,
|
266
267
|
ares_socket_t data_len, int flags,
|
@@ -657,6 +658,7 @@ class GrpcPolledFdWindows {
|
|
657
658
|
bool gotten_into_driver_list() const { return gotten_into_driver_list_; }
|
658
659
|
void set_gotten_into_driver_list() { gotten_into_driver_list_ = true; }
|
659
660
|
|
661
|
+
private:
|
660
662
|
std::shared_ptr<WorkSerializer> work_serializer_;
|
661
663
|
char recv_from_source_addr_[200];
|
662
664
|
ares_socklen_t recv_from_source_addr_len_;
|
@@ -670,7 +672,7 @@ class GrpcPolledFdWindows {
|
|
670
672
|
grpc_winsocket* winsocket_;
|
671
673
|
// tcp_write_state_ is only used on TCP GrpcPolledFds
|
672
674
|
WriteState tcp_write_state_;
|
673
|
-
|
675
|
+
std::string name_;
|
674
676
|
bool gotten_into_driver_list_;
|
675
677
|
int address_family_;
|
676
678
|
int socket_type_;
|
@@ -27,6 +27,8 @@
|
|
27
27
|
#include <sys/types.h>
|
28
28
|
|
29
29
|
#include "absl/container/inlined_vector.h"
|
30
|
+
#include "absl/strings/str_cat.h"
|
31
|
+
#include "absl/strings/str_format.h"
|
30
32
|
|
31
33
|
#include <ares.h>
|
32
34
|
#include <grpc/support/alloc.h>
|
@@ -277,15 +279,12 @@ static void on_hostbyname_done_locked(void* arg, int status, int /*timeouts*/,
|
|
277
279
|
}
|
278
280
|
}
|
279
281
|
} else {
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
"qtype=%s name=%s is_balancer=%d: %s",
|
284
|
-
hr->qtype, hr->host, hr->is_balancer, ares_strerror(status));
|
282
|
+
std::string error_msg = absl::StrFormat(
|
283
|
+
"C-ares status is not ARES_SUCCESS qtype=%s name=%s is_balancer=%d: %s",
|
284
|
+
hr->qtype, hr->host, hr->is_balancer, ares_strerror(status));
|
285
285
|
GRPC_CARES_TRACE_LOG("request:%p on_hostbyname_done_locked: %s", r,
|
286
|
-
error_msg);
|
287
|
-
grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg);
|
288
|
-
gpr_free(error_msg);
|
286
|
+
error_msg.c_str());
|
287
|
+
grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
|
289
288
|
r->error = grpc_error_add_child(error, r->error);
|
290
289
|
}
|
291
290
|
destroy_hostbyname_request_locked(hr);
|
@@ -326,15 +325,12 @@ static void on_srv_query_done_locked(void* arg, int status, int /*timeouts*/,
|
|
326
325
|
ares_free_data(reply);
|
327
326
|
}
|
328
327
|
} else {
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
"qtype=SRV name=%s: %s",
|
333
|
-
q->name().c_str(), ares_strerror(status));
|
328
|
+
std::string error_msg = absl::StrFormat(
|
329
|
+
"C-ares status is not ARES_SUCCESS qtype=SRV name=%s: %s", q->name(),
|
330
|
+
ares_strerror(status));
|
334
331
|
GRPC_CARES_TRACE_LOG("request:%p on_srv_query_done_locked: %s", r,
|
335
|
-
error_msg);
|
336
|
-
grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg);
|
337
|
-
gpr_free(error_msg);
|
332
|
+
error_msg.c_str());
|
333
|
+
grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
|
338
334
|
r->error = grpc_error_add_child(error, r->error);
|
339
335
|
}
|
340
336
|
delete q;
|
@@ -344,8 +340,8 @@ static const char g_service_config_attribute_prefix[] = "grpc_config=";
|
|
344
340
|
|
345
341
|
static void on_txt_done_locked(void* arg, int status, int /*timeouts*/,
|
346
342
|
unsigned char* buf, int len) {
|
347
|
-
char* error_msg;
|
348
343
|
GrpcAresQuery* q = static_cast<GrpcAresQuery*>(arg);
|
344
|
+
std::unique_ptr<GrpcAresQuery> query_deleter(q);
|
349
345
|
grpc_ares_request* r = q->parent_request();
|
350
346
|
const size_t prefix_len = sizeof(g_service_config_attribute_prefix) - 1;
|
351
347
|
struct ares_txt_ext* result = nullptr;
|
@@ -386,18 +382,15 @@ static void on_txt_done_locked(void* arg, int status, int /*timeouts*/,
|
|
386
382
|
}
|
387
383
|
// Clean up.
|
388
384
|
ares_free_data(reply);
|
389
|
-
|
385
|
+
return;
|
390
386
|
fail:
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
gpr_free(error_msg);
|
387
|
+
std::string error_msg =
|
388
|
+
absl::StrFormat("C-ares status is not ARES_SUCCESS qtype=TXT name=%s: %s",
|
389
|
+
q->name(), ares_strerror(status));
|
390
|
+
error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg.c_str());
|
391
|
+
GRPC_CARES_TRACE_LOG("request:%p on_txt_done_locked %s", r,
|
392
|
+
error_msg.c_str());
|
398
393
|
r->error = grpc_error_add_child(error, r->error);
|
399
|
-
done:
|
400
|
-
delete q;
|
401
394
|
}
|
402
395
|
|
403
396
|
void grpc_dns_lookup_ares_continue_after_check_localhost_and_ip_literals_locked(
|
@@ -459,11 +452,10 @@ void grpc_dns_lookup_ares_continue_after_check_localhost_and_ip_literals_locked(
|
|
459
452
|
}
|
460
453
|
int status = ares_set_servers_ports(*channel, &r->dns_server_addr);
|
461
454
|
if (status != ARES_SUCCESS) {
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
gpr_free(error_msg);
|
455
|
+
error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
456
|
+
absl::StrCat("C-ares status is not ARES_SUCCESS: ",
|
457
|
+
ares_strerror(status))
|
458
|
+
.c_str());
|
467
459
|
goto error_cleanup;
|
468
460
|
}
|
469
461
|
}
|
@@ -482,20 +474,16 @@ void grpc_dns_lookup_ares_continue_after_check_localhost_and_ip_literals_locked(
|
|
482
474
|
hr);
|
483
475
|
if (r->balancer_addresses_out != nullptr) {
|
484
476
|
/* Query the SRV record */
|
485
|
-
|
486
|
-
gpr_asprintf(&service_name, "_grpclb._tcp.%s", host.c_str());
|
477
|
+
std::string service_name = absl::StrCat("_grpclb._tcp.", host);
|
487
478
|
GrpcAresQuery* srv_query = new GrpcAresQuery(r, service_name);
|
488
|
-
ares_query(*channel, service_name, ns_c_in, ns_t_srv,
|
479
|
+
ares_query(*channel, service_name.c_str(), ns_c_in, ns_t_srv,
|
489
480
|
on_srv_query_done_locked, srv_query);
|
490
|
-
gpr_free(service_name);
|
491
481
|
}
|
492
482
|
if (r->service_config_json_out != nullptr) {
|
493
|
-
|
494
|
-
gpr_asprintf(&config_name, "_grpc_config.%s", host.c_str());
|
483
|
+
std::string config_name = absl::StrCat("_grpc_config.", host);
|
495
484
|
GrpcAresQuery* txt_query = new GrpcAresQuery(r, config_name);
|
496
|
-
ares_search(*channel, config_name, ns_c_in, ns_t_txt,
|
497
|
-
txt_query);
|
498
|
-
gpr_free(config_name);
|
485
|
+
ares_search(*channel, config_name.c_str(), ns_c_in, ns_t_txt,
|
486
|
+
on_txt_done_locked, txt_query);
|
499
487
|
}
|
500
488
|
grpc_ares_ev_driver_start_locked(r->ev_driver);
|
501
489
|
grpc_ares_request_unref_locked(r);
|
@@ -631,7 +619,7 @@ static bool grpc_ares_maybe_resolve_localhost_manually_locked(
|
|
631
619
|
}
|
632
620
|
#else /* GRPC_ARES_RESOLVE_LOCALHOST_MANUALLY */
|
633
621
|
static bool grpc_ares_maybe_resolve_localhost_manually_locked(
|
634
|
-
const grpc_ares_request* r
|
622
|
+
const grpc_ares_request* /*r*/, const char* /*name*/,
|
635
623
|
const char* /*default_port*/,
|
636
624
|
std::unique_ptr<grpc_core::ServerAddressList>* /*addrs*/) {
|
637
625
|
return false;
|
@@ -709,12 +697,9 @@ void (*grpc_cancel_ares_request_locked)(grpc_ares_request* r) =
|
|
709
697
|
grpc_error* grpc_ares_init(void) {
|
710
698
|
int status = ares_library_init(ARES_LIB_INIT_ALL);
|
711
699
|
if (status != ARES_SUCCESS) {
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
grpc_error* error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_msg);
|
716
|
-
gpr_free(error_msg);
|
717
|
-
return error;
|
700
|
+
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
701
|
+
absl::StrCat("ares_library_init failed: ", ares_strerror(status))
|
702
|
+
.c_str());
|
718
703
|
}
|
719
704
|
return GRPC_ERROR_NONE;
|
720
705
|
}
|
@@ -22,6 +22,8 @@
|
|
22
22
|
#include <climits>
|
23
23
|
#include <cstring>
|
24
24
|
|
25
|
+
#include "absl/strings/str_cat.h"
|
26
|
+
|
25
27
|
#include <grpc/support/alloc.h>
|
26
28
|
#include <grpc/support/string_util.h>
|
27
29
|
#include <grpc/support/time.h>
|
@@ -195,9 +197,11 @@ void NativeDnsResolver::OnResolvedLocked(grpc_error* error) {
|
|
195
197
|
gpr_log(GPR_INFO, "dns resolution failed (will retry): %s",
|
196
198
|
grpc_error_string(error));
|
197
199
|
// Return transient error.
|
200
|
+
std::string error_message =
|
201
|
+
absl::StrCat("DNS resolution failed for service: ", name_to_resolve_);
|
198
202
|
result_handler()->ReturnError(grpc_error_set_int(
|
199
|
-
|
200
|
-
|
203
|
+
GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(error_message.c_str(),
|
204
|
+
&error, 1),
|
201
205
|
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE));
|
202
206
|
// Set up for retry.
|
203
207
|
grpc_millis next_try = backoff_.NextAttemptTime();
|
@@ -18,8 +18,11 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
+
#include "src/core/ext/filters/client_channel/config_selector.h"
|
21
22
|
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
22
23
|
#include "src/core/ext/filters/client_channel/xds/xds_client.h"
|
24
|
+
#include "src/core/lib/channel/channel_args.h"
|
25
|
+
#include "src/core/lib/transport/timeout_encoding.h"
|
23
26
|
|
24
27
|
namespace grpc_core {
|
25
28
|
|
@@ -37,7 +40,8 @@ class XdsResolver : public Resolver {
|
|
37
40
|
: Resolver(std::move(args.work_serializer),
|
38
41
|
std::move(args.result_handler)),
|
39
42
|
args_(grpc_channel_args_copy(args.args)),
|
40
|
-
interested_parties_(args.pollset_set)
|
43
|
+
interested_parties_(args.pollset_set),
|
44
|
+
config_selector_(MakeRefCounted<XdsConfigSelector>()) {
|
41
45
|
char* path = args.uri->path;
|
42
46
|
if (path[0] == '/') ++path;
|
43
47
|
server_name_ = path;
|
@@ -77,10 +81,18 @@ class XdsResolver : public Resolver {
|
|
77
81
|
RefCountedPtr<XdsResolver> resolver_;
|
78
82
|
};
|
79
83
|
|
84
|
+
class XdsConfigSelector : public ConfigSelector {
|
85
|
+
public:
|
86
|
+
CallConfig GetCallConfig(GetCallConfigArgs args) override {
|
87
|
+
return CallConfig();
|
88
|
+
}
|
89
|
+
};
|
90
|
+
|
80
91
|
std::string server_name_;
|
81
92
|
const grpc_channel_args* args_;
|
82
93
|
grpc_pollset_set* interested_parties_;
|
83
94
|
OrphanablePtr<XdsClient> xds_client_;
|
95
|
+
RefCountedPtr<XdsConfigSelector> config_selector_;
|
84
96
|
};
|
85
97
|
|
86
98
|
void XdsResolver::ServiceConfigWatcher::OnServiceConfigChanged(
|
@@ -90,10 +102,13 @@ void XdsResolver::ServiceConfigWatcher::OnServiceConfigChanged(
|
|
90
102
|
gpr_log(GPR_INFO, "[xds_resolver %p] received updated service config: %s",
|
91
103
|
resolver_.get(), service_config->json_string().c_str());
|
92
104
|
}
|
93
|
-
grpc_arg
|
105
|
+
grpc_arg new_args[] = {
|
106
|
+
resolver_->xds_client_->MakeChannelArg(),
|
107
|
+
resolver_->config_selector_->MakeChannelArg(),
|
108
|
+
};
|
94
109
|
Result result;
|
95
|
-
result.args =
|
96
|
-
|
110
|
+
result.args = grpc_channel_args_copy_and_add(resolver_->args_, new_args,
|
111
|
+
GPR_ARRAY_SIZE(new_args));
|
97
112
|
result.service_config = std::move(service_config);
|
98
113
|
resolver_->result_handler()->ReturnResult(std::move(result));
|
99
114
|
}
|
@@ -144,8 +159,6 @@ void XdsResolver::StartLocked() {
|
|
144
159
|
|
145
160
|
class XdsResolverFactory : public ResolverFactory {
|
146
161
|
public:
|
147
|
-
explicit XdsResolverFactory(const char* scheme) : scheme_(scheme) {}
|
148
|
-
|
149
162
|
bool IsValidUri(const grpc_uri* uri) const override {
|
150
163
|
if (GPR_UNLIKELY(0 != strcmp(uri->authority, ""))) {
|
151
164
|
gpr_log(GPR_ERROR, "URI authority not supported");
|
@@ -159,26 +172,16 @@ class XdsResolverFactory : public ResolverFactory {
|
|
159
172
|
return MakeOrphanable<XdsResolver>(std::move(args));
|
160
173
|
}
|
161
174
|
|
162
|
-
const char* scheme() const override { return
|
163
|
-
|
164
|
-
private:
|
165
|
-
const char* scheme_;
|
175
|
+
const char* scheme() const override { return "xds"; }
|
166
176
|
};
|
167
177
|
|
168
|
-
constexpr char kXdsScheme[] = "xds";
|
169
|
-
constexpr char kXdsExperimentalScheme[] = "xds-experimental";
|
170
|
-
|
171
178
|
} // namespace
|
172
179
|
|
173
180
|
} // namespace grpc_core
|
174
181
|
|
175
182
|
void grpc_resolver_xds_init() {
|
176
183
|
grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
|
177
|
-
absl::make_unique<grpc_core::XdsResolverFactory>(
|
178
|
-
// TODO(roth): Remov this in the 1.31 release.
|
179
|
-
grpc_core::ResolverRegistry::Builder::RegisterResolverFactory(
|
180
|
-
absl::make_unique<grpc_core::XdsResolverFactory>(
|
181
|
-
grpc_core::kXdsExperimentalScheme));
|
184
|
+
absl::make_unique<grpc_core::XdsResolverFactory>());
|
182
185
|
}
|
183
186
|
|
184
187
|
void grpc_resolver_xds_shutdown() {}
|