grpc 1.46.2-x86_64-linux → 1.48.0.pre1-x86_64-linux
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 +138 -128
- data/include/grpc/compression.h +1 -1
- data/include/grpc/event_engine/event_engine.h +62 -18
- data/include/grpc/event_engine/memory_allocator.h +0 -15
- data/include/grpc/event_engine/port.h +1 -1
- data/include/grpc/event_engine/slice.h +286 -0
- data/include/grpc/event_engine/slice_buffer.h +118 -0
- data/include/grpc/grpc.h +3 -3
- data/include/grpc/grpc_security.h +11 -0
- 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 +106 -39
- data/include/grpc/impl/codegen/slice.h +1 -1
- data/src/core/ext/filters/census/grpc_context.cc +3 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +35 -35
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +20 -1
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +2 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +17 -12
- data/src/core/ext/filters/client_channel/backend_metric.h +19 -9
- data/src/core/ext/filters/client_channel/backup_poller.cc +8 -6
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -4
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +43 -21
- data/src/core/ext/filters/client_channel/client_channel.cc +111 -82
- data/src/core/ext/filters/client_channel/client_channel.h +43 -8
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +3 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +12 -2
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +5 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +8 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -13
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/config_selector.h +8 -6
- data/src/core/ext/filters/client_channel/connector.h +9 -3
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +19 -6
- data/src/core/ext/filters/client_channel/dynamic_filters.h +12 -2
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +14 -1
- data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -0
- data/src/core/ext/filters/client_channel/http_proxy.cc +10 -2
- data/src/core/ext/filters/client_channel/http_proxy.h +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +12 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +11 -5
- 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 +132 -62
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +6 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +10 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +6 -3
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +407 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1036 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +149 -147
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +176 -85
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +303 -203
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +92 -54
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +240 -214
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +119 -111
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +86 -71
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +101 -25
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +6 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +35 -11
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +36 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +78 -14
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -2
- data/src/core/ext/filters/client_channel/lb_policy.h +18 -31
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +11 -6
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +6 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +1 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +1 -1
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +1 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +26 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +139 -48
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +10 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +6 -6
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +36 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +13 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +39 -7
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +18 -19
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +5 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +61 -16
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +14 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +8 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +17 -12
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +111 -46
- 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 +12 -18
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
- data/src/core/ext/filters/client_channel/retry_filter.cc +75 -36
- data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +12 -13
- data/src/core/ext/filters/client_channel/retry_service_config.h +10 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +1 -8
- data/src/core/ext/filters/client_channel/retry_throttle.h +7 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +24 -6
- data/src/core/ext/filters/client_channel/subchannel.cc +186 -187
- data/src/core/ext/filters/client_channel/subchannel.h +80 -36
- data/src/core/ext/filters/client_channel/subchannel_interface.h +51 -41
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +12 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -3
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +24 -95
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +17 -9
- data/src/core/ext/filters/deadline/deadline_filter.cc +18 -9
- data/src/core/ext/filters/deadline/deadline_filter.h +8 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +22 -6
- 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 +30 -10
- data/src/core/ext/filters/http/client/http_client_filter.h +15 -2
- data/src/core/ext/filters/http/client_authority_filter.cc +16 -20
- data/src/core/ext/filters/http/client_authority_filter.h +5 -2
- data/src/core/ext/filters/http/http_filters_plugin.cc +16 -9
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +65 -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 +45 -107
- 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 +95 -255
- data/src/core/ext/filters/http/server/http_server_filter.h +37 -3
- data/src/core/ext/filters/message_size/message_size_filter.cc +45 -41
- data/src/core/ext/filters/message_size/message_size_filter.h +15 -2
- data/src/core/ext/filters/rbac/rbac_filter.cc +15 -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 +104 -138
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +58 -29
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -0
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +260 -491
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +6 -1
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -0
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +145 -261
- data/src/core/ext/transport/chttp2/transport/flow_control.h +179 -288
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +59 -211
- data/src/core/ext/transport/chttp2/transport/frame_data.h +13 -36
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -2
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +10 -42
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +10 -12
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +14 -12
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +15 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -13
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +8 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +53 -37
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +38 -21
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +31 -112
- data/src/core/ext/transport/chttp2/transport/parsing.cc +77 -43
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/stream_map.h +1 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +2 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +54 -21
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +93 -86
- 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/upb-generated/xds/service/orca/v3/orca.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +109 -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 +6 -2
- data/src/core/ext/xds/certificate_provider_store.h +10 -1
- 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 +39 -26
- data/src/core/ext/xds/xds_bootstrap.h +11 -11
- data/src/core/ext/xds/xds_certificate_provider.cc +16 -4
- data/src/core/ext/xds/xds_certificate_provider.h +17 -2
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +14 -5
- data/src/core/ext/xds/xds_channel_stack_modifier.h +5 -1
- data/src/core/ext/xds/xds_client.cc +121 -46
- data/src/core/ext/xds/xds_client.h +19 -4
- 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 +126 -25
- data/src/core/ext/xds/xds_cluster.h +12 -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 +10 -8
- 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 +70 -42
- 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 +56 -7
- 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 +60 -26
- data/src/core/lib/address_utils/sockaddr_utils.h +9 -4
- data/src/core/lib/avl/avl.h +6 -4
- data/src/core/lib/backoff/backoff.cc +1 -1
- data/src/core/lib/backoff/backoff.h +1 -1
- data/src/core/lib/channel/call_finalization.h +4 -0
- data/src/core/lib/channel/call_tracer.h +11 -5
- data/src/core/lib/channel/channel_args.cc +41 -22
- data/src/core/lib/channel/channel_args.h +34 -3
- data/src/core/lib/channel/channel_args_preconditioning.cc +4 -3
- data/src/core/lib/channel/channel_args_preconditioning.h +3 -2
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +45 -7
- data/src/core/lib/channel/channel_stack.h +45 -9
- data/src/core/lib/channel/channel_stack_builder.cc +9 -19
- data/src/core/lib/channel/channel_stack_builder.h +17 -32
- data/src/core/lib/channel/channel_stack_builder_impl.cc +38 -43
- data/src/core/lib/channel/channel_stack_builder_impl.h +4 -6
- data/src/core/lib/channel/channel_trace.cc +8 -13
- data/src/core/lib/channel/channel_trace.h +6 -3
- data/src/core/lib/channel/channelz.cc +10 -14
- data/src/core/lib/channel/channelz.h +15 -7
- data/src/core/lib/channel/channelz_registry.cc +11 -19
- data/src/core/lib/channel/channelz_registry.h +10 -9
- data/src/core/lib/channel/connected_channel.cc +22 -31
- data/src/core/lib/channel/connected_channel.h +2 -0
- data/src/core/lib/channel/promise_based_filter.cc +451 -190
- data/src/core/lib/channel/promise_based_filter.h +162 -27
- data/src/core/lib/channel/status_util.cc +2 -0
- data/src/core/lib/channel/status_util.h +0 -3
- data/src/core/lib/compression/compression.cc +6 -1
- data/src/core/lib/compression/compression_internal.cc +48 -16
- data/src/core/lib/compression/compression_internal.h +4 -3
- data/src/core/lib/compression/message_compress.cc +3 -1
- data/src/core/lib/compression/message_compress.h +2 -3
- data/src/core/lib/config/core_configuration.cc +3 -0
- data/src/core/lib/config/core_configuration.h +2 -1
- 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/channel_args_endpoint_config.cc +4 -2
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -2
- data/src/core/lib/event_engine/default_event_engine_factory.cc +8 -2
- data/src/core/lib/event_engine/event_engine.cc +29 -14
- data/src/core/lib/event_engine/event_engine_factory.h +5 -0
- data/src/core/lib/event_engine/handle_containers.h +67 -0
- data/src/core/lib/event_engine/iomgr_engine/iomgr_engine.cc +159 -0
- data/src/core/lib/event_engine/iomgr_engine/iomgr_engine.h +122 -0
- 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/memory_allocator.cc +12 -4
- data/src/core/lib/{iomgr/event_engine → event_engine}/promise.h +27 -9
- data/src/core/lib/event_engine/resolved_address.cc +4 -2
- data/src/core/lib/event_engine/slice.cc +102 -0
- data/src/core/lib/event_engine/slice_buffer.cc +50 -0
- data/src/core/lib/{iomgr/event_engine/pollset.h → event_engine/trace.cc} +3 -10
- data/src/core/lib/{iomgr/endpoint_pair_event_engine.cc → event_engine/trace.h} +12 -14
- data/src/core/lib/gpr/log.cc +5 -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/gpr/tls.h +3 -5
- data/src/core/lib/gprpp/bitset.h +5 -1
- data/src/core/lib/gprpp/chunked_vector.h +4 -0
- data/src/core/lib/gprpp/construct_destruct.h +1 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +1 -4
- data/src/core/lib/gprpp/examine_stack.h +0 -1
- data/src/core/lib/gprpp/fork.cc +3 -6
- data/src/core/lib/gprpp/global_config.h +2 -4
- data/src/core/lib/gprpp/global_config_env.cc +3 -2
- data/src/core/lib/gprpp/global_config_env.h +3 -1
- data/src/core/lib/gprpp/global_config_generic.h +0 -4
- data/src/core/lib/gprpp/host_port.cc +2 -0
- data/src/core/lib/gprpp/manual_constructor.h +0 -68
- data/src/core/lib/gprpp/match.h +2 -0
- data/src/core/lib/gprpp/memory.h +1 -5
- data/src/core/lib/gprpp/orphanable.h +1 -4
- data/src/core/lib/gprpp/ref_counted.h +1 -3
- data/src/core/lib/gprpp/ref_counted_ptr.h +1 -1
- data/src/core/lib/gprpp/stat.h +0 -2
- data/src/core/lib/gprpp/stat_posix.cc +7 -2
- data/src/core/lib/gprpp/status_helper.cc +50 -32
- data/src/core/lib/gprpp/status_helper.h +4 -0
- data/src/core/lib/gprpp/sync.h +3 -1
- data/src/core/lib/gprpp/table.h +10 -0
- data/src/core/lib/gprpp/thd.h +2 -5
- data/src/core/lib/gprpp/thd_posix.cc +4 -2
- data/src/core/lib/gprpp/thd_windows.cc +2 -0
- data/src/core/lib/gprpp/time.cc +16 -0
- data/src/core/lib/gprpp/time.h +10 -1
- data/src/core/lib/gprpp/time_util.cc +4 -0
- data/src/core/lib/gprpp/time_util.h +1 -1
- data/src/core/lib/gprpp/unique_type_name.h +104 -0
- data/src/core/lib/http/format_request.cc +34 -4
- data/src/core/lib/http/format_request.h +3 -1
- data/src/core/lib/http/httpcli.cc +106 -93
- data/src/core/lib/http/httpcli.h +58 -10
- data/src/core/lib/http/httpcli_security_connector.cc +19 -8
- 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.cc +4 -4
- data/src/core/lib/iomgr/endpoint.h +7 -5
- data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -6
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- 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 +55 -96
- data/src/core/lib/iomgr/ev_posix.h +5 -3
- data/src/core/lib/iomgr/exec_ctx.h +1 -2
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/internal_errqueue.cc +38 -47
- data/src/core/lib/iomgr/internal_errqueue.h +1 -6
- data/src/core/lib/iomgr/iomgr.cc +7 -1
- data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc → lib/iomgr/iomgr_fwd.h} +9 -12
- 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/pollset_set.h +1 -2
- data/src/core/lib/iomgr/port.h +25 -6
- data/src/core/lib/iomgr/resolve_address.cc +8 -0
- data/src/core/lib/iomgr/resolve_address.h +21 -14
- data/src/core/lib/iomgr/resolve_address_impl.h +2 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +9 -15
- data/src/core/lib/iomgr/resolve_address_posix.h +5 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -15
- data/src/core/lib/iomgr/resolve_address_windows.h +5 -2
- data/src/core/lib/iomgr/sockaddr.h +2 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +2 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +2 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -2
- 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 +24 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +154 -29
- data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_client_windows.cc +27 -16
- data/src/core/lib/iomgr/tcp_posix.cc +96 -52
- data/src/core/lib/iomgr/tcp_server_posix.cc +33 -19
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +41 -38
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -6
- data/src/core/lib/iomgr/tcp_server_windows.cc +20 -12
- data/src/core/lib/iomgr/tcp_windows.cc +12 -9
- 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/json/json.h +1 -2
- data/src/core/lib/json/json_reader.cc +9 -1
- data/src/core/lib/json/json_util.cc +7 -0
- data/src/core/lib/json/json_util.h +10 -1
- data/src/core/lib/json/json_writer.cc +6 -1
- 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 +1 -2
- data/src/core/lib/promise/activity.h +13 -19
- data/src/core/lib/promise/arena_promise.h +11 -1
- data/src/core/lib/promise/call_push_pull.h +4 -0
- data/src/core/lib/promise/context.h +1 -1
- data/src/core/lib/promise/detail/basic_seq.h +2 -2
- data/src/core/lib/promise/detail/promise_factory.h +0 -1
- data/src/core/lib/promise/latch.h +0 -1
- data/src/core/lib/promise/loop.h +2 -0
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/race.h +0 -1
- data/src/core/lib/promise/seq.h +0 -2
- data/src/core/lib/promise/sleep.cc +38 -31
- data/src/core/lib/promise/sleep.h +32 -22
- data/src/core/lib/promise/try_seq.h +2 -2
- 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 +6 -4
- 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 +17 -3
- data/src/core/lib/resolver/server_address.h +13 -6
- data/src/core/lib/resource_quota/api.cc +14 -1
- data/src/core/lib/resource_quota/api.h +4 -1
- data/src/core/lib/resource_quota/arena.cc +0 -6
- data/src/core/lib/resource_quota/arena.h +1 -2
- data/src/core/lib/resource_quota/memory_quota.cc +62 -62
- data/src/core/lib/resource_quota/memory_quota.h +35 -30
- data/src/core/lib/resource_quota/resource_quota.h +8 -0
- data/src/core/lib/resource_quota/thread_quota.cc +2 -0
- data/src/core/lib/resource_quota/thread_quota.h +4 -0
- 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 +15 -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 +12 -4
- data/src/core/lib/security/credentials/alts/alts_credentials.h +8 -3
- 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 +10 -0
- data/src/core/lib/security/credentials/call_creds_util.h +1 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +7 -1
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +10 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +11 -7
- data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -6
- data/src/core/lib/security/credentials/credentials.cc +4 -8
- data/src/core/lib/security/credentials/credentials.h +27 -18
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +108 -9
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +18 -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 +27 -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 +22 -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 +21 -9
- data/src/core/lib/security/credentials/fake/fake_credentials.h +15 -3
- 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 +51 -24
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +12 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +13 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.h +12 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +12 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +9 -4
- 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 +14 -7
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +16 -2
- 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 +12 -5
- data/src/core/lib/security/credentials/local/local_credentials.h +9 -2
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +36 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +12 -8
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +25 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +17 -4
- 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 +39 -10
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +14 -11
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +35 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +34 -11
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +17 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.h +7 -3
- 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 +20 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.h +19 -5
- 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 +18 -2
- 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 +19 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +19 -7
- 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 +24 -17
- data/src/core/lib/security/transport/secure_endpoint.cc +81 -20
- data/src/core/lib/security/transport/secure_endpoint.h +4 -3
- data/src/core/lib/security/transport/security_handshaker.cc +49 -16
- data/src/core/lib/security/transport/security_handshaker.h +5 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +29 -6
- 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.h +4 -8
- data/src/core/lib/service_config/service_config_call_data.h +6 -2
- data/src/core/lib/service_config/service_config_impl.cc +13 -6
- data/src/core/lib/service_config/service_config_impl.h +9 -4
- data/src/core/lib/service_config/service_config_parser.cc +8 -2
- data/src/core/lib/service_config/service_config_parser.h +7 -0
- data/src/core/lib/slice/b64.cc +1 -1
- data/src/core/lib/slice/b64.h +2 -0
- data/src/core/lib/slice/percent_encoding.cc +4 -1
- data/src/core/lib/slice/percent_encoding.h +0 -6
- data/src/core/lib/slice/slice.cc +2 -1
- data/src/core/lib/slice/slice.h +10 -5
- data/src/core/lib/slice/slice_api.cc +1 -1
- data/src/core/lib/slice/slice_buffer.cc +79 -23
- data/src/core/lib/slice/slice_buffer.h +137 -0
- data/src/core/lib/slice/slice_buffer_api.cc +35 -0
- data/src/core/lib/slice/slice_internal.h +4 -3
- data/src/core/lib/slice/slice_refcount.h +2 -3
- data/src/core/lib/slice/slice_refcount_base.h +2 -3
- data/src/core/lib/slice/slice_string_helpers.cc +0 -16
- data/src/core/lib/slice/slice_string_helpers.h +1 -8
- data/src/core/lib/surface/builtins.cc +7 -2
- data/src/core/lib/surface/byte_buffer.cc +7 -1
- data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
- data/src/core/lib/surface/call.cc +90 -137
- data/src/core/lib/surface/call.h +21 -3
- data/src/core/lib/surface/call_details.cc +4 -4
- data/src/core/lib/surface/call_log_batch.cc +7 -1
- data/src/core/lib/surface/call_test_only.h +4 -1
- data/src/core/lib/surface/channel.cc +179 -242
- data/src/core/lib/surface/channel.h +97 -58
- data/src/core/lib/surface/channel_init.h +2 -0
- data/src/core/lib/surface/channel_ping.cc +8 -2
- data/src/core/lib/surface/channel_stack_type.cc +0 -2
- data/src/core/lib/surface/channel_stack_type.h +0 -2
- data/src/core/lib/surface/completion_queue.cc +29 -20
- data/src/core/lib/surface/completion_queue.h +7 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -0
- data/src/core/lib/surface/completion_queue_factory.h +1 -3
- data/src/core/lib/surface/event_string.cc +1 -7
- data/src/core/lib/surface/event_string.h +1 -1
- data/src/core/lib/surface/init.cc +17 -46
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/lame_client.cc +63 -109
- data/src/core/lib/surface/lame_client.h +41 -3
- data/src/core/lib/surface/metadata_array.cc +2 -0
- data/src/core/lib/surface/server.cc +83 -64
- data/src/core/lib/surface/server.h +42 -9
- data/src/core/lib/surface/validate_metadata.cc +3 -6
- data/src/core/lib/surface/validate_metadata.h +3 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -1
- data/src/core/lib/transport/bdp_estimator.h +2 -3
- data/src/core/lib/transport/connectivity_state.cc +6 -4
- data/src/core/lib/transport/connectivity_state.h +2 -3
- data/src/core/lib/transport/error_utils.cc +16 -8
- data/src/core/lib/transport/error_utils.h +5 -1
- data/src/core/lib/{channel → transport}/handshaker.cc +12 -7
- data/src/core/lib/{channel → transport}/handshaker.h +13 -6
- data/src/core/lib/{channel → transport}/handshaker_factory.h +9 -10
- data/src/core/lib/{channel → transport}/handshaker_registry.cc +5 -1
- data/src/core/lib/{channel → transport}/handshaker_registry.h +5 -4
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.cc +28 -14
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.h +3 -3
- data/src/core/lib/transport/metadata_batch.cc +287 -0
- data/src/core/lib/transport/metadata_batch.h +133 -264
- data/src/core/lib/transport/parsed_metadata.cc +2 -0
- data/src/core/lib/transport/parsed_metadata.h +10 -3
- data/src/core/lib/transport/status_conversion.cc +2 -0
- data/src/core/lib/transport/status_conversion.h +2 -2
- data/src/core/lib/transport/tcp_connect_handshaker.cc +253 -0
- data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
- data/src/core/lib/transport/timeout_encoding.cc +2 -6
- data/src/core/lib/transport/timeout_encoding.h +5 -1
- data/src/core/lib/transport/transport.cc +18 -20
- data/src/core/lib/transport/transport.h +48 -16
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +11 -0
- data/src/core/lib/transport/transport_op_string.cc +17 -18
- data/src/core/lib/uri/uri_parser.cc +11 -3
- data/src/core/lib/uri/uri_parser.h +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +11 -0
- 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/session_cache/ssl_session.h +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -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 +50 -19
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/lib/grpc/2.5/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.6/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/2.7/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.0/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/errors.rb +1 -1
- data/src/ruby/lib/grpc/grpc_c.so +0 -0
- 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 +510 -0
- 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 +69 -38
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +0 -31
- data/src/core/lib/event_engine/sockaddr.cc +0 -40
- data/src/core/lib/event_engine/sockaddr.h +0 -44
- data/src/core/lib/gprpp/capture.h +0 -76
- data/src/core/lib/iomgr/event_engine/closure.cc +0 -77
- data/src/core/lib/iomgr/event_engine/closure.h +0 -42
- data/src/core/lib/iomgr/event_engine/endpoint.cc +0 -172
- data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
- data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -85
- data/src/core/lib/iomgr/event_engine/pollset.cc +0 -87
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +0 -47
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +0 -37
- data/src/core/lib/iomgr/event_engine/resolver.cc +0 -133
- data/src/core/lib/iomgr/event_engine/resolver.h +0 -56
- data/src/core/lib/iomgr/event_engine/tcp.cc +0 -296
- data/src/core/lib/iomgr/event_engine/timer.cc +0 -62
- data/src/core/lib/slice/slice_split.cc +0 -100
- data/src/core/lib/slice/slice_split.h +0 -40
- data/src/core/lib/transport/byte_stream.cc +0 -164
- data/src/core/lib/transport/byte_stream.h +0 -166
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
data/src/core/lib/http/httpcli.h
CHANGED
@@ -23,18 +23,34 @@
|
|
23
23
|
|
24
24
|
#include <stddef.h>
|
25
25
|
|
26
|
-
#include <
|
26
|
+
#include <functional>
|
27
|
+
#include <vector>
|
27
28
|
|
28
|
-
#include "
|
29
|
+
#include "absl/base/thread_annotations.h"
|
30
|
+
#include "absl/status/statusor.h"
|
31
|
+
#include "absl/types/optional.h"
|
32
|
+
|
33
|
+
#include <grpc/grpc.h>
|
34
|
+
#include <grpc/impl/codegen/grpc_types.h>
|
35
|
+
#include <grpc/slice.h>
|
36
|
+
|
37
|
+
#include "src/core/lib/gprpp/debug_location.h"
|
29
38
|
#include "src/core/lib/gprpp/orphanable.h"
|
39
|
+
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
40
|
+
#include "src/core/lib/gprpp/sync.h"
|
41
|
+
#include "src/core/lib/gprpp/time.h"
|
30
42
|
#include "src/core/lib/http/parser.h"
|
43
|
+
#include "src/core/lib/iomgr/closure.h"
|
31
44
|
#include "src/core/lib/iomgr/endpoint.h"
|
45
|
+
#include "src/core/lib/iomgr/error.h"
|
46
|
+
#include "src/core/lib/iomgr/exec_ctx.h"
|
47
|
+
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
32
48
|
#include "src/core/lib/iomgr/iomgr_internal.h"
|
33
49
|
#include "src/core/lib/iomgr/polling_entity.h"
|
34
|
-
#include "src/core/lib/iomgr/pollset_set.h"
|
35
50
|
#include "src/core/lib/iomgr/resolve_address.h"
|
51
|
+
#include "src/core/lib/iomgr/resolved_address.h"
|
36
52
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
37
|
-
#include "src/core/lib/
|
53
|
+
#include "src/core/lib/transport/handshaker.h"
|
38
54
|
#include "src/core/lib/uri/uri_parser.h"
|
39
55
|
|
40
56
|
/* User agent this library reports */
|
@@ -50,6 +66,10 @@ typedef int (*grpc_httpcli_post_override)(
|
|
50
66
|
const grpc_http_request* request, const char* host, const char* path,
|
51
67
|
const char* body_bytes, size_t body_size, grpc_core::Timestamp deadline,
|
52
68
|
grpc_closure* on_complete, grpc_http_response* response);
|
69
|
+
typedef int (*grpc_httpcli_put_override)(
|
70
|
+
const grpc_http_request* request, const char* host, const char* path,
|
71
|
+
const char* body_bytes, size_t body_size, grpc_core::Timestamp deadline,
|
72
|
+
grpc_closure* on_complete, grpc_http_response* response);
|
53
73
|
|
54
74
|
namespace grpc_core {
|
55
75
|
|
@@ -112,6 +132,32 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
|
|
112
132
|
RefCountedPtr<grpc_channel_credentials> channel_creds)
|
113
133
|
GRPC_MUST_USE_RESULT;
|
114
134
|
|
135
|
+
// Asynchronously perform a HTTP PUT.
|
136
|
+
// 'uri' is the target to make the request to. The scheme field is used to
|
137
|
+
// determine the port number. The authority field is the target host. The
|
138
|
+
// path field determines the path of the request. No other fields are used.
|
139
|
+
// 'args' are optional channel args for the request.
|
140
|
+
// 'pollent' indicates a grpc_polling_entity that is interested in the result
|
141
|
+
// of the post - work on this entity may be used to progress the post
|
142
|
+
// operation
|
143
|
+
// 'request' contains request parameters - these are caller owned and can be
|
144
|
+
// destroyed once the call returns
|
145
|
+
// 'deadline' contains a deadline for the request (or gpr_inf_future)
|
146
|
+
// 'on_done' is a callback to report results to
|
147
|
+
// 'channel_creds' are used to configurably secure the connection.
|
148
|
+
// For insecure requests, use grpc_insecure_credentials_create.
|
149
|
+
// For secure requests, use CreateHttpRequestSSLCredentials().
|
150
|
+
// nullptr is treated as insecure credentials.
|
151
|
+
// TODO(apolcyn): disallow nullptr as a value after unsecure builds
|
152
|
+
// are removed.
|
153
|
+
// Does not support ?var1=val1&var2=val2 in the path.
|
154
|
+
static OrphanablePtr<HttpRequest> Put(
|
155
|
+
URI uri, const grpc_channel_args* args, grpc_polling_entity* pollent,
|
156
|
+
const grpc_http_request* request, Timestamp deadline,
|
157
|
+
grpc_closure* on_done, grpc_http_response* response,
|
158
|
+
RefCountedPtr<grpc_channel_credentials> channel_creds)
|
159
|
+
GRPC_MUST_USE_RESULT;
|
160
|
+
|
115
161
|
HttpRequest(URI uri, const grpc_slice& request_text,
|
116
162
|
grpc_http_response* response, Timestamp deadline,
|
117
163
|
const grpc_channel_args* channel_args, grpc_closure* on_done,
|
@@ -126,7 +172,8 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
|
|
126
172
|
void Orphan() override;
|
127
173
|
|
128
174
|
static void SetOverride(grpc_httpcli_get_override get,
|
129
|
-
grpc_httpcli_post_override post
|
175
|
+
grpc_httpcli_post_override post,
|
176
|
+
grpc_httpcli_put_override put);
|
130
177
|
|
131
178
|
static void TestOnlySetOnHandshakeDoneIntercept(
|
132
179
|
void (*intercept)(HttpRequest* req));
|
@@ -141,7 +188,8 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
|
|
141
188
|
|
142
189
|
void DoRead() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
|
143
190
|
Ref().release(); // ref held by pending read
|
144
|
-
grpc_endpoint_read(ep_, &incoming_, &on_read_, /*urgent=*/true
|
191
|
+
grpc_endpoint_read(ep_, &incoming_, &on_read_, /*urgent=*/true,
|
192
|
+
/*min_progress_size=*/1);
|
145
193
|
}
|
146
194
|
|
147
195
|
static void OnRead(void* user_data, grpc_error_handle error) {
|
@@ -179,7 +227,8 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
|
|
179
227
|
|
180
228
|
static void OnHandshakeDone(void* arg, grpc_error_handle error);
|
181
229
|
|
182
|
-
|
230
|
+
void DoHandshake(const grpc_resolved_address* addr)
|
231
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
183
232
|
|
184
233
|
void NextAddress(grpc_error_handle error) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
185
234
|
|
@@ -195,7 +244,6 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
|
|
195
244
|
grpc_closure continue_on_read_after_schedule_on_exec_ctx_;
|
196
245
|
grpc_closure done_write_;
|
197
246
|
grpc_closure continue_done_write_after_schedule_on_exec_ctx_;
|
198
|
-
grpc_closure connected_;
|
199
247
|
grpc_endpoint* ep_ = nullptr;
|
200
248
|
grpc_closure* on_done_;
|
201
249
|
ResourceQuotaRefPtr resource_quota_;
|
@@ -206,7 +254,6 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
|
|
206
254
|
RefCountedPtr<HandshakeManager> handshake_mgr_ ABSL_GUARDED_BY(mu_);
|
207
255
|
bool own_endpoint_ ABSL_GUARDED_BY(mu_) = true;
|
208
256
|
bool cancelled_ ABSL_GUARDED_BY(mu_) = false;
|
209
|
-
bool connecting_ ABSL_GUARDED_BY(mu_) = false;
|
210
257
|
grpc_http_parser parser_ ABSL_GUARDED_BY(mu_);
|
211
258
|
std::vector<grpc_resolved_address> addresses_ ABSL_GUARDED_BY(mu_);
|
212
259
|
size_t next_address_ ABSL_GUARDED_BY(mu_) = 0;
|
@@ -215,7 +262,8 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
|
|
215
262
|
grpc_slice_buffer incoming_ ABSL_GUARDED_BY(mu_);
|
216
263
|
grpc_slice_buffer outgoing_ ABSL_GUARDED_BY(mu_);
|
217
264
|
grpc_error_handle overall_error_ ABSL_GUARDED_BY(mu_) = GRPC_ERROR_NONE;
|
218
|
-
|
265
|
+
absl::optional<DNSResolver::TaskHandle> dns_request_handle_
|
266
|
+
ABSL_GUARDED_BY(mu_) = DNSResolver::kNullHandle;
|
219
267
|
};
|
220
268
|
|
221
269
|
} // namespace grpc_core
|
@@ -20,24 +20,36 @@
|
|
20
20
|
|
21
21
|
#include <string.h>
|
22
22
|
|
23
|
+
#include "absl/status/status.h"
|
23
24
|
#include "absl/strings/str_cat.h"
|
24
25
|
#include "absl/strings/string_view.h"
|
25
26
|
|
27
|
+
#include <grpc/grpc.h>
|
28
|
+
#include <grpc/grpc_security.h>
|
29
|
+
#include <grpc/impl/codegen/grpc_types.h>
|
26
30
|
#include <grpc/support/alloc.h>
|
27
31
|
#include <grpc/support/log.h>
|
28
32
|
#include <grpc/support/string_util.h>
|
29
33
|
|
30
34
|
#include "src/core/lib/channel/channel_args.h"
|
31
|
-
#include "src/core/lib/
|
32
|
-
#include "src/core/lib/gpr/string.h"
|
35
|
+
#include "src/core/lib/gprpp/debug_location.h"
|
33
36
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
34
|
-
#include "src/core/lib/
|
37
|
+
#include "src/core/lib/gprpp/unique_type_name.h"
|
38
|
+
#include "src/core/lib/iomgr/closure.h"
|
39
|
+
#include "src/core/lib/iomgr/endpoint.h"
|
40
|
+
#include "src/core/lib/iomgr/error.h"
|
41
|
+
#include "src/core/lib/iomgr/exec_ctx.h"
|
42
|
+
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
43
|
+
#include "src/core/lib/promise/arena_promise.h"
|
44
|
+
#include "src/core/lib/promise/poll.h"
|
35
45
|
#include "src/core/lib/promise/promise.h"
|
36
46
|
#include "src/core/lib/security/credentials/credentials.h"
|
47
|
+
#include "src/core/lib/security/security_connector/security_connector.h"
|
37
48
|
#include "src/core/lib/security/security_connector/ssl_utils.h"
|
38
49
|
#include "src/core/lib/security/transport/security_handshaker.h"
|
39
|
-
#include "src/core/lib/
|
50
|
+
#include "src/core/lib/transport/handshaker.h"
|
40
51
|
#include "src/core/tsi/ssl_transport_security.h"
|
52
|
+
#include "src/core/tsi/transport_security_interface.h"
|
41
53
|
|
42
54
|
namespace grpc_core {
|
43
55
|
|
@@ -178,12 +190,11 @@ class HttpRequestSSLCredentials : public grpc_channel_credentials {
|
|
178
190
|
return Ref();
|
179
191
|
}
|
180
192
|
|
181
|
-
|
182
|
-
|
193
|
+
UniqueTypeName type() const override {
|
194
|
+
static UniqueTypeName::Factory kFactory("HttpRequestSSL");
|
195
|
+
return kFactory.Create();
|
183
196
|
}
|
184
197
|
|
185
|
-
const char* type() const override { return "HttpRequestSSL"; }
|
186
|
-
|
187
198
|
private:
|
188
199
|
int cmp_impl(const grpc_channel_credentials* /* other */) const override {
|
189
200
|
// There's no differentiating factor between two HttpRequestSSLCredentials
|
data/src/core/lib/http/parser.cc
CHANGED
@@ -20,14 +20,13 @@
|
|
20
20
|
|
21
21
|
#include "src/core/lib/http/parser.h"
|
22
22
|
|
23
|
-
#include <stdbool.h>
|
24
23
|
#include <string.h>
|
25
24
|
|
25
|
+
#include <algorithm>
|
26
|
+
|
26
27
|
#include <grpc/support/alloc.h>
|
27
28
|
#include <grpc/support/log.h>
|
28
29
|
|
29
|
-
#include "src/core/lib/gpr/useful.h"
|
30
|
-
|
31
30
|
grpc_core::TraceFlag grpc_http1_trace(false, "http1");
|
32
31
|
|
33
32
|
static char* buf2str(void* buffer, size_t length) {
|
@@ -236,7 +235,7 @@ static grpc_error_handle add_header(grpc_http_parser* parser) {
|
|
236
235
|
(*hdrs)[(*hdr_count)++] = hdr;
|
237
236
|
|
238
237
|
done:
|
239
|
-
if (error
|
238
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
240
239
|
gpr_free(hdr.key);
|
241
240
|
gpr_free(hdr.value);
|
242
241
|
}
|
@@ -249,7 +248,7 @@ static grpc_error_handle finish_line(grpc_http_parser* parser,
|
|
249
248
|
switch (parser->state) {
|
250
249
|
case GRPC_HTTP_FIRST_LINE:
|
251
250
|
err = handle_first_line(parser);
|
252
|
-
if (err
|
251
|
+
if (!GRPC_ERROR_IS_NONE(err)) return err;
|
253
252
|
parser->state = GRPC_HTTP_HEADERS;
|
254
253
|
break;
|
255
254
|
case GRPC_HTTP_HEADERS:
|
@@ -264,7 +263,7 @@ static grpc_error_handle finish_line(grpc_http_parser* parser,
|
|
264
263
|
break;
|
265
264
|
} else {
|
266
265
|
err = add_header(parser);
|
267
|
-
if (err
|
266
|
+
if (!GRPC_ERROR_IS_NONE(err)) {
|
268
267
|
return err;
|
269
268
|
}
|
270
269
|
}
|
@@ -449,7 +448,7 @@ grpc_error_handle grpc_http_parser_parse(grpc_http_parser* parser,
|
|
449
448
|
bool found_body_start = false;
|
450
449
|
grpc_error_handle err =
|
451
450
|
addbyte(parser, GRPC_SLICE_START_PTR(slice)[i], &found_body_start);
|
452
|
-
if (err
|
451
|
+
if (!GRPC_ERROR_IS_NONE(err)) return err;
|
453
452
|
if (found_body_start && start_of_body != nullptr) *start_of_body = i + 1;
|
454
453
|
}
|
455
454
|
return GRPC_ERROR_NONE;
|
data/src/core/lib/http/parser.h
CHANGED
@@ -217,7 +217,7 @@ void CallCombiner::SetNotifyOnCancel(grpc_closure* closure) {
|
|
217
217
|
grpc_error_handle original_error = DecodeCancelStateError(original_state);
|
218
218
|
// If error is set, invoke the cancellation closure immediately.
|
219
219
|
// Otherwise, store the new closure.
|
220
|
-
if (original_error
|
220
|
+
if (!GRPC_ERROR_IS_NONE(original_error)) {
|
221
221
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_call_combiner_trace)) {
|
222
222
|
gpr_log(GPR_INFO,
|
223
223
|
"call_combiner=%p: scheduling notify_on_cancel callback=%p "
|
@@ -263,7 +263,7 @@ void CallCombiner::Cancel(grpc_error_handle error) {
|
|
263
263
|
while (true) {
|
264
264
|
gpr_atm original_state = gpr_atm_acq_load(&cancel_state_);
|
265
265
|
grpc_error_handle original_error = DecodeCancelStateError(original_state);
|
266
|
-
if (original_error
|
266
|
+
if (!GRPC_ERROR_IS_NONE(original_error)) {
|
267
267
|
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
268
268
|
internal::StatusFreeHeapPtr(status_ptr);
|
269
269
|
#else
|
@@ -23,13 +23,13 @@
|
|
23
23
|
grpc_core::TraceFlag grpc_tcp_trace(false, "tcp");
|
24
24
|
|
25
25
|
void grpc_endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
26
|
-
grpc_closure* cb, bool urgent) {
|
27
|
-
ep->vtable->read(ep, slices, cb, urgent);
|
26
|
+
grpc_closure* cb, bool urgent, int min_progress_size) {
|
27
|
+
ep->vtable->read(ep, slices, cb, urgent, min_progress_size);
|
28
28
|
}
|
29
29
|
|
30
30
|
void grpc_endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
31
|
-
grpc_closure* cb, void* arg) {
|
32
|
-
ep->vtable->write(ep, slices, cb, arg);
|
31
|
+
grpc_closure* cb, void* arg, int max_frame_size) {
|
32
|
+
ep->vtable->write(ep, slices, cb, arg, max_frame_size);
|
33
33
|
}
|
34
34
|
|
35
35
|
void grpc_endpoint_add_to_pollset(grpc_endpoint* ep, grpc_pollset* pollset) {
|
@@ -38,9 +38,9 @@ typedef struct grpc_endpoint_vtable grpc_endpoint_vtable;
|
|
38
38
|
|
39
39
|
struct grpc_endpoint_vtable {
|
40
40
|
void (*read)(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
41
|
-
bool urgent);
|
41
|
+
bool urgent, int min_progress_size);
|
42
42
|
void (*write)(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
|
43
|
-
void* arg);
|
43
|
+
void* arg, int max_frame_size);
|
44
44
|
void (*add_to_pollset)(grpc_endpoint* ep, grpc_pollset* pollset);
|
45
45
|
void (*add_to_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
46
46
|
void (*delete_from_pollset_set)(grpc_endpoint* ep, grpc_pollset_set* pollset);
|
@@ -56,9 +56,9 @@ struct grpc_endpoint_vtable {
|
|
56
56
|
Callback success indicates that the endpoint can accept more reads, failure
|
57
57
|
indicates the endpoint is closed.
|
58
58
|
Valid slices may be placed into \a slices even when the callback is
|
59
|
-
invoked with error
|
59
|
+
invoked with !GRPC_ERROR_IS_NONE(error). */
|
60
60
|
void grpc_endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
61
|
-
grpc_closure* cb, bool urgent);
|
61
|
+
grpc_closure* cb, bool urgent, int min_progress_size);
|
62
62
|
|
63
63
|
absl::string_view grpc_endpoint_get_peer(grpc_endpoint* ep);
|
64
64
|
|
@@ -79,9 +79,11 @@ int grpc_endpoint_get_fd(grpc_endpoint* ep);
|
|
79
79
|
it is a valid slice buffer.
|
80
80
|
\a arg is platform specific. It is currently only used by TCP on linux
|
81
81
|
platforms as an argument that would be forwarded to the timestamps callback.
|
82
|
+
\a max_frame_size. A hint to the endpoint implementation to construct
|
83
|
+
frames which do not exceed the specified size.
|
82
84
|
*/
|
83
85
|
void grpc_endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
84
|
-
grpc_closure* cb, void* arg);
|
86
|
+
grpc_closure* cb, void* arg, int max_frame_size);
|
85
87
|
|
86
88
|
/* Causes any pending and future read/write callbacks to run immediately with
|
87
89
|
success==0 */
|
@@ -147,7 +147,7 @@ static void CallWriteCb(CFStreamEndpoint* ep, grpc_error_handle error) {
|
|
147
147
|
static void ReadAction(void* arg, grpc_error_handle error) {
|
148
148
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
149
149
|
GPR_ASSERT(ep->read_cb != nullptr);
|
150
|
-
if (error
|
150
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
151
151
|
grpc_slice_buffer_reset_and_unref_internal(ep->read_slices);
|
152
152
|
CallReadCb(ep, GRPC_ERROR_REF(error));
|
153
153
|
EP_UNREF(ep, "read");
|
@@ -189,7 +189,7 @@ static void ReadAction(void* arg, grpc_error_handle error) {
|
|
189
189
|
static void WriteAction(void* arg, grpc_error_handle error) {
|
190
190
|
CFStreamEndpoint* ep = static_cast<CFStreamEndpoint*>(arg);
|
191
191
|
GPR_ASSERT(ep->write_cb != nullptr);
|
192
|
-
if (error
|
192
|
+
if (!GRPC_ERROR_IS_NONE(error)) {
|
193
193
|
grpc_slice_buffer_reset_and_unref_internal(ep->write_slices);
|
194
194
|
CallWriteCb(ep, GRPC_ERROR_REF(error));
|
195
195
|
EP_UNREF(ep, "write");
|
@@ -237,7 +237,8 @@ static void WriteAction(void* arg, grpc_error_handle error) {
|
|
237
237
|
}
|
238
238
|
|
239
239
|
static void CFStreamRead(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
240
|
-
grpc_closure* cb, bool urgent
|
240
|
+
grpc_closure* cb, bool urgent,
|
241
|
+
int /*min_progress_size*/) {
|
241
242
|
CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
|
242
243
|
if (grpc_tcp_trace.enabled()) {
|
243
244
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p read (%p, %p) length:%zu", ep_impl,
|
@@ -254,7 +255,7 @@ static void CFStreamRead(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
|
254
255
|
}
|
255
256
|
|
256
257
|
static void CFStreamWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
|
257
|
-
grpc_closure* cb, void* arg) {
|
258
|
+
grpc_closure* cb, void* arg, int /*max_frame_size*/) {
|
258
259
|
CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
|
259
260
|
if (grpc_tcp_trace.enabled()) {
|
260
261
|
gpr_log(GPR_DEBUG, "CFStream endpoint:%p write (%p, %p) length:%zu",
|
@@ -351,11 +352,13 @@ grpc_endpoint* grpc_cfstream_endpoint_create(CFReadStreamRef read_stream,
|
|
351
352
|
if (native_handle) {
|
352
353
|
CFRelease(native_handle);
|
353
354
|
}
|
355
|
+
absl::StatusOr<std::string> addr_uri;
|
354
356
|
if (getsockname(sockfd, reinterpret_cast<sockaddr*>(resolved_local_addr.addr),
|
355
|
-
&resolved_local_addr.len) < 0
|
357
|
+
&resolved_local_addr.len) < 0 ||
|
358
|
+
!(addr_uri = grpc_sockaddr_to_uri(&resolved_local_addr)).ok()) {
|
356
359
|
ep_impl->local_address = "";
|
357
360
|
} else {
|
358
|
-
ep_impl->local_address =
|
361
|
+
ep_impl->local_address = addr_uri.value();
|
359
362
|
}
|
360
363
|
ep_impl->read_cb = nil;
|
361
364
|
ep_impl->write_cb = nil;
|
@@ -62,7 +62,8 @@ grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(const char* name,
|
|
62
62
|
std::string final_name = absl::StrCat(name, ":client");
|
63
63
|
const grpc_channel_args* new_args = grpc_core::CoreConfiguration::Get()
|
64
64
|
.channel_args_preconditioning()
|
65
|
-
.PreconditionChannelArgs(args)
|
65
|
+
.PreconditionChannelArgs(args)
|
66
|
+
.ToC();
|
66
67
|
p.client = grpc_tcp_create(grpc_fd_create(sv[1], final_name.c_str(), false),
|
67
68
|
new_args, "socketpair-server");
|
68
69
|
final_name = absl::StrCat(name, ":server");
|
data/src/core/lib/iomgr/error.cc
CHANGED
@@ -71,7 +71,7 @@ std::string grpc_error_std_string(absl::Status error) {
|
|
71
71
|
absl::Status grpc_os_error(const grpc_core::DebugLocation& location, int err,
|
72
72
|
const char* call_name) {
|
73
73
|
absl::Status s =
|
74
|
-
StatusCreate(absl::StatusCode::kUnknown,
|
74
|
+
StatusCreate(absl::StatusCode::kUnknown, strerror(err), location, {});
|
75
75
|
grpc_core::StatusSetInt(&s, grpc_core::StatusIntProperty::kErrorNo, err);
|
76
76
|
grpc_core::StatusSetStr(&s, grpc_core::StatusStrProperty::kOsError,
|
77
77
|
strerror(err));
|
@@ -87,6 +87,8 @@ absl::Status grpc_wsa_error(const grpc_core::DebugLocation& location, int err,
|
|
87
87
|
absl::Status s =
|
88
88
|
StatusCreate(absl::StatusCode::kUnavailable, "WSA Error", location, {});
|
89
89
|
StatusSetInt(&s, grpc_core::StatusIntProperty::kWsaError, err);
|
90
|
+
StatusSetInt(&s, grpc_core::StatusIntProperty::kRpcStatus,
|
91
|
+
GRPC_STATUS_UNAVAILABLE);
|
90
92
|
StatusSetStr(&s, grpc_core::StatusStrProperty::kOsError, utf8_message);
|
91
93
|
StatusSetStr(&s, grpc_core::StatusStrProperty::kSyscall, call_name);
|
92
94
|
return s;
|
@@ -95,7 +97,7 @@ absl::Status grpc_wsa_error(const grpc_core::DebugLocation& location, int err,
|
|
95
97
|
|
96
98
|
grpc_error_handle grpc_error_set_int(grpc_error_handle src,
|
97
99
|
grpc_error_ints which, intptr_t value) {
|
98
|
-
if (src
|
100
|
+
if (GRPC_ERROR_IS_NONE(src)) {
|
99
101
|
src = absl::UnknownError("");
|
100
102
|
StatusSetInt(&src, grpc_core::StatusIntProperty::kRpcStatus,
|
101
103
|
GRPC_STATUS_OK);
|
@@ -136,7 +138,7 @@ bool grpc_error_get_int(grpc_error_handle error, grpc_error_ints which,
|
|
136
138
|
grpc_error_handle grpc_error_set_str(grpc_error_handle src,
|
137
139
|
grpc_error_strs which,
|
138
140
|
absl::string_view str) {
|
139
|
-
if (src
|
141
|
+
if (GRPC_ERROR_IS_NONE(src)) {
|
140
142
|
src = absl::UnknownError("");
|
141
143
|
StatusSetInt(&src, grpc_core::StatusIntProperty::kRpcStatus,
|
142
144
|
GRPC_STATUS_OK);
|
@@ -211,7 +213,7 @@ grpc_error_handle grpc_error_add_child(grpc_error_handle src,
|
|
211
213
|
|
212
214
|
bool grpc_log_error(const char* what, grpc_error_handle error, const char* file,
|
213
215
|
int line) {
|
214
|
-
GPR_DEBUG_ASSERT(error
|
216
|
+
GPR_DEBUG_ASSERT(!GRPC_ERROR_IS_NONE(error));
|
215
217
|
gpr_log(file, line, GPR_LOG_SEVERITY_ERROR, "%s: %s", what,
|
216
218
|
grpc_core::StatusToString(error).c_str());
|
217
219
|
return false;
|
@@ -562,7 +564,7 @@ static grpc_error_handle copy_error_and_unref(grpc_error_handle in) {
|
|
562
564
|
grpc_error_handle out;
|
563
565
|
if (grpc_error_is_special(in)) {
|
564
566
|
out = GRPC_ERROR_CREATE_FROM_STATIC_STRING("unknown");
|
565
|
-
if (in
|
567
|
+
if (GRPC_ERROR_IS_NONE(in)) {
|
566
568
|
internal_set_str(&out, GRPC_ERROR_STR_DESCRIPTION,
|
567
569
|
grpc_slice_from_static_string("no error"));
|
568
570
|
internal_set_int(&out, GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_OK);
|
@@ -675,8 +677,8 @@ bool grpc_error_get_str(grpc_error_handle err, grpc_error_strs which,
|
|
675
677
|
|
676
678
|
grpc_error_handle grpc_error_add_child(grpc_error_handle src,
|
677
679
|
grpc_error_handle child) {
|
678
|
-
if (src
|
679
|
-
if (child
|
680
|
+
if (!GRPC_ERROR_IS_NONE(src)) {
|
681
|
+
if (GRPC_ERROR_IS_NONE(child)) {
|
680
682
|
/* \a child is empty. Simply return the ref to \a src */
|
681
683
|
return src;
|
682
684
|
} else if (child != src) {
|
@@ -906,7 +908,7 @@ static char* finish_kvs(kv_pairs* kvs) {
|
|
906
908
|
}
|
907
909
|
|
908
910
|
const char* grpc_error_string(grpc_error_handle err) {
|
909
|
-
if (err
|
911
|
+
if (GRPC_ERROR_IS_NONE(err)) return no_error_string;
|
910
912
|
if (err == GRPC_ERROR_OOM) return oom_error_string;
|
911
913
|
if (err == GRPC_ERROR_CANCELLED) return cancelled_error_string;
|
912
914
|
|
@@ -978,7 +980,7 @@ grpc_error_handle grpc_wsa_error(const char* file, int line, int err,
|
|
978
980
|
|
979
981
|
bool grpc_log_error(const char* what, grpc_error_handle error, const char* file,
|
980
982
|
int line) {
|
981
|
-
GPR_DEBUG_ASSERT(error
|
983
|
+
GPR_DEBUG_ASSERT(!GRPC_ERROR_IS_NONE(error));
|
982
984
|
const char* msg = grpc_error_string(error);
|
983
985
|
gpr_log(file, line, GPR_LOG_SEVERITY_ERROR, "%s: %s", what, msg);
|
984
986
|
GRPC_ERROR_UNREF(error);
|
data/src/core/lib/iomgr/error.h
CHANGED
@@ -161,6 +161,8 @@ void grpc_enable_error_creation();
|
|
161
161
|
#define GRPC_ERROR_REF(err) (err)
|
162
162
|
#define GRPC_ERROR_UNREF(err) (void)(err)
|
163
163
|
|
164
|
+
#define GRPC_ERROR_IS_NONE(err) (err).ok()
|
165
|
+
|
164
166
|
#define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc) \
|
165
167
|
StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
|
166
168
|
#define GRPC_ERROR_CREATE_FROM_COPIED_STRING(desc) \
|
@@ -208,7 +210,7 @@ absl::Status grpc_os_error(const grpc_core::DebugLocation& location, int err,
|
|
208
210
|
const char* call_name) GRPC_MUST_USE_RESULT;
|
209
211
|
|
210
212
|
inline absl::Status grpc_assert_never_ok(absl::Status error) {
|
211
|
-
GPR_ASSERT(error
|
213
|
+
GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
|
212
214
|
return error;
|
213
215
|
}
|
214
216
|
|
@@ -236,6 +238,8 @@ absl::Status grpc_wsa_error(const grpc_core::DebugLocation& location, int err,
|
|
236
238
|
#define GRPC_ERROR_CANCELLED ((grpc_error_handle)4)
|
237
239
|
#define GRPC_ERROR_SPECIAL_MAX GRPC_ERROR_CANCELLED
|
238
240
|
|
241
|
+
#define GRPC_ERROR_IS_NONE(err) ((err) == GRPC_ERROR_NONE)
|
242
|
+
|
239
243
|
inline bool grpc_error_is_special(grpc_error_handle err) {
|
240
244
|
return err <= GRPC_ERROR_SPECIAL_MAX;
|
241
245
|
}
|
@@ -340,7 +344,7 @@ grpc_error_handle grpc_os_error(const char* file, int line, int err,
|
|
340
344
|
const char* call_name) GRPC_MUST_USE_RESULT;
|
341
345
|
|
342
346
|
inline grpc_error_handle grpc_assert_never_ok(grpc_error_handle error) {
|
343
|
-
GPR_ASSERT(error
|
347
|
+
GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
|
344
348
|
return error;
|
345
349
|
}
|
346
350
|
|
@@ -387,8 +391,8 @@ bool grpc_log_error(const char* what, grpc_error_handle error, const char* file,
|
|
387
391
|
int line);
|
388
392
|
inline bool grpc_log_if_error(const char* what, grpc_error_handle error,
|
389
393
|
const char* file, int line) {
|
390
|
-
return error
|
391
|
-
|
394
|
+
return GRPC_ERROR_IS_NONE(error) ? true
|
395
|
+
: grpc_log_error(what, error, file, line);
|
392
396
|
}
|
393
397
|
|
394
398
|
#define GRPC_LOG_IF_ERROR(what, error) \
|
@@ -413,7 +417,7 @@ class AtomicError {
|
|
413
417
|
/// returns get() == GRPC_ERROR_NONE
|
414
418
|
bool ok() {
|
415
419
|
gpr_spinlock_lock(&lock_);
|
416
|
-
bool ret = error_
|
420
|
+
bool ret = GRPC_ERROR_IS_NONE(error_);
|
417
421
|
gpr_spinlock_unlock(&lock_);
|
418
422
|
return ret;
|
419
423
|
}
|