grpc 1.31.0.pre2 → 1.34.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 +1030 -16151
- data/include/grpc/grpc.h +1 -7
- data/include/grpc/grpc_security.h +196 -186
- data/include/grpc/impl/codegen/README.md +22 -0
- data/include/grpc/impl/codegen/grpc_types.h +9 -7
- data/include/grpc/impl/codegen/port_platform.h +28 -56
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +243 -188
- data/src/core/ext/filters/client_channel/client_channel.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +0 -3
- data/src/core/ext/filters/client_channel/config_selector.cc +0 -4
- data/src/core/ext/filters/client_channel/config_selector.h +36 -8
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +10 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -2
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +3 -4
- data/src/core/ext/filters/client_channel/lb_policy.cc +5 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +48 -35
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -7
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +178 -162
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -37
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +23 -17
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +79 -30
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -9
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +14 -34
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +26 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +208 -130
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +299 -328
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +53 -17
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +809 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +722 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
- data/src/core/ext/filters/client_channel/resolver.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver.h +4 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +21 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +661 -58
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +28 -0
- data/src/core/ext/filters/client_channel/resolver_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +18 -61
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +4 -3
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +50 -48
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +7 -11
- data/src/core/ext/filters/client_channel/retry_throttle.h +1 -1
- data/src/core/ext/filters/client_channel/server_address.cc +120 -7
- data/src/core/ext/filters/client_channel/server_address.h +44 -21
- data/src/core/ext/filters/client_channel/service_config.cc +18 -13
- data/src/core/ext/filters/client_channel/service_config.h +8 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -2
- data/src/core/ext/filters/client_channel/service_config_parser.cc +8 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +8 -5
- data/src/core/ext/filters/client_channel/subchannel.cc +82 -38
- data/src/core/ext/filters/client_channel/subchannel.h +18 -6
- data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -2
- data/src/core/ext/filters/deadline/deadline_filter.cc +83 -77
- data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
- data/src/core/ext/filters/max_age/max_age_filter.cc +3 -2
- data/src/core/ext/filters/message_size/message_size_filter.cc +2 -1
- data/src/core/ext/filters/message_size/message_size_filter.h +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +87 -31
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +19 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +10 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +36 -28
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +6 -6
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +260 -311
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +11 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +12 -2
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
- data/src/core/ext/transport/chttp2/transport/internal.h +10 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +19 -31
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -7
- data/src/core/ext/transport/inproc/inproc_transport.cc +12 -12
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +244 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +766 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +226 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +458 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1635 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/filter.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +69 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/outlier_detection.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +124 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +379 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/backoff.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +79 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +310 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +869 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +103 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +351 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +71 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +133 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +241 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +752 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +684 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/http_uri.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +80 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +176 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +645 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +28 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +58 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +85 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +220 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +273 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +332 -0
- data/src/core/ext/upb-generated/envoy/config/listener/{v2 → v3}/api_listener.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +128 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +467 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +155 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +539 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +94 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +178 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +616 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +204 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +900 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +3290 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +139 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +50 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +108 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +364 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1336 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +20 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +34 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +110 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +387 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +76 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +214 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +147 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +570 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/cluster/v3}/cds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +5 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +139 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +449 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +55 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/rds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/srds.upb.c +5 -6
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +49 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +114 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +77 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +71 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +64 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +145 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +133 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +188 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +250 -0
- data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
- data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +8 -8
- data/src/core/ext/upb-generated/envoy/type/{percent.upb.c → v3/percent.upb.c} +9 -8
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +86 -0
- data/src/core/ext/upb-generated/envoy/type/{range.upb.c → v3/range.upb.c} +12 -11
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +111 -0
- data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +6 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +61 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +753 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +234 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +759 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +36 -36
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +57 -0
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +53 -0
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +53 -0
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +52 -0
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +129 -0
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +42 -0
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +77 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +36 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +85 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +54 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +160 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +36 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +84 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +11 -11
- data/src/core/ext/upb-generated/validate/validate.upb.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +254 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +558 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +133 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +266 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +125 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +228 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +110 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +190 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +185 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +97 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +915 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +280 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +511 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +166 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +105 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +249 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +152 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +83 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +82 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +83 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +86 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
- data/src/core/ext/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -9
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +68 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +307 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
- data/src/core/ext/xds/certificate_provider_factory.h +61 -0
- data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
- data/src/core/ext/xds/certificate_provider_registry.h +57 -0
- data/src/core/ext/xds/certificate_provider_store.cc +84 -0
- data/src/core/ext/xds/certificate_provider_store.h +107 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +119 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +72 -0
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +265 -0
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +104 -0
- data/src/core/ext/xds/xds_api.cc +2119 -0
- data/src/core/ext/xds/xds_api.h +438 -0
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.cc +208 -19
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.h +31 -10
- data/src/core/ext/xds/xds_certificate_provider.cc +240 -0
- data/src/core/ext/xds/xds_certificate_provider.h +74 -0
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_args.h +9 -6
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +636 -847
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.h +120 -98
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +61 -18
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +38 -10
- data/src/core/lib/channel/channel_args.cc +2 -1
- data/src/core/lib/channel/channel_args.h +0 -1
- data/src/core/lib/channel/channel_trace.cc +4 -2
- data/src/core/lib/channel/channelz.cc +24 -60
- data/src/core/lib/channel/channelz.h +14 -22
- data/src/core/lib/channel/channelz_registry.cc +15 -12
- data/src/core/lib/channel/channelz_registry.h +3 -0
- data/src/core/lib/channel/handshaker.h +2 -2
- data/src/core/lib/compression/compression.cc +8 -4
- data/src/core/lib/compression/compression_internal.cc +10 -5
- data/src/core/lib/compression/compression_internal.h +2 -1
- data/src/core/lib/compression/stream_compression_identity.cc +1 -3
- data/src/core/lib/debug/stats_data.cc +1 -0
- data/src/core/lib/gpr/cpu_iphone.cc +10 -2
- data/src/core/lib/gpr/log_linux.cc +17 -3
- data/src/core/lib/gpr/log_posix.cc +13 -1
- data/src/core/lib/gpr/log_windows.cc +16 -4
- data/src/core/lib/gpr/murmur_hash.cc +1 -1
- data/src/core/lib/gpr/string.cc +1 -1
- data/src/core/lib/gpr/sync_posix.cc +2 -8
- data/src/core/lib/gpr/time_precise.cc +5 -2
- data/src/core/lib/gpr/time_precise.h +6 -2
- data/src/core/lib/gpr/tls.h +4 -0
- data/src/core/lib/gpr/tls_msvc.h +2 -0
- data/src/core/lib/gpr/tls_stdcpp.h +48 -0
- data/src/core/lib/gpr/useful.h +5 -4
- data/src/core/lib/gprpp/dual_ref_counted.h +331 -0
- data/src/core/lib/gprpp/examine_stack.cc +43 -0
- data/src/core/lib/gprpp/examine_stack.h +46 -0
- data/src/core/lib/gprpp/fork.cc +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +4 -8
- data/src/core/lib/gprpp/ref_counted.h +91 -68
- data/src/core/lib/gprpp/ref_counted_ptr.h +158 -7
- data/src/core/lib/gprpp/stat.h +38 -0
- data/src/core/lib/gprpp/stat_posix.cc +49 -0
- data/src/core/lib/gprpp/stat_windows.cc +48 -0
- data/src/core/lib/gprpp/thd.h +2 -2
- data/src/core/lib/gprpp/thd_posix.cc +36 -36
- data/src/core/lib/http/parser.cc +46 -25
- data/src/core/lib/iomgr/endpoint.cc +5 -1
- data/src/core/lib/iomgr/endpoint.h +7 -3
- data/src/core/lib/iomgr/endpoint_cfstream.cc +36 -11
- data/src/core/lib/iomgr/error.cc +2 -1
- data/src/core/lib/iomgr/ev_epollex_linux.cc +8 -4
- data/src/core/lib/iomgr/ev_posix.cc +0 -2
- data/src/core/lib/iomgr/exec_ctx.cc +1 -1
- data/src/core/lib/iomgr/exec_ctx.h +10 -8
- data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
- data/src/core/lib/iomgr/executor/threadpool.h +3 -3
- data/src/core/lib/iomgr/iomgr.cc +0 -10
- data/src/core/lib/iomgr/iomgr.h +0 -10
- data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.cc +85 -7
- data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.h +23 -3
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +2 -1
- data/src/core/lib/iomgr/python_util.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -5
- data/src/core/lib/iomgr/sockaddr_utils.cc +2 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +2 -1
- data/src/core/lib/iomgr/tcp_custom.cc +32 -16
- data/src/core/lib/iomgr/tcp_posix.cc +34 -15
- data/src/core/lib/iomgr/tcp_windows.cc +26 -10
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +27 -15
- data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/json/json.h +2 -2
- data/src/core/lib/json/json_reader.cc +8 -4
- data/src/core/lib/json/json_util.cc +58 -0
- data/src/core/lib/json/json_util.h +204 -0
- data/src/core/lib/json/json_writer.cc +2 -1
- data/src/core/lib/security/authorization/authorization_engine.cc +177 -0
- data/src/core/lib/security/authorization/authorization_engine.h +84 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +153 -0
- data/src/core/lib/security/authorization/evaluate_args.h +59 -0
- data/src/core/lib/security/authorization/mock_cel/activation.h +57 -0
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +44 -0
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +69 -0
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +97 -0
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +67 -0
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +57 -0
- data/src/core/lib/security/context/security_context.h +3 -1
- data/src/core/lib/security/credentials/credentials.cc +1 -1
- data/src/core/lib/security/credentials/credentials.h +3 -3
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +208 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.h +73 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +311 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.h +118 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +136 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +49 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +211 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +59 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +56 -38
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +51 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +5 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +351 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +218 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +78 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +74 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +77 -149
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +58 -187
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +16 -12
- data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +45 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +51 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -14
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +88 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +70 -0
- data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +9 -2
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +293 -275
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +106 -61
- data/src/core/lib/security/transport/secure_endpoint.cc +7 -1
- data/src/core/lib/security/transport/security_handshaker.cc +1 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
- data/src/core/lib/security/util/json_util.h +1 -0
- data/src/core/lib/slice/slice.cc +7 -4
- data/src/core/lib/slice/slice_buffer.cc +2 -1
- data/src/core/lib/slice/slice_intern.cc +2 -2
- data/src/core/lib/surface/call.cc +21 -20
- data/src/core/lib/surface/call.h +2 -1
- data/src/core/lib/surface/channel.cc +37 -51
- data/src/core/lib/surface/channel.h +18 -3
- data/src/core/lib/surface/completion_queue.cc +17 -278
- data/src/core/lib/surface/completion_queue.h +0 -8
- data/src/core/lib/surface/init.cc +27 -12
- data/src/core/lib/surface/server.cc +1069 -1245
- data/src/core/lib/surface/server.h +363 -87
- data/src/core/lib/surface/validate_metadata.h +3 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/authority_override.cc +38 -0
- data/src/core/lib/transport/authority_override.h +34 -0
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/bdp_estimator.h +2 -1
- data/src/core/lib/transport/byte_stream.h +3 -3
- data/src/core/lib/transport/connectivity_state.cc +18 -13
- data/src/core/lib/transport/connectivity_state.h +22 -10
- data/src/core/lib/transport/error_utils.cc +13 -0
- data/src/core/lib/transport/error_utils.h +6 -0
- data/src/core/lib/transport/metadata.cc +11 -1
- data/src/core/lib/transport/metadata.h +2 -2
- data/src/core/lib/transport/static_metadata.cc +295 -276
- data/src/core/lib/transport/static_metadata.h +80 -73
- data/src/core/lib/transport/timeout_encoding.cc +4 -4
- data/src/core/lib/transport/transport.cc +5 -3
- data/src/core/lib/transport/transport.h +8 -1
- data/src/core/lib/uri/uri_parser.cc +23 -21
- data/src/core/lib/uri/uri_parser.h +3 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +35 -20
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +26 -3
- data/src/core/tsi/fake_transport_security.cc +1 -0
- data/src/core/tsi/local_transport_security.cc +5 -1
- data/src/core/tsi/local_transport_security.h +6 -7
- data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -1
- data/src/core/tsi/ssl_transport_security.cc +16 -9
- data/src/core/tsi/ssl_transport_security.h +3 -0
- data/src/core/tsi/transport_security.cc +4 -2
- data/src/ruby/bin/math_services_pb.rb +4 -4
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +9 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +26 -18
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +43 -31
- data/src/ruby/lib/grpc/generic/client_stub.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/channel_credentials_spec.rb +10 -0
- data/src/ruby/spec/generic/active_call_spec.rb +19 -8
- 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 +20 -0
- data/src/ruby/spec/user_agent_spec.rb +74 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +1764 -0
- data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
- data/third_party/abseil-cpp/absl/base/casts.h +9 -6
- data/third_party/abseil-cpp/absl/base/config.h +60 -17
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
- data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +166 -0
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
- data/third_party/abseil-cpp/absl/base/macros.h +36 -109
- data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
- data/third_party/abseil-cpp/absl/base/options.h +31 -4
- data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
- data/third_party/abseil-cpp/absl/container/fixed_array.h +532 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +504 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
- data/third_party/abseil-cpp/absl/container/internal/common.h +206 -0
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +460 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +161 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +208 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +270 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +321 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +30 -0
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +50 -0
- data/third_party/abseil-cpp/absl/container/internal/layout.h +743 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +48 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1903 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +139 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1945 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +196 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +134 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +89 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +108 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +248 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +93 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +149 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +173 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +36 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1560 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
- data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
- data/third_party/abseil-cpp/absl/hash/hash.h +325 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +346 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.h +96 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +55 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +996 -0
- data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
- data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
- data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
- data/third_party/abseil-cpp/absl/status/status.cc +445 -0
- data/third_party/abseil-cpp/absl/status/status.h +817 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +38 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
- data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +1998 -0
- data/third_party/abseil-cpp/absl/strings/cord.h +1276 -0
- data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +173 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
- data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
- data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
- data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
- data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +697 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +155 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +249 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +492 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +159 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2739 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +1065 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
- data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
- data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
- data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
- data/third_party/abseil-cpp/absl/time/format.cc +43 -36
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
- data/third_party/abseil-cpp/absl/time/time.h +15 -16
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
- data/third_party/abseil-cpp/absl/types/optional.h +9 -9
- data/third_party/abseil-cpp/absl/types/span.h +49 -36
- data/third_party/abseil-cpp/absl/types/variant.h +861 -0
- data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
- data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
- data/third_party/boringssl-with-bazel/err_data.c +479 -467
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +9 -43
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +30 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +56 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +8 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +543 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +237 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +118 -49
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +267 -95
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +210 -34
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +7 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +21 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +24 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +29 -35
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +13 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +28 -40
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +20 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +14 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +55 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +54 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +6 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +12 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +4 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +103 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +42 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +199 -78
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +482 -432
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +18 -18
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +49 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +42 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +3 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +8 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +77 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +11 -14
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +250 -20
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +57 -19
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +140 -41
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
- data/third_party/upb/upb/decode.c +64 -15
- data/third_party/upb/upb/def.c +2169 -0
- data/third_party/upb/upb/def.h +330 -0
- data/third_party/upb/upb/def.hpp +525 -0
- data/third_party/upb/upb/encode.c +2 -2
- data/third_party/upb/upb/msg.h +2 -2
- data/third_party/upb/upb/port_def.inc +1 -1
- data/third_party/upb/upb/reflection.c +391 -0
- data/third_party/upb/upb/reflection.h +168 -0
- data/third_party/upb/upb/table.c +0 -11
- data/third_party/upb/upb/table.int.h +0 -9
- data/third_party/upb/upb/text_encode.c +398 -0
- data/third_party/upb/upb/text_encode.h +35 -0
- data/third_party/upb/upb/upb.c +16 -14
- data/third_party/upb/upb/upb.h +26 -0
- data/third_party/upb/upb/upb.hpp +2 -0
- metadata +489 -161
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -528
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -1143
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +0 -2110
- data/src/core/ext/filters/client_channel/xds/xds_api.h +0 -345
- data/src/core/ext/filters/client_channel/xds/xds_channel.h +0 -46
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +0 -106
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -34
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -429
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -198
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -388
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1453
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -226
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -323
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -334
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -79
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -891
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -328
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -71
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -649
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -693
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -536
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -88
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -386
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -224
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -32
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -273
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -332
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -415
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -32
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -538
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -111
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -204
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -32
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -2984
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -135
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -52
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -732
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1167
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -49
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -136
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -145
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -86
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -111
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -61
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -250
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
- data/src/core/lib/security/transport/target_authority_table.cc +0 -75
- data/src/core/lib/security/transport/target_authority_table.h +0 -40
- data/src/core/lib/slice/slice_hash_table.h +0 -199
- data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
@@ -0,0 +1,22 @@
|
|
1
|
+
# Welcome to `include/grpc/impl/codegen`
|
2
|
+
|
3
|
+
## Why is this directory here?
|
4
|
+
|
5
|
+
This directory exists so that generated C++ code can include selected files upon
|
6
|
+
which it depends without having to depend on the entire gRPC C++ library. This
|
7
|
+
directory thus exists to support `include/grpcpp/impl/codegen`. This constraint
|
8
|
+
is particularly relevant for users of bazel, particularly if they use the
|
9
|
+
multi-lingual `proto_library` target type. Generated code that uses this target
|
10
|
+
only depends on the gRPC C++ targets associated with these header files, not the
|
11
|
+
entire gRPC C++ codebase since that would make the build time of these types of
|
12
|
+
targets excessively large (particularly when they are not even C++ specific).
|
13
|
+
|
14
|
+
## What should user code do?
|
15
|
+
|
16
|
+
User code should *not* include anything from this directory. Only generated code
|
17
|
+
and gRPC library code should include contents from this directory. C++ user code
|
18
|
+
should instead include contents from the main `grpcpp` directory or its
|
19
|
+
accessible subcomponents like `grpcpp/support`. It is possible that we may
|
20
|
+
remove this directory altogether if the motivations for its existence are no
|
21
|
+
longer strong enough (e.g., if the gRPC C++ library no longer has a need for an
|
22
|
+
`impl/codegen` directory of its own).
|
@@ -202,8 +202,15 @@ typedef struct {
|
|
202
202
|
#define GRPC_ARG_HTTP2_MAX_FRAME_SIZE "grpc.http2.max_frame_size"
|
203
203
|
/** Should BDP probing be performed? */
|
204
204
|
#define GRPC_ARG_HTTP2_BDP_PROBE "grpc.http2.bdp_probe"
|
205
|
-
/**
|
206
|
-
|
205
|
+
/** (DEPRECATED) Does not have any effect.
|
206
|
+
Earlier, this arg configured the minimum time between successive ping frames
|
207
|
+
without receiving any data/header frame, Int valued, milliseconds. This put
|
208
|
+
unnecessary constraints on the configuration of keepalive pings,
|
209
|
+
requiring users to set this channel arg along with
|
210
|
+
GRPC_ARG_KEEPALIVE_TIME_MS. This arg also limited the activity of the other
|
211
|
+
source of pings in gRPC Core - BDP pings, but BDP pings are only sent when
|
212
|
+
there is receive-side data activity, making this arg unuseful for BDP pings
|
213
|
+
too. */
|
207
214
|
#define GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS \
|
208
215
|
"grpc.http2.min_time_between_pings_ms"
|
209
216
|
/** Minimum allowed time between a server receiving successive ping frames
|
@@ -355,11 +362,6 @@ typedef struct {
|
|
355
362
|
over to the next priority. Default value is 10 seconds. */
|
356
363
|
#define GRPC_ARG_PRIORITY_FAILOVER_TIMEOUT_MS \
|
357
364
|
"grpc.priority_failover_timeout_ms"
|
358
|
-
/* Timeout in milliseconds to wait for a resource to be returned from
|
359
|
-
* the xds server before assuming that it does not exist.
|
360
|
-
* The default is 15 seconds. */
|
361
|
-
#define GRPC_ARG_XDS_RESOURCE_DOES_NOT_EXIST_TIMEOUT_MS \
|
362
|
-
"grpc.xds_resource_does_not_exist_timeout_ms"
|
363
365
|
/** If non-zero, grpc server's cronet compression workaround will be enabled */
|
364
366
|
#define GRPC_ARG_WORKAROUND_CRONET_COMPRESSION \
|
365
367
|
"grpc.workaround.cronet_compression"
|
@@ -31,8 +31,13 @@
|
|
31
31
|
* Defines GPR_ABSEIL_SYNC to use synchronization features from Abseil
|
32
32
|
*/
|
33
33
|
#ifndef GPR_ABSEIL_SYNC
|
34
|
-
|
34
|
+
#if defined(__APPLE__)
|
35
|
+
// This is disabled on Apple platforms because macos/grpc_basictests_c_cpp
|
36
|
+
// fails with this. https://github.com/grpc/grpc/issues/23661
|
37
|
+
#else
|
38
|
+
#define GPR_ABSEIL_SYNC 1
|
35
39
|
#endif
|
40
|
+
#endif // GPR_ABSEIL_SYNC
|
36
41
|
|
37
42
|
/* Get windows.h included everywhere (we need it) */
|
38
43
|
#if defined(_WIN64) || defined(WIN64) || defined(_WIN32) || defined(WIN32)
|
@@ -95,16 +100,16 @@
|
|
95
100
|
#define GPR_WINDOWS_TMPFILE
|
96
101
|
#define GPR_WINDOWS_LOG
|
97
102
|
#define GPR_WINDOWS_CRASH_HANDLER 1
|
103
|
+
#define GPR_WINDOWS_STAT
|
98
104
|
#define GPR_WINDOWS_STRING
|
99
105
|
#define GPR_WINDOWS_TIME
|
100
106
|
#endif
|
101
107
|
#ifdef __GNUC__
|
102
108
|
#define GPR_GCC_ATOMIC 1
|
103
|
-
#define GPR_GCC_TLS 1
|
104
109
|
#else
|
105
110
|
#define GPR_WINDOWS_ATOMIC 1
|
106
|
-
#define GPR_MSVC_TLS 1
|
107
111
|
#endif
|
112
|
+
#define GPR_STDCPP_TLS 1
|
108
113
|
#elif defined(ANDROID) || defined(__ANDROID__)
|
109
114
|
#define GPR_PLATFORM_STRING "android"
|
110
115
|
#define GPR_ANDROID 1
|
@@ -119,9 +124,10 @@
|
|
119
124
|
#endif /* _LP64 */
|
120
125
|
#define GPR_CPU_POSIX 1
|
121
126
|
#define GPR_GCC_SYNC 1
|
122
|
-
#define
|
127
|
+
#define GPR_STDCPP_TLS 1
|
123
128
|
#define GPR_POSIX_ENV 1
|
124
129
|
#define GPR_POSIX_TMPFILE 1
|
130
|
+
#define GPR_POSIX_STAT 1
|
125
131
|
#define GPR_ANDROID_LOG 1
|
126
132
|
#define GPR_POSIX_STRING 1
|
127
133
|
#define GPR_POSIX_SUBPROCESS 1
|
@@ -144,12 +150,13 @@
|
|
144
150
|
#include <features.h>
|
145
151
|
#define GPR_CPU_LINUX 1
|
146
152
|
#define GPR_GCC_ATOMIC 1
|
147
|
-
#define
|
153
|
+
#define GPR_STDCPP_TLS 1
|
148
154
|
#define GPR_LINUX 1
|
149
155
|
#define GPR_LINUX_LOG
|
150
156
|
#define GPR_SUPPORT_CHANNELS_FROM_FD 1
|
151
157
|
#define GPR_LINUX_ENV 1
|
152
158
|
#define GPR_POSIX_TMPFILE 1
|
159
|
+
#define GPR_POSIX_STAT 1
|
153
160
|
#define GPR_POSIX_STRING 1
|
154
161
|
#define GPR_POSIX_SUBPROCESS 1
|
155
162
|
#define GPR_POSIX_SYNC 1
|
@@ -197,45 +204,28 @@
|
|
197
204
|
#if TARGET_OS_IPHONE
|
198
205
|
#define GPR_PLATFORM_STRING "ios"
|
199
206
|
#define GPR_CPU_IPHONE 1
|
200
|
-
#define GPR_PTHREAD_TLS 1
|
201
207
|
#define GRPC_CFSTREAM 1
|
202
208
|
/* the c-ares resolver isn't safe to enable on iOS */
|
203
209
|
#define GRPC_ARES 0
|
204
210
|
#else /* TARGET_OS_IPHONE */
|
205
211
|
#define GPR_PLATFORM_STRING "osx"
|
206
|
-
#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
|
207
|
-
#if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_7
|
208
|
-
#define GPR_CPU_IPHONE 1
|
209
|
-
#define GPR_PTHREAD_TLS 1
|
210
|
-
#else /* __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_7 */
|
211
212
|
#define GPR_CPU_POSIX 1
|
212
|
-
|
213
|
-
in a header is currently not working (bazelbuild/bazel#4341). Remove
|
214
|
-
the following conditional and use GPR_GCC_TLS when that is fixed */
|
215
|
-
#ifndef GRPC_BAZEL_BUILD
|
216
|
-
#define GPR_GCC_TLS 1
|
217
|
-
#else /* GRPC_BAZEL_BUILD */
|
218
|
-
#define GPR_PTHREAD_TLS 1
|
219
|
-
#endif /* GRPC_BAZEL_BUILD */
|
220
|
-
#define GPR_APPLE_PTHREAD_NAME 1
|
213
|
+
#define GPR_POSIX_CRASH_HANDLER 1
|
221
214
|
#endif
|
222
|
-
#
|
223
|
-
#
|
224
|
-
|
225
|
-
when bazelbuild/bazel#4341 is fixed */
|
226
|
-
#ifndef GRPC_BAZEL_BUILD
|
227
|
-
#define GPR_GCC_TLS 1
|
228
|
-
#else /* GRPC_BAZEL_BUILD */
|
229
|
-
#define GPR_PTHREAD_TLS 1
|
230
|
-
#endif /* GRPC_BAZEL_BUILD */
|
215
|
+
#ifdef __has_feature
|
216
|
+
#if __has_feature(cxx_thread_local)
|
217
|
+
#define GPR_STDCPP_TLS 1
|
231
218
|
#endif
|
232
|
-
#
|
219
|
+
#endif
|
220
|
+
#ifndef GPR_STDCPP_TLS
|
221
|
+
#define GPR_PTHREAD_TLS 1
|
233
222
|
#endif
|
234
223
|
#define GPR_APPLE 1
|
235
224
|
#define GPR_GCC_ATOMIC 1
|
236
225
|
#define GPR_POSIX_LOG 1
|
237
226
|
#define GPR_POSIX_ENV 1
|
238
227
|
#define GPR_POSIX_TMPFILE 1
|
228
|
+
#define GPR_POSIX_STAT 1
|
239
229
|
#define GPR_POSIX_STRING 1
|
240
230
|
#define GPR_POSIX_SUBPROCESS 1
|
241
231
|
#define GPR_POSIX_SYNC 1
|
@@ -262,6 +252,7 @@
|
|
262
252
|
#define GPR_POSIX_LOG 1
|
263
253
|
#define GPR_POSIX_ENV 1
|
264
254
|
#define GPR_POSIX_TMPFILE 1
|
255
|
+
#define GPR_POSIX_STAT 1
|
265
256
|
#define GPR_POSIX_STRING 1
|
266
257
|
#define GPR_POSIX_SUBPROCESS 1
|
267
258
|
#define GPR_POSIX_SYNC 1
|
@@ -286,6 +277,7 @@
|
|
286
277
|
#define GPR_POSIX_LOG 1
|
287
278
|
#define GPR_POSIX_ENV 1
|
288
279
|
#define GPR_POSIX_TMPFILE 1
|
280
|
+
#define GPR_POSIX_STAT 1
|
289
281
|
#define GPR_POSIX_STRING 1
|
290
282
|
#define GPR_POSIX_SUBPROCESS 1
|
291
283
|
#define GPR_POSIX_SYNC 1
|
@@ -307,6 +299,7 @@
|
|
307
299
|
#define GPR_POSIX_LOG 1
|
308
300
|
#define GPR_POSIX_ENV 1
|
309
301
|
#define GPR_POSIX_TMPFILE 1
|
302
|
+
#define GPR_POSIX_STAT 1
|
310
303
|
#define GPR_POSIX_STRING 1
|
311
304
|
#define GPR_POSIX_SUBPROCESS 1
|
312
305
|
#define GPR_POSIX_SYNC 1
|
@@ -330,6 +323,7 @@
|
|
330
323
|
#define GPR_POSIX_LOG 1
|
331
324
|
#define GPR_POSIX_ENV 1
|
332
325
|
#define GPR_POSIX_TMPFILE 1
|
326
|
+
#define GPR_POSIX_STAT 1
|
333
327
|
#define GPR_POSIX_STRING 1
|
334
328
|
#define GPR_POSIX_SUBPROCESS 1
|
335
329
|
#define GPR_POSIX_SYNC 1
|
@@ -359,6 +353,7 @@
|
|
359
353
|
#define GPR_POSIX_LOG 1
|
360
354
|
#define GPR_POSIX_ENV 1
|
361
355
|
#define GPR_POSIX_TMPFILE 1
|
356
|
+
#define GPR_POSIX_STAT 1
|
362
357
|
#define GPR_POSIX_STRING 1
|
363
358
|
#define GPR_POSIX_SUBPROCESS 1
|
364
359
|
#define GPR_POSIX_SYNC 1
|
@@ -385,6 +380,7 @@
|
|
385
380
|
#define GPR_POSIX_SYNC 1
|
386
381
|
#define GPR_POSIX_ENV 1
|
387
382
|
#define GPR_POSIX_TMPFILE 1
|
383
|
+
#define GPR_POSIX_STAT 1
|
388
384
|
#define GPR_POSIX_SUBPROCESS 1
|
389
385
|
#define GPR_POSIX_SYNC 1
|
390
386
|
#define GPR_POSIX_STRING 1
|
@@ -408,30 +404,6 @@
|
|
408
404
|
#endif
|
409
405
|
#endif
|
410
406
|
|
411
|
-
/*
|
412
|
-
* There are platforms for which TLS should not be used even though the
|
413
|
-
* compiler makes it seem like it's supported (Android NDK < r12b for example).
|
414
|
-
* This is primarily because of linker problems and toolchain misconfiguration:
|
415
|
-
* TLS isn't supported until NDK r12b per
|
416
|
-
* https://developer.android.com/ndk/downloads/revision_history.html
|
417
|
-
* TLS also does not work with Android NDK if GCC is being used as the compiler
|
418
|
-
* instead of Clang.
|
419
|
-
* Since NDK r16, `__NDK_MAJOR__` and `__NDK_MINOR__` are defined in
|
420
|
-
* <android/ndk-version.h>. For NDK < r16, users should define these macros,
|
421
|
-
* e.g. `-D__NDK_MAJOR__=11 -D__NKD_MINOR__=0` for NDK r11. */
|
422
|
-
#if defined(__ANDROID__) && defined(GPR_GCC_TLS)
|
423
|
-
#if __has_include(<android/ndk-version.h>)
|
424
|
-
#include <android/ndk-version.h>
|
425
|
-
#endif /* __has_include(<android/ndk-version.h>) */
|
426
|
-
#if (defined(__clang__) && defined(__NDK_MAJOR__) && defined(__NDK_MINOR__) && \
|
427
|
-
((__NDK_MAJOR__ < 12) || \
|
428
|
-
((__NDK_MAJOR__ == 12) && (__NDK_MINOR__ < 1)))) || \
|
429
|
-
(defined(__GNUC__) && !defined(__clang__))
|
430
|
-
#undef GPR_GCC_TLS
|
431
|
-
#define GPR_PTHREAD_TLS 1
|
432
|
-
#endif
|
433
|
-
#endif /*defined(__ANDROID__) && defined(GPR_GCC_TLS) */
|
434
|
-
|
435
407
|
#if defined(__has_include)
|
436
408
|
#if __has_include(<atomic>)
|
437
409
|
#define GRPC_HAS_CXX11_ATOMIC
|
@@ -520,9 +492,9 @@ typedef unsigned __int64 uint64_t;
|
|
520
492
|
#endif
|
521
493
|
|
522
494
|
#if defined(GPR_MSVC_TLS) + defined(GPR_GCC_TLS) + defined(GPR_PTHREAD_TLS) + \
|
523
|
-
defined(GPR_CUSTOM_TLS) !=
|
495
|
+
defined(GPR_STDCPP_TLS) + defined(GPR_CUSTOM_TLS) != \
|
524
496
|
1
|
525
|
-
#error Must define exactly one of GPR_MSVC_TLS, GPR_GCC_TLS, GPR_PTHREAD_TLS, GPR_CUSTOM_TLS
|
497
|
+
#error Must define exactly one of GPR_MSVC_TLS, GPR_GCC_TLS, GPR_PTHREAD_TLS, GPR_STDCPP_TLS, GPR_CUSTOM_TLS
|
526
498
|
#endif
|
527
499
|
|
528
500
|
/* maximum alignment needed for any type on this platform, rounded up to a
|
@@ -106,6 +106,7 @@ static void g_poller_unref() {
|
|
106
106
|
grpc_schedule_on_exec_ctx));
|
107
107
|
gpr_mu_unlock(p->pollset_mu);
|
108
108
|
grpc_timer_cancel(&p->polling_timer);
|
109
|
+
backup_poller_shutdown_unref(p);
|
109
110
|
} else {
|
110
111
|
gpr_mu_unlock(&g_poller_mu);
|
111
112
|
}
|
@@ -143,8 +144,8 @@ static void g_poller_init_locked() {
|
|
143
144
|
g_poller->shutting_down = false;
|
144
145
|
grpc_pollset_init(g_poller->pollset, &g_poller->pollset_mu);
|
145
146
|
gpr_ref_init(&g_poller->refs, 0);
|
146
|
-
// one for timer cancellation, one for pollset shutdown
|
147
|
-
gpr_ref_init(&g_poller->shutdown_refs,
|
147
|
+
// one for timer cancellation, one for pollset shutdown, one for g_poller
|
148
|
+
gpr_ref_init(&g_poller->shutdown_refs, 3);
|
148
149
|
GRPC_CLOSURE_INIT(&g_poller->run_poller_closure, run_poller, g_poller,
|
149
150
|
grpc_schedule_on_exec_ctx);
|
150
151
|
grpc_timer_init(&g_poller->polling_timer,
|
@@ -28,6 +28,8 @@
|
|
28
28
|
|
29
29
|
#include <set>
|
30
30
|
|
31
|
+
#include "absl/strings/numbers.h"
|
32
|
+
#include "absl/strings/str_cat.h"
|
31
33
|
#include "absl/strings/string_view.h"
|
32
34
|
|
33
35
|
#include <grpc/support/alloc.h>
|
@@ -207,14 +209,15 @@ class ChannelData {
|
|
207
209
|
grpc_closure* on_complete,
|
208
210
|
grpc_closure* watcher_timer_init);
|
209
211
|
|
210
|
-
~ExternalConnectivityWatcher();
|
212
|
+
~ExternalConnectivityWatcher() override;
|
211
213
|
|
212
214
|
// Removes the watcher from the external_watchers_ map.
|
213
215
|
static void RemoveWatcherFromExternalWatchersMap(ChannelData* chand,
|
214
216
|
grpc_closure* on_complete,
|
215
217
|
bool cancel);
|
216
218
|
|
217
|
-
void Notify(grpc_connectivity_state state
|
219
|
+
void Notify(grpc_connectivity_state state,
|
220
|
+
const absl::Status& /* status */) override;
|
218
221
|
|
219
222
|
void Cancel();
|
220
223
|
|
@@ -238,17 +241,15 @@ class ChannelData {
|
|
238
241
|
public:
|
239
242
|
explicit ChannelConfigHelper(ChannelData* chand) : chand_(chand) {}
|
240
243
|
|
241
|
-
|
244
|
+
ChooseServiceConfigResult ChooseServiceConfig(
|
242
245
|
const Resolver::Result& result) override;
|
243
246
|
|
244
|
-
void
|
245
|
-
bool service_config_changed,
|
246
|
-
RefCountedPtr<ConfigSelector> config_selector) override;
|
247
|
+
void StartUsingServiceConfigForCalls() override;
|
247
248
|
|
248
249
|
void ResolverTransientFailure(grpc_error* error) override;
|
249
250
|
|
250
251
|
private:
|
251
|
-
static void
|
252
|
+
static void ChooseLbPolicy(
|
252
253
|
const Resolver::Result& resolver_result,
|
253
254
|
const internal::ClientChannelGlobalParsedConfig* parsed_service_config,
|
254
255
|
RefCountedPtr<LoadBalancingPolicy::Config>* lb_policy_config);
|
@@ -260,12 +261,17 @@ class ChannelData {
|
|
260
261
|
~ChannelData();
|
261
262
|
|
262
263
|
void UpdateStateAndPickerLocked(
|
263
|
-
grpc_connectivity_state state, const
|
264
|
+
grpc_connectivity_state state, const absl::Status& status,
|
265
|
+
const char* reason,
|
264
266
|
std::unique_ptr<LoadBalancingPolicy::SubchannelPicker> picker);
|
265
267
|
|
266
|
-
void
|
267
|
-
|
268
|
-
RefCountedPtr<ConfigSelector> config_selector
|
268
|
+
void UpdateServiceConfigInControlPlaneLocked(
|
269
|
+
RefCountedPtr<ServiceConfig> service_config,
|
270
|
+
RefCountedPtr<ConfigSelector> config_selector,
|
271
|
+
const internal::ClientChannelGlobalParsedConfig* parsed_service_config,
|
272
|
+
const char* lb_policy_name);
|
273
|
+
|
274
|
+
void UpdateServiceConfigInDataPlaneLocked();
|
269
275
|
|
270
276
|
void CreateResolvingLoadBalancingPolicyLocked();
|
271
277
|
|
@@ -316,7 +322,6 @@ class ChannelData {
|
|
316
322
|
grpc_core::UniquePtr<char> health_check_service_name_;
|
317
323
|
RefCountedPtr<ServiceConfig> saved_service_config_;
|
318
324
|
RefCountedPtr<ConfigSelector> saved_config_selector_;
|
319
|
-
bool received_first_resolver_result_ = false;
|
320
325
|
// The number of SubchannelWrapper instances referencing a given Subchannel.
|
321
326
|
std::map<Subchannel*, int> subchannel_refcount_map_;
|
322
327
|
// The set of SubchannelWrappers that currently exist.
|
@@ -328,6 +333,7 @@ class ChannelData {
|
|
328
333
|
// applied in the data plane mutex when the picker is updated.
|
329
334
|
std::map<RefCountedPtr<SubchannelWrapper>, RefCountedPtr<ConnectedSubchannel>>
|
330
335
|
pending_subchannel_updates_;
|
336
|
+
int keepalive_time_ = -1;
|
331
337
|
|
332
338
|
//
|
333
339
|
// Fields accessed from both data plane mutex and control plane
|
@@ -888,7 +894,10 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
888
894
|
public:
|
889
895
|
SubchannelWrapper(ChannelData* chand, Subchannel* subchannel,
|
890
896
|
grpc_core::UniquePtr<char> health_check_service_name)
|
891
|
-
: SubchannelInterface(
|
897
|
+
: SubchannelInterface(
|
898
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)
|
899
|
+
? "SubchannelWrapper"
|
900
|
+
: nullptr),
|
892
901
|
chand_(chand),
|
893
902
|
subchannel_(subchannel),
|
894
903
|
health_check_service_name_(std::move(health_check_service_name)) {
|
@@ -910,7 +919,7 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
910
919
|
chand_->subchannel_wrappers_.insert(this);
|
911
920
|
}
|
912
921
|
|
913
|
-
~SubchannelWrapper() {
|
922
|
+
~SubchannelWrapper() override {
|
914
923
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
915
924
|
gpr_log(GPR_INFO,
|
916
925
|
"chand=%p: destroying subchannel wrapper %p for subchannel %p",
|
@@ -973,6 +982,10 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
973
982
|
return subchannel_->channel_args();
|
974
983
|
}
|
975
984
|
|
985
|
+
void ThrottleKeepaliveTime(int new_keepalive_time) {
|
986
|
+
subchannel_->ThrottleKeepaliveTime(new_keepalive_time);
|
987
|
+
}
|
988
|
+
|
976
989
|
void UpdateHealthCheckServiceName(
|
977
990
|
grpc_core::UniquePtr<char> health_check_service_name) {
|
978
991
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
@@ -1049,7 +1062,7 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
1049
1062
|
parent_(std::move(parent)),
|
1050
1063
|
last_seen_state_(initial_state) {}
|
1051
1064
|
|
1052
|
-
~WatcherWrapper() {
|
1065
|
+
~WatcherWrapper() override {
|
1053
1066
|
auto* parent = parent_.release(); // ref owned by lambda
|
1054
1067
|
parent->chand_->work_serializer_->Run(
|
1055
1068
|
[parent]() { parent->Unref(DEBUG_LOCATION, "WatcherWrapper"); },
|
@@ -1099,6 +1112,32 @@ class ChannelData::SubchannelWrapper : public SubchannelInterface {
|
|
1099
1112
|
watcher_.get());
|
1100
1113
|
}
|
1101
1114
|
ConnectivityStateChange state_change = PopConnectivityStateChange();
|
1115
|
+
absl::optional<absl::Cord> keepalive_throttling =
|
1116
|
+
state_change.status.GetPayload(grpc_core::kKeepaliveThrottlingKey);
|
1117
|
+
if (keepalive_throttling.has_value()) {
|
1118
|
+
int new_keepalive_time = -1;
|
1119
|
+
if (absl::SimpleAtoi(std::string(keepalive_throttling.value()),
|
1120
|
+
&new_keepalive_time)) {
|
1121
|
+
if (new_keepalive_time > parent_->chand_->keepalive_time_) {
|
1122
|
+
parent_->chand_->keepalive_time_ = new_keepalive_time;
|
1123
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1124
|
+
gpr_log(GPR_INFO, "chand=%p: throttling keepalive time to %d",
|
1125
|
+
parent_->chand_, parent_->chand_->keepalive_time_);
|
1126
|
+
}
|
1127
|
+
// Propagate the new keepalive time to all subchannels. This is so
|
1128
|
+
// that new transports created by any subchannel (and not just the
|
1129
|
+
// subchannel that received the GOAWAY), use the new keepalive time.
|
1130
|
+
for (auto* subchannel_wrapper :
|
1131
|
+
parent_->chand_->subchannel_wrappers_) {
|
1132
|
+
subchannel_wrapper->ThrottleKeepaliveTime(new_keepalive_time);
|
1133
|
+
}
|
1134
|
+
}
|
1135
|
+
} else {
|
1136
|
+
gpr_log(GPR_ERROR, "chand=%p: Illegal keepalive throttling value %s",
|
1137
|
+
parent_->chand_,
|
1138
|
+
std::string(keepalive_throttling.value()).c_str());
|
1139
|
+
}
|
1140
|
+
}
|
1102
1141
|
// Ignore update if the parent WatcherWrapper has been replaced
|
1103
1142
|
// since this callback was scheduled.
|
1104
1143
|
if (watcher_ != nullptr) {
|
@@ -1212,7 +1251,7 @@ void ChannelData::ExternalConnectivityWatcher::
|
|
1212
1251
|
}
|
1213
1252
|
|
1214
1253
|
void ChannelData::ExternalConnectivityWatcher::Notify(
|
1215
|
-
grpc_connectivity_state state) {
|
1254
|
+
grpc_connectivity_state state, const absl::Status& /* status */) {
|
1216
1255
|
bool done = false;
|
1217
1256
|
if (!done_.CompareExchangeStrong(&done, true, MemoryOrder::RELAXED,
|
1218
1257
|
MemoryOrder::RELAXED)) {
|
@@ -1327,7 +1366,8 @@ class ChannelData::ClientChannelControlHelper
|
|
1327
1366
|
}
|
1328
1367
|
|
1329
1368
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
1330
|
-
const grpc_channel_args& args) override {
|
1369
|
+
ServerAddress address, const grpc_channel_args& args) override {
|
1370
|
+
// Determine health check service name.
|
1331
1371
|
bool inhibit_health_checking = grpc_channel_arg_get_bool(
|
1332
1372
|
grpc_channel_args_find(&args, GRPC_ARG_INHIBIT_HEALTH_CHECKING), false);
|
1333
1373
|
grpc_core::UniquePtr<char> health_check_service_name;
|
@@ -1335,36 +1375,54 @@ class ChannelData::ClientChannelControlHelper
|
|
1335
1375
|
health_check_service_name.reset(
|
1336
1376
|
gpr_strdup(chand_->health_check_service_name_.get()));
|
1337
1377
|
}
|
1378
|
+
// Remove channel args that should not affect subchannel uniqueness.
|
1338
1379
|
static const char* args_to_remove[] = {
|
1339
1380
|
GRPC_ARG_INHIBIT_HEALTH_CHECKING,
|
1340
1381
|
GRPC_ARG_CHANNELZ_CHANNEL_NODE,
|
1341
1382
|
};
|
1342
|
-
|
1343
|
-
|
1383
|
+
// Add channel args needed for the subchannel.
|
1384
|
+
absl::InlinedVector<grpc_arg, 3> args_to_add = {
|
1385
|
+
Subchannel::CreateSubchannelAddressArg(&address.address()),
|
1386
|
+
SubchannelPoolInterface::CreateChannelArg(
|
1387
|
+
chand_->subchannel_pool_.get()),
|
1388
|
+
};
|
1389
|
+
if (address.args() != nullptr) {
|
1390
|
+
for (size_t j = 0; j < address.args()->num_args; ++j) {
|
1391
|
+
args_to_add.emplace_back(address.args()->args[j]);
|
1392
|
+
}
|
1393
|
+
}
|
1344
1394
|
grpc_channel_args* new_args = grpc_channel_args_copy_and_add_and_remove(
|
1345
|
-
&args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove),
|
1395
|
+
&args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove),
|
1396
|
+
args_to_add.data(), args_to_add.size());
|
1397
|
+
gpr_free(args_to_add[0].value.string);
|
1398
|
+
// Create subchannel.
|
1346
1399
|
Subchannel* subchannel =
|
1347
1400
|
chand_->client_channel_factory_->CreateSubchannel(new_args);
|
1348
1401
|
grpc_channel_args_destroy(new_args);
|
1349
1402
|
if (subchannel == nullptr) return nullptr;
|
1403
|
+
// Make sure the subchannel has updated keepalive time.
|
1404
|
+
subchannel->ThrottleKeepaliveTime(chand_->keepalive_time_);
|
1405
|
+
// Create and return wrapper for the subchannel.
|
1350
1406
|
return MakeRefCounted<SubchannelWrapper>(
|
1351
1407
|
chand_, subchannel, std::move(health_check_service_name));
|
1352
1408
|
}
|
1353
1409
|
|
1354
1410
|
void UpdateState(
|
1355
|
-
grpc_connectivity_state state,
|
1411
|
+
grpc_connectivity_state state, const absl::Status& status,
|
1356
1412
|
std::unique_ptr<LoadBalancingPolicy::SubchannelPicker> picker) override {
|
1357
1413
|
grpc_error* disconnect_error = chand_->disconnect_error();
|
1358
1414
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1359
1415
|
const char* extra = disconnect_error == GRPC_ERROR_NONE
|
1360
1416
|
? ""
|
1361
1417
|
: " (ignoring -- channel shutting down)";
|
1362
|
-
gpr_log(GPR_INFO, "chand=%p: update: state=%s picker=%p%s",
|
1363
|
-
ConnectivityStateName(state),
|
1418
|
+
gpr_log(GPR_INFO, "chand=%p: update: state=%s status=(%s) picker=%p%s",
|
1419
|
+
chand_, ConnectivityStateName(state), status.ToString().c_str(),
|
1420
|
+
picker.get(), extra);
|
1364
1421
|
}
|
1365
1422
|
// Do update only if not shutting down.
|
1366
1423
|
if (disconnect_error == GRPC_ERROR_NONE) {
|
1367
|
-
chand_->UpdateStateAndPickerLocked(state, "helper",
|
1424
|
+
chand_->UpdateStateAndPickerLocked(state, status, "helper",
|
1425
|
+
std::move(picker));
|
1368
1426
|
}
|
1369
1427
|
}
|
1370
1428
|
|
@@ -1395,19 +1453,19 @@ class ChannelData::ClientChannelControlHelper
|
|
1395
1453
|
// ChannelData::ChannelConfigHelper
|
1396
1454
|
//
|
1397
1455
|
|
1398
|
-
|
1399
|
-
|
1400
|
-
ChannelData::ChannelConfigHelper::ApplyServiceConfigResult
|
1401
|
-
ChannelData::ChannelConfigHelper::ApplyServiceConfig(
|
1456
|
+
ChannelData::ChannelConfigHelper::ChooseServiceConfigResult
|
1457
|
+
ChannelData::ChannelConfigHelper::ChooseServiceConfig(
|
1402
1458
|
const Resolver::Result& result) {
|
1403
|
-
|
1459
|
+
ChooseServiceConfigResult service_config_result;
|
1404
1460
|
RefCountedPtr<ServiceConfig> service_config;
|
1405
|
-
|
1406
|
-
// config, we need a fallback service config.
|
1461
|
+
RefCountedPtr<ConfigSelector> config_selector;
|
1407
1462
|
if (result.service_config_error != GRPC_ERROR_NONE) {
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1463
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1464
|
+
gpr_log(GPR_INFO, "chand=%p: resolver returned service config error: %s",
|
1465
|
+
chand_, grpc_error_string(result.service_config_error));
|
1466
|
+
}
|
1467
|
+
// If the service config was invalid, then fallback to the
|
1468
|
+
// previously returned service config.
|
1411
1469
|
if (chand_->saved_service_config_ != nullptr) {
|
1412
1470
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1413
1471
|
gpr_log(GPR_INFO,
|
@@ -1416,99 +1474,60 @@ ChannelData::ChannelConfigHelper::ApplyServiceConfig(
|
|
1416
1474
|
chand_);
|
1417
1475
|
}
|
1418
1476
|
service_config = chand_->saved_service_config_;
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
}
|
1426
|
-
service_config = chand_->default_service_config_;
|
1477
|
+
config_selector = chand_->saved_config_selector_;
|
1478
|
+
} else {
|
1479
|
+
// No previously returned config, so put the channel into
|
1480
|
+
// TRANSIENT_FAILURE.
|
1481
|
+
service_config_result.no_valid_service_config = true;
|
1482
|
+
return service_config_result;
|
1427
1483
|
}
|
1428
1484
|
} else if (result.service_config == nullptr) {
|
1429
|
-
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
}
|
1436
|
-
service_config = chand_->default_service_config_;
|
1485
|
+
// Resolver did not return any service config.
|
1486
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1487
|
+
gpr_log(GPR_INFO,
|
1488
|
+
"chand=%p: resolver returned no service config. Using default "
|
1489
|
+
"service config for channel.",
|
1490
|
+
chand_);
|
1437
1491
|
}
|
1492
|
+
service_config = chand_->default_service_config_;
|
1438
1493
|
} else {
|
1494
|
+
// Use ServiceConfig and ConfigSelector returned by resolver.
|
1439
1495
|
service_config = result.service_config;
|
1496
|
+
config_selector = ConfigSelector::GetFromChannelArgs(*result.args);
|
1440
1497
|
}
|
1441
|
-
|
1442
|
-
|
1443
|
-
if (service_config == nullptr &&
|
1444
|
-
result.service_config_error != GRPC_ERROR_NONE) {
|
1445
|
-
service_config_result.no_valid_service_config = true;
|
1446
|
-
return service_config_result;
|
1447
|
-
}
|
1448
|
-
// Process service config.
|
1449
|
-
grpc_core::UniquePtr<char> service_config_json;
|
1498
|
+
GPR_ASSERT(service_config != nullptr);
|
1499
|
+
// Extract global config for client channel.
|
1450
1500
|
const internal::ClientChannelGlobalParsedConfig* parsed_service_config =
|
1451
|
-
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1501
|
+
static_cast<const internal::ClientChannelGlobalParsedConfig*>(
|
1502
|
+
service_config->GetGlobalParsedConfig(
|
1503
|
+
internal::ClientChannelServiceConfigParser::ParserIndex()));
|
1504
|
+
// Find LB policy config.
|
1505
|
+
ChooseLbPolicy(result, parsed_service_config,
|
1506
|
+
&service_config_result.lb_policy_config);
|
1507
|
+
// Check if the ServiceConfig has changed.
|
1508
|
+
const bool service_config_changed =
|
1509
|
+
chand_->saved_service_config_ == nullptr ||
|
1510
|
+
service_config->json_string() !=
|
1511
|
+
chand_->saved_service_config_->json_string();
|
1512
|
+
// Check if the ConfigSelector has changed.
|
1513
|
+
const bool config_selector_changed = !ConfigSelector::Equals(
|
1514
|
+
chand_->saved_config_selector_.get(), config_selector.get());
|
1515
|
+
// Indicate a change if either the ServiceConfig or ConfigSelector have
|
1516
|
+
// changed.
|
1459
1517
|
service_config_result.service_config_changed =
|
1460
|
-
|
1461
|
-
|
1462
|
-
(service_config != nullptr &&
|
1463
|
-
service_config->json_string() !=
|
1464
|
-
chand_->saved_service_config_->json_string());
|
1518
|
+
service_config_changed || config_selector_changed;
|
1519
|
+
// If it has, apply the global parameters now.
|
1465
1520
|
if (service_config_result.service_config_changed) {
|
1466
|
-
|
1467
|
-
service_config
|
1468
|
-
|
1469
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1470
|
-
gpr_log(GPR_INFO,
|
1471
|
-
"chand=%p: resolver returned updated service config: \"%s\"",
|
1472
|
-
chand_, service_config_json.get());
|
1473
|
-
}
|
1474
|
-
// Save health check service name.
|
1475
|
-
if (service_config != nullptr) {
|
1476
|
-
chand_->health_check_service_name_.reset(
|
1477
|
-
gpr_strdup(parsed_service_config->health_check_service_name()));
|
1478
|
-
} else {
|
1479
|
-
chand_->health_check_service_name_.reset();
|
1480
|
-
}
|
1481
|
-
// Update health check service name used by existing subchannel wrappers.
|
1482
|
-
for (auto* subchannel_wrapper : chand_->subchannel_wrappers_) {
|
1483
|
-
subchannel_wrapper->UpdateHealthCheckServiceName(
|
1484
|
-
grpc_core::UniquePtr<char>(
|
1485
|
-
gpr_strdup(chand_->health_check_service_name_.get())));
|
1486
|
-
}
|
1487
|
-
// Save service config.
|
1488
|
-
chand_->saved_service_config_ = std::move(service_config);
|
1489
|
-
}
|
1490
|
-
// Find LB policy config.
|
1491
|
-
ProcessLbPolicy(result, parsed_service_config,
|
1492
|
-
&service_config_result.lb_policy_config);
|
1493
|
-
grpc_core::UniquePtr<char> lb_policy_name(
|
1494
|
-
gpr_strdup((service_config_result.lb_policy_config)->name()));
|
1495
|
-
// Swap out the data used by GetChannelInfo().
|
1496
|
-
{
|
1497
|
-
MutexLock lock(&chand_->info_mu_);
|
1498
|
-
chand_->info_lb_policy_name_ = std::move(lb_policy_name);
|
1499
|
-
if (service_config_json != nullptr) {
|
1500
|
-
chand_->info_service_config_json_ = std::move(service_config_json);
|
1501
|
-
}
|
1521
|
+
chand_->UpdateServiceConfigInControlPlaneLocked(
|
1522
|
+
std::move(service_config), std::move(config_selector),
|
1523
|
+
parsed_service_config, service_config_result.lb_policy_config->name());
|
1502
1524
|
}
|
1503
1525
|
// Return results.
|
1504
1526
|
return service_config_result;
|
1505
1527
|
}
|
1506
1528
|
|
1507
|
-
void ChannelData::ChannelConfigHelper::
|
1508
|
-
|
1509
|
-
RefCountedPtr<ConfigSelector> config_selector) {
|
1510
|
-
chand_->UpdateServiceConfigInDataPlaneLocked(service_config_changed,
|
1511
|
-
std::move(config_selector));
|
1529
|
+
void ChannelData::ChannelConfigHelper::StartUsingServiceConfigForCalls() {
|
1530
|
+
chand_->UpdateServiceConfigInDataPlaneLocked();
|
1512
1531
|
}
|
1513
1532
|
|
1514
1533
|
void ChannelData::ChannelConfigHelper::ResolverTransientFailure(
|
@@ -1518,21 +1537,19 @@ void ChannelData::ChannelConfigHelper::ResolverTransientFailure(
|
|
1518
1537
|
chand_->resolver_transient_failure_error_ = error;
|
1519
1538
|
}
|
1520
1539
|
|
1521
|
-
void ChannelData::ChannelConfigHelper::
|
1540
|
+
void ChannelData::ChannelConfigHelper::ChooseLbPolicy(
|
1522
1541
|
const Resolver::Result& resolver_result,
|
1523
1542
|
const internal::ClientChannelGlobalParsedConfig* parsed_service_config,
|
1524
1543
|
RefCountedPtr<LoadBalancingPolicy::Config>* lb_policy_config) {
|
1525
1544
|
// Prefer the LB policy config found in the service config.
|
1526
|
-
if (parsed_service_config != nullptr
|
1527
|
-
parsed_service_config->parsed_lb_config() != nullptr) {
|
1545
|
+
if (parsed_service_config->parsed_lb_config() != nullptr) {
|
1528
1546
|
*lb_policy_config = parsed_service_config->parsed_lb_config();
|
1529
1547
|
return;
|
1530
1548
|
}
|
1531
1549
|
// Try the deprecated LB policy name from the service config.
|
1532
1550
|
// If not, try the setting from channel args.
|
1533
1551
|
const char* policy_name = nullptr;
|
1534
|
-
if (parsed_service_config
|
1535
|
-
!parsed_service_config->parsed_deprecated_lb_policy().empty()) {
|
1552
|
+
if (!parsed_service_config->parsed_deprecated_lb_policy().empty()) {
|
1536
1553
|
policy_name = parsed_service_config->parsed_deprecated_lb_policy().c_str();
|
1537
1554
|
} else {
|
1538
1555
|
const grpc_arg* channel_arg =
|
@@ -1652,16 +1669,17 @@ ChannelData::ChannelData(grpc_channel_element_args* args, grpc_error** error)
|
|
1652
1669
|
"filter");
|
1653
1670
|
return;
|
1654
1671
|
}
|
1655
|
-
// Get default service config
|
1672
|
+
// Get default service config. If none is specified via the client API,
|
1673
|
+
// we use an empty config.
|
1656
1674
|
const char* service_config_json = grpc_channel_arg_get_string(
|
1657
1675
|
grpc_channel_args_find(args->channel_args, GRPC_ARG_SERVICE_CONFIG));
|
1658
|
-
if (service_config_json
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1662
|
-
|
1663
|
-
|
1664
|
-
|
1676
|
+
if (service_config_json == nullptr) service_config_json = "{}";
|
1677
|
+
*error = GRPC_ERROR_NONE;
|
1678
|
+
default_service_config_ =
|
1679
|
+
ServiceConfig::Create(args->channel_args, service_config_json, error);
|
1680
|
+
if (*error != GRPC_ERROR_NONE) {
|
1681
|
+
default_service_config_.reset();
|
1682
|
+
return;
|
1665
1683
|
}
|
1666
1684
|
grpc_uri* uri = grpc_uri_parse(server_uri, true);
|
1667
1685
|
if (uri != nullptr && uri->path[0] != '\0') {
|
@@ -1675,12 +1693,19 @@ ChannelData::ChannelData(grpc_channel_element_args* args, grpc_error** error)
|
|
1675
1693
|
&new_args);
|
1676
1694
|
target_uri_.reset(proxy_name != nullptr ? proxy_name
|
1677
1695
|
: gpr_strdup(server_uri));
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1696
|
+
// Strip out service config channel arg, so that it doesn't affect
|
1697
|
+
// subchannel uniqueness when the args flow down to that layer.
|
1698
|
+
const char* arg_to_remove = GRPC_ARG_SERVICE_CONFIG;
|
1699
|
+
channel_args_ = grpc_channel_args_copy_and_remove(
|
1700
|
+
new_args != nullptr ? new_args : args->channel_args, &arg_to_remove, 1);
|
1701
|
+
grpc_channel_args_destroy(new_args);
|
1702
|
+
keepalive_time_ = grpc_channel_args_find_integer(
|
1703
|
+
channel_args_, GRPC_ARG_KEEPALIVE_TIME_MS,
|
1704
|
+
{-1 /* default value, unset */, 1, INT_MAX});
|
1681
1705
|
if (!ResolverRegistry::IsValidTarget(target_uri_.get())) {
|
1682
|
-
|
1683
|
-
|
1706
|
+
std::string error_message =
|
1707
|
+
absl::StrCat("the target uri is not valid: ", target_uri_.get());
|
1708
|
+
*error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(error_message.c_str());
|
1684
1709
|
return;
|
1685
1710
|
}
|
1686
1711
|
*error = GRPC_ERROR_NONE;
|
@@ -1701,17 +1726,17 @@ ChannelData::~ChannelData() {
|
|
1701
1726
|
}
|
1702
1727
|
|
1703
1728
|
void ChannelData::UpdateStateAndPickerLocked(
|
1704
|
-
grpc_connectivity_state state, const
|
1729
|
+
grpc_connectivity_state state, const absl::Status& status,
|
1730
|
+
const char* reason,
|
1705
1731
|
std::unique_ptr<LoadBalancingPolicy::SubchannelPicker> picker) {
|
1706
1732
|
// Clean the control plane when entering IDLE.
|
1707
|
-
if (
|
1733
|
+
if (picker == nullptr || state == GRPC_CHANNEL_SHUTDOWN) {
|
1708
1734
|
health_check_service_name_.reset();
|
1709
1735
|
saved_service_config_.reset();
|
1710
1736
|
saved_config_selector_.reset();
|
1711
|
-
received_first_resolver_result_ = false;
|
1712
1737
|
}
|
1713
1738
|
// Update connectivity state.
|
1714
|
-
state_tracker_.SetState(state, reason);
|
1739
|
+
state_tracker_.SetState(state, status, reason);
|
1715
1740
|
if (channelz_node_ != nullptr) {
|
1716
1741
|
channelz_node_->SetConnectivityState(state);
|
1717
1742
|
channelz_node_->AddTraceEvent(
|
@@ -1754,7 +1779,7 @@ void ChannelData::UpdateStateAndPickerLocked(
|
|
1754
1779
|
// Note: Original value will be destroyed after the lock is released.
|
1755
1780
|
picker_.swap(picker);
|
1756
1781
|
// Clean the data plane if the updated picker is nullptr.
|
1757
|
-
if (picker_ == nullptr) {
|
1782
|
+
if (picker_ == nullptr || state == GRPC_CHANNEL_SHUTDOWN) {
|
1758
1783
|
received_service_config_data_ = false;
|
1759
1784
|
// Note: We save the objects to unref until after the lock is released.
|
1760
1785
|
retry_throttle_data_to_unref = std::move(retry_throttle_data_);
|
@@ -1776,43 +1801,72 @@ void ChannelData::UpdateStateAndPickerLocked(
|
|
1776
1801
|
pending_subchannel_updates_.clear();
|
1777
1802
|
}
|
1778
1803
|
|
1779
|
-
void ChannelData::
|
1780
|
-
|
1781
|
-
RefCountedPtr<ConfigSelector> config_selector
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1785
|
-
|
1786
|
-
|
1787
|
-
|
1788
|
-
|
1789
|
-
|
1790
|
-
|
1791
|
-
|
1792
|
-
|
1793
|
-
|
1804
|
+
void ChannelData::UpdateServiceConfigInControlPlaneLocked(
|
1805
|
+
RefCountedPtr<ServiceConfig> service_config,
|
1806
|
+
RefCountedPtr<ConfigSelector> config_selector,
|
1807
|
+
const internal::ClientChannelGlobalParsedConfig* parsed_service_config,
|
1808
|
+
const char* lb_policy_name) {
|
1809
|
+
grpc_core::UniquePtr<char> service_config_json(
|
1810
|
+
gpr_strdup(service_config->json_string().c_str()));
|
1811
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1812
|
+
gpr_log(GPR_INFO,
|
1813
|
+
"chand=%p: resolver returned updated service config: \"%s\"", this,
|
1814
|
+
service_config_json.get());
|
1815
|
+
}
|
1816
|
+
// Save service config.
|
1817
|
+
saved_service_config_ = std::move(service_config);
|
1818
|
+
// Update health check service name if needed.
|
1819
|
+
if (((health_check_service_name_ == nullptr) !=
|
1820
|
+
(parsed_service_config->health_check_service_name() == nullptr)) ||
|
1821
|
+
(health_check_service_name_ != nullptr &&
|
1822
|
+
strcmp(health_check_service_name_.get(),
|
1823
|
+
parsed_service_config->health_check_service_name()) != 0)) {
|
1824
|
+
health_check_service_name_.reset(
|
1825
|
+
gpr_strdup(parsed_service_config->health_check_service_name()));
|
1826
|
+
// Update health check service name used by existing subchannel wrappers.
|
1827
|
+
for (auto* subchannel_wrapper : subchannel_wrappers_) {
|
1828
|
+
subchannel_wrapper->UpdateHealthCheckServiceName(
|
1829
|
+
grpc_core::UniquePtr<char>(
|
1830
|
+
gpr_strdup(health_check_service_name_.get())));
|
1831
|
+
}
|
1794
1832
|
}
|
1795
|
-
|
1833
|
+
// Swap out the data used by GetChannelInfo().
|
1834
|
+
grpc_core::UniquePtr<char> lb_policy_name_owned(gpr_strdup(lb_policy_name));
|
1835
|
+
{
|
1836
|
+
MutexLock lock(&info_mu_);
|
1837
|
+
info_lb_policy_name_ = std::move(lb_policy_name_owned);
|
1838
|
+
info_service_config_json_ = std::move(service_config_json);
|
1839
|
+
}
|
1840
|
+
// Save config selector.
|
1841
|
+
saved_config_selector_ = std::move(config_selector);
|
1842
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1843
|
+
gpr_log(GPR_INFO, "chand=%p: using ConfigSelector %p", this,
|
1844
|
+
saved_config_selector_.get());
|
1845
|
+
}
|
1846
|
+
}
|
1847
|
+
|
1848
|
+
void ChannelData::UpdateServiceConfigInDataPlaneLocked() {
|
1796
1849
|
// Get retry throttle data from service config.
|
1850
|
+
const internal::ClientChannelGlobalParsedConfig* parsed_service_config =
|
1851
|
+
static_cast<const internal::ClientChannelGlobalParsedConfig*>(
|
1852
|
+
saved_service_config_->GetGlobalParsedConfig(
|
1853
|
+
internal::ClientChannelServiceConfigParser::ParserIndex()));
|
1854
|
+
absl::optional<internal::ClientChannelGlobalParsedConfig::RetryThrottling>
|
1855
|
+
retry_throttle_config = parsed_service_config->retry_throttling();
|
1797
1856
|
RefCountedPtr<ServerRetryThrottleData> retry_throttle_data;
|
1798
|
-
if (
|
1799
|
-
|
1800
|
-
|
1801
|
-
|
1802
|
-
|
1803
|
-
|
1804
|
-
|
1805
|
-
|
1806
|
-
|
1807
|
-
|
1808
|
-
|
1809
|
-
|
1810
|
-
retry_throttle_config.value().max_milli_tokens,
|
1811
|
-
retry_throttle_config.value().milli_token_ratio);
|
1812
|
-
}
|
1813
|
-
}
|
1857
|
+
if (retry_throttle_config.has_value()) {
|
1858
|
+
retry_throttle_data = internal::ServerRetryThrottleMap::GetDataForServer(
|
1859
|
+
server_name_.get(), retry_throttle_config.value().max_milli_tokens,
|
1860
|
+
retry_throttle_config.value().milli_token_ratio);
|
1861
|
+
}
|
1862
|
+
// Grab ref to service config.
|
1863
|
+
RefCountedPtr<ServiceConfig> service_config = saved_service_config_;
|
1864
|
+
// Grab ref to config selector. Use default if resolver didn't supply one.
|
1865
|
+
RefCountedPtr<ConfigSelector> config_selector = saved_config_selector_;
|
1866
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_routing_trace)) {
|
1867
|
+
gpr_log(GPR_INFO, "chand=%p: switching to ConfigSelector %p", this,
|
1868
|
+
saved_config_selector_.get());
|
1814
1869
|
}
|
1815
|
-
// Create default config selector if not provided by resolver.
|
1816
1870
|
if (config_selector == nullptr) {
|
1817
1871
|
config_selector =
|
1818
1872
|
MakeRefCounted<DefaultConfigSelector>(saved_service_config_);
|
@@ -1821,9 +1875,6 @@ void ChannelData::UpdateServiceConfigInDataPlaneLocked(
|
|
1821
1875
|
//
|
1822
1876
|
// We defer unreffing the old values (and deallocating memory) until
|
1823
1877
|
// after releasing the lock to keep the critical section small.
|
1824
|
-
RefCountedPtr<ServiceConfig> service_config_to_unref = saved_service_config_;
|
1825
|
-
RefCountedPtr<ConfigSelector> config_selector_to_unref =
|
1826
|
-
std::move(config_selector);
|
1827
1878
|
{
|
1828
1879
|
MutexLock lock(&data_plane_mu_);
|
1829
1880
|
GRPC_ERROR_UNREF(resolver_transient_failure_error_);
|
@@ -1832,8 +1883,8 @@ void ChannelData::UpdateServiceConfigInDataPlaneLocked(
|
|
1832
1883
|
received_service_config_data_ = true;
|
1833
1884
|
// Old values will be unreffed after lock is released.
|
1834
1885
|
retry_throttle_data_.swap(retry_throttle_data);
|
1835
|
-
service_config_.swap(
|
1836
|
-
config_selector_.swap(
|
1886
|
+
service_config_.swap(service_config);
|
1887
|
+
config_selector_.swap(config_selector);
|
1837
1888
|
// Re-process queued picks.
|
1838
1889
|
for (QueuedPick* pick = queued_picks_; pick != nullptr; pick = pick->next) {
|
1839
1890
|
grpc_call_element* elem = pick->elem;
|
@@ -1938,8 +1989,8 @@ void ChannelData::StartTransportOpLocked(grpc_transport_op* op) {
|
|
1938
1989
|
static_cast<grpc_connectivity_state>(value) == GRPC_CHANNEL_IDLE) {
|
1939
1990
|
if (disconnect_error() == GRPC_ERROR_NONE) {
|
1940
1991
|
// Enter IDLE state.
|
1941
|
-
UpdateStateAndPickerLocked(GRPC_CHANNEL_IDLE,
|
1942
|
-
nullptr);
|
1992
|
+
UpdateStateAndPickerLocked(GRPC_CHANNEL_IDLE, absl::Status(),
|
1993
|
+
"channel entering IDLE", nullptr);
|
1943
1994
|
}
|
1944
1995
|
GRPC_ERROR_UNREF(op->disconnect_with_error);
|
1945
1996
|
} else {
|
@@ -1948,7 +1999,7 @@ void ChannelData::StartTransportOpLocked(grpc_transport_op* op) {
|
|
1948
1999
|
GRPC_ERROR_NONE);
|
1949
2000
|
disconnect_error_.Store(op->disconnect_with_error, MemoryOrder::RELEASE);
|
1950
2001
|
UpdateStateAndPickerLocked(
|
1951
|
-
GRPC_CHANNEL_SHUTDOWN, "shutdown from API",
|
2002
|
+
GRPC_CHANNEL_SHUTDOWN, absl::Status(), "shutdown from API",
|
1952
2003
|
absl::make_unique<LoadBalancingPolicy::TransientFailurePicker>(
|
1953
2004
|
GRPC_ERROR_REF(op->disconnect_with_error)));
|
1954
2005
|
}
|
@@ -2090,7 +2141,7 @@ void ChannelData::RemoveConnectivityWatcher(
|
|
2090
2141
|
|
2091
2142
|
CallData::CallData(grpc_call_element* elem, const ChannelData& chand,
|
2092
2143
|
const grpc_call_element_args& args)
|
2093
|
-
: deadline_state_(elem, args
|
2144
|
+
: deadline_state_(elem, args,
|
2094
2145
|
GPR_LIKELY(chand.deadline_checking_enabled())
|
2095
2146
|
? args.deadline
|
2096
2147
|
: GRPC_MILLIS_INF_FUTURE),
|
@@ -2133,13 +2184,14 @@ void CallData::Destroy(grpc_call_element* elem,
|
|
2133
2184
|
const grpc_call_final_info* /*final_info*/,
|
2134
2185
|
grpc_closure* then_schedule_closure) {
|
2135
2186
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
2136
|
-
|
2137
|
-
calld->subchannel_call_->SetAfterCallStackDestroy(then_schedule_closure);
|
2138
|
-
then_schedule_closure = nullptr;
|
2139
|
-
}
|
2187
|
+
RefCountedPtr<SubchannelCall> subchannel_call = calld->subchannel_call_;
|
2140
2188
|
calld->~CallData();
|
2141
|
-
|
2142
|
-
|
2189
|
+
if (GPR_LIKELY(subchannel_call != nullptr)) {
|
2190
|
+
subchannel_call->SetAfterCallStackDestroy(then_schedule_closure);
|
2191
|
+
} else {
|
2192
|
+
// TODO(yashkt) : This can potentially be a Closure::Run
|
2193
|
+
ExecCtx::Run(DEBUG_LOCATION, then_schedule_closure, GRPC_ERROR_NONE);
|
2194
|
+
}
|
2143
2195
|
}
|
2144
2196
|
|
2145
2197
|
void CallData::StartTransportStreamOpBatch(
|
@@ -3829,6 +3881,7 @@ class CallData::QueuedPickCanceller {
|
|
3829
3881
|
}
|
3830
3882
|
if (calld->pick_canceller_ == self && error != GRPC_ERROR_NONE) {
|
3831
3883
|
// Remove pick from list of queued picks.
|
3884
|
+
calld->MaybeInvokeConfigSelectorCommitCallback();
|
3832
3885
|
calld->MaybeRemoveCallFromQueuedPicksLocked(self->elem_);
|
3833
3886
|
// Fail pending batches on the call.
|
3834
3887
|
calld->PendingBatchesFail(self->elem_, GRPC_ERROR_REF(error),
|
@@ -3877,8 +3930,7 @@ grpc_error* CallData::ApplyServiceConfigToCallLocked(
|
|
3877
3930
|
chand, this);
|
3878
3931
|
}
|
3879
3932
|
ConfigSelector* config_selector = chand->config_selector();
|
3880
|
-
|
3881
|
-
if (service_config != nullptr) {
|
3933
|
+
if (config_selector != nullptr) {
|
3882
3934
|
// Use the ConfigSelector to determine the config for the call.
|
3883
3935
|
ConfigSelector::CallConfig call_config =
|
3884
3936
|
config_selector->GetCallConfig({&path_, initial_metadata, arena_});
|
@@ -3891,7 +3943,8 @@ grpc_error* CallData::ApplyServiceConfigToCallLocked(
|
|
3891
3943
|
// so that it can be accessed by filters in the subchannel, and it
|
3892
3944
|
// will be cleaned up when the call ends.
|
3893
3945
|
auto* service_config_call_data = arena_->New<ServiceConfigCallData>(
|
3894
|
-
std::move(service_config), call_config.method_configs,
|
3946
|
+
std::move(call_config.service_config), call_config.method_configs,
|
3947
|
+
call_context_);
|
3895
3948
|
// Apply our own method params to the call.
|
3896
3949
|
method_params_ = static_cast<ClientChannelMethodParsedConfig*>(
|
3897
3950
|
service_config_call_data->GetMethodParsedConfig(
|
@@ -4118,7 +4171,9 @@ bool CallData::PickSubchannelLocked(grpc_call_element* elem,
|
|
4118
4171
|
connected_subchannel_ =
|
4119
4172
|
chand->GetConnectedSubchannelInDataPlane(result.subchannel.get());
|
4120
4173
|
GPR_ASSERT(connected_subchannel_ != nullptr);
|
4121
|
-
if (retry_committed_)
|
4174
|
+
if (!enable_retries_ || retry_committed_) {
|
4175
|
+
MaybeInvokeConfigSelectorCommitCallback();
|
4176
|
+
}
|
4122
4177
|
}
|
4123
4178
|
lb_recv_trailing_metadata_ready_ = result.recv_trailing_metadata_ready;
|
4124
4179
|
*error = result.error;
|