grpc 1.34.0 → 1.35.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +808 -2787
- data/etc/roots.pem +257 -573
- data/include/grpc/compression.h +1 -1
- data/include/grpc/grpc.h +14 -0
- data/include/grpc/grpc_security.h +61 -3
- data/include/grpc/impl/codegen/atm_windows.h +4 -0
- data/include/grpc/impl/codegen/byte_buffer.h +1 -1
- data/include/grpc/impl/codegen/grpc_types.h +1 -1
- data/include/grpc/impl/codegen/log.h +0 -2
- data/include/grpc/impl/codegen/sync_windows.h +4 -0
- data/include/grpc/slice_buffer.h +3 -3
- data/include/grpc/support/sync.h +3 -3
- data/include/grpc/support/time.h +7 -7
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +2734 -1498
- data/src/core/ext/filters/client_channel/client_channel.h +0 -4
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +4 -0
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +186 -0
- data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +6 -6
- 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 +4 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +2 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +32 -30
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +162 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +24 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1262 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +7 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +454 -16
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -9
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +18 -31
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +3 -5
- data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
- data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
- data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +11 -13
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +8 -8
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
- data/src/core/ext/filters/client_channel/retry_throttle.h +3 -1
- data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +34 -50
- data/src/core/ext/filters/client_channel/subchannel.h +12 -18
- data/src/core/ext/filters/deadline/deadline_filter.cc +4 -2
- data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
- data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
- data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
- data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +20 -8
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +26 -14
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +178 -86
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/writing.cc +1 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +42 -8
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +27 -27
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +139 -40
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +44 -17
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +111 -111
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +424 -241
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +22 -22
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +47 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +21 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +88 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +15 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +44 -44
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +200 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +17 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +72 -35
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +27 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +30 -30
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +136 -49
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +39 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +157 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +17 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +47 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +163 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +9 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +59 -36
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +61 -29
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +26 -26
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +101 -66
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +28 -28
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +122 -77
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +23 -23
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +106 -54
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +13 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +81 -35
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +38 -22
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +203 -203
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +845 -495
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +26 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +17 -3
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +87 -87
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +343 -204
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +20 -20
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +85 -46
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +33 -11
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +118 -67
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +29 -29
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +120 -82
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +31 -16
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +29 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +16 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +19 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +46 -3
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +41 -8
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +19 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +7 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +34 -34
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +149 -72
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +34 -34
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +142 -59
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +90 -90
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +22 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +13 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +5 -5
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +21 -7
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +2 -2
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +17 -8
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +7 -7
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +31 -18
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +5 -5
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +19 -11
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +64 -64
- data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
- data/src/core/ext/xds/certificate_provider_store.cc +10 -7
- data/src/core/ext/xds/certificate_provider_store.h +12 -7
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +25 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +1 -4
- data/src/core/ext/xds/xds_api.cc +220 -31
- data/src/core/ext/xds/xds_api.h +41 -10
- data/src/core/ext/xds/xds_bootstrap.h +0 -1
- data/src/core/ext/xds/xds_certificate_provider.cc +61 -2
- data/src/core/ext/xds/xds_certificate_provider.h +40 -2
- data/src/core/ext/xds/xds_client.cc +31 -29
- data/src/core/ext/xds/xds_client.h +6 -1
- data/src/core/ext/xds/xds_client_stats.cc +2 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +131 -0
- data/src/core/lib/channel/channel_args.cc +8 -8
- data/src/core/lib/channel/channel_trace.h +1 -1
- data/src/core/lib/channel/channelz.cc +13 -14
- data/src/core/lib/channel/channelz.h +0 -1
- data/src/core/lib/channel/channelz_registry.h +0 -1
- data/src/core/lib/channel/handshaker.cc +2 -2
- data/src/core/lib/compression/compression_args.cc +3 -2
- data/src/core/lib/debug/stats.h +2 -2
- data/src/core/lib/debug/stats_data.h +13 -13
- data/src/core/lib/gpr/alloc.cc +3 -2
- data/src/core/lib/gpr/log.cc +53 -16
- data/src/core/lib/gpr/log_linux.cc +3 -1
- data/src/core/lib/gpr/log_posix.cc +3 -1
- data/src/core/lib/gpr/log_windows.cc +3 -1
- data/src/core/lib/gpr/spinlock.h +10 -2
- data/src/core/lib/gpr/string.cc +22 -21
- data/src/core/lib/gpr/string.h +5 -6
- data/src/core/lib/gpr/sync.cc +4 -4
- data/src/core/lib/gpr/time.cc +12 -12
- data/src/core/lib/gprpp/arena.h +3 -2
- data/src/core/lib/gprpp/ref_counted.h +2 -2
- data/src/core/lib/gprpp/ref_counted_ptr.h +9 -1
- data/src/core/lib/gprpp/thd_posix.cc +6 -1
- data/src/core/lib/gprpp/thd_windows.cc +3 -1
- data/src/core/lib/http/httpcli.cc +1 -1
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +1 -1
- data/src/core/lib/http/parser.cc +1 -2
- data/src/core/lib/iomgr/call_combiner.cc +8 -5
- data/src/core/lib/iomgr/combiner.cc +2 -1
- data/src/core/lib/iomgr/endpoint.h +1 -1
- data/src/core/lib/iomgr/error.cc +15 -11
- data/src/core/lib/iomgr/error_internal.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -13
- data/src/core/lib/iomgr/ev_epollex_linux.cc +17 -13
- data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
- data/src/core/lib/iomgr/exec_ctx.h +6 -4
- data/src/core/lib/iomgr/executor.cc +2 -1
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/executor/threadpool.h +1 -1
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/load_file.h +1 -1
- data/src/core/lib/iomgr/lockfree_event.cc +19 -14
- data/src/core/lib/iomgr/lockfree_event.h +2 -2
- data/src/core/lib/iomgr/parse_address.cc +52 -46
- data/src/core/lib/iomgr/parse_address.h +13 -9
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +1 -1
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +4 -4
- data/src/core/lib/iomgr/sockaddr_utils.cc +10 -10
- data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
- data/src/core/lib/iomgr/socket_mutator.cc +3 -2
- data/src/core/lib/iomgr/tcp_client.cc +3 -3
- data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
- data/src/core/lib/iomgr/tcp_custom.cc +22 -17
- data/src/core/lib/iomgr/tcp_posix.cc +9 -6
- data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
- data/src/core/lib/iomgr/timer_custom.cc +3 -3
- data/src/core/lib/iomgr/timer_generic.cc +3 -3
- data/src/core/lib/iomgr/timer_manager.cc +2 -2
- data/src/core/lib/iomgr/udp_server.cc +1 -2
- data/src/core/lib/iomgr/udp_server.h +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +17 -18
- data/src/core/lib/json/json.h +10 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +5 -10
- data/src/core/lib/security/authorization/evaluate_args.h +1 -1
- data/src/core/lib/security/context/security_context.cc +4 -3
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +15 -10
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -2
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +217 -31
- data/src/core/lib/security/credentials/external/external_account_credentials.h +7 -5
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +3 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +20 -18
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +5 -6
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -1
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +18 -12
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +18 -5
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +3 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +37 -44
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -5
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +1 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +1 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +326 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +64 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +0 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +1 -1
- data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +140 -10
- data/src/core/lib/security/credentials/xds/xds_credentials.h +27 -9
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +46 -13
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +23 -6
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.cc +3 -2
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +12 -19
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +57 -12
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +2 -3
- data/src/core/lib/security/transport/secure_endpoint.cc +2 -2
- data/src/core/lib/security/transport/security_handshaker.cc +2 -2
- data/src/core/lib/slice/slice_intern.cc +4 -5
- data/src/core/lib/slice/slice_internal.h +2 -2
- data/src/core/lib/surface/call.cc +32 -24
- data/src/core/lib/surface/call_details.cc +8 -8
- data/src/core/lib/surface/channel.cc +16 -10
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +23 -18
- data/src/core/lib/surface/completion_queue.h +16 -16
- data/src/core/lib/surface/init.cc +6 -5
- data/src/core/lib/surface/lame_client.cc +20 -46
- data/src/core/lib/surface/lame_client.h +4 -0
- data/src/core/lib/surface/server.cc +59 -15
- data/src/core/lib/surface/server.h +37 -5
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/authority_override.cc +6 -4
- data/src/core/lib/transport/authority_override.h +5 -2
- data/src/core/lib/transport/connectivity_state.h +6 -4
- data/src/core/lib/transport/error_utils.h +1 -1
- data/src/core/lib/transport/metadata_batch.h +4 -4
- data/src/core/lib/transport/static_metadata.cc +1 -1
- data/src/core/lib/transport/status_metadata.cc +4 -3
- data/src/core/lib/transport/transport.h +7 -7
- data/src/core/lib/uri/uri_parser.cc +131 -249
- data/src/core/lib/uri/uri_parser.h +57 -21
- data/src/core/plugin_registry/grpc_plugin_registry.cc +10 -4
- data/src/core/tsi/alts/crypt/gsec.cc +5 -4
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +23 -23
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
- data/src/core/tsi/fake_transport_security.cc +5 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +62 -49
- data/src/core/tsi/ssl_transport_security.h +6 -6
- data/src/core/tsi/transport_security.cc +6 -6
- data/src/core/tsi/transport_security_interface.h +1 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +12 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +31 -13
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +28 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
- data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
- data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
- data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
- data/third_party/upb/upb/decode.c +248 -167
- data/third_party/upb/upb/decode.h +20 -1
- data/third_party/upb/upb/decode.int.h +163 -0
- data/third_party/upb/upb/decode_fast.c +1040 -0
- data/third_party/upb/upb/decode_fast.h +126 -0
- data/third_party/upb/upb/def.c +525 -516
- data/third_party/upb/upb/def.h +16 -31
- data/third_party/upb/upb/def.hpp +37 -123
- data/third_party/upb/upb/encode.c +227 -169
- data/third_party/upb/upb/encode.h +27 -2
- data/third_party/upb/upb/json_decode.c +1443 -0
- data/third_party/upb/upb/json_decode.h +23 -0
- data/third_party/upb/upb/json_encode.c +713 -0
- data/third_party/upb/upb/json_encode.h +36 -0
- data/third_party/upb/upb/msg.c +167 -88
- data/third_party/upb/upb/msg.h +174 -34
- data/third_party/upb/upb/port_def.inc +74 -61
- data/third_party/upb/upb/port_undef.inc +3 -7
- data/third_party/upb/upb/reflection.c +36 -19
- data/third_party/upb/upb/table.c +34 -197
- data/third_party/upb/upb/table.int.h +14 -5
- data/third_party/upb/upb/text_encode.c +45 -22
- data/third_party/upb/upb/text_encode.h +4 -1
- data/third_party/upb/upb/upb.c +18 -41
- data/third_party/upb/upb/upb.h +36 -7
- data/third_party/upb/upb/upb.hpp +4 -4
- data/third_party/upb/upb/upb.int.h +29 -0
- metadata +60 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -909
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -355
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -138
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +0 -265
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +0 -104
- data/src/core/lib/gprpp/map.h +0 -53
- data/third_party/upb/upb/port.c +0 -26
@@ -1,68 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Copyright 2016-2017 gRPC authors.
|
4
|
-
*
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
* you may not use this file except in compliance with the License.
|
7
|
-
* You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*
|
17
|
-
*/
|
18
|
-
|
19
|
-
#include <grpc/support/port_platform.h>
|
20
|
-
|
21
|
-
#if GRPC_ARES != 1
|
22
|
-
|
23
|
-
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h"
|
24
|
-
|
25
|
-
struct grpc_ares_request {
|
26
|
-
char val;
|
27
|
-
};
|
28
|
-
|
29
|
-
static grpc_ares_request* grpc_dns_lookup_ares_locked_impl(
|
30
|
-
const char* dns_server, const char* name, const char* default_port,
|
31
|
-
grpc_pollset_set* interested_parties, grpc_closure* on_done,
|
32
|
-
std::unique_ptr<grpc_core::ServerAddressList>* addrs,
|
33
|
-
std::unique_ptr<grpc_core::ServerAddressList>* balancer_addrs,
|
34
|
-
char** service_config_json, int query_timeout_ms,
|
35
|
-
std::shared_ptr<grpc_core::WorkSerializer> work_serializer) {
|
36
|
-
return NULL;
|
37
|
-
}
|
38
|
-
|
39
|
-
grpc_ares_request* (*grpc_dns_lookup_ares_locked)(
|
40
|
-
const char* dns_server, const char* name, const char* default_port,
|
41
|
-
grpc_pollset_set* interested_parties, grpc_closure* on_done,
|
42
|
-
std::unique_ptr<grpc_core::ServerAddressList>* addrs,
|
43
|
-
std::unique_ptr<grpc_core::ServerAddressList>* balancer_addrs,
|
44
|
-
char** service_config_json, int query_timeout_ms,
|
45
|
-
std::shared_ptr<grpc_core::WorkSerializer> work_serializer) =
|
46
|
-
grpc_dns_lookup_ares_locked_impl;
|
47
|
-
|
48
|
-
static void grpc_cancel_ares_request_locked_impl(grpc_ares_request* r) {}
|
49
|
-
|
50
|
-
void (*grpc_cancel_ares_request_locked)(grpc_ares_request* r) =
|
51
|
-
grpc_cancel_ares_request_locked_impl;
|
52
|
-
|
53
|
-
grpc_error* grpc_ares_init(void) { return GRPC_ERROR_NONE; }
|
54
|
-
|
55
|
-
void grpc_ares_cleanup(void) {}
|
56
|
-
|
57
|
-
static void grpc_resolve_address_ares_impl(const char* name,
|
58
|
-
const char* default_port,
|
59
|
-
grpc_pollset_set* interested_parties,
|
60
|
-
grpc_closure* on_done,
|
61
|
-
grpc_resolved_addresses** addrs) {}
|
62
|
-
|
63
|
-
void (*grpc_resolve_address_ares)(
|
64
|
-
const char* name, const char* default_port,
|
65
|
-
grpc_pollset_set* interested_parties, grpc_closure* on_done,
|
66
|
-
grpc_resolved_addresses** addrs) = grpc_resolve_address_ares_impl;
|
67
|
-
|
68
|
-
#endif /* GRPC_ARES != 1 */
|
@@ -1,355 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Copyright 2015 gRPC authors.
|
4
|
-
*
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
* you may not use this file except in compliance with the License.
|
7
|
-
* You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*
|
17
|
-
*/
|
18
|
-
|
19
|
-
#include <grpc/support/port_platform.h>
|
20
|
-
|
21
|
-
#include "src/core/ext/filters/client_channel/resolving_lb_policy.h"
|
22
|
-
|
23
|
-
#include <inttypes.h>
|
24
|
-
#include <limits.h>
|
25
|
-
#include <stdbool.h>
|
26
|
-
#include <stdio.h>
|
27
|
-
#include <string.h>
|
28
|
-
|
29
|
-
#include "absl/strings/str_cat.h"
|
30
|
-
#include "absl/strings/str_join.h"
|
31
|
-
|
32
|
-
#include <grpc/support/alloc.h>
|
33
|
-
#include <grpc/support/log.h>
|
34
|
-
#include <grpc/support/string_util.h>
|
35
|
-
#include <grpc/support/sync.h>
|
36
|
-
|
37
|
-
#include "src/core/ext/filters/client_channel/backup_poller.h"
|
38
|
-
#include "src/core/ext/filters/client_channel/http_connect_handshaker.h"
|
39
|
-
#include "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h"
|
40
|
-
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
41
|
-
#include "src/core/ext/filters/client_channel/proxy_mapper_registry.h"
|
42
|
-
#include "src/core/ext/filters/client_channel/resolver_registry.h"
|
43
|
-
#include "src/core/ext/filters/client_channel/retry_throttle.h"
|
44
|
-
#include "src/core/ext/filters/client_channel/server_address.h"
|
45
|
-
#include "src/core/ext/filters/client_channel/service_config.h"
|
46
|
-
#include "src/core/ext/filters/client_channel/subchannel.h"
|
47
|
-
#include "src/core/ext/filters/deadline/deadline_filter.h"
|
48
|
-
#include "src/core/lib/backoff/backoff.h"
|
49
|
-
#include "src/core/lib/channel/channel_args.h"
|
50
|
-
#include "src/core/lib/channel/connected_channel.h"
|
51
|
-
#include "src/core/lib/channel/status_util.h"
|
52
|
-
#include "src/core/lib/gpr/string.h"
|
53
|
-
#include "src/core/lib/gprpp/manual_constructor.h"
|
54
|
-
#include "src/core/lib/gprpp/sync.h"
|
55
|
-
#include "src/core/lib/iomgr/iomgr.h"
|
56
|
-
#include "src/core/lib/iomgr/polling_entity.h"
|
57
|
-
#include "src/core/lib/profiling/timers.h"
|
58
|
-
#include "src/core/lib/slice/slice_internal.h"
|
59
|
-
#include "src/core/lib/slice/slice_string_helpers.h"
|
60
|
-
#include "src/core/lib/surface/channel.h"
|
61
|
-
#include "src/core/lib/transport/connectivity_state.h"
|
62
|
-
#include "src/core/lib/transport/error_utils.h"
|
63
|
-
#include "src/core/lib/transport/metadata.h"
|
64
|
-
#include "src/core/lib/transport/metadata_batch.h"
|
65
|
-
#include "src/core/lib/transport/static_metadata.h"
|
66
|
-
#include "src/core/lib/transport/status_metadata.h"
|
67
|
-
|
68
|
-
namespace grpc_core {
|
69
|
-
|
70
|
-
//
|
71
|
-
// ResolvingLoadBalancingPolicy::ResolverResultHandler
|
72
|
-
//
|
73
|
-
|
74
|
-
class ResolvingLoadBalancingPolicy::ResolverResultHandler
|
75
|
-
: public Resolver::ResultHandler {
|
76
|
-
public:
|
77
|
-
explicit ResolverResultHandler(
|
78
|
-
RefCountedPtr<ResolvingLoadBalancingPolicy> parent)
|
79
|
-
: parent_(std::move(parent)) {}
|
80
|
-
|
81
|
-
~ResolverResultHandler() override {
|
82
|
-
if (GRPC_TRACE_FLAG_ENABLED(*(parent_->tracer_))) {
|
83
|
-
gpr_log(GPR_INFO, "resolving_lb=%p: resolver shutdown complete",
|
84
|
-
parent_.get());
|
85
|
-
}
|
86
|
-
}
|
87
|
-
|
88
|
-
void ReturnResult(Resolver::Result result) override {
|
89
|
-
parent_->OnResolverResultChangedLocked(std::move(result));
|
90
|
-
}
|
91
|
-
|
92
|
-
void ReturnError(grpc_error* error) override {
|
93
|
-
parent_->OnResolverError(error);
|
94
|
-
}
|
95
|
-
|
96
|
-
private:
|
97
|
-
RefCountedPtr<ResolvingLoadBalancingPolicy> parent_;
|
98
|
-
};
|
99
|
-
|
100
|
-
//
|
101
|
-
// ResolvingLoadBalancingPolicy::ResolvingControlHelper
|
102
|
-
//
|
103
|
-
|
104
|
-
class ResolvingLoadBalancingPolicy::ResolvingControlHelper
|
105
|
-
: public LoadBalancingPolicy::ChannelControlHelper {
|
106
|
-
public:
|
107
|
-
explicit ResolvingControlHelper(
|
108
|
-
RefCountedPtr<ResolvingLoadBalancingPolicy> parent)
|
109
|
-
: parent_(std::move(parent)) {}
|
110
|
-
|
111
|
-
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
112
|
-
ServerAddress address, const grpc_channel_args& args) override {
|
113
|
-
if (parent_->resolver_ == nullptr) return nullptr; // Shutting down.
|
114
|
-
return parent_->channel_control_helper()->CreateSubchannel(
|
115
|
-
std::move(address), args);
|
116
|
-
}
|
117
|
-
|
118
|
-
void UpdateState(grpc_connectivity_state state, const absl::Status& status,
|
119
|
-
std::unique_ptr<SubchannelPicker> picker) override {
|
120
|
-
if (parent_->resolver_ == nullptr) return; // Shutting down.
|
121
|
-
parent_->channel_control_helper()->UpdateState(state, status,
|
122
|
-
std::move(picker));
|
123
|
-
}
|
124
|
-
|
125
|
-
void RequestReresolution() override {
|
126
|
-
if (parent_->resolver_ == nullptr) return; // Shutting down.
|
127
|
-
if (GRPC_TRACE_FLAG_ENABLED(*(parent_->tracer_))) {
|
128
|
-
gpr_log(GPR_INFO, "resolving_lb=%p: started name re-resolving",
|
129
|
-
parent_.get());
|
130
|
-
}
|
131
|
-
parent_->resolver_->RequestReresolutionLocked();
|
132
|
-
}
|
133
|
-
|
134
|
-
void AddTraceEvent(TraceSeverity severity,
|
135
|
-
absl::string_view message) override {
|
136
|
-
if (parent_->resolver_ == nullptr) return; // Shutting down.
|
137
|
-
parent_->channel_control_helper()->AddTraceEvent(severity, message);
|
138
|
-
}
|
139
|
-
|
140
|
-
private:
|
141
|
-
RefCountedPtr<ResolvingLoadBalancingPolicy> parent_;
|
142
|
-
};
|
143
|
-
|
144
|
-
//
|
145
|
-
// ResolvingLoadBalancingPolicy
|
146
|
-
//
|
147
|
-
|
148
|
-
ResolvingLoadBalancingPolicy::ResolvingLoadBalancingPolicy(
|
149
|
-
Args args, TraceFlag* tracer, grpc_core::UniquePtr<char> target_uri,
|
150
|
-
ChannelConfigHelper* helper)
|
151
|
-
: LoadBalancingPolicy(std::move(args)),
|
152
|
-
tracer_(tracer),
|
153
|
-
target_uri_(std::move(target_uri)),
|
154
|
-
helper_(helper) {
|
155
|
-
GPR_ASSERT(helper_ != nullptr);
|
156
|
-
resolver_ = ResolverRegistry::CreateResolver(
|
157
|
-
target_uri_.get(), args.args, interested_parties(), work_serializer(),
|
158
|
-
absl::make_unique<ResolverResultHandler>(Ref()));
|
159
|
-
// Since the validity of args has been checked when create the channel,
|
160
|
-
// CreateResolver() must return a non-null result.
|
161
|
-
GPR_ASSERT(resolver_ != nullptr);
|
162
|
-
if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
|
163
|
-
gpr_log(GPR_INFO, "resolving_lb=%p: starting name resolution", this);
|
164
|
-
}
|
165
|
-
channel_control_helper()->UpdateState(GRPC_CHANNEL_CONNECTING, absl::Status(),
|
166
|
-
absl::make_unique<QueuePicker>(Ref()));
|
167
|
-
resolver_->StartLocked();
|
168
|
-
}
|
169
|
-
|
170
|
-
ResolvingLoadBalancingPolicy::~ResolvingLoadBalancingPolicy() {
|
171
|
-
GPR_ASSERT(resolver_ == nullptr);
|
172
|
-
GPR_ASSERT(lb_policy_ == nullptr);
|
173
|
-
}
|
174
|
-
|
175
|
-
void ResolvingLoadBalancingPolicy::ShutdownLocked() {
|
176
|
-
if (resolver_ != nullptr) {
|
177
|
-
if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
|
178
|
-
gpr_log(GPR_INFO, "resolving_lb=%p: shutting down resolver=%p", this,
|
179
|
-
resolver_.get());
|
180
|
-
}
|
181
|
-
resolver_.reset();
|
182
|
-
if (lb_policy_ != nullptr) {
|
183
|
-
if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
|
184
|
-
gpr_log(GPR_INFO, "resolving_lb=%p: shutting down lb_policy=%p", this,
|
185
|
-
lb_policy_.get());
|
186
|
-
}
|
187
|
-
grpc_pollset_set_del_pollset_set(lb_policy_->interested_parties(),
|
188
|
-
interested_parties());
|
189
|
-
lb_policy_.reset();
|
190
|
-
}
|
191
|
-
}
|
192
|
-
}
|
193
|
-
|
194
|
-
void ResolvingLoadBalancingPolicy::ExitIdleLocked() {
|
195
|
-
if (lb_policy_ != nullptr) lb_policy_->ExitIdleLocked();
|
196
|
-
}
|
197
|
-
|
198
|
-
void ResolvingLoadBalancingPolicy::ResetBackoffLocked() {
|
199
|
-
if (resolver_ != nullptr) {
|
200
|
-
resolver_->ResetBackoffLocked();
|
201
|
-
resolver_->RequestReresolutionLocked();
|
202
|
-
}
|
203
|
-
if (lb_policy_ != nullptr) lb_policy_->ResetBackoffLocked();
|
204
|
-
}
|
205
|
-
|
206
|
-
void ResolvingLoadBalancingPolicy::OnResolverError(grpc_error* error) {
|
207
|
-
if (resolver_ == nullptr) {
|
208
|
-
GRPC_ERROR_UNREF(error);
|
209
|
-
return;
|
210
|
-
}
|
211
|
-
if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
|
212
|
-
gpr_log(GPR_INFO, "resolving_lb=%p: resolver transient failure: %s", this,
|
213
|
-
grpc_error_string(error));
|
214
|
-
}
|
215
|
-
// If we already have an LB policy from a previous resolution
|
216
|
-
// result, then we continue to let it set the connectivity state.
|
217
|
-
// Otherwise, we go into TRANSIENT_FAILURE.
|
218
|
-
if (lb_policy_ == nullptr) {
|
219
|
-
grpc_error* state_error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
220
|
-
"Resolver transient failure", &error, 1);
|
221
|
-
helper_->ResolverTransientFailure(GRPC_ERROR_REF(state_error));
|
222
|
-
channel_control_helper()->UpdateState(
|
223
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE, grpc_error_to_absl_status(state_error),
|
224
|
-
absl::make_unique<TransientFailurePicker>(state_error));
|
225
|
-
}
|
226
|
-
GRPC_ERROR_UNREF(error);
|
227
|
-
}
|
228
|
-
|
229
|
-
void ResolvingLoadBalancingPolicy::CreateOrUpdateLbPolicyLocked(
|
230
|
-
RefCountedPtr<LoadBalancingPolicy::Config> lb_policy_config,
|
231
|
-
Resolver::Result result) {
|
232
|
-
// Construct update.
|
233
|
-
UpdateArgs update_args;
|
234
|
-
update_args.addresses = std::move(result.addresses);
|
235
|
-
update_args.config = std::move(lb_policy_config);
|
236
|
-
// Remove the config selector from channel args so that we're not holding
|
237
|
-
// unnecessary refs that cause it to be destroyed somewhere other than in the
|
238
|
-
// WorkSerializer.
|
239
|
-
const char* arg_name = GRPC_ARG_CONFIG_SELECTOR;
|
240
|
-
update_args.args =
|
241
|
-
grpc_channel_args_copy_and_remove(result.args, &arg_name, 1);
|
242
|
-
// Create policy if needed.
|
243
|
-
if (lb_policy_ == nullptr) {
|
244
|
-
lb_policy_ = CreateLbPolicyLocked(*update_args.args);
|
245
|
-
}
|
246
|
-
// Update the policy.
|
247
|
-
if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
|
248
|
-
gpr_log(GPR_INFO, "resolving_lb=%p: Updating child policy %p", this,
|
249
|
-
lb_policy_.get());
|
250
|
-
}
|
251
|
-
lb_policy_->UpdateLocked(std::move(update_args));
|
252
|
-
}
|
253
|
-
|
254
|
-
// Creates a new LB policy.
|
255
|
-
OrphanablePtr<LoadBalancingPolicy>
|
256
|
-
ResolvingLoadBalancingPolicy::CreateLbPolicyLocked(
|
257
|
-
const grpc_channel_args& args) {
|
258
|
-
LoadBalancingPolicy::Args lb_policy_args;
|
259
|
-
lb_policy_args.work_serializer = work_serializer();
|
260
|
-
lb_policy_args.channel_control_helper =
|
261
|
-
absl::make_unique<ResolvingControlHelper>(Ref());
|
262
|
-
lb_policy_args.args = &args;
|
263
|
-
OrphanablePtr<LoadBalancingPolicy> lb_policy =
|
264
|
-
MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args), tracer_);
|
265
|
-
if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
|
266
|
-
gpr_log(GPR_INFO, "resolving_lb=%p: created new LB policy %p", this,
|
267
|
-
lb_policy.get());
|
268
|
-
}
|
269
|
-
grpc_pollset_set_add_pollset_set(lb_policy->interested_parties(),
|
270
|
-
interested_parties());
|
271
|
-
return lb_policy;
|
272
|
-
}
|
273
|
-
|
274
|
-
void ResolvingLoadBalancingPolicy::MaybeAddTraceMessagesForAddressChangesLocked(
|
275
|
-
bool resolution_contains_addresses, TraceStringVector* trace_strings) {
|
276
|
-
if (!resolution_contains_addresses &&
|
277
|
-
previous_resolution_contained_addresses_) {
|
278
|
-
trace_strings->push_back("Address list became empty");
|
279
|
-
} else if (resolution_contains_addresses &&
|
280
|
-
!previous_resolution_contained_addresses_) {
|
281
|
-
trace_strings->push_back("Address list became non-empty");
|
282
|
-
}
|
283
|
-
previous_resolution_contained_addresses_ = resolution_contains_addresses;
|
284
|
-
}
|
285
|
-
|
286
|
-
void ResolvingLoadBalancingPolicy::ConcatenateAndAddChannelTraceLocked(
|
287
|
-
const TraceStringVector& trace_strings) const {
|
288
|
-
if (!trace_strings.empty()) {
|
289
|
-
std::string message =
|
290
|
-
absl::StrCat("Resolution event: ", absl::StrJoin(trace_strings, ", "));
|
291
|
-
channel_control_helper()->AddTraceEvent(ChannelControlHelper::TRACE_INFO,
|
292
|
-
message);
|
293
|
-
}
|
294
|
-
}
|
295
|
-
|
296
|
-
void ResolvingLoadBalancingPolicy::OnResolverResultChangedLocked(
|
297
|
-
Resolver::Result result) {
|
298
|
-
// Handle race conditions.
|
299
|
-
if (resolver_ == nullptr) return;
|
300
|
-
if (GRPC_TRACE_FLAG_ENABLED(*tracer_)) {
|
301
|
-
gpr_log(GPR_INFO, "resolving_lb=%p: got resolver result", this);
|
302
|
-
}
|
303
|
-
// We only want to trace the address resolution in the follow cases:
|
304
|
-
// (a) Address resolution resulted in service config change.
|
305
|
-
// (b) Address resolution that causes number of backends to go from
|
306
|
-
// zero to non-zero.
|
307
|
-
// (c) Address resolution that causes number of backends to go from
|
308
|
-
// non-zero to zero.
|
309
|
-
// (d) Address resolution that causes a new LB policy to be created.
|
310
|
-
//
|
311
|
-
// We track a list of strings to eventually be concatenated and traced.
|
312
|
-
TraceStringVector trace_strings;
|
313
|
-
MaybeAddTraceMessagesForAddressChangesLocked(!result.addresses.empty(),
|
314
|
-
&trace_strings);
|
315
|
-
// The result of grpc_error_string() is owned by the error itself.
|
316
|
-
// We're storing that string in trace_strings, so we need to make sure
|
317
|
-
// that the error lives until we're done with the string.
|
318
|
-
grpc_error* service_config_error =
|
319
|
-
GRPC_ERROR_REF(result.service_config_error);
|
320
|
-
if (service_config_error != GRPC_ERROR_NONE) {
|
321
|
-
trace_strings.push_back(grpc_error_string(service_config_error));
|
322
|
-
}
|
323
|
-
// Choose the service config.
|
324
|
-
ChannelConfigHelper::ChooseServiceConfigResult service_config_result;
|
325
|
-
if (helper_ != nullptr) {
|
326
|
-
service_config_result = helper_->ChooseServiceConfig(result);
|
327
|
-
} else {
|
328
|
-
service_config_result.lb_policy_config = child_lb_config_;
|
329
|
-
}
|
330
|
-
if (service_config_result.no_valid_service_config) {
|
331
|
-
// We received an invalid service config and we don't have a
|
332
|
-
// previous service config to fall back to.
|
333
|
-
OnResolverError(GRPC_ERROR_REF(service_config_error));
|
334
|
-
trace_strings.push_back("no valid service config");
|
335
|
-
} else {
|
336
|
-
// Create or update LB policy, as needed.
|
337
|
-
CreateOrUpdateLbPolicyLocked(
|
338
|
-
std::move(service_config_result.lb_policy_config), std::move(result));
|
339
|
-
if (service_config_result.service_config_changed) {
|
340
|
-
// Tell channel to start using new service config for calls.
|
341
|
-
// This needs to happen after the LB policy has been updated, since
|
342
|
-
// the ConfigSelector may need the LB policy to know about new
|
343
|
-
// destinations before it can send RPCs to those destinations.
|
344
|
-
if (helper_ != nullptr) helper_->StartUsingServiceConfigForCalls();
|
345
|
-
// TODO(ncteisen): might be worth somehow including a snippet of the
|
346
|
-
// config in the trace, at the risk of bloating the trace logs.
|
347
|
-
trace_strings.push_back("Service config changed");
|
348
|
-
}
|
349
|
-
}
|
350
|
-
// Add channel trace event.
|
351
|
-
ConcatenateAndAddChannelTraceLocked(trace_strings);
|
352
|
-
GRPC_ERROR_UNREF(service_config_error);
|
353
|
-
}
|
354
|
-
|
355
|
-
} // namespace grpc_core
|
@@ -1,138 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Copyright 2018 gRPC authors.
|
4
|
-
*
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
* you may not use this file except in compliance with the License.
|
7
|
-
* You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*
|
17
|
-
*/
|
18
|
-
|
19
|
-
#ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVING_LB_POLICY_H
|
20
|
-
#define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVING_LB_POLICY_H
|
21
|
-
|
22
|
-
#include <grpc/support/port_platform.h>
|
23
|
-
|
24
|
-
#include "absl/container/inlined_vector.h"
|
25
|
-
|
26
|
-
#include "src/core/ext/filters/client_channel/config_selector.h"
|
27
|
-
#include "src/core/ext/filters/client_channel/lb_policy.h"
|
28
|
-
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
29
|
-
#include "src/core/ext/filters/client_channel/resolver.h"
|
30
|
-
#include "src/core/lib/channel/channel_args.h"
|
31
|
-
#include "src/core/lib/channel/channel_stack.h"
|
32
|
-
#include "src/core/lib/debug/trace.h"
|
33
|
-
#include "src/core/lib/gprpp/orphanable.h"
|
34
|
-
#include "src/core/lib/iomgr/call_combiner.h"
|
35
|
-
#include "src/core/lib/iomgr/closure.h"
|
36
|
-
#include "src/core/lib/iomgr/polling_entity.h"
|
37
|
-
#include "src/core/lib/iomgr/pollset_set.h"
|
38
|
-
#include "src/core/lib/transport/connectivity_state.h"
|
39
|
-
#include "src/core/lib/transport/metadata_batch.h"
|
40
|
-
|
41
|
-
namespace grpc_core {
|
42
|
-
|
43
|
-
// An LB policy that wraps a resolver and a child LB policy to make use
|
44
|
-
// of the addresses returned by the resolver.
|
45
|
-
//
|
46
|
-
// When used in the client_channel code, the resolver will attempt to
|
47
|
-
// fetch the service config, and the child LB policy name and config
|
48
|
-
// will be determined based on the service config.
|
49
|
-
//
|
50
|
-
// When used in an LB policy implementation that needs to do another
|
51
|
-
// round of resolution before creating a child policy, the resolver does
|
52
|
-
// not fetch the service config, and the caller must pre-determine the
|
53
|
-
// child LB policy and config to use.
|
54
|
-
class ResolvingLoadBalancingPolicy : public LoadBalancingPolicy {
|
55
|
-
public:
|
56
|
-
class ChannelConfigHelper {
|
57
|
-
public:
|
58
|
-
struct ChooseServiceConfigResult {
|
59
|
-
// Set to true if the service config has changed since the last result.
|
60
|
-
bool service_config_changed = false;
|
61
|
-
// Set to true if we don't have a valid service config to use.
|
62
|
-
// This tells the ResolvingLoadBalancingPolicy to put the channel
|
63
|
-
// into TRANSIENT_FAILURE.
|
64
|
-
bool no_valid_service_config = false;
|
65
|
-
// The LB policy config to use.
|
66
|
-
RefCountedPtr<LoadBalancingPolicy::Config> lb_policy_config;
|
67
|
-
};
|
68
|
-
|
69
|
-
virtual ~ChannelConfigHelper() = default;
|
70
|
-
|
71
|
-
// Chooses the service config for the channel.
|
72
|
-
virtual ChooseServiceConfigResult ChooseServiceConfig(
|
73
|
-
const Resolver::Result& result) = 0;
|
74
|
-
|
75
|
-
// Starts using the service config for calls.
|
76
|
-
virtual void StartUsingServiceConfigForCalls() = 0;
|
77
|
-
|
78
|
-
// Indicates a resolver transient failure.
|
79
|
-
virtual void ResolverTransientFailure(grpc_error* error) = 0;
|
80
|
-
};
|
81
|
-
|
82
|
-
ResolvingLoadBalancingPolicy(Args args, TraceFlag* tracer,
|
83
|
-
grpc_core::UniquePtr<char> target_uri,
|
84
|
-
ChannelConfigHelper* helper);
|
85
|
-
|
86
|
-
const char* name() const override { return "resolving_lb"; }
|
87
|
-
|
88
|
-
// No-op -- should never get updates from the channel.
|
89
|
-
// TODO(roth): Need to support updating child LB policy's config for xds
|
90
|
-
// use case.
|
91
|
-
void UpdateLocked(UpdateArgs /*args*/) override {}
|
92
|
-
|
93
|
-
void ExitIdleLocked() override;
|
94
|
-
|
95
|
-
void ResetBackoffLocked() override;
|
96
|
-
|
97
|
-
private:
|
98
|
-
using TraceStringVector = absl::InlinedVector<const char*, 3>;
|
99
|
-
|
100
|
-
class ResolverResultHandler;
|
101
|
-
class ResolvingControlHelper;
|
102
|
-
|
103
|
-
~ResolvingLoadBalancingPolicy() override;
|
104
|
-
|
105
|
-
void ShutdownLocked() override;
|
106
|
-
|
107
|
-
void OnResolverError(grpc_error* error);
|
108
|
-
void CreateOrUpdateLbPolicyLocked(
|
109
|
-
RefCountedPtr<LoadBalancingPolicy::Config> lb_policy_config,
|
110
|
-
Resolver::Result result);
|
111
|
-
OrphanablePtr<LoadBalancingPolicy> CreateLbPolicyLocked(
|
112
|
-
const grpc_channel_args& args);
|
113
|
-
void MaybeAddTraceMessagesForAddressChangesLocked(
|
114
|
-
bool resolution_contains_addresses, TraceStringVector* trace_strings);
|
115
|
-
void ConcatenateAndAddChannelTraceLocked(
|
116
|
-
const TraceStringVector& trace_strings) const;
|
117
|
-
void OnResolverResultChangedLocked(Resolver::Result result);
|
118
|
-
|
119
|
-
// Passed in from caller at construction time.
|
120
|
-
TraceFlag* tracer_;
|
121
|
-
grpc_core::UniquePtr<char> target_uri_;
|
122
|
-
ChannelConfigHelper* helper_;
|
123
|
-
|
124
|
-
// Resolver and associated state.
|
125
|
-
OrphanablePtr<Resolver> resolver_;
|
126
|
-
bool previous_resolution_contained_addresses_ = false;
|
127
|
-
|
128
|
-
// Determined by resolver results.
|
129
|
-
grpc_core::UniquePtr<char> child_policy_name_;
|
130
|
-
RefCountedPtr<LoadBalancingPolicy::Config> child_lb_config_;
|
131
|
-
|
132
|
-
// Child LB policy.
|
133
|
-
OrphanablePtr<LoadBalancingPolicy> lb_policy_;
|
134
|
-
};
|
135
|
-
|
136
|
-
} // namespace grpc_core
|
137
|
-
|
138
|
-
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVING_LB_POLICY_H */
|