grpc 1.47.0 → 1.48.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 +105 -47
- data/include/grpc/compression.h +1 -1
- data/include/grpc/event_engine/event_engine.h +20 -11
- data/include/grpc/event_engine/slice_buffer.h +8 -2
- data/include/grpc/grpc.h +3 -3
- data/include/grpc/impl/codegen/compression_types.h +2 -1
- data/include/grpc/impl/codegen/connectivity_state.h +2 -1
- data/include/grpc/impl/codegen/gpr_types.h +2 -1
- data/include/grpc/impl/codegen/grpc_types.h +2 -1
- data/include/grpc/impl/codegen/port_platform.h +6 -3
- data/src/core/ext/filters/census/grpc_context.cc +3 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +17 -5
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +16 -0
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +2 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -1
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +51 -65
- data/src/core/ext/filters/client_channel/client_channel.h +19 -4
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +6 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +73 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +0 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +33 -35
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +106 -112
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +91 -42
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +177 -138
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +4 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +47 -44
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +118 -103
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +83 -78
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +57 -67
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -7
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +13 -17
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +0 -7
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -5
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -1
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +6 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +10 -5
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +12 -3
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +24 -15
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +3 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -7
- data/src/core/ext/filters/client_channel/retry_filter.cc +35 -36
- data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +4 -4
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +53 -50
- data/src/core/ext/filters/client_channel/subchannel.h +6 -22
- data/src/core/ext/filters/client_channel/subchannel_interface.h +10 -18
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +12 -97
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +5 -9
- data/src/core/ext/filters/deadline/deadline_filter.cc +12 -7
- data/src/core/ext/filters/deadline/deadline_filter.h +8 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +21 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +8 -3
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +7 -4
- data/src/core/ext/filters/fault_injection/service_config_parser.h +17 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +16 -5
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +11 -10
- data/src/core/ext/filters/http/client_authority_filter.h +5 -2
- data/src/core/ext/filters/http/http_filters_plugin.cc +9 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +64 -187
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +1 -2
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +42 -106
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +1 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +16 -9
- data/src/core/ext/filters/http/server/http_server_filter.h +6 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +25 -15
- data/src/core/ext/filters/message_size/message_size_filter.h +13 -0
- data/src/core/ext/filters/rbac/rbac_filter.cc +14 -3
- data/src/core/ext/filters/rbac/rbac_filter.h +8 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +13 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +14 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +1 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +9 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +22 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +1 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -4
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +15 -15
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +196 -476
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +141 -261
- data/src/core/ext/transport/chttp2/transport/flow_control.h +176 -289
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +57 -215
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -36
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +0 -41
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +7 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +7 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +9 -111
- data/src/core/ext/transport/chttp2/transport/parsing.cc +51 -38
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +0 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +18 -21
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +85 -81
- data/src/core/ext/transport/inproc/inproc_transport.h +3 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +164 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +94 -0
- data/src/core/ext/xds/certificate_provider_factory.h +6 -1
- data/src/core/ext/xds/certificate_provider_registry.cc +8 -8
- data/src/core/ext/xds/certificate_provider_registry.h +3 -1
- data/src/core/ext/xds/certificate_provider_store.cc +2 -0
- data/src/core/ext/xds/certificate_provider_store.h +9 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +9 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +8 -0
- data/src/core/ext/xds/upb_utils.h +1 -2
- data/src/core/ext/xds/xds_api.cc +16 -18
- data/src/core/ext/xds/xds_api.h +12 -5
- data/src/core/ext/xds/xds_bootstrap.cc +37 -24
- data/src/core/ext/xds/xds_bootstrap.h +9 -11
- data/src/core/ext/xds/xds_certificate_provider.cc +12 -3
- data/src/core/ext/xds/xds_certificate_provider.h +16 -1
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +9 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +5 -1
- data/src/core/ext/xds/xds_client.cc +71 -22
- data/src/core/ext/xds/xds_client.h +17 -3
- data/src/core/ext/xds/xds_client_stats.cc +3 -4
- data/src/core/ext/xds/xds_client_stats.h +4 -3
- data/src/core/ext/xds/xds_cluster.cc +21 -10
- data/src/core/ext/xds/xds_cluster.h +9 -1
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +16 -7
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -8
- data/src/core/ext/xds/xds_common_types.cc +36 -22
- data/src/core/ext/xds/xds_common_types.h +12 -4
- data/src/core/ext/xds/xds_endpoint.cc +25 -15
- data/src/core/ext/xds/xds_endpoint.h +13 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +7 -5
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -1
- data/src/core/ext/xds/xds_http_filters.cc +7 -0
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +16 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +7 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +291 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +72 -0
- data/src/core/ext/xds/xds_listener.cc +51 -33
- data/src/core/ext/xds/xds_listener.h +10 -1
- data/src/core/ext/xds/xds_resource_type.h +3 -3
- data/src/core/ext/xds/xds_resource_type_impl.h +7 -3
- data/src/core/ext/xds/xds_route_config.cc +56 -28
- data/src/core/ext/xds/xds_route_config.h +11 -2
- data/src/core/ext/xds/xds_routing.cc +16 -0
- data/src/core/ext/xds/xds_routing.h +7 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +54 -6
- data/src/core/lib/address_utils/parse_address.cc +5 -8
- data/src/core/lib/address_utils/parse_address.h +3 -2
- data/src/core/lib/address_utils/sockaddr_utils.cc +8 -7
- data/src/core/lib/address_utils/sockaddr_utils.h +2 -0
- data/src/core/lib/avl/avl.h +3 -3
- data/src/core/lib/backoff/backoff.cc +1 -1
- data/src/core/lib/backoff/backoff.h +1 -1
- data/src/core/lib/channel/call_tracer.h +3 -3
- data/src/core/lib/channel/channel_args.h +1 -0
- data/src/core/lib/channel/channel_args_preconditioning.cc +1 -0
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +4 -4
- data/src/core/lib/channel/channel_stack.h +1 -11
- data/src/core/lib/channel/channel_stack_builder.h +2 -5
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +1 -0
- data/src/core/lib/channel/channelz.cc +2 -1
- data/src/core/lib/channel/channelz.h +2 -3
- data/src/core/lib/channel/channelz_registry.cc +4 -5
- data/src/core/lib/channel/connected_channel.cc +1 -0
- data/src/core/lib/channel/connected_channel.h +1 -0
- data/src/core/lib/channel/promise_based_filter.cc +11 -5
- data/src/core/lib/channel/promise_based_filter.h +2 -0
- data/src/core/lib/compression/compression.cc +6 -1
- data/src/core/lib/compression/compression_internal.cc +3 -6
- data/src/core/lib/compression/compression_internal.h +3 -2
- data/src/core/lib/compression/message_compress.cc +3 -1
- data/src/core/lib/compression/message_compress.h +2 -3
- data/src/core/lib/debug/stats.cc +9 -9
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/stats_data.h +0 -4
- data/src/core/lib/debug/trace.h +13 -12
- data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -1
- data/src/core/lib/event_engine/event_engine.cc +24 -19
- data/src/core/lib/event_engine/event_engine_factory.h +2 -2
- data/src/core/lib/event_engine/{iomgr_engine.cc → iomgr_engine/iomgr_engine.cc} +44 -91
- data/src/core/lib/event_engine/{iomgr_engine.h → iomgr_engine/iomgr_engine.h} +20 -16
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +123 -0
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +70 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.cc +62 -0
- data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.h +81 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.cc +312 -0
- data/src/core/lib/event_engine/iomgr_engine/timer.h +193 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.cc +107 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_heap.h +56 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.cc +254 -0
- data/src/core/lib/event_engine/iomgr_engine/timer_manager.h +111 -0
- data/src/core/lib/event_engine/promise.h +69 -0
- data/src/core/lib/gpr/time_posix.cc +6 -9
- data/src/core/lib/gpr/time_windows.cc +10 -7
- data/src/core/lib/gprpp/manual_constructor.h +0 -67
- data/src/core/lib/gprpp/status_helper.cc +44 -30
- data/src/core/lib/gprpp/time.cc +8 -0
- data/src/core/lib/gprpp/time.h +4 -0
- data/src/core/lib/http/format_request.cc +5 -4
- data/src/core/lib/http/format_request.h +1 -1
- data/src/core/lib/http/httpcli.cc +18 -12
- data/src/core/lib/http/httpcli.h +19 -3
- data/src/core/lib/http/httpcli_security_connector.cc +16 -4
- data/src/core/lib/http/httpcli_ssl_credentials.h +3 -1
- data/src/core/lib/http/parser.cc +6 -7
- data/src/core/lib/http/parser.h +3 -0
- data/src/core/lib/iomgr/call_combiner.cc +2 -2
- data/src/core/lib/iomgr/endpoint.h +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -2
- data/src/core/lib/iomgr/error.cc +11 -9
- data/src/core/lib/iomgr/error.h +9 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +57 -18
- data/src/core/lib/iomgr/ev_epoll1_linux.h +1 -1
- data/src/core/lib/iomgr/ev_poll_posix.cc +77 -52
- data/src/core/lib/iomgr/ev_poll_posix.h +2 -2
- data/src/core/lib/iomgr/ev_posix.cc +54 -92
- data/src/core/lib/iomgr/ev_posix.h +5 -3
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/iomgr.cc +7 -0
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -0
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/tcp_client.cc +12 -7
- data/src/core/lib/iomgr/tcp_client.h +24 -13
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +15 -9
- data/src/core/lib/iomgr/tcp_client_posix.cc +143 -25
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +14 -10
- data/src/core/lib/iomgr/tcp_posix.cc +91 -29
- data/src/core/lib/iomgr/tcp_server_posix.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +12 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +2 -2
- data/src/core/lib/iomgr/tcp_server_windows.cc +7 -7
- data/src/core/lib/iomgr/tcp_windows.cc +5 -5
- data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +15 -12
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -2
- data/src/core/lib/iomgr/work_serializer.h +2 -3
- data/src/core/lib/matchers/matchers.cc +6 -3
- data/src/core/lib/matchers/matchers.h +2 -0
- data/src/core/lib/promise/activity.cc +0 -1
- data/src/core/lib/promise/activity.h +7 -13
- data/src/core/lib/promise/loop.h +1 -0
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/sleep.cc +36 -31
- data/src/core/lib/promise/sleep.h +25 -25
- data/src/core/lib/resolver/resolver.cc +5 -0
- data/src/core/lib/resolver/resolver.h +3 -0
- data/src/core/lib/resolver/resolver_factory.h +5 -2
- data/src/core/lib/resolver/resolver_registry.cc +2 -9
- data/src/core/lib/resolver/resolver_registry.h +12 -1
- data/src/core/lib/resolver/server_address.cc +8 -0
- data/src/core/lib/resolver/server_address.h +9 -2
- data/src/core/lib/resource_quota/memory_quota.cc +18 -60
- data/src/core/lib/resource_quota/memory_quota.h +11 -25
- data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +4 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +9 -3
- data/src/core/lib/security/authorization/evaluate_args.h +6 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +6 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +7 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +12 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +12 -1
- data/src/core/lib/security/authorization/matchers.cc +9 -1
- data/src/core/lib/security/authorization/matchers.h +7 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +5 -0
- data/src/core/lib/security/authorization/rbac_policy.h +7 -0
- data/src/core/lib/security/context/security_context.cc +5 -2
- data/src/core/lib/security/context/security_context.h +14 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +4 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -1
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +1 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -4
- data/src/core/lib/security/credentials/call_creds_util.cc +8 -0
- data/src/core/lib/security/credentials/call_creds_util.h +1 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +6 -1
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +10 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +16 -2
- data/src/core/lib/security/credentials/credentials.cc +4 -8
- data/src/core/lib/security/credentials/credentials.h +10 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +28 -10
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +10 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +9 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +24 -9
- data/src/core/lib/security/credentials/external/external_account_credentials.h +11 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +12 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +20 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +8 -6
- data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -1
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -10
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +10 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.h +10 -0
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +4 -0
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +5 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +5 -2
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +11 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +14 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +28 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +4 -3
- data/src/core/lib/security/credentials/local/local_credentials.h +7 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +26 -13
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +20 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +8 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +24 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +13 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +6 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +29 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +9 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +9 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +6 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +7 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.h +5 -1
- data/src/core/lib/security/credentials/tls/tls_utils.cc +2 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +8 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.h +14 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +22 -2
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +6 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +17 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +9 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +17 -2
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +5 -3
- data/src/core/lib/security/security_connector/{load_system_roots_linux.cc → load_system_roots_supported.cc} +27 -19
- data/src/core/lib/security/security_connector/{load_system_roots_linux.h → load_system_roots_supported.h} +5 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -3
- data/src/core/lib/security/security_connector/local/local_security_connector.h +6 -2
- data/src/core/lib/security/security_connector/security_connector.cc +20 -18
- data/src/core/lib/security/security_connector/security_connector.h +18 -6
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +18 -6
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +12 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +10 -7
- data/src/core/lib/security/security_connector/ssl_utils_config.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -13
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +23 -3
- data/src/core/lib/security/transport/auth_filters.h +7 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -9
- data/src/core/lib/security/transport/secure_endpoint.cc +63 -13
- data/src/core/lib/security/transport/secure_endpoint.h +4 -3
- data/src/core/lib/security/transport/security_handshaker.cc +44 -11
- data/src/core/lib/security/transport/security_handshaker.h +4 -0
- data/src/core/lib/security/transport/server_auth_filter.cc +26 -4
- data/src/core/lib/security/util/json_util.cc +3 -2
- data/src/core/lib/security/util/json_util.h +0 -2
- data/src/core/lib/service_config/service_config_call_data.h +2 -1
- data/src/core/lib/service_config/service_config_impl.cc +6 -6
- data/src/core/lib/service_config/service_config_impl.h +1 -3
- data/src/core/lib/service_config/service_config_parser.cc +2 -4
- data/src/core/lib/slice/slice_buffer.cc +30 -1
- data/src/core/lib/slice/slice_buffer.h +37 -6
- data/src/core/lib/slice/slice_string_helpers.cc +0 -20
- data/src/core/lib/slice/slice_string_helpers.h +0 -4
- data/src/core/lib/surface/call.cc +53 -115
- data/src/core/lib/surface/call.h +5 -1
- data/src/core/lib/surface/channel.h +2 -0
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +15 -14
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/init.cc +0 -1
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +14 -8
- data/src/core/lib/surface/server.h +4 -1
- data/src/core/lib/surface/validate_metadata.cc +1 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/error_utils.cc +13 -7
- data/src/core/lib/transport/handshaker.cc +3 -3
- data/src/core/lib/transport/http_connect_handshaker.cc +4 -4
- data/src/core/lib/transport/tcp_connect_handshaker.cc +2 -2
- data/src/core/lib/transport/transport.cc +0 -3
- data/src/core/lib/transport/transport.h +20 -14
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +1 -0
- data/src/core/lib/transport/transport_op_string.cc +9 -9
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -1
- data/src/core/tsi/fake_transport_security.cc +13 -1
- data/src/core/tsi/fake_transport_security.h +6 -0
- data/src/core/tsi/ssl_transport_security.cc +1 -1
- data/src/core/tsi/transport_security_grpc.cc +3 -2
- data/src/core/tsi/transport_security_grpc.h +5 -2
- data/src/ruby/ext/grpc/ext-export-truffleruby.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.clang +1 -0
- data/src/ruby/ext/grpc/ext-export.gcc +1 -0
- data/src/ruby/ext/grpc/extconf.rb +49 -18
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/errors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +23 -23
- data/third_party/abseil-cpp/absl/algorithm/container.h +1 -1
- data/third_party/abseil-cpp/absl/base/attributes.h +49 -22
- data/third_party/abseil-cpp/absl/base/casts.h +61 -68
- data/third_party/abseil-cpp/absl/base/config.h +182 -41
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +29 -22
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +13 -12
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +0 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -3
- data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +19 -11
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +15 -9
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +20 -9
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -5
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -28
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +68 -20
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +29 -11
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +59 -38
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +4 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +515 -184
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +20 -18
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +15 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +46 -7
- data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +218 -23
- data/third_party/abseil-cpp/absl/numeric/bits.h +2 -1
- data/third_party/abseil-cpp/absl/numeric/int128.cc +4 -2
- data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +21 -6
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +4 -4
- data/third_party/abseil-cpp/absl/random/distributions.h +3 -3
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +59 -48
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen.h +5 -11
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -2
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +48 -23
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +24 -26
- data/third_party/abseil-cpp/absl/random/internal/traits.h +53 -5
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +5 -5
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +33 -48
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +9 -10
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +7 -4
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +4 -3
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +17 -0
- data/third_party/abseil-cpp/absl/status/status.cc +174 -2
- data/third_party/abseil-cpp/absl/status/status.h +22 -12
- data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/cord.cc +194 -913
- data/third_party/abseil-cpp/absl/strings/cord.h +202 -81
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +20 -32
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +123 -88
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +149 -49
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +44 -59
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +3 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +11 -38
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +38 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +4 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +5 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.cc +8 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
- data/third_party/abseil-cpp/absl/strings/str_cat.h +20 -13
- data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +2 -13
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +10 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -25
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -40
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +17 -9
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +5 -4
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
- data/third_party/abseil-cpp/absl/time/time.h +16 -12
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +3 -3
- data/third_party/abseil-cpp/absl/types/optional.h +17 -14
- data/third_party/abseil-cpp/absl/types/span.h +2 -1
- metadata +39 -15
- data/src/core/lib/slice/slice_split.cc +0 -103
- data/src/core/lib/slice/slice_split.h +0 -36
- data/src/core/lib/transport/byte_stream.cc +0 -165
- data/src/core/lib/transport/byte_stream.h +0 -170
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +0 -140
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +0 -100
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
@@ -25,7 +25,6 @@
|
|
25
25
|
|
26
26
|
#include <algorithm>
|
27
27
|
#include <atomic>
|
28
|
-
#include <memory>
|
29
28
|
#include <new>
|
30
29
|
#include <string>
|
31
30
|
#include <utility>
|
@@ -51,7 +50,6 @@
|
|
51
50
|
#include <grpc/support/string_util.h>
|
52
51
|
|
53
52
|
#include "src/core/lib/channel/channel_stack.h"
|
54
|
-
#include "src/core/lib/channel/channel_stack_builder.h"
|
55
53
|
#include "src/core/lib/channel/channelz.h"
|
56
54
|
#include "src/core/lib/channel/context.h"
|
57
55
|
#include "src/core/lib/compression/compression_internal.h"
|
@@ -60,8 +58,6 @@
|
|
60
58
|
#include "src/core/lib/gpr/time_precise.h"
|
61
59
|
#include "src/core/lib/gprpp/cpp_impl_of.h"
|
62
60
|
#include "src/core/lib/gprpp/debug_location.h"
|
63
|
-
#include "src/core/lib/gprpp/manual_constructor.h"
|
64
|
-
#include "src/core/lib/gprpp/orphanable.h"
|
65
61
|
#include "src/core/lib/gprpp/ref_counted.h"
|
66
62
|
#include "src/core/lib/gprpp/sync.h"
|
67
63
|
#include "src/core/lib/iomgr/call_combiner.h"
|
@@ -69,6 +65,7 @@
|
|
69
65
|
#include "src/core/lib/iomgr/polling_entity.h"
|
70
66
|
#include "src/core/lib/profiling/timers.h"
|
71
67
|
#include "src/core/lib/resource_quota/arena.h"
|
68
|
+
#include "src/core/lib/slice/slice_buffer.h"
|
72
69
|
#include "src/core/lib/slice/slice_internal.h"
|
73
70
|
#include "src/core/lib/slice/slice_refcount.h"
|
74
71
|
#include "src/core/lib/surface/api_trace.h"
|
@@ -77,7 +74,6 @@
|
|
77
74
|
#include "src/core/lib/surface/completion_queue.h"
|
78
75
|
#include "src/core/lib/surface/server.h"
|
79
76
|
#include "src/core/lib/surface/validate_metadata.h"
|
80
|
-
#include "src/core/lib/transport/byte_stream.h"
|
81
77
|
#include "src/core/lib/transport/error_utils.h"
|
82
78
|
#include "src/core/lib/transport/metadata_batch.h"
|
83
79
|
#include "src/core/lib/transport/transport.h"
|
@@ -105,6 +101,7 @@ class Call : public CppImplOf<Call, grpc_call> {
|
|
105
101
|
bool is_notify_tag_closure) = 0;
|
106
102
|
virtual bool failed_before_recv_message() const = 0;
|
107
103
|
virtual bool is_trailers_only() const = 0;
|
104
|
+
virtual absl::string_view GetServerAuthority() const = 0;
|
108
105
|
virtual void ExternalRef() = 0;
|
109
106
|
virtual void ExternalUnref() = 0;
|
110
107
|
virtual void InternalRef(const char* reason) = 0;
|
@@ -235,6 +232,13 @@ class FilterStackCall final : public Call {
|
|
235
232
|
return call_failed_before_recv_message_;
|
236
233
|
}
|
237
234
|
|
235
|
+
absl::string_view GetServerAuthority() const override {
|
236
|
+
const Slice* authority_metadata =
|
237
|
+
recv_initial_metadata_.get_pointer(HttpAuthorityMetadata());
|
238
|
+
if (authority_metadata == nullptr) return "";
|
239
|
+
return authority_metadata->as_string_view();
|
240
|
+
}
|
241
|
+
|
238
242
|
grpc_compression_algorithm test_only_compression_algorithm() override {
|
239
243
|
return incoming_compression_algorithm_;
|
240
244
|
}
|
@@ -302,8 +306,6 @@ class FilterStackCall final : public Call {
|
|
302
306
|
|
303
307
|
void PostCompletion();
|
304
308
|
void FinishStep();
|
305
|
-
void ContinueReceivingSlices();
|
306
|
-
void ReceivingSliceReady(grpc_error_handle error);
|
307
309
|
void ProcessDataAfterMetadata();
|
308
310
|
void ReceivingStreamReady(grpc_error_handle error);
|
309
311
|
void ValidateFilteredMetadata();
|
@@ -360,7 +362,6 @@ class FilterStackCall final : public Call {
|
|
360
362
|
bool received_initial_metadata_ = false;
|
361
363
|
bool receiving_message_ = false;
|
362
364
|
bool requested_final_op_ = false;
|
363
|
-
gpr_atm any_ops_sent_atm_ = 0;
|
364
365
|
gpr_atm received_final_op_atm_ = 0;
|
365
366
|
|
366
367
|
BatchControl* active_batches_[kMaxConcurrentBatches] = {};
|
@@ -393,13 +394,13 @@ class FilterStackCall final : public Call {
|
|
393
394
|
/* Contexts for various subsystems (security, tracing, ...). */
|
394
395
|
grpc_call_context_element context_[GRPC_CONTEXT_COUNT] = {};
|
395
396
|
|
396
|
-
|
397
|
+
SliceBuffer send_slice_buffer_;
|
398
|
+
absl::optional<SliceBuffer> receiving_slice_buffer_;
|
399
|
+
uint32_t receiving_stream_flags_;
|
397
400
|
|
398
|
-
OrphanablePtr<ByteStream> receiving_stream_;
|
399
401
|
bool call_failed_before_recv_message_ = false;
|
400
402
|
grpc_byte_buffer** receiving_buffer_ = nullptr;
|
401
403
|
grpc_slice receiving_slice_ = grpc_empty_slice();
|
402
|
-
grpc_closure receiving_slice_ready_;
|
403
404
|
grpc_closure receiving_stream_ready_;
|
404
405
|
grpc_closure receiving_initial_metadata_ready_;
|
405
406
|
grpc_closure receiving_trailing_metadata_ready_;
|
@@ -521,8 +522,8 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
|
|
521
522
|
|
522
523
|
auto add_init_error = [](grpc_error_handle* composite,
|
523
524
|
grpc_error_handle new_err) {
|
524
|
-
if (new_err
|
525
|
-
if (*composite
|
525
|
+
if (GRPC_ERROR_IS_NONE(new_err)) return;
|
526
|
+
if (GRPC_ERROR_IS_NONE(*composite)) {
|
526
527
|
*composite = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Call creation failed");
|
527
528
|
}
|
528
529
|
*composite = grpc_error_add_child(*composite, new_err);
|
@@ -582,7 +583,7 @@ grpc_error_handle FilterStackCall::Create(grpc_call_create_args* args,
|
|
582
583
|
call->PublishToParent(parent);
|
583
584
|
}
|
584
585
|
|
585
|
-
if (error
|
586
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
586
587
|
call->CancelWithError(GRPC_ERROR_REF(error));
|
587
588
|
}
|
588
589
|
if (args->cq != nullptr) {
|
@@ -646,7 +647,7 @@ void FilterStackCall::DestroyCall(void* call, grpc_error_handle /*error*/) {
|
|
646
647
|
auto* c = static_cast<FilterStackCall*>(call);
|
647
648
|
c->recv_initial_metadata_.Clear();
|
648
649
|
c->recv_trailing_metadata_.Clear();
|
649
|
-
c->
|
650
|
+
c->receiving_slice_buffer_.reset();
|
650
651
|
ParentCall* pc = c->parent_call();
|
651
652
|
if (pc != nullptr) {
|
652
653
|
pc->~ParentCall();
|
@@ -700,8 +701,7 @@ void FilterStackCall::ExternalUnref() {
|
|
700
701
|
|
701
702
|
GPR_ASSERT(!destroy_called_);
|
702
703
|
destroy_called_ = true;
|
703
|
-
bool cancel = gpr_atm_acq_load(&
|
704
|
-
gpr_atm_acq_load(&received_final_op_atm_) == 0;
|
704
|
+
bool cancel = gpr_atm_acq_load(&received_final_op_atm_) == 0;
|
705
705
|
if (cancel) {
|
706
706
|
CancelWithError(GRPC_ERROR_CANCELLED);
|
707
707
|
} else {
|
@@ -818,7 +818,7 @@ void FilterStackCall::SetFinalStatus(grpc_error_handle error) {
|
|
818
818
|
}
|
819
819
|
} else {
|
820
820
|
*final_op_.server.cancelled =
|
821
|
-
error
|
821
|
+
!GRPC_ERROR_IS_NONE(error) || !sent_server_trailing_metadata_;
|
822
822
|
channelz::ServerNode* channelz_node =
|
823
823
|
final_op_.server.core_server->channelz_node();
|
824
824
|
if (channelz_node != nullptr) {
|
@@ -952,7 +952,7 @@ void FilterStackCall::RecvInitialFilter(grpc_metadata_batch* b) {
|
|
952
952
|
|
953
953
|
void FilterStackCall::RecvTrailingFilter(grpc_metadata_batch* b,
|
954
954
|
grpc_error_handle batch_error) {
|
955
|
-
if (batch_error
|
955
|
+
if (!GRPC_ERROR_IS_NONE(batch_error)) {
|
956
956
|
SetFinalStatus(batch_error);
|
957
957
|
} else {
|
958
958
|
absl::optional<grpc_status_code> grpc_status =
|
@@ -972,7 +972,7 @@ void FilterStackCall::RecvTrailingFilter(grpc_metadata_batch* b,
|
|
972
972
|
if (grpc_message.has_value()) {
|
973
973
|
error = grpc_error_set_str(error, GRPC_ERROR_STR_GRPC_MESSAGE,
|
974
974
|
grpc_message->as_string_view());
|
975
|
-
} else if (error
|
975
|
+
} else if (!GRPC_ERROR_IS_NONE(error)) {
|
976
976
|
error = grpc_error_set_str(error, GRPC_ERROR_STR_GRPC_MESSAGE, "");
|
977
977
|
}
|
978
978
|
SetFinalStatus(GRPC_ERROR_REF(error));
|
@@ -1077,12 +1077,13 @@ void FilterStackCall::BatchControl::PostCompletion() {
|
|
1077
1077
|
}
|
1078
1078
|
if (op_.send_message) {
|
1079
1079
|
if (op_.payload->send_message.stream_write_closed &&
|
1080
|
-
error
|
1080
|
+
GRPC_ERROR_IS_NONE(error)) {
|
1081
1081
|
error = grpc_error_add_child(
|
1082
1082
|
error, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1083
1083
|
"Attempt to send message after stream was closed."));
|
1084
1084
|
}
|
1085
1085
|
call->sending_message_ = false;
|
1086
|
+
call->send_slice_buffer_.Clear();
|
1086
1087
|
}
|
1087
1088
|
if (op_.send_trailing_metadata) {
|
1088
1089
|
call->send_trailing_metadata_.Clear();
|
@@ -1094,7 +1095,7 @@ void FilterStackCall::BatchControl::PostCompletion() {
|
|
1094
1095
|
GRPC_ERROR_UNREF(error);
|
1095
1096
|
error = GRPC_ERROR_NONE;
|
1096
1097
|
}
|
1097
|
-
if (error
|
1098
|
+
if (!GRPC_ERROR_IS_NONE(error) && op_.recv_message &&
|
1098
1099
|
*call->receiving_buffer_ != nullptr) {
|
1099
1100
|
grpc_byte_buffer_destroy(*call->receiving_buffer_);
|
1100
1101
|
*call->receiving_buffer_ = nullptr;
|
@@ -1128,103 +1129,35 @@ void FilterStackCall::BatchControl::FinishStep() {
|
|
1128
1129
|
}
|
1129
1130
|
}
|
1130
1131
|
|
1131
|
-
void FilterStackCall::BatchControl::ContinueReceivingSlices() {
|
1132
|
-
grpc_error_handle error;
|
1133
|
-
FilterStackCall* call = call_;
|
1134
|
-
for (;;) {
|
1135
|
-
size_t remaining = call->receiving_stream_->length() -
|
1136
|
-
(*call->receiving_buffer_)->data.raw.slice_buffer.length;
|
1137
|
-
if (remaining == 0) {
|
1138
|
-
call->receiving_message_ = false;
|
1139
|
-
call->receiving_stream_.reset();
|
1140
|
-
FinishStep();
|
1141
|
-
return;
|
1142
|
-
}
|
1143
|
-
if (call->receiving_stream_->Next(remaining,
|
1144
|
-
&call->receiving_slice_ready_)) {
|
1145
|
-
error = call->receiving_stream_->Pull(&call->receiving_slice_);
|
1146
|
-
if (error == GRPC_ERROR_NONE) {
|
1147
|
-
grpc_slice_buffer_add(
|
1148
|
-
&(*call->receiving_buffer_)->data.raw.slice_buffer,
|
1149
|
-
call->receiving_slice_);
|
1150
|
-
} else {
|
1151
|
-
call->receiving_stream_.reset();
|
1152
|
-
grpc_byte_buffer_destroy(*call->receiving_buffer_);
|
1153
|
-
*call->receiving_buffer_ = nullptr;
|
1154
|
-
call->receiving_message_ = false;
|
1155
|
-
FinishStep();
|
1156
|
-
GRPC_ERROR_UNREF(error);
|
1157
|
-
return;
|
1158
|
-
}
|
1159
|
-
} else {
|
1160
|
-
return;
|
1161
|
-
}
|
1162
|
-
}
|
1163
|
-
}
|
1164
|
-
|
1165
|
-
void FilterStackCall::BatchControl::ReceivingSliceReady(
|
1166
|
-
grpc_error_handle error) {
|
1167
|
-
FilterStackCall* call = call_;
|
1168
|
-
bool release_error = false;
|
1169
|
-
|
1170
|
-
if (error == GRPC_ERROR_NONE) {
|
1171
|
-
grpc_slice slice;
|
1172
|
-
error = call->receiving_stream_->Pull(&slice);
|
1173
|
-
if (error == GRPC_ERROR_NONE) {
|
1174
|
-
grpc_slice_buffer_add(&(*call->receiving_buffer_)->data.raw.slice_buffer,
|
1175
|
-
slice);
|
1176
|
-
ContinueReceivingSlices();
|
1177
|
-
} else {
|
1178
|
-
/* Error returned by ByteStream::Pull() needs to be released manually */
|
1179
|
-
release_error = true;
|
1180
|
-
}
|
1181
|
-
}
|
1182
|
-
|
1183
|
-
if (error != GRPC_ERROR_NONE) {
|
1184
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures)) {
|
1185
|
-
GRPC_LOG_IF_ERROR("receiving_slice_ready", GRPC_ERROR_REF(error));
|
1186
|
-
}
|
1187
|
-
call->receiving_stream_.reset();
|
1188
|
-
grpc_byte_buffer_destroy(*call->receiving_buffer_);
|
1189
|
-
*call->receiving_buffer_ = nullptr;
|
1190
|
-
call->receiving_message_ = false;
|
1191
|
-
FinishStep();
|
1192
|
-
if (release_error) {
|
1193
|
-
GRPC_ERROR_UNREF(error);
|
1194
|
-
}
|
1195
|
-
}
|
1196
|
-
}
|
1197
|
-
|
1198
1132
|
void FilterStackCall::BatchControl::ProcessDataAfterMetadata() {
|
1199
1133
|
FilterStackCall* call = call_;
|
1200
|
-
if (call->
|
1134
|
+
if (!call->receiving_slice_buffer_.has_value()) {
|
1201
1135
|
*call->receiving_buffer_ = nullptr;
|
1202
1136
|
call->receiving_message_ = false;
|
1203
1137
|
FinishStep();
|
1204
1138
|
} else {
|
1205
|
-
call->test_only_last_message_flags_ = call->
|
1206
|
-
if ((call->
|
1139
|
+
call->test_only_last_message_flags_ = call->receiving_stream_flags_;
|
1140
|
+
if ((call->receiving_stream_flags_ & GRPC_WRITE_INTERNAL_COMPRESS) &&
|
1207
1141
|
(call->incoming_compression_algorithm_ != GRPC_COMPRESS_NONE)) {
|
1208
1142
|
*call->receiving_buffer_ = grpc_raw_compressed_byte_buffer_create(
|
1209
1143
|
nullptr, 0, call->incoming_compression_algorithm_);
|
1210
1144
|
} else {
|
1211
1145
|
*call->receiving_buffer_ = grpc_raw_byte_buffer_create(nullptr, 0);
|
1212
1146
|
}
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1218
|
-
|
1219
|
-
ContinueReceivingSlices();
|
1147
|
+
grpc_slice_buffer_move_into(
|
1148
|
+
call->receiving_slice_buffer_->c_slice_buffer(),
|
1149
|
+
&(*call->receiving_buffer_)->data.raw.slice_buffer);
|
1150
|
+
call->receiving_message_ = false;
|
1151
|
+
call->receiving_slice_buffer_.reset();
|
1152
|
+
FinishStep();
|
1220
1153
|
}
|
1221
1154
|
}
|
1222
1155
|
|
1223
1156
|
void FilterStackCall::BatchControl::ReceivingStreamReady(
|
1224
1157
|
grpc_error_handle error) {
|
1225
1158
|
FilterStackCall* call = call_;
|
1226
|
-
if (error
|
1227
|
-
call->
|
1159
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
1160
|
+
call->receiving_slice_buffer_.reset();
|
1228
1161
|
if (batch_error_.ok()) {
|
1229
1162
|
batch_error_.set(error);
|
1230
1163
|
}
|
@@ -1233,7 +1166,8 @@ void FilterStackCall::BatchControl::ReceivingStreamReady(
|
|
1233
1166
|
/* If recv_state is kRecvNone, we will save the batch_control
|
1234
1167
|
* object with rel_cas, and will not use it after the cas. Its corresponding
|
1235
1168
|
* acq_load is in receiving_initial_metadata_ready() */
|
1236
|
-
if (error
|
1169
|
+
if (!GRPC_ERROR_IS_NONE(error) ||
|
1170
|
+
!call->receiving_slice_buffer_.has_value() ||
|
1237
1171
|
!gpr_atm_rel_cas(&call->recv_state_, kRecvNone,
|
1238
1172
|
reinterpret_cast<gpr_atm>(this))) {
|
1239
1173
|
ProcessDataAfterMetadata();
|
@@ -1290,7 +1224,7 @@ void FilterStackCall::BatchControl::ReceivingInitialMetadataReady(
|
|
1290
1224
|
|
1291
1225
|
GRPC_CALL_COMBINER_STOP(call->call_combiner(), "recv_initial_metadata_ready");
|
1292
1226
|
|
1293
|
-
if (error
|
1227
|
+
if (GRPC_ERROR_IS_NONE(error)) {
|
1294
1228
|
grpc_metadata_batch* md = &call->recv_initial_metadata_;
|
1295
1229
|
call->RecvInitialFilter(md);
|
1296
1230
|
|
@@ -1357,7 +1291,7 @@ void FilterStackCall::BatchControl::FinishBatch(grpc_error_handle error) {
|
|
1357
1291
|
if (batch_error_.ok()) {
|
1358
1292
|
batch_error_.set(error);
|
1359
1293
|
}
|
1360
|
-
if (error
|
1294
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
1361
1295
|
call_->CancelWithError(GRPC_ERROR_REF(error));
|
1362
1296
|
}
|
1363
1297
|
FinishStep();
|
@@ -1514,10 +1448,12 @@ grpc_call_error FilterStackCall::StartBatch(const grpc_op* ops, size_t nops,
|
|
1514
1448
|
}
|
1515
1449
|
stream_op->send_message = true;
|
1516
1450
|
sending_message_ = true;
|
1517
|
-
|
1518
|
-
|
1519
|
-
|
1520
|
-
|
1451
|
+
send_slice_buffer_.Clear();
|
1452
|
+
grpc_slice_buffer_move_into(
|
1453
|
+
&op->data.send_message.send_message->data.raw.slice_buffer,
|
1454
|
+
send_slice_buffer_.c_slice_buffer());
|
1455
|
+
stream_op_payload->send_message.flags = flags;
|
1456
|
+
stream_op_payload->send_message.send_message = &send_slice_buffer_;
|
1521
1457
|
has_send_ops = true;
|
1522
1458
|
break;
|
1523
1459
|
}
|
@@ -1585,7 +1521,7 @@ grpc_call_error FilterStackCall::StartBatch(const grpc_op* ops, size_t nops,
|
|
1585
1521
|
GrpcMessageMetadata(),
|
1586
1522
|
Slice(grpc_slice_copy(
|
1587
1523
|
*op->data.send_status_from_server.status_details)));
|
1588
|
-
if (status_error
|
1524
|
+
if (!GRPC_ERROR_IS_NONE(status_error)) {
|
1589
1525
|
status_error = grpc_error_set_str(
|
1590
1526
|
status_error, GRPC_ERROR_STR_GRPC_MESSAGE,
|
1591
1527
|
StringViewFromSlice(
|
@@ -1654,8 +1590,11 @@ grpc_call_error FilterStackCall::StartBatch(const grpc_op* ops, size_t nops,
|
|
1654
1590
|
}
|
1655
1591
|
receiving_message_ = true;
|
1656
1592
|
stream_op->recv_message = true;
|
1593
|
+
receiving_slice_buffer_.reset();
|
1657
1594
|
receiving_buffer_ = op->data.recv_message.recv_message;
|
1658
|
-
stream_op_payload->recv_message.recv_message = &
|
1595
|
+
stream_op_payload->recv_message.recv_message = &receiving_slice_buffer_;
|
1596
|
+
receiving_stream_flags_ = 0;
|
1597
|
+
stream_op_payload->recv_message.flags = &receiving_stream_flags_;
|
1659
1598
|
stream_op_payload->recv_message.call_failed_before_recv_message =
|
1660
1599
|
&call_failed_before_recv_message_;
|
1661
1600
|
GRPC_CLOSURE_INIT(
|
@@ -1766,7 +1705,6 @@ grpc_call_error FilterStackCall::StartBatch(const grpc_op* ops, size_t nops,
|
|
1766
1705
|
stream_op->on_complete = &bctl->finish_batch_;
|
1767
1706
|
}
|
1768
1707
|
|
1769
|
-
gpr_atm_rel_store(&any_ops_sent_atm_, 1);
|
1770
1708
|
ExecuteBatch(stream_op, &bctl->start_batch_);
|
1771
1709
|
|
1772
1710
|
done:
|
@@ -1780,10 +1718,6 @@ done_with_error:
|
|
1780
1718
|
}
|
1781
1719
|
if (stream_op->send_message) {
|
1782
1720
|
sending_message_ = false;
|
1783
|
-
// No need to invoke call->sending_stream->Orphan() explicitly.
|
1784
|
-
// stream_op_payload->send_message.send_message.reset() calls Deletor
|
1785
|
-
// of call->sending_stream which in-turn invokes the Orphan() method.
|
1786
|
-
stream_op_payload->send_message.send_message.reset();
|
1787
1721
|
}
|
1788
1722
|
if (stream_op->send_trailing_metadata) {
|
1789
1723
|
sent_final_op_ = false;
|
@@ -1943,6 +1877,10 @@ int grpc_call_failed_before_recv_message(const grpc_call* c) {
|
|
1943
1877
|
return grpc_core::Call::FromC(c)->failed_before_recv_message();
|
1944
1878
|
}
|
1945
1879
|
|
1880
|
+
absl::string_view grpc_call_server_authority(const grpc_call* call) {
|
1881
|
+
return grpc_core::Call::FromC(call)->GetServerAuthority();
|
1882
|
+
}
|
1883
|
+
|
1946
1884
|
const char* grpc_call_error_to_string(grpc_call_error error) {
|
1947
1885
|
switch (error) {
|
1948
1886
|
case GRPC_CALL_ERROR:
|
data/src/core/lib/surface/call.h
CHANGED
@@ -24,13 +24,14 @@
|
|
24
24
|
#include <stddef.h>
|
25
25
|
#include <stdint.h>
|
26
26
|
|
27
|
+
#include "absl/strings/string_view.h"
|
27
28
|
#include "absl/types/optional.h"
|
28
29
|
|
29
30
|
#include <grpc/impl/codegen/compression_types.h>
|
30
31
|
#include <grpc/impl/codegen/grpc_types.h>
|
31
32
|
#include <grpc/support/log.h>
|
32
33
|
|
33
|
-
#include "src/core/lib/channel/
|
34
|
+
#include "src/core/lib/channel/channel_fwd.h"
|
34
35
|
#include "src/core/lib/channel/context.h"
|
35
36
|
#include "src/core/lib/debug/trace.h"
|
36
37
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
@@ -125,6 +126,9 @@ grpc_compression_algorithm grpc_call_compression_for_level(
|
|
125
126
|
Move to surface API if requested by other languages. */
|
126
127
|
bool grpc_call_is_trailers_only(const grpc_call* call);
|
127
128
|
|
129
|
+
// Returns the authority for the call, as seen on the server side.
|
130
|
+
absl::string_view grpc_call_server_authority(const grpc_call* call);
|
131
|
+
|
128
132
|
extern grpc_core::TraceFlag grpc_call_error_trace;
|
129
133
|
extern grpc_core::TraceFlag grpc_compression_trace;
|
130
134
|
|
@@ -40,6 +40,7 @@
|
|
40
40
|
#include <grpc/slice.h>
|
41
41
|
|
42
42
|
#include "src/core/lib/channel/channel_args.h"
|
43
|
+
#include "src/core/lib/channel/channel_fwd.h"
|
43
44
|
#include "src/core/lib/channel/channel_stack.h" // IWYU pragma: keep
|
44
45
|
#include "src/core/lib/channel/channel_stack_builder.h"
|
45
46
|
#include "src/core/lib/channel/channelz.h"
|
@@ -53,6 +54,7 @@
|
|
53
54
|
#include "src/core/lib/resource_quota/memory_quota.h"
|
54
55
|
#include "src/core/lib/slice/slice.h"
|
55
56
|
#include "src/core/lib/surface/channel_stack_type.h"
|
57
|
+
#include "src/core/lib/transport/transport_fwd.h"
|
56
58
|
|
57
59
|
/** The same as grpc_channel_destroy, but doesn't create an ExecCtx, and so
|
58
60
|
* is safe to use from within core. */
|
@@ -22,8 +22,8 @@
|
|
22
22
|
#include <grpc/support/alloc.h>
|
23
23
|
#include <grpc/support/log.h>
|
24
24
|
|
25
|
+
#include "src/core/lib/channel/channel_fwd.h"
|
25
26
|
#include "src/core/lib/channel/channel_stack.h"
|
26
|
-
#include "src/core/lib/channel/channel_stack_builder.h"
|
27
27
|
#include "src/core/lib/debug/trace.h"
|
28
28
|
#include "src/core/lib/iomgr/closure.h"
|
29
29
|
#include "src/core/lib/iomgr/error.h"
|
@@ -29,6 +29,7 @@
|
|
29
29
|
#include <utility>
|
30
30
|
#include <vector>
|
31
31
|
|
32
|
+
#include "absl/status/status.h"
|
32
33
|
#include "absl/strings/str_format.h"
|
33
34
|
#include "absl/strings/str_join.h"
|
34
35
|
|
@@ -695,20 +696,20 @@ static void cq_end_op_for_next(
|
|
695
696
|
|
696
697
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
|
697
698
|
(GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
698
|
-
error
|
699
|
+
!GRPC_ERROR_IS_NONE(error))) {
|
699
700
|
std::string errmsg = grpc_error_std_string(error);
|
700
701
|
GRPC_API_TRACE(
|
701
702
|
"cq_end_op_for_next(cq=%p, tag=%p, error=%s, "
|
702
703
|
"done=%p, done_arg=%p, storage=%p)",
|
703
704
|
6, (cq, tag, errmsg.c_str(), done, done_arg, storage));
|
704
705
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
705
|
-
error
|
706
|
+
!GRPC_ERROR_IS_NONE(error)) {
|
706
707
|
gpr_log(GPR_INFO, "Operation failed: tag=%p, error=%s", tag,
|
707
708
|
errmsg.c_str());
|
708
709
|
}
|
709
710
|
}
|
710
711
|
cq_next_data* cqd = static_cast<cq_next_data*> DATA_FROM_CQ(cq);
|
711
|
-
int is_success = (error
|
712
|
+
int is_success = (GRPC_ERROR_IS_NONE(error));
|
712
713
|
|
713
714
|
storage->tag = tag;
|
714
715
|
storage->done = done;
|
@@ -736,7 +737,7 @@ static void cq_end_op_for_next(
|
|
736
737
|
cq->poller_vtable->kick(POLLSET_FROM_CQ(cq), nullptr);
|
737
738
|
gpr_mu_unlock(cq->mu);
|
738
739
|
|
739
|
-
if (kick_error
|
740
|
+
if (!GRPC_ERROR_IS_NONE(kick_error)) {
|
740
741
|
gpr_log(GPR_ERROR, "Kick failed: %s",
|
741
742
|
grpc_error_std_string(kick_error).c_str());
|
742
743
|
GRPC_ERROR_UNREF(kick_error);
|
@@ -772,18 +773,18 @@ static void cq_end_op_for_pluck(
|
|
772
773
|
GPR_TIMER_SCOPE("cq_end_op_for_pluck", 0);
|
773
774
|
|
774
775
|
cq_pluck_data* cqd = static_cast<cq_pluck_data*> DATA_FROM_CQ(cq);
|
775
|
-
int is_success = (error
|
776
|
+
int is_success = (GRPC_ERROR_IS_NONE(error));
|
776
777
|
|
777
778
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
|
778
779
|
(GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
779
|
-
error
|
780
|
+
!GRPC_ERROR_IS_NONE(error))) {
|
780
781
|
std::string errmsg = grpc_error_std_string(error).c_str();
|
781
782
|
GRPC_API_TRACE(
|
782
783
|
"cq_end_op_for_pluck(cq=%p, tag=%p, error=%s, "
|
783
784
|
"done=%p, done_arg=%p, storage=%p)",
|
784
785
|
6, (cq, tag, errmsg.c_str(), done, done_arg, storage));
|
785
786
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
786
|
-
error
|
787
|
+
!GRPC_ERROR_IS_NONE(error)) {
|
787
788
|
gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag,
|
788
789
|
errmsg.c_str());
|
789
790
|
}
|
@@ -819,7 +820,7 @@ static void cq_end_op_for_pluck(
|
|
819
820
|
grpc_error_handle kick_error =
|
820
821
|
cq->poller_vtable->kick(POLLSET_FROM_CQ(cq), pluck_worker);
|
821
822
|
gpr_mu_unlock(cq->mu);
|
822
|
-
if (kick_error
|
823
|
+
if (!GRPC_ERROR_IS_NONE(kick_error)) {
|
823
824
|
gpr_log(GPR_ERROR, "Kick failed: %s",
|
824
825
|
grpc_error_std_string(kick_error).c_str());
|
825
826
|
GRPC_ERROR_UNREF(kick_error);
|
@@ -831,7 +832,7 @@ static void cq_end_op_for_pluck(
|
|
831
832
|
|
832
833
|
static void functor_callback(void* arg, grpc_error_handle error) {
|
833
834
|
auto* functor = static_cast<grpc_completion_queue_functor*>(arg);
|
834
|
-
functor->functor_run(functor, error
|
835
|
+
functor->functor_run(functor, GRPC_ERROR_IS_NONE(error));
|
835
836
|
}
|
836
837
|
|
837
838
|
/* Complete an event on a completion queue of type GRPC_CQ_CALLBACK */
|
@@ -845,14 +846,14 @@ static void cq_end_op_for_callback(
|
|
845
846
|
|
846
847
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
|
847
848
|
(GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
848
|
-
error
|
849
|
+
!GRPC_ERROR_IS_NONE(error))) {
|
849
850
|
std::string errmsg = grpc_error_std_string(error);
|
850
851
|
GRPC_API_TRACE(
|
851
852
|
"cq_end_op_for_callback(cq=%p, tag=%p, error=%s, "
|
852
853
|
"done=%p, done_arg=%p, storage=%p)",
|
853
854
|
6, (cq, tag, errmsg.c_str(), done, done_arg, storage));
|
854
855
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
|
855
|
-
error
|
856
|
+
!GRPC_ERROR_IS_NONE(error)) {
|
856
857
|
gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag,
|
857
858
|
errmsg.c_str());
|
858
859
|
}
|
@@ -879,7 +880,7 @@ static void cq_end_op_for_callback(
|
|
879
880
|
grpc_core::ApplicationCallbackExecCtx::Available()) ||
|
880
881
|
grpc_iomgr_is_any_background_poller_thread()) {
|
881
882
|
grpc_core::ApplicationCallbackExecCtx::Enqueue(functor,
|
882
|
-
(error
|
883
|
+
(GRPC_ERROR_IS_NONE(error)));
|
883
884
|
GRPC_ERROR_UNREF(error);
|
884
885
|
return;
|
885
886
|
}
|
@@ -1056,7 +1057,7 @@ static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
|
|
1056
1057
|
POLLSET_FROM_CQ(cq), nullptr, iteration_deadline);
|
1057
1058
|
gpr_mu_unlock(cq->mu);
|
1058
1059
|
|
1059
|
-
if (err
|
1060
|
+
if (!GRPC_ERROR_IS_NONE(err)) {
|
1060
1061
|
gpr_log(GPR_ERROR, "Completion queue next failed: %s",
|
1061
1062
|
grpc_error_std_string(err).c_str());
|
1062
1063
|
GRPC_ERROR_UNREF(err);
|
@@ -1301,7 +1302,7 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
|
|
1301
1302
|
cq->num_polls++;
|
1302
1303
|
grpc_error_handle err =
|
1303
1304
|
cq->poller_vtable->work(POLLSET_FROM_CQ(cq), &worker, deadline_millis);
|
1304
|
-
if (err
|
1305
|
+
if (!GRPC_ERROR_IS_NONE(err)) {
|
1305
1306
|
del_plucker(cq, tag, &worker);
|
1306
1307
|
gpr_mu_unlock(cq->mu);
|
1307
1308
|
gpr_log(GPR_ERROR, "Completion queue pluck failed: %s",
|
@@ -41,7 +41,8 @@ extern grpc_core::DebugOnlyTraceFlag grpc_trace_pending_tags;
|
|
41
41
|
extern grpc_core::DebugOnlyTraceFlag grpc_trace_cq_refcount;
|
42
42
|
|
43
43
|
typedef struct grpc_cq_completion {
|
44
|
-
grpc_core::ManualConstructor<
|
44
|
+
grpc_core::ManualConstructor<
|
45
|
+
grpc_core::MultiProducerSingleConsumerQueue::Node>
|
45
46
|
node;
|
46
47
|
|
47
48
|
/** user supplied tag */
|
@@ -186,7 +186,6 @@ void grpc_shutdown_internal_locked(void)
|
|
186
186
|
grpc_iomgr_shutdown();
|
187
187
|
gpr_timers_global_destroy();
|
188
188
|
grpc_tracer_shutdown();
|
189
|
-
grpc_stats_shutdown();
|
190
189
|
grpc_core::Fork::GlobalShutdown();
|
191
190
|
}
|
192
191
|
grpc_core::ApplicationCallbackExecCtx::GlobalShutdown();
|
@@ -33,7 +33,7 @@
|
|
33
33
|
|
34
34
|
#include "src/core/lib/channel/channel_args.h"
|
35
35
|
#include "src/core/lib/channel/channel_args_preconditioning.h"
|
36
|
-
#include "src/core/lib/channel/
|
36
|
+
#include "src/core/lib/channel/channel_stack.h"
|
37
37
|
#include "src/core/lib/channel/promise_based_filter.h"
|
38
38
|
#include "src/core/lib/config/core_configuration.h"
|
39
39
|
#include "src/core/lib/debug/trace.h"
|
@@ -30,7 +30,7 @@
|
|
30
30
|
#include <grpc/impl/codegen/grpc_types.h>
|
31
31
|
|
32
32
|
#include "src/core/lib/channel/channel_args.h"
|
33
|
-
#include "src/core/lib/channel/
|
33
|
+
#include "src/core/lib/channel/channel_fwd.h"
|
34
34
|
#include "src/core/lib/channel/promise_based_filter.h"
|
35
35
|
#include "src/core/lib/gprpp/sync.h"
|
36
36
|
#include "src/core/lib/iomgr/error.h"
|