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
@@ -49,15 +49,11 @@ class ClientChannelGlobalParsedConfig
|
|
49
49
|
RefCountedPtr<LoadBalancingPolicy::Config> parsed_lb_config,
|
50
50
|
std::string parsed_deprecated_lb_policy,
|
51
51
|
const absl::optional<RetryThrottling>& retry_throttling,
|
52
|
-
|
52
|
+
absl::optional<std::string> health_check_service_name)
|
53
53
|
: parsed_lb_config_(std::move(parsed_lb_config)),
|
54
54
|
parsed_deprecated_lb_policy_(std::move(parsed_deprecated_lb_policy)),
|
55
55
|
retry_throttling_(retry_throttling),
|
56
|
-
health_check_service_name_(health_check_service_name) {}
|
57
|
-
|
58
|
-
absl::optional<RetryThrottling> retry_throttling() const {
|
59
|
-
return retry_throttling_;
|
60
|
-
}
|
56
|
+
health_check_service_name_(std::move(health_check_service_name)) {}
|
61
57
|
|
62
58
|
RefCountedPtr<LoadBalancingPolicy::Config> parsed_lb_config() const {
|
63
59
|
return parsed_lb_config_;
|
@@ -67,7 +63,11 @@ class ClientChannelGlobalParsedConfig
|
|
67
63
|
return parsed_deprecated_lb_policy_;
|
68
64
|
}
|
69
65
|
|
70
|
-
|
66
|
+
absl::optional<RetryThrottling> retry_throttling() const {
|
67
|
+
return retry_throttling_;
|
68
|
+
}
|
69
|
+
|
70
|
+
const absl::optional<std::string>& health_check_service_name() const {
|
71
71
|
return health_check_service_name_;
|
72
72
|
}
|
73
73
|
|
@@ -75,7 +75,7 @@ class ClientChannelGlobalParsedConfig
|
|
75
75
|
RefCountedPtr<LoadBalancingPolicy::Config> parsed_lb_config_;
|
76
76
|
std::string parsed_deprecated_lb_policy_;
|
77
77
|
absl::optional<RetryThrottling> retry_throttling_;
|
78
|
-
|
78
|
+
absl::optional<std::string> health_check_service_name_;
|
79
79
|
};
|
80
80
|
|
81
81
|
class ClientChannelMethodParsedConfig
|
@@ -23,6 +23,8 @@
|
|
23
23
|
#include <limits.h>
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
+
#include <string>
|
27
|
+
|
26
28
|
#include <grpc/support/alloc.h>
|
27
29
|
#include <grpc/support/atm.h>
|
28
30
|
#include <grpc/support/string_util.h>
|
@@ -164,20 +166,20 @@ void ServerRetryThrottleMap::Shutdown() {
|
|
164
166
|
}
|
165
167
|
|
166
168
|
RefCountedPtr<ServerRetryThrottleData> ServerRetryThrottleMap::GetDataForServer(
|
167
|
-
const
|
169
|
+
const std::string& server_name, intptr_t max_milli_tokens,
|
168
170
|
intptr_t milli_token_ratio) {
|
169
171
|
RefCountedPtr<ServerRetryThrottleData> result;
|
170
172
|
gpr_mu_lock(&g_mu);
|
171
173
|
ServerRetryThrottleData* throttle_data =
|
172
174
|
static_cast<ServerRetryThrottleData*>(
|
173
|
-
grpc_avl_get(g_avl, const_cast<char*>(server_name), nullptr));
|
175
|
+
grpc_avl_get(g_avl, const_cast<char*>(server_name.c_str()), nullptr));
|
174
176
|
if (throttle_data == nullptr ||
|
175
177
|
throttle_data->max_milli_tokens() != max_milli_tokens ||
|
176
178
|
throttle_data->milli_token_ratio() != milli_token_ratio) {
|
177
179
|
// Entry not found, or found with old parameters. Create a new one.
|
178
180
|
result = MakeRefCounted<ServerRetryThrottleData>(
|
179
181
|
max_milli_tokens, milli_token_ratio, throttle_data);
|
180
|
-
g_avl = grpc_avl_add(g_avl, gpr_strdup(server_name),
|
182
|
+
g_avl = grpc_avl_add(g_avl, gpr_strdup(server_name.c_str()),
|
181
183
|
result->Ref().release(), nullptr);
|
182
184
|
} else {
|
183
185
|
// Entry found. Return a new ref to it.
|
@@ -21,6 +21,8 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <string>
|
25
|
+
|
24
26
|
#include "src/core/lib/gprpp/memory.h"
|
25
27
|
#include "src/core/lib/gprpp/ref_counted.h"
|
26
28
|
|
@@ -67,7 +69,7 @@ class ServerRetryThrottleMap {
|
|
67
69
|
/// Returns the failure data for \a server_name, creating a new entry if
|
68
70
|
/// needed.
|
69
71
|
static RefCountedPtr<ServerRetryThrottleData> GetDataForServer(
|
70
|
-
const
|
72
|
+
const std::string& server_name, intptr_t max_milli_tokens,
|
71
73
|
intptr_t milli_token_ratio);
|
72
74
|
};
|
73
75
|
|
@@ -19,6 +19,10 @@
|
|
19
19
|
|
20
20
|
#include <grpc/support/port_platform.h>
|
21
21
|
|
22
|
+
#include <map>
|
23
|
+
|
24
|
+
#include "absl/strings/string_view.h"
|
25
|
+
|
22
26
|
#include "src/core/ext/filters/client_channel/service_config.h"
|
23
27
|
#include "src/core/ext/filters/client_channel/service_config_parser.h"
|
24
28
|
#include "src/core/lib/channel/context.h"
|
@@ -35,13 +39,22 @@ class ServiceConfigCallData {
|
|
35
39
|
ServiceConfigCallData(
|
36
40
|
RefCountedPtr<ServiceConfig> service_config,
|
37
41
|
const ServiceConfigParser::ParsedConfigVector* method_configs,
|
42
|
+
std::map<const char*, absl::string_view> call_attributes,
|
38
43
|
grpc_call_context_element* call_context)
|
39
44
|
: service_config_(std::move(service_config)),
|
40
|
-
method_configs_(method_configs)
|
45
|
+
method_configs_(method_configs),
|
46
|
+
call_attributes_(std::move(call_attributes)) {
|
41
47
|
call_context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value = this;
|
42
48
|
call_context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].destroy = Destroy;
|
43
49
|
}
|
44
50
|
|
51
|
+
ServiceConfigCallData(
|
52
|
+
RefCountedPtr<ServiceConfig> service_config,
|
53
|
+
const ServiceConfigParser::ParsedConfigVector* method_configs,
|
54
|
+
grpc_call_context_element* call_context)
|
55
|
+
: ServiceConfigCallData(std::move(service_config), method_configs, {},
|
56
|
+
call_context) {}
|
57
|
+
|
45
58
|
ServiceConfig* service_config() { return service_config_.get(); }
|
46
59
|
|
47
60
|
ServiceConfigParser::ParsedConfig* GetMethodParsedConfig(size_t index) const {
|
@@ -53,6 +66,10 @@ class ServiceConfigCallData {
|
|
53
66
|
return service_config_->GetGlobalParsedConfig(index);
|
54
67
|
}
|
55
68
|
|
69
|
+
const std::map<const char*, absl::string_view>& call_attributes() const {
|
70
|
+
return call_attributes_;
|
71
|
+
}
|
72
|
+
|
56
73
|
private:
|
57
74
|
static void Destroy(void* ptr) {
|
58
75
|
ServiceConfigCallData* self = static_cast<ServiceConfigCallData*>(ptr);
|
@@ -61,6 +78,7 @@ class ServiceConfigCallData {
|
|
61
78
|
|
62
79
|
RefCountedPtr<ServiceConfig> service_config_;
|
63
80
|
const ServiceConfigParser::ParsedConfigVector* method_configs_ = nullptr;
|
81
|
+
std::map<const char*, absl::string_view> call_attributes_;
|
64
82
|
};
|
65
83
|
|
66
84
|
} // namespace grpc_core
|
@@ -121,18 +121,9 @@ void ConnectedSubchannel::Ping(grpc_closure* on_initiate,
|
|
121
121
|
elem->filter->start_transport_op(elem, op);
|
122
122
|
}
|
123
123
|
|
124
|
-
size_t ConnectedSubchannel::GetInitialCallSizeEstimate(
|
125
|
-
|
126
|
-
|
127
|
-
GPR_ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(SubchannelCall));
|
128
|
-
if (parent_data_size > 0) {
|
129
|
-
allocation_size +=
|
130
|
-
GPR_ROUND_UP_TO_ALIGNMENT_SIZE(channel_stack_->call_stack_size) +
|
131
|
-
parent_data_size;
|
132
|
-
} else {
|
133
|
-
allocation_size += channel_stack_->call_stack_size;
|
134
|
-
}
|
135
|
-
return allocation_size;
|
124
|
+
size_t ConnectedSubchannel::GetInitialCallSizeEstimate() const {
|
125
|
+
return GPR_ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(SubchannelCall)) +
|
126
|
+
channel_stack_->call_stack_size;
|
136
127
|
}
|
137
128
|
|
138
129
|
//
|
@@ -142,8 +133,7 @@ size_t ConnectedSubchannel::GetInitialCallSizeEstimate(
|
|
142
133
|
RefCountedPtr<SubchannelCall> SubchannelCall::Create(Args args,
|
143
134
|
grpc_error** error) {
|
144
135
|
const size_t allocation_size =
|
145
|
-
args.connected_subchannel->GetInitialCallSizeEstimate(
|
146
|
-
args.parent_data_size);
|
136
|
+
args.connected_subchannel->GetInitialCallSizeEstimate();
|
147
137
|
Arena* arena = args.arena;
|
148
138
|
return RefCountedPtr<SubchannelCall>(new (
|
149
139
|
arena->Alloc(allocation_size)) SubchannelCall(std::move(args), error));
|
@@ -187,12 +177,6 @@ void SubchannelCall::StartTransportStreamOpBatch(
|
|
187
177
|
top_elem->filter->start_transport_stream_op_batch(top_elem, batch);
|
188
178
|
}
|
189
179
|
|
190
|
-
void* SubchannelCall::GetParentData() {
|
191
|
-
grpc_channel_stack* chanstk = connected_subchannel_->channel_stack();
|
192
|
-
return (char*)this + GPR_ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(SubchannelCall)) +
|
193
|
-
GPR_ROUND_UP_TO_ALIGNMENT_SIZE(chanstk->call_stack_size);
|
194
|
-
}
|
195
|
-
|
196
180
|
grpc_call_stack* SubchannelCall::GetCallStack() {
|
197
181
|
return SUBCHANNEL_CALL_TO_CALL_STACK(this);
|
198
182
|
}
|
@@ -440,8 +424,7 @@ void Subchannel::ConnectivityStateWatcherList::NotifyLocked(
|
|
440
424
|
class Subchannel::HealthWatcherMap::HealthWatcher
|
441
425
|
: public AsyncConnectivityStateWatcherInterface {
|
442
426
|
public:
|
443
|
-
HealthWatcher(Subchannel* c,
|
444
|
-
grpc_core::UniquePtr<char> health_check_service_name,
|
427
|
+
HealthWatcher(Subchannel* c, std::string health_check_service_name,
|
445
428
|
grpc_connectivity_state subchannel_state)
|
446
429
|
: subchannel_(c),
|
447
430
|
health_check_service_name_(std::move(health_check_service_name)),
|
@@ -456,8 +439,8 @@ class Subchannel::HealthWatcherMap::HealthWatcher
|
|
456
439
|
GRPC_SUBCHANNEL_WEAK_UNREF(subchannel_, "health_watcher");
|
457
440
|
}
|
458
441
|
|
459
|
-
const
|
460
|
-
return health_check_service_name_
|
442
|
+
const std::string& health_check_service_name() const {
|
443
|
+
return health_check_service_name_;
|
461
444
|
}
|
462
445
|
|
463
446
|
grpc_connectivity_state state() const { return state_; }
|
@@ -520,12 +503,12 @@ class Subchannel::HealthWatcherMap::HealthWatcher
|
|
520
503
|
void StartHealthCheckingLocked() {
|
521
504
|
GPR_ASSERT(health_check_client_ == nullptr);
|
522
505
|
health_check_client_ = MakeOrphanable<HealthCheckClient>(
|
523
|
-
health_check_service_name_
|
506
|
+
health_check_service_name_, subchannel_->connected_subchannel_,
|
524
507
|
subchannel_->pollset_set_, subchannel_->channelz_node_, Ref());
|
525
508
|
}
|
526
509
|
|
527
510
|
Subchannel* subchannel_;
|
528
|
-
|
511
|
+
std::string health_check_service_name_;
|
529
512
|
OrphanablePtr<HealthCheckClient> health_check_client_;
|
530
513
|
grpc_connectivity_state state_;
|
531
514
|
absl::Status status_;
|
@@ -538,18 +521,17 @@ class Subchannel::HealthWatcherMap::HealthWatcher
|
|
538
521
|
|
539
522
|
void Subchannel::HealthWatcherMap::AddWatcherLocked(
|
540
523
|
Subchannel* subchannel, grpc_connectivity_state initial_state,
|
541
|
-
|
524
|
+
const std::string& health_check_service_name,
|
542
525
|
RefCountedPtr<ConnectivityStateWatcherInterface> watcher) {
|
543
526
|
// If the health check service name is not already present in the map,
|
544
527
|
// add it.
|
545
|
-
auto it = map_.find(health_check_service_name
|
528
|
+
auto it = map_.find(health_check_service_name);
|
546
529
|
HealthWatcher* health_watcher;
|
547
530
|
if (it == map_.end()) {
|
548
|
-
const char* key = health_check_service_name.get();
|
549
531
|
auto w = MakeOrphanable<HealthWatcher>(
|
550
|
-
subchannel,
|
532
|
+
subchannel, health_check_service_name, subchannel->state_);
|
551
533
|
health_watcher = w.get();
|
552
|
-
map_
|
534
|
+
map_.emplace(health_check_service_name, std::move(w));
|
553
535
|
} else {
|
554
536
|
health_watcher = it->second.get();
|
555
537
|
}
|
@@ -558,7 +540,7 @@ void Subchannel::HealthWatcherMap::AddWatcherLocked(
|
|
558
540
|
}
|
559
541
|
|
560
542
|
void Subchannel::HealthWatcherMap::RemoveWatcherLocked(
|
561
|
-
const
|
543
|
+
const std::string& health_check_service_name,
|
562
544
|
ConnectivityStateWatcherInterface* watcher) {
|
563
545
|
auto it = map_.find(health_check_service_name);
|
564
546
|
GPR_ASSERT(it != map_.end());
|
@@ -577,7 +559,7 @@ void Subchannel::HealthWatcherMap::NotifyLocked(grpc_connectivity_state state,
|
|
577
559
|
|
578
560
|
grpc_connectivity_state
|
579
561
|
Subchannel::HealthWatcherMap::CheckConnectivityStateLocked(
|
580
|
-
Subchannel* subchannel, const
|
562
|
+
Subchannel* subchannel, const std::string& health_check_service_name) {
|
581
563
|
auto it = map_.find(health_check_service_name);
|
582
564
|
if (it == map_.end()) {
|
583
565
|
// If the health check service name is not found in the map, we're
|
@@ -702,7 +684,7 @@ Subchannel::Subchannel(SubchannelKey* key,
|
|
702
684
|
const grpc_integer_options options = {
|
703
685
|
GRPC_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE_DEFAULT, 0, INT_MAX};
|
704
686
|
size_t channel_tracer_max_memory =
|
705
|
-
(
|
687
|
+
static_cast<size_t>(grpc_channel_arg_get_integer(arg, options));
|
706
688
|
if (channelz_enabled) {
|
707
689
|
channelz_node_ = MakeRefCounted<channelz::SubchannelNode>(
|
708
690
|
GetTargetAddress(), channel_tracer_max_memory);
|
@@ -840,15 +822,15 @@ channelz::SubchannelNode* Subchannel::channelz_node() {
|
|
840
822
|
}
|
841
823
|
|
842
824
|
grpc_connectivity_state Subchannel::CheckConnectivityState(
|
843
|
-
const
|
825
|
+
const absl::optional<std::string>& health_check_service_name,
|
844
826
|
RefCountedPtr<ConnectedSubchannel>* connected_subchannel) {
|
845
827
|
MutexLock lock(&mu_);
|
846
828
|
grpc_connectivity_state state;
|
847
|
-
if (health_check_service_name
|
829
|
+
if (!health_check_service_name.has_value()) {
|
848
830
|
state = state_;
|
849
831
|
} else {
|
850
832
|
state = health_watcher_map_.CheckConnectivityStateLocked(
|
851
|
-
this, health_check_service_name);
|
833
|
+
this, *health_check_service_name);
|
852
834
|
}
|
853
835
|
if (connected_subchannel != nullptr && state == GRPC_CHANNEL_READY) {
|
854
836
|
*connected_subchannel = connected_subchannel_;
|
@@ -858,37 +840,37 @@ grpc_connectivity_state Subchannel::CheckConnectivityState(
|
|
858
840
|
|
859
841
|
void Subchannel::WatchConnectivityState(
|
860
842
|
grpc_connectivity_state initial_state,
|
861
|
-
|
843
|
+
const absl::optional<std::string>& health_check_service_name,
|
862
844
|
RefCountedPtr<ConnectivityStateWatcherInterface> watcher) {
|
863
845
|
MutexLock lock(&mu_);
|
864
846
|
grpc_pollset_set* interested_parties = watcher->interested_parties();
|
865
847
|
if (interested_parties != nullptr) {
|
866
848
|
grpc_pollset_set_add_pollset_set(pollset_set_, interested_parties);
|
867
849
|
}
|
868
|
-
if (health_check_service_name
|
850
|
+
if (!health_check_service_name.has_value()) {
|
869
851
|
if (state_ != initial_state) {
|
870
852
|
new AsyncWatcherNotifierLocked(watcher, this, state_, status_);
|
871
853
|
}
|
872
854
|
watcher_list_.AddWatcherLocked(std::move(watcher));
|
873
855
|
} else {
|
874
|
-
health_watcher_map_.AddWatcherLocked(
|
875
|
-
|
876
|
-
std::move(watcher));
|
856
|
+
health_watcher_map_.AddWatcherLocked(
|
857
|
+
this, initial_state, *health_check_service_name, std::move(watcher));
|
877
858
|
}
|
878
859
|
}
|
879
860
|
|
880
861
|
void Subchannel::CancelConnectivityStateWatch(
|
881
|
-
const
|
862
|
+
const absl::optional<std::string>& health_check_service_name,
|
882
863
|
ConnectivityStateWatcherInterface* watcher) {
|
883
864
|
MutexLock lock(&mu_);
|
884
865
|
grpc_pollset_set* interested_parties = watcher->interested_parties();
|
885
866
|
if (interested_parties != nullptr) {
|
886
867
|
grpc_pollset_set_del_pollset_set(pollset_set_, interested_parties);
|
887
868
|
}
|
888
|
-
if (health_check_service_name
|
869
|
+
if (!health_check_service_name.has_value()) {
|
889
870
|
watcher_list_.RemoveWatcherLocked(watcher);
|
890
871
|
} else {
|
891
|
-
health_watcher_map_.RemoveWatcherLocked(health_check_service_name,
|
872
|
+
health_watcher_map_.RemoveWatcherLocked(*health_check_service_name,
|
873
|
+
watcher);
|
892
874
|
}
|
893
875
|
}
|
894
876
|
|
@@ -912,7 +894,7 @@ void Subchannel::ResetBackoff() {
|
|
912
894
|
grpc_arg Subchannel::CreateSubchannelAddressArg(
|
913
895
|
const grpc_resolved_address* addr) {
|
914
896
|
return grpc_channel_arg_string_create(
|
915
|
-
(
|
897
|
+
const_cast<char*>(GRPC_ARG_SUBCHANNEL_ADDRESS),
|
916
898
|
gpr_strdup(addr->len > 0 ? grpc_sockaddr_to_uri(addr).c_str() : ""));
|
917
899
|
}
|
918
900
|
|
@@ -928,10 +910,12 @@ const char* Subchannel::GetUriFromSubchannelAddressArg(
|
|
928
910
|
namespace {
|
929
911
|
|
930
912
|
void UriToSockaddr(const char* uri_str, grpc_resolved_address* addr) {
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
913
|
+
absl::StatusOr<URI> uri = URI::Parse(uri_str);
|
914
|
+
if (!uri.ok()) {
|
915
|
+
gpr_log(GPR_ERROR, "%s", uri.status().ToString().c_str());
|
916
|
+
GPR_ASSERT(uri.ok());
|
917
|
+
}
|
918
|
+
if (!grpc_parse_uri(*uri, addr)) memset(addr, 0, sizeof(*addr));
|
935
919
|
}
|
936
920
|
|
937
921
|
} // namespace
|
@@ -30,7 +30,6 @@
|
|
30
30
|
#include "src/core/lib/channel/channel_stack.h"
|
31
31
|
#include "src/core/lib/gpr/time_precise.h"
|
32
32
|
#include "src/core/lib/gprpp/arena.h"
|
33
|
-
#include "src/core/lib/gprpp/map.h"
|
34
33
|
#include "src/core/lib/gprpp/ref_counted.h"
|
35
34
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
36
35
|
#include "src/core/lib/gprpp/sync.h"
|
@@ -89,7 +88,7 @@ class ConnectedSubchannel : public RefCounted<ConnectedSubchannel> {
|
|
89
88
|
return channelz_subchannel_.get();
|
90
89
|
}
|
91
90
|
|
92
|
-
size_t GetInitialCallSizeEstimate(
|
91
|
+
size_t GetInitialCallSizeEstimate() const;
|
93
92
|
|
94
93
|
private:
|
95
94
|
grpc_channel_stack* channel_stack_;
|
@@ -111,18 +110,12 @@ class SubchannelCall {
|
|
111
110
|
Arena* arena;
|
112
111
|
grpc_call_context_element* context;
|
113
112
|
CallCombiner* call_combiner;
|
114
|
-
size_t parent_data_size;
|
115
113
|
};
|
116
114
|
static RefCountedPtr<SubchannelCall> Create(Args args, grpc_error** error);
|
117
115
|
|
118
116
|
// Continues processing a transport stream op batch.
|
119
117
|
void StartTransportStreamOpBatch(grpc_transport_stream_op_batch* batch);
|
120
118
|
|
121
|
-
// Returns a pointer to the parent data associated with the subchannel call.
|
122
|
-
// The data will be of the size specified in \a parent_data_size field of
|
123
|
-
// the args passed to \a ConnectedSubchannel::CreateCall().
|
124
|
-
void* GetParentData();
|
125
|
-
|
126
119
|
// Returns the call stack of the subchannel call.
|
127
120
|
grpc_call_stack* GetCallStack();
|
128
121
|
|
@@ -139,8 +132,6 @@ class SubchannelCall {
|
|
139
132
|
void Unref();
|
140
133
|
void Unref(const DebugLocation& location, const char* reason);
|
141
134
|
|
142
|
-
static void Destroy(void* arg, grpc_error* error);
|
143
|
-
|
144
135
|
private:
|
145
136
|
// Allow RefCountedPtr<> to access IncrementRefCount().
|
146
137
|
template <typename T>
|
@@ -159,6 +150,8 @@ class SubchannelCall {
|
|
159
150
|
void IncrementRefCount();
|
160
151
|
void IncrementRefCount(const DebugLocation& location, const char* reason);
|
161
152
|
|
153
|
+
static void Destroy(void* arg, grpc_error* error);
|
154
|
+
|
162
155
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel_;
|
163
156
|
grpc_closure* after_call_stack_destroy_ = nullptr;
|
164
157
|
// State needed to support channelz interception of recv trailing metadata.
|
@@ -257,7 +250,7 @@ class Subchannel {
|
|
257
250
|
// service name.
|
258
251
|
// If the return value is GRPC_CHANNEL_READY, also sets *connected_subchannel.
|
259
252
|
grpc_connectivity_state CheckConnectivityState(
|
260
|
-
const
|
253
|
+
const absl::optional<std::string>& health_check_service_name,
|
261
254
|
RefCountedPtr<ConnectedSubchannel>* connected_subchannel);
|
262
255
|
|
263
256
|
// Starts watching the subchannel's connectivity state.
|
@@ -270,13 +263,14 @@ class Subchannel {
|
|
270
263
|
// destroyed or when CancelConnectivityStateWatch() is called.
|
271
264
|
void WatchConnectivityState(
|
272
265
|
grpc_connectivity_state initial_state,
|
273
|
-
|
266
|
+
const absl::optional<std::string>& health_check_service_name,
|
274
267
|
RefCountedPtr<ConnectivityStateWatcherInterface> watcher);
|
275
268
|
|
276
269
|
// Cancels a connectivity state watch.
|
277
270
|
// If the watcher has already been destroyed, this is a no-op.
|
278
|
-
void CancelConnectivityStateWatch(
|
279
|
-
|
271
|
+
void CancelConnectivityStateWatch(
|
272
|
+
const absl::optional<std::string>& health_check_service_name,
|
273
|
+
ConnectivityStateWatcherInterface* watcher);
|
280
274
|
|
281
275
|
// Attempt to connect to the backend. Has no effect if already connected.
|
282
276
|
void AttemptToConnect();
|
@@ -340,9 +334,9 @@ class Subchannel {
|
|
340
334
|
public:
|
341
335
|
void AddWatcherLocked(
|
342
336
|
Subchannel* subchannel, grpc_connectivity_state initial_state,
|
343
|
-
|
337
|
+
const std::string& health_check_service_name,
|
344
338
|
RefCountedPtr<ConnectivityStateWatcherInterface> watcher);
|
345
|
-
void RemoveWatcherLocked(const
|
339
|
+
void RemoveWatcherLocked(const std::string& health_check_service_name,
|
346
340
|
ConnectivityStateWatcherInterface* watcher);
|
347
341
|
|
348
342
|
// Notifies the watcher when the subchannel's state changes.
|
@@ -350,14 +344,14 @@ class Subchannel {
|
|
350
344
|
const absl::Status& status);
|
351
345
|
|
352
346
|
grpc_connectivity_state CheckConnectivityStateLocked(
|
353
|
-
Subchannel* subchannel, const
|
347
|
+
Subchannel* subchannel, const std::string& health_check_service_name);
|
354
348
|
|
355
349
|
void ShutdownLocked();
|
356
350
|
|
357
351
|
private:
|
358
352
|
class HealthWatcher;
|
359
353
|
|
360
|
-
std::map<
|
354
|
+
std::map<std::string, OrphanablePtr<HealthWatcher>> map_;
|
361
355
|
};
|
362
356
|
|
363
357
|
class ConnectedSubchannelStateWatcher;
|