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
@@ -176,7 +176,7 @@ namespace grpc_core {
|
|
176
176
|
struct StaticSliceRefcount {
|
177
177
|
static grpc_slice_refcount kStaticSubRefcount;
|
178
178
|
|
179
|
-
StaticSliceRefcount(uint32_t index)
|
179
|
+
explicit StaticSliceRefcount(uint32_t index)
|
180
180
|
: base(&kStaticSubRefcount, grpc_slice_refcount::Type::STATIC),
|
181
181
|
index(index) {}
|
182
182
|
|
@@ -310,7 +310,7 @@ inline bool grpc_slice_static_interned_equal(const grpc_slice& a,
|
|
310
310
|
|
311
311
|
void grpc_slice_intern_init(void);
|
312
312
|
void grpc_slice_intern_shutdown(void);
|
313
|
-
void grpc_test_only_set_slice_hash_seed(uint32_t
|
313
|
+
void grpc_test_only_set_slice_hash_seed(uint32_t seed);
|
314
314
|
// if slice matches a static slice, returns the static slice
|
315
315
|
// otherwise returns the passed in slice (without reffing it)
|
316
316
|
// used for surface boundaries where we might receive an un-interned static
|
@@ -124,7 +124,7 @@ struct parent_call {
|
|
124
124
|
};
|
125
125
|
|
126
126
|
struct child_call {
|
127
|
-
child_call(grpc_call* parent) : parent(parent) {}
|
127
|
+
explicit child_call(grpc_call* parent) : parent(parent) {}
|
128
128
|
grpc_call* parent;
|
129
129
|
/** siblings: children of the same parent form a list, and this list is
|
130
130
|
protected under
|
@@ -284,7 +284,8 @@ grpc_core::TraceFlag grpc_compression_trace(false, "compression");
|
|
284
284
|
#define CALL_FROM_TOP_ELEM(top_elem) \
|
285
285
|
CALL_FROM_CALL_STACK(grpc_call_stack_from_top_element(top_elem))
|
286
286
|
|
287
|
-
static void execute_batch(grpc_call* call,
|
287
|
+
static void execute_batch(grpc_call* call,
|
288
|
+
grpc_transport_stream_op_batch* batch,
|
288
289
|
grpc_closure* start_batch_closure);
|
289
290
|
|
290
291
|
static void cancel_with_status(grpc_call* c, grpc_status_code status,
|
@@ -309,20 +310,24 @@ void* grpc_call_arena_alloc(grpc_call* call, size_t size) {
|
|
309
310
|
}
|
310
311
|
|
311
312
|
static parent_call* get_or_create_parent_call(grpc_call* call) {
|
312
|
-
parent_call* p =
|
313
|
+
parent_call* p =
|
314
|
+
reinterpret_cast<parent_call*>(gpr_atm_acq_load(&call->parent_call_atm));
|
313
315
|
if (p == nullptr) {
|
314
316
|
p = call->arena->New<parent_call>();
|
315
|
-
if (!gpr_atm_rel_cas(&call->parent_call_atm,
|
316
|
-
(
|
317
|
+
if (!gpr_atm_rel_cas(&call->parent_call_atm,
|
318
|
+
reinterpret_cast<gpr_atm>(nullptr),
|
319
|
+
reinterpret_cast<gpr_atm>(p))) {
|
317
320
|
p->~parent_call();
|
318
|
-
p =
|
321
|
+
p = reinterpret_cast<parent_call*>(
|
322
|
+
gpr_atm_acq_load(&call->parent_call_atm));
|
319
323
|
}
|
320
324
|
}
|
321
325
|
return p;
|
322
326
|
}
|
323
327
|
|
324
328
|
static parent_call* get_parent_call(grpc_call* call) {
|
325
|
-
return
|
329
|
+
return reinterpret_cast<parent_call*>(
|
330
|
+
gpr_atm_acq_load(&call->parent_call_atm));
|
326
331
|
}
|
327
332
|
|
328
333
|
size_t grpc_call_get_initial_size_estimate() {
|
@@ -648,15 +653,16 @@ static void execute_batch(grpc_call* call,
|
|
648
653
|
}
|
649
654
|
|
650
655
|
char* grpc_call_get_peer(grpc_call* call) {
|
651
|
-
char* peer_string =
|
656
|
+
char* peer_string =
|
657
|
+
reinterpret_cast<char*>(gpr_atm_acq_load(&call->peer_string));
|
652
658
|
if (peer_string != nullptr) return gpr_strdup(peer_string);
|
653
659
|
peer_string = grpc_channel_get_target(call->channel);
|
654
660
|
if (peer_string != nullptr) return peer_string;
|
655
661
|
return gpr_strdup("unknown");
|
656
662
|
}
|
657
663
|
|
658
|
-
grpc_call* grpc_call_from_top_element(grpc_call_element*
|
659
|
-
return CALL_FROM_TOP_ELEM(
|
664
|
+
grpc_call* grpc_call_from_top_element(grpc_call_element* surface_element) {
|
665
|
+
return CALL_FROM_TOP_ELEM(surface_element);
|
660
666
|
}
|
661
667
|
|
662
668
|
/*******************************************************************************
|
@@ -827,8 +833,8 @@ static void set_encodings_accepted_by_peer(grpc_call* /*call*/,
|
|
827
833
|
accepted_user_data =
|
828
834
|
grpc_mdelem_get_user_data(mdel, destroy_encodings_accepted_by_peer);
|
829
835
|
if (accepted_user_data != nullptr) {
|
830
|
-
*encodings_accepted_by_peer =
|
831
|
-
|
836
|
+
*encodings_accepted_by_peer = static_cast<uint32_t>(
|
837
|
+
reinterpret_cast<uintptr_t>(accepted_user_data) - 1);
|
832
838
|
return;
|
833
839
|
}
|
834
840
|
|
@@ -868,7 +874,8 @@ static void set_encodings_accepted_by_peer(grpc_call* /*call*/,
|
|
868
874
|
|
869
875
|
grpc_mdelem_set_user_data(
|
870
876
|
mdel, destroy_encodings_accepted_by_peer,
|
871
|
-
|
877
|
+
reinterpret_cast<void*>(
|
878
|
+
static_cast<uintptr_t>(*encodings_accepted_by_peer) + 1));
|
872
879
|
}
|
873
880
|
|
874
881
|
uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call* call) {
|
@@ -882,8 +889,8 @@ grpc_call_test_only_get_incoming_stream_encodings(grpc_call* call) {
|
|
882
889
|
return call->incoming_stream_compression_algorithm;
|
883
890
|
}
|
884
891
|
|
885
|
-
static grpc_linked_mdelem* linked_from_md(
|
886
|
-
return (
|
892
|
+
static grpc_linked_mdelem* linked_from_md(grpc_metadata* md) {
|
893
|
+
return reinterpret_cast<grpc_linked_mdelem*>(&md->internal_data);
|
887
894
|
}
|
888
895
|
|
889
896
|
static grpc_metadata* get_md_elem(grpc_metadata* metadata,
|
@@ -906,8 +913,7 @@ static int prepare_application_metadata(grpc_call* call, int count,
|
|
906
913
|
grpc_metadata_batch* batch =
|
907
914
|
&call->metadata_batch[0 /* is_receiving */][is_trailing];
|
908
915
|
for (i = 0; i < total_count; i++) {
|
909
|
-
|
910
|
-
get_md_elem(metadata, additional_metadata, i, count);
|
916
|
+
grpc_metadata* md = get_md_elem(metadata, additional_metadata, i, count);
|
911
917
|
grpc_linked_mdelem* l = linked_from_md(md);
|
912
918
|
GPR_ASSERT(sizeof(grpc_linked_mdelem) == sizeof(md->internal_data));
|
913
919
|
if (!GRPC_LOG_IF_ERROR("validate_metadata",
|
@@ -926,8 +932,7 @@ static int prepare_application_metadata(grpc_call* call, int count,
|
|
926
932
|
}
|
927
933
|
if (i != total_count) {
|
928
934
|
for (int j = 0; j < i; j++) {
|
929
|
-
|
930
|
-
get_md_elem(metadata, additional_metadata, j, count);
|
935
|
+
grpc_metadata* md = get_md_elem(metadata, additional_metadata, j, count);
|
931
936
|
grpc_linked_mdelem* l = linked_from_md(md);
|
932
937
|
GRPC_MDELEM_UNREF(l->md);
|
933
938
|
}
|
@@ -1229,9 +1234,10 @@ static void post_batch_completion(batch_control* bctl) {
|
|
1229
1234
|
if (bctl->completion_data.notify_tag.is_closure) {
|
1230
1235
|
/* unrefs error */
|
1231
1236
|
bctl->call = nullptr;
|
1232
|
-
grpc_core::Closure::Run(
|
1233
|
-
|
1234
|
-
|
1237
|
+
grpc_core::Closure::Run(
|
1238
|
+
DEBUG_LOCATION,
|
1239
|
+
static_cast<grpc_closure*>(bctl->completion_data.notify_tag.tag),
|
1240
|
+
error);
|
1235
1241
|
GRPC_CALL_INTERNAL_UNREF(call, "completion");
|
1236
1242
|
} else {
|
1237
1243
|
/* unrefs error */
|
@@ -1355,7 +1361,8 @@ static void receiving_stream_ready(void* bctlp, grpc_error* error) {
|
|
1355
1361
|
* object with rel_cas, and will not use it after the cas. Its corresponding
|
1356
1362
|
* acq_load is in receiving_initial_metadata_ready() */
|
1357
1363
|
if (error != GRPC_ERROR_NONE || call->receiving_stream == nullptr ||
|
1358
|
-
!gpr_atm_rel_cas(&call->recv_state, RECV_NONE,
|
1364
|
+
!gpr_atm_rel_cas(&call->recv_state, RECV_NONE,
|
1365
|
+
reinterpret_cast<gpr_atm>(bctlp))) {
|
1359
1366
|
process_data_after_md(bctl);
|
1360
1367
|
}
|
1361
1368
|
}
|
@@ -1569,7 +1576,8 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
|
|
1569
1576
|
static_cast<grpc_cq_completion*>(
|
1570
1577
|
gpr_malloc(sizeof(grpc_cq_completion))));
|
1571
1578
|
} else {
|
1572
|
-
grpc_core::Closure::Run(DEBUG_LOCATION,
|
1579
|
+
grpc_core::Closure::Run(DEBUG_LOCATION,
|
1580
|
+
static_cast<grpc_closure*>(notify_tag),
|
1573
1581
|
GRPC_ERROR_NONE);
|
1574
1582
|
}
|
1575
1583
|
error = GRPC_CALL_OK;
|
@@ -27,15 +27,15 @@
|
|
27
27
|
#include "src/core/lib/slice/slice_internal.h"
|
28
28
|
#include "src/core/lib/surface/api_trace.h"
|
29
29
|
|
30
|
-
void grpc_call_details_init(grpc_call_details*
|
31
|
-
GRPC_API_TRACE("grpc_call_details_init(
|
32
|
-
|
33
|
-
|
30
|
+
void grpc_call_details_init(grpc_call_details* details) {
|
31
|
+
GRPC_API_TRACE("grpc_call_details_init(details=%p)", 1, (details));
|
32
|
+
details->method = grpc_empty_slice();
|
33
|
+
details->host = grpc_empty_slice();
|
34
34
|
}
|
35
35
|
|
36
|
-
void grpc_call_details_destroy(grpc_call_details*
|
37
|
-
GRPC_API_TRACE("grpc_call_details_destroy(
|
36
|
+
void grpc_call_details_destroy(grpc_call_details* details) {
|
37
|
+
GRPC_API_TRACE("grpc_call_details_destroy(details=%p)", 1, (details));
|
38
38
|
grpc_core::ExecCtx exec_ctx;
|
39
|
-
grpc_slice_unref_internal(
|
40
|
-
grpc_slice_unref_internal(
|
39
|
+
grpc_slice_unref_internal(details->method);
|
40
|
+
grpc_slice_unref_internal(details->host);
|
41
41
|
}
|
@@ -58,7 +58,7 @@ static void destroy_channel(void* arg, grpc_error* error);
|
|
58
58
|
|
59
59
|
grpc_channel* grpc_channel_create_with_builder(
|
60
60
|
grpc_channel_stack_builder* builder,
|
61
|
-
grpc_channel_stack_type channel_stack_type) {
|
61
|
+
grpc_channel_stack_type channel_stack_type, grpc_error** error) {
|
62
62
|
char* target = gpr_strdup(grpc_channel_stack_builder_get_target(builder));
|
63
63
|
grpc_channel_args* args = grpc_channel_args_copy(
|
64
64
|
grpc_channel_stack_builder_get_channel_arguments(builder));
|
@@ -70,16 +70,21 @@ grpc_channel* grpc_channel_create_with_builder(
|
|
70
70
|
} else {
|
71
71
|
GRPC_STATS_INC_CLIENT_CHANNELS_CREATED();
|
72
72
|
}
|
73
|
-
grpc_error*
|
73
|
+
grpc_error* builder_error = grpc_channel_stack_builder_finish(
|
74
74
|
builder, sizeof(grpc_channel), 1, destroy_channel, nullptr,
|
75
75
|
reinterpret_cast<void**>(&channel));
|
76
|
-
if (
|
76
|
+
if (builder_error != GRPC_ERROR_NONE) {
|
77
77
|
gpr_log(GPR_ERROR, "channel stack builder failed: %s",
|
78
|
-
grpc_error_string(
|
79
|
-
|
78
|
+
grpc_error_string(builder_error));
|
79
|
+
GPR_ASSERT(channel == nullptr);
|
80
|
+
if (error != nullptr) {
|
81
|
+
*error = builder_error;
|
82
|
+
} else {
|
83
|
+
GRPC_ERROR_UNREF(builder_error);
|
84
|
+
}
|
80
85
|
gpr_free(target);
|
81
86
|
grpc_channel_args_destroy(args);
|
82
|
-
return
|
87
|
+
return nullptr;
|
83
88
|
}
|
84
89
|
channel->target = target;
|
85
90
|
channel->resource_user = resource_user;
|
@@ -219,7 +224,8 @@ grpc_channel* grpc_channel_create(const char* target,
|
|
219
224
|
const grpc_channel_args* input_args,
|
220
225
|
grpc_channel_stack_type channel_stack_type,
|
221
226
|
grpc_transport* optional_transport,
|
222
|
-
grpc_resource_user* resource_user
|
227
|
+
grpc_resource_user* resource_user,
|
228
|
+
grpc_error** error) {
|
223
229
|
// We need to make sure that grpc_shutdown() does not shut things down
|
224
230
|
// until after the channel is destroyed. However, the channel may not
|
225
231
|
// actually be destroyed by the time grpc_channel_destroy() returns,
|
@@ -268,7 +274,7 @@ grpc_channel* grpc_channel_create(const char* target,
|
|
268
274
|
CreateChannelzNode(builder);
|
269
275
|
}
|
270
276
|
grpc_channel* channel =
|
271
|
-
grpc_channel_create_with_builder(builder, channel_stack_type);
|
277
|
+
grpc_channel_create_with_builder(builder, channel_stack_type, error);
|
272
278
|
if (channel == nullptr) {
|
273
279
|
grpc_shutdown(); // Since we won't call destroy_channel().
|
274
280
|
}
|
@@ -372,14 +378,14 @@ static grpc_call* grpc_channel_create_call_internal(
|
|
372
378
|
grpc_call* grpc_channel_create_call(grpc_channel* channel,
|
373
379
|
grpc_call* parent_call,
|
374
380
|
uint32_t propagation_mask,
|
375
|
-
grpc_completion_queue*
|
381
|
+
grpc_completion_queue* completion_queue,
|
376
382
|
grpc_slice method, const grpc_slice* host,
|
377
383
|
gpr_timespec deadline, void* reserved) {
|
378
384
|
GPR_ASSERT(!reserved);
|
379
385
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
380
386
|
grpc_core::ExecCtx exec_ctx;
|
381
387
|
grpc_call* call = grpc_channel_create_call_internal(
|
382
|
-
channel, parent_call, propagation_mask,
|
388
|
+
channel, parent_call, propagation_mask, completion_queue, nullptr,
|
383
389
|
grpc_mdelem_create(GRPC_MDSTR_PATH, method, nullptr),
|
384
390
|
host != nullptr ? grpc_mdelem_create(GRPC_MDSTR_AUTHORITY, *host, nullptr)
|
385
391
|
: GRPC_MDNULL,
|
@@ -34,7 +34,8 @@ grpc_channel* grpc_channel_create(const char* target,
|
|
34
34
|
const grpc_channel_args* args,
|
35
35
|
grpc_channel_stack_type channel_stack_type,
|
36
36
|
grpc_transport* optional_transport,
|
37
|
-
grpc_resource_user* resource_user = nullptr
|
37
|
+
grpc_resource_user* resource_user = nullptr,
|
38
|
+
grpc_error** error = nullptr);
|
38
39
|
|
39
40
|
/** The same as grpc_channel_destroy, but doesn't create an ExecCtx, and so
|
40
41
|
* is safe to use from within core. */
|
@@ -42,7 +43,7 @@ void grpc_channel_destroy_internal(grpc_channel* channel);
|
|
42
43
|
|
43
44
|
grpc_channel* grpc_channel_create_with_builder(
|
44
45
|
grpc_channel_stack_builder* builder,
|
45
|
-
grpc_channel_stack_type channel_stack_type);
|
46
|
+
grpc_channel_stack_type channel_stack_type, grpc_error** error = nullptr);
|
46
47
|
|
47
48
|
/** Create a call given a grpc_channel, in order to call \a method.
|
48
49
|
Progress is tied to activity on \a pollset_set. The returned call object is
|
@@ -87,7 +87,7 @@ void grpc_channel_init_shutdown(void) {
|
|
87
87
|
for (int i = 0; i < GRPC_NUM_CHANNEL_STACK_TYPES; i++) {
|
88
88
|
gpr_free(g_slots[i].slots);
|
89
89
|
g_slots[i].slots =
|
90
|
-
static_cast<stage_slot*>(
|
90
|
+
static_cast<stage_slot*>(reinterpret_cast<void*>(0xdeadbeef));
|
91
91
|
}
|
92
92
|
}
|
93
93
|
|
@@ -310,7 +310,7 @@ struct cq_pluck_data {
|
|
310
310
|
};
|
311
311
|
|
312
312
|
struct cq_callback_data {
|
313
|
-
cq_callback_data(
|
313
|
+
explicit cq_callback_data(
|
314
314
|
grpc_experimental_completion_queue_functor* shutdown_callback)
|
315
315
|
: shutdown_callback(shutdown_callback) {}
|
316
316
|
|
@@ -439,7 +439,7 @@ grpc_core::TraceFlag grpc_cq_pluck_trace(false, "queue_pluck");
|
|
439
439
|
} \
|
440
440
|
} while (0)
|
441
441
|
|
442
|
-
static void on_pollset_shutdown_done(void*
|
442
|
+
static void on_pollset_shutdown_done(void* arg, grpc_error* error);
|
443
443
|
|
444
444
|
void grpc_cq_global_init() {
|
445
445
|
gpr_tls_init(&g_cached_event);
|
@@ -447,7 +447,8 @@ void grpc_cq_global_init() {
|
|
447
447
|
}
|
448
448
|
|
449
449
|
void grpc_completion_queue_thread_local_cache_init(grpc_completion_queue* cq) {
|
450
|
-
if ((
|
450
|
+
if (reinterpret_cast<grpc_completion_queue*>(gpr_tls_get(&g_cached_cq)) ==
|
451
|
+
nullptr) {
|
451
452
|
gpr_tls_set(&g_cached_event, (intptr_t)0);
|
452
453
|
gpr_tls_set(&g_cached_cq, (intptr_t)cq);
|
453
454
|
}
|
@@ -456,10 +457,10 @@ void grpc_completion_queue_thread_local_cache_init(grpc_completion_queue* cq) {
|
|
456
457
|
int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue* cq,
|
457
458
|
void** tag, int* ok) {
|
458
459
|
grpc_cq_completion* storage =
|
459
|
-
(
|
460
|
+
reinterpret_cast<grpc_cq_completion*>(gpr_tls_get(&g_cached_event));
|
460
461
|
int ret = 0;
|
461
|
-
if (storage != nullptr &&
|
462
|
-
|
462
|
+
if (storage != nullptr && reinterpret_cast<grpc_completion_queue*>(
|
463
|
+
gpr_tls_get(&g_cached_cq)) == cq) {
|
463
464
|
*tag = storage->tag;
|
464
465
|
grpc_core::ExecCtx exec_ctx;
|
465
466
|
*ok = (storage->next & static_cast<uintptr_t>(1)) == 1;
|
@@ -717,8 +718,10 @@ static void cq_end_op_for_next(
|
|
717
718
|
|
718
719
|
cq_check_tag(cq, tag, true); /* Used in debug builds only */
|
719
720
|
|
720
|
-
if ((
|
721
|
-
|
721
|
+
if (reinterpret_cast<grpc_completion_queue*>(gpr_tls_get(&g_cached_cq)) ==
|
722
|
+
cq &&
|
723
|
+
reinterpret_cast<grpc_cq_completion*>(gpr_tls_get(&g_cached_event)) ==
|
724
|
+
nullptr) {
|
722
725
|
gpr_tls_set(&g_cached_event, (intptr_t)storage);
|
723
726
|
} else {
|
724
727
|
/* Add the completion to the queue */
|
@@ -793,8 +796,8 @@ static void cq_end_op_for_pluck(
|
|
793
796
|
storage->tag = tag;
|
794
797
|
storage->done = done;
|
795
798
|
storage->done_arg = done_arg;
|
796
|
-
storage->next =
|
797
|
-
|
799
|
+
storage->next = reinterpret_cast<uintptr_t>(&cqd->completed_head) |
|
800
|
+
static_cast<uintptr_t>(is_success);
|
798
801
|
|
799
802
|
gpr_mu_lock(cq->mu);
|
800
803
|
cq_check_tag(cq, tag, false); /* Used in debug builds only */
|
@@ -802,7 +805,7 @@ static void cq_end_op_for_pluck(
|
|
802
805
|
/* Add to the list of completions */
|
803
806
|
cqd->things_queued_ever.FetchAdd(1, grpc_core::MemoryOrder::RELAXED);
|
804
807
|
cqd->completed_tail->next =
|
805
|
-
(
|
808
|
+
reinterpret_cast<uintptr_t>(storage) | (1u & cqd->completed_tail->next);
|
806
809
|
cqd->completed_tail = storage;
|
807
810
|
|
808
811
|
if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
|
@@ -910,7 +913,8 @@ struct cq_is_finished_arg {
|
|
910
913
|
};
|
911
914
|
class ExecCtxNext : public grpc_core::ExecCtx {
|
912
915
|
public:
|
913
|
-
ExecCtxNext(void* arg)
|
916
|
+
explicit ExecCtxNext(void* arg)
|
917
|
+
: ExecCtx(0), check_ready_to_finish_arg_(arg) {}
|
914
918
|
|
915
919
|
bool CheckReadyToFinish() override {
|
916
920
|
cq_is_finished_arg* a =
|
@@ -1158,7 +1162,8 @@ static void del_plucker(grpc_completion_queue* cq, void* tag,
|
|
1158
1162
|
|
1159
1163
|
class ExecCtxPluck : public grpc_core::ExecCtx {
|
1160
1164
|
public:
|
1161
|
-
ExecCtxPluck(void* arg)
|
1165
|
+
explicit ExecCtxPluck(void* arg)
|
1166
|
+
: ExecCtx(0), check_ready_to_finish_arg_(arg) {}
|
1162
1167
|
|
1163
1168
|
bool CheckReadyToFinish() override {
|
1164
1169
|
cq_is_finished_arg* a =
|
@@ -1176,8 +1181,8 @@ class ExecCtxPluck : public grpc_core::ExecCtx {
|
|
1176
1181
|
cqd->things_queued_ever.Load(grpc_core::MemoryOrder::RELAXED);
|
1177
1182
|
grpc_cq_completion* c;
|
1178
1183
|
grpc_cq_completion* prev = &cqd->completed_head;
|
1179
|
-
while ((c =
|
1180
|
-
|
1184
|
+
while ((c = reinterpret_cast<grpc_cq_completion*>(
|
1185
|
+
prev->next & ~static_cast<uintptr_t>(1))) !=
|
1181
1186
|
&cqd->completed_head) {
|
1182
1187
|
if (c->tag == a->tag) {
|
1183
1188
|
prev->next = (prev->next & static_cast<uintptr_t>(1)) |
|
@@ -1248,9 +1253,9 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1248
1253
|
break;
|
1249
1254
|
}
|
1250
1255
|
prev = &cqd->completed_head;
|
1251
|
-
while (
|
1252
|
-
|
1253
|
-
|
1256
|
+
while ((c = reinterpret_cast<grpc_cq_completion*>(
|
1257
|
+
prev->next & ~static_cast<uintptr_t>(1))) !=
|
1258
|
+
&cqd->completed_head) {
|
1254
1259
|
if (c->tag == tag) {
|
1255
1260
|
prev->next = (prev->next & static_cast<uintptr_t>(1)) |
|
1256
1261
|
(c->next & ~static_cast<uintptr_t>(1));
|
@@ -51,19 +51,19 @@ typedef struct grpc_cq_completion {
|
|
51
51
|
} grpc_cq_completion;
|
52
52
|
|
53
53
|
#ifndef NDEBUG
|
54
|
-
void grpc_cq_internal_ref(grpc_completion_queue*
|
54
|
+
void grpc_cq_internal_ref(grpc_completion_queue* cq, const char* reason,
|
55
55
|
const char* file, int line);
|
56
|
-
void grpc_cq_internal_unref(grpc_completion_queue*
|
56
|
+
void grpc_cq_internal_unref(grpc_completion_queue* cq, const char* reason,
|
57
57
|
const char* file, int line);
|
58
|
-
#define GRPC_CQ_INTERNAL_REF(
|
59
|
-
grpc_cq_internal_ref(
|
60
|
-
#define GRPC_CQ_INTERNAL_UNREF(
|
61
|
-
grpc_cq_internal_unref(
|
58
|
+
#define GRPC_CQ_INTERNAL_REF(cq, reason) \
|
59
|
+
grpc_cq_internal_ref(cq, reason, __FILE__, __LINE__)
|
60
|
+
#define GRPC_CQ_INTERNAL_UNREF(cq, reason) \
|
61
|
+
grpc_cq_internal_unref(cq, reason, __FILE__, __LINE__)
|
62
62
|
#else
|
63
|
-
void grpc_cq_internal_ref(grpc_completion_queue*
|
64
|
-
void grpc_cq_internal_unref(grpc_completion_queue*
|
65
|
-
#define GRPC_CQ_INTERNAL_REF(
|
66
|
-
#define GRPC_CQ_INTERNAL_UNREF(
|
63
|
+
void grpc_cq_internal_ref(grpc_completion_queue* cq);
|
64
|
+
void grpc_cq_internal_unref(grpc_completion_queue* cq);
|
65
|
+
#define GRPC_CQ_INTERNAL_REF(cq, reason) grpc_cq_internal_ref(cq)
|
66
|
+
#define GRPC_CQ_INTERNAL_UNREF(cq, reason) grpc_cq_internal_unref(cq)
|
67
67
|
#endif
|
68
68
|
|
69
69
|
/* Initializes global variables used by completion queues */
|
@@ -73,22 +73,22 @@ void grpc_cq_global_init();
|
|
73
73
|
shutdown until a corrensponding grpc_cq_end_* call is made.
|
74
74
|
\a tag is currently used only in debug builds. Return true on success, and
|
75
75
|
false if completion_queue has been shutdown. */
|
76
|
-
bool grpc_cq_begin_op(grpc_completion_queue*
|
76
|
+
bool grpc_cq_begin_op(grpc_completion_queue* cq, void* tag);
|
77
77
|
|
78
78
|
/* Queue a GRPC_OP_COMPLETED operation; tag must correspond to the tag passed to
|
79
79
|
grpc_cq_begin_op */
|
80
|
-
void grpc_cq_end_op(grpc_completion_queue*
|
80
|
+
void grpc_cq_end_op(grpc_completion_queue* cq, void* tag, grpc_error* error,
|
81
81
|
void (*done)(void* done_arg, grpc_cq_completion* storage),
|
82
82
|
void* done_arg, grpc_cq_completion* storage,
|
83
83
|
bool internal = false);
|
84
84
|
|
85
|
-
grpc_pollset* grpc_cq_pollset(grpc_completion_queue*
|
85
|
+
grpc_pollset* grpc_cq_pollset(grpc_completion_queue* cq);
|
86
86
|
|
87
|
-
bool grpc_cq_can_listen(grpc_completion_queue*
|
87
|
+
bool grpc_cq_can_listen(grpc_completion_queue* cq);
|
88
88
|
|
89
|
-
grpc_cq_completion_type grpc_get_cq_completion_type(grpc_completion_queue*
|
89
|
+
grpc_cq_completion_type grpc_get_cq_completion_type(grpc_completion_queue* cq);
|
90
90
|
|
91
|
-
int grpc_get_cq_poll_num(grpc_completion_queue*
|
91
|
+
int grpc_get_cq_poll_num(grpc_completion_queue* cq);
|
92
92
|
|
93
93
|
grpc_completion_queue* grpc_completion_queue_create_internal(
|
94
94
|
grpc_cq_completion_type completion_type, grpc_cq_polling_type polling_type,
|