grpc 1.37.1 → 1.39.0
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 +96 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +334 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +91 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +28 -13
- data/include/grpc/impl/codegen/port_platform.h +22 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +630 -3103
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- 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 +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +755 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -54
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +146 -155
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -32
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2449 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +25 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +348 -199
- data/src/core/ext/xds/xds_api.h +21 -12
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/slice_allocator.cc +89 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +67 -46
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +94 -46
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -51,7 +51,7 @@ void grpc_server_add_insecure_channel_from_fd(grpc_server* server,
|
|
51
51
|
grpc_transport* transport = grpc_create_chttp2_transport(
|
52
52
|
server_args, server_endpoint, false /* is_client */);
|
53
53
|
|
54
|
-
|
54
|
+
grpc_error_handle error =
|
55
55
|
core_server->SetupTransport(transport, nullptr, server_args, nullptr);
|
56
56
|
if (error == GRPC_ERROR_NONE) {
|
57
57
|
for (grpc_pollset* pollset : core_server->pollsets()) {
|
@@ -60,7 +60,7 @@ void grpc_server_add_insecure_channel_from_fd(grpc_server* server,
|
|
60
60
|
grpc_chttp2_transport_start_reading(transport, nullptr, nullptr, nullptr);
|
61
61
|
} else {
|
62
62
|
gpr_log(GPR_ERROR, "Failed to create channel: %s",
|
63
|
-
|
63
|
+
grpc_error_std_string(error).c_str());
|
64
64
|
GRPC_ERROR_UNREF(error);
|
65
65
|
grpc_transport_destroy(transport);
|
66
66
|
}
|
@@ -68,8 +68,9 @@ void grpc_server_add_insecure_channel_from_fd(grpc_server* server,
|
|
68
68
|
|
69
69
|
#else // !GPR_SUPPORT_CHANNELS_FROM_FD
|
70
70
|
|
71
|
-
void grpc_server_add_insecure_channel_from_fd(grpc_server* server
|
72
|
-
void* reserved
|
71
|
+
void grpc_server_add_insecure_channel_from_fd(grpc_server* /* server */,
|
72
|
+
void* /* reserved */,
|
73
|
+
int /* fd */) {
|
73
74
|
GPR_ASSERT(0);
|
74
75
|
}
|
75
76
|
|
@@ -40,7 +40,7 @@
|
|
40
40
|
namespace {
|
41
41
|
|
42
42
|
grpc_channel_args* ModifyArgsForConnection(grpc_channel_args* args,
|
43
|
-
|
43
|
+
grpc_error_handle* error) {
|
44
44
|
grpc_server_credentials* server_credentials =
|
45
45
|
grpc_find_server_credentials_in_args(args);
|
46
46
|
if (server_credentials == nullptr) {
|
@@ -69,7 +69,7 @@ grpc_channel_args* ModifyArgsForConnection(grpc_channel_args* args,
|
|
69
69
|
int grpc_server_add_secure_http2_port(grpc_server* server, const char* addr,
|
70
70
|
grpc_server_credentials* creds) {
|
71
71
|
grpc_core::ExecCtx exec_ctx;
|
72
|
-
|
72
|
+
grpc_error_handle err = GRPC_ERROR_NONE;
|
73
73
|
grpc_core::RefCountedPtr<grpc_server_security_connector> sc;
|
74
74
|
int port_num = 0;
|
75
75
|
grpc_channel_args* args = nullptr;
|
@@ -121,8 +121,7 @@ int grpc_server_add_secure_http2_port(grpc_server* server, const char* addr,
|
|
121
121
|
done:
|
122
122
|
sc.reset(DEBUG_LOCATION, "server");
|
123
123
|
if (err != GRPC_ERROR_NONE) {
|
124
|
-
|
125
|
-
gpr_log(GPR_ERROR, "%s", msg);
|
124
|
+
gpr_log(GPR_ERROR, "%s", grpc_error_std_string(err).c_str());
|
126
125
|
|
127
126
|
GRPC_ERROR_UNREF(err);
|
128
127
|
}
|
@@ -100,23 +100,23 @@ grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount(false,
|
|
100
100
|
"chttp2_refcount");
|
101
101
|
|
102
102
|
// forward declarations of various callbacks that we'll build closures around
|
103
|
-
static void write_action_begin_locked(void* t,
|
104
|
-
static void write_action(void* t,
|
105
|
-
static void write_action_end(void* t,
|
106
|
-
static void write_action_end_locked(void* t,
|
103
|
+
static void write_action_begin_locked(void* t, grpc_error_handle error);
|
104
|
+
static void write_action(void* t, grpc_error_handle error);
|
105
|
+
static void write_action_end(void* t, grpc_error_handle error);
|
106
|
+
static void write_action_end_locked(void* t, grpc_error_handle error);
|
107
107
|
|
108
|
-
static void read_action(void* t,
|
109
|
-
static void read_action_locked(void* t,
|
108
|
+
static void read_action(void* t, grpc_error_handle error);
|
109
|
+
static void read_action_locked(void* t, grpc_error_handle error);
|
110
110
|
static void continue_read_action_locked(grpc_chttp2_transport* t);
|
111
111
|
|
112
|
-
static void complete_fetch(void* gs,
|
113
|
-
static void complete_fetch_locked(void* gs,
|
112
|
+
static void complete_fetch(void* gs, grpc_error_handle error);
|
113
|
+
static void complete_fetch_locked(void* gs, grpc_error_handle error);
|
114
114
|
// Set a transport level setting, and push it to our peer
|
115
115
|
static void queue_setting_update(grpc_chttp2_transport* t,
|
116
116
|
grpc_chttp2_setting_id id, uint32_t value);
|
117
117
|
|
118
118
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
119
|
-
|
119
|
+
grpc_error_handle error);
|
120
120
|
|
121
121
|
// Start new streams that have been created if we can
|
122
122
|
static void maybe_start_some_streams(grpc_chttp2_transport* t);
|
@@ -126,40 +126,43 @@ static void connectivity_state_set(grpc_chttp2_transport* t,
|
|
126
126
|
const absl::Status& status,
|
127
127
|
const char* reason);
|
128
128
|
|
129
|
-
static void benign_reclaimer(void* arg,
|
130
|
-
static void destructive_reclaimer(void* arg,
|
131
|
-
static void benign_reclaimer_locked(void* arg,
|
132
|
-
static void destructive_reclaimer_locked(void* arg,
|
129
|
+
static void benign_reclaimer(void* arg, grpc_error_handle error);
|
130
|
+
static void destructive_reclaimer(void* arg, grpc_error_handle error);
|
131
|
+
static void benign_reclaimer_locked(void* arg, grpc_error_handle error);
|
132
|
+
static void destructive_reclaimer_locked(void* arg, grpc_error_handle error);
|
133
133
|
|
134
134
|
static void post_benign_reclaimer(grpc_chttp2_transport* t);
|
135
135
|
static void post_destructive_reclaimer(grpc_chttp2_transport* t);
|
136
136
|
|
137
|
-
static void close_transport_locked(grpc_chttp2_transport* t,
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
static void
|
143
|
-
static void
|
144
|
-
static void
|
145
|
-
static void
|
146
|
-
|
147
|
-
static void
|
137
|
+
static void close_transport_locked(grpc_chttp2_transport* t,
|
138
|
+
grpc_error_handle error);
|
139
|
+
static void end_all_the_calls(grpc_chttp2_transport* t,
|
140
|
+
grpc_error_handle error);
|
141
|
+
|
142
|
+
static void start_bdp_ping(void* tp, grpc_error_handle error);
|
143
|
+
static void finish_bdp_ping(void* tp, grpc_error_handle error);
|
144
|
+
static void start_bdp_ping_locked(void* tp, grpc_error_handle error);
|
145
|
+
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error);
|
146
|
+
static void next_bdp_ping_timer_expired(void* tp, grpc_error_handle error);
|
147
|
+
static void next_bdp_ping_timer_expired_locked(void* tp,
|
148
|
+
grpc_error_handle error);
|
149
|
+
|
150
|
+
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error);
|
148
151
|
static void send_ping_locked(grpc_chttp2_transport* t,
|
149
152
|
grpc_closure* on_initiate, grpc_closure* on_ack);
|
150
|
-
static void retry_initiate_ping_locked(void* tp,
|
153
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error);
|
151
154
|
|
152
155
|
// keepalive-relevant functions
|
153
|
-
static void init_keepalive_ping(void* arg,
|
154
|
-
static void init_keepalive_ping_locked(void* arg,
|
155
|
-
static void start_keepalive_ping(void* arg,
|
156
|
-
static void finish_keepalive_ping(void* arg,
|
157
|
-
static void start_keepalive_ping_locked(void* arg,
|
158
|
-
static void finish_keepalive_ping_locked(void* arg,
|
159
|
-
static void keepalive_watchdog_fired(void* arg,
|
160
|
-
static void keepalive_watchdog_fired_locked(void* arg,
|
156
|
+
static void init_keepalive_ping(void* arg, grpc_error_handle error);
|
157
|
+
static void init_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
158
|
+
static void start_keepalive_ping(void* arg, grpc_error_handle error);
|
159
|
+
static void finish_keepalive_ping(void* arg, grpc_error_handle error);
|
160
|
+
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
161
|
+
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
162
|
+
static void keepalive_watchdog_fired(void* arg, grpc_error_handle error);
|
163
|
+
static void keepalive_watchdog_fired_locked(void* arg, grpc_error_handle error);
|
161
164
|
|
162
|
-
static void reset_byte_stream(void* arg,
|
165
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error);
|
163
166
|
|
164
167
|
// Flow control default enabled. Can be disabled by setting
|
165
168
|
// GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL
|
@@ -203,7 +206,7 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
203
206
|
grpc_slice_buffer_destroy_internal(&outbuf);
|
204
207
|
grpc_chttp2_hpack_compressor_destroy(&hpack_compressor);
|
205
208
|
|
206
|
-
|
209
|
+
grpc_error_handle error =
|
207
210
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed");
|
208
211
|
// ContextList::Execute follows semantics of a callback function and does not
|
209
212
|
// take a ref on error
|
@@ -534,7 +537,7 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
534
537
|
}
|
535
538
|
}
|
536
539
|
|
537
|
-
static void destroy_transport_locked(void* tp,
|
540
|
+
static void destroy_transport_locked(void* tp, grpc_error_handle /*error*/) {
|
538
541
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
539
542
|
t->destroying = 1;
|
540
543
|
close_transport_locked(
|
@@ -552,7 +555,7 @@ static void destroy_transport(grpc_transport* gt) {
|
|
552
555
|
}
|
553
556
|
|
554
557
|
static void close_transport_locked(grpc_chttp2_transport* t,
|
555
|
-
|
558
|
+
grpc_error_handle error) {
|
556
559
|
end_all_the_calls(t, GRPC_ERROR_REF(error));
|
557
560
|
cancel_pings(t, GRPC_ERROR_REF(error));
|
558
561
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
@@ -561,7 +564,7 @@ static void close_transport_locked(grpc_chttp2_transport* t,
|
|
561
564
|
GRPC_STATUS_UNAVAILABLE);
|
562
565
|
}
|
563
566
|
if (t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
564
|
-
if (t->close_transport_on_writes_finished ==
|
567
|
+
if (t->close_transport_on_writes_finished == GRPC_ERROR_NONE) {
|
565
568
|
t->close_transport_on_writes_finished =
|
566
569
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
567
570
|
"Delayed close due to in-progress write");
|
@@ -731,7 +734,7 @@ static int init_stream(grpc_transport* gt, grpc_stream* gs,
|
|
731
734
|
return 0;
|
732
735
|
}
|
733
736
|
|
734
|
-
static void destroy_stream_locked(void* sp,
|
737
|
+
static void destroy_stream_locked(void* sp, grpc_error_handle /*error*/) {
|
735
738
|
GPR_TIMER_SCOPE("destroy_stream", 0);
|
736
739
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(sp);
|
737
740
|
s->~grpc_chttp2_stream();
|
@@ -818,9 +821,9 @@ static void set_write_state(grpc_chttp2_transport* t,
|
|
818
821
|
// from peer while we had some pending writes)
|
819
822
|
if (st == GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
820
823
|
grpc_core::ExecCtx::RunList(DEBUG_LOCATION, &t->run_after_write);
|
821
|
-
if (t->close_transport_on_writes_finished !=
|
822
|
-
|
823
|
-
t->close_transport_on_writes_finished =
|
824
|
+
if (t->close_transport_on_writes_finished != GRPC_ERROR_NONE) {
|
825
|
+
grpc_error_handle err = t->close_transport_on_writes_finished;
|
826
|
+
t->close_transport_on_writes_finished = GRPC_ERROR_NONE;
|
824
827
|
close_transport_locked(t, err);
|
825
828
|
}
|
826
829
|
}
|
@@ -951,7 +954,8 @@ static const char* begin_writing_desc(bool partial) {
|
|
951
954
|
}
|
952
955
|
}
|
953
956
|
|
954
|
-
static void write_action_begin_locked(void* gt,
|
957
|
+
static void write_action_begin_locked(void* gt,
|
958
|
+
grpc_error_handle /*error_ignored*/) {
|
955
959
|
GPR_TIMER_SCOPE("write_action_begin_locked", 0);
|
956
960
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
957
961
|
GPR_ASSERT(t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE);
|
@@ -990,7 +994,7 @@ static void write_action_begin_locked(void* gt, grpc_error* /*error_ignored*/) {
|
|
990
994
|
}
|
991
995
|
}
|
992
996
|
|
993
|
-
static void write_action(void* gt,
|
997
|
+
static void write_action(void* gt, grpc_error_handle /*error*/) {
|
994
998
|
GPR_TIMER_SCOPE("write_action", 0);
|
995
999
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
996
1000
|
void* cl = t->cl;
|
@@ -1002,7 +1006,7 @@ static void write_action(void* gt, grpc_error* /*error*/) {
|
|
1002
1006
|
cl);
|
1003
1007
|
}
|
1004
1008
|
|
1005
|
-
static void write_action_end(void* tp,
|
1009
|
+
static void write_action_end(void* tp, grpc_error_handle error) {
|
1006
1010
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1007
1011
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->write_action_end_locked,
|
1008
1012
|
write_action_end_locked, t, nullptr),
|
@@ -1011,7 +1015,7 @@ static void write_action_end(void* tp, grpc_error* error) {
|
|
1011
1015
|
|
1012
1016
|
// Callback from the grpc_endpoint after bytes have been written by calling
|
1013
1017
|
// sendmsg
|
1014
|
-
static void write_action_end_locked(void* tp,
|
1018
|
+
static void write_action_end_locked(void* tp, grpc_error_handle error) {
|
1015
1019
|
GPR_TIMER_SCOPE("terminate_writing_with_lock", 0);
|
1016
1020
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1017
1021
|
|
@@ -1100,7 +1104,7 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1100
1104
|
// received a GOAWAY with a non NO_ERROR code.
|
1101
1105
|
if (goaway_error != GRPC_HTTP2_NO_ERROR) {
|
1102
1106
|
gpr_log(GPR_INFO, "%s: Got goaway [%d] err=%s", t->peer_string.c_str(),
|
1103
|
-
goaway_error,
|
1107
|
+
goaway_error, grpc_error_std_string(t->goaway_error).c_str());
|
1104
1108
|
}
|
1105
1109
|
absl::Status status = grpc_error_to_absl_status(t->goaway_error);
|
1106
1110
|
// When a client receives a GOAWAY with error code ENHANCE_YOUR_CALM and debug
|
@@ -1206,7 +1210,8 @@ static void null_then_sched_closure(grpc_closure** closure) {
|
|
1206
1210
|
void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
1207
1211
|
grpc_chttp2_stream* /*s*/,
|
1208
1212
|
grpc_closure** pclosure,
|
1209
|
-
|
1213
|
+
grpc_error_handle error,
|
1214
|
+
const char* desc) {
|
1210
1215
|
grpc_closure* closure = *pclosure;
|
1211
1216
|
*pclosure = nullptr;
|
1212
1217
|
if (closure == nullptr) {
|
@@ -1215,7 +1220,6 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1215
1220
|
}
|
1216
1221
|
closure->next_data.scratch -= CLOSURE_BARRIER_FIRST_REF_BIT;
|
1217
1222
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1218
|
-
const char* errstr = grpc_error_string(error);
|
1219
1223
|
gpr_log(
|
1220
1224
|
GPR_INFO,
|
1221
1225
|
"complete_closure_step: t=%p %p refs=%d flags=0x%04x desc=%s err=%s "
|
@@ -1225,7 +1229,8 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1225
1229
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1226
1230
|
static_cast<int>(closure->next_data.scratch %
|
1227
1231
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1228
|
-
desc,
|
1232
|
+
desc, grpc_error_std_string(error).c_str(),
|
1233
|
+
write_state_name(t->write_state));
|
1229
1234
|
}
|
1230
1235
|
if (error != GRPC_ERROR_NONE) {
|
1231
1236
|
if (closure->error_data.error == GRPC_ERROR_NONE) {
|
@@ -1314,7 +1319,8 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1314
1319
|
UINT32_MAX, GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1315
1320
|
::complete_fetch, s,
|
1316
1321
|
grpc_schedule_on_exec_ctx))) {
|
1317
|
-
|
1322
|
+
grpc_error_handle error =
|
1323
|
+
s->fetching_send_message->Pull(&s->fetching_slice);
|
1318
1324
|
if (error != GRPC_ERROR_NONE) {
|
1319
1325
|
s->fetching_send_message.reset();
|
1320
1326
|
grpc_chttp2_cancel_stream(t, s, error);
|
@@ -1325,14 +1331,14 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1325
1331
|
}
|
1326
1332
|
}
|
1327
1333
|
|
1328
|
-
static void complete_fetch(void* gs,
|
1334
|
+
static void complete_fetch(void* gs, grpc_error_handle error) {
|
1329
1335
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1330
1336
|
s->t->combiner->Run(GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1331
1337
|
::complete_fetch_locked, s, nullptr),
|
1332
1338
|
GRPC_ERROR_REF(error));
|
1333
1339
|
}
|
1334
1340
|
|
1335
|
-
static void complete_fetch_locked(void* gs,
|
1341
|
+
static void complete_fetch_locked(void* gs, grpc_error_handle error) {
|
1336
1342
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1337
1343
|
grpc_chttp2_transport* t = s->t;
|
1338
1344
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1362,7 +1368,7 @@ static void log_metadata(const grpc_metadata_batch* md_batch, uint32_t id,
|
|
1362
1368
|
}
|
1363
1369
|
|
1364
1370
|
static void perform_stream_op_locked(void* stream_op,
|
1365
|
-
|
1371
|
+
grpc_error_handle /*error_ignored*/) {
|
1366
1372
|
GPR_TIMER_SCOPE("perform_stream_op_locked", 0);
|
1367
1373
|
|
1368
1374
|
grpc_transport_stream_op_batch* op =
|
@@ -1576,6 +1582,8 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1576
1582
|
GPR_ASSERT(!s->pending_byte_stream);
|
1577
1583
|
s->recv_message_ready = op_payload->recv_message.recv_message_ready;
|
1578
1584
|
s->recv_message = op_payload->recv_message.recv_message;
|
1585
|
+
s->call_failed_before_recv_message =
|
1586
|
+
op_payload->recv_message.call_failed_before_recv_message;
|
1579
1587
|
if (s->id != 0) {
|
1580
1588
|
if (!s->read_closed) {
|
1581
1589
|
before = s->frame_storage.length +
|
@@ -1646,7 +1654,7 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1646
1654
|
GRPC_ERROR_NONE);
|
1647
1655
|
}
|
1648
1656
|
|
1649
|
-
static void cancel_pings(grpc_chttp2_transport* t,
|
1657
|
+
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1650
1658
|
// callback remaining pings: they're not allowed to call into the transport,
|
1651
1659
|
// and maybe they hold resources that need to be freed
|
1652
1660
|
grpc_chttp2_ping_queue* pq = &t->ping_queue;
|
@@ -1713,14 +1721,14 @@ static void send_keepalive_ping_locked(grpc_chttp2_transport* t) {
|
|
1713
1721
|
GRPC_ERROR_NONE);
|
1714
1722
|
}
|
1715
1723
|
|
1716
|
-
void grpc_chttp2_retry_initiate_ping(void* tp,
|
1724
|
+
void grpc_chttp2_retry_initiate_ping(void* tp, grpc_error_handle error) {
|
1717
1725
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1718
1726
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->retry_initiate_ping_locked,
|
1719
1727
|
retry_initiate_ping_locked, t, nullptr),
|
1720
1728
|
GRPC_ERROR_REF(error));
|
1721
1729
|
}
|
1722
1730
|
|
1723
|
-
static void retry_initiate_ping_locked(void* tp,
|
1731
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error) {
|
1724
1732
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1725
1733
|
t->ping_state.is_delayed_ping_timer_set = false;
|
1726
1734
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1743,10 +1751,10 @@ void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id) {
|
|
1743
1751
|
}
|
1744
1752
|
}
|
1745
1753
|
|
1746
|
-
static void send_goaway(grpc_chttp2_transport* t,
|
1754
|
+
static void send_goaway(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1747
1755
|
// We want to log this irrespective of whether http tracing is enabled
|
1748
1756
|
gpr_log(GPR_INFO, "%s: Sending goaway err=%s", t->peer_string.c_str(),
|
1749
|
-
|
1757
|
+
grpc_error_std_string(error).c_str());
|
1750
1758
|
t->sent_goaway_state = GRPC_CHTTP2_GOAWAY_SEND_SCHEDULED;
|
1751
1759
|
grpc_http2_error_code http_error;
|
1752
1760
|
grpc_slice slice;
|
@@ -1784,12 +1792,12 @@ void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t) {
|
|
1784
1792
|
}
|
1785
1793
|
|
1786
1794
|
static void perform_transport_op_locked(void* stream_op,
|
1787
|
-
|
1795
|
+
grpc_error_handle /*error_ignored*/) {
|
1788
1796
|
grpc_transport_op* op = static_cast<grpc_transport_op*>(stream_op);
|
1789
1797
|
grpc_chttp2_transport* t =
|
1790
1798
|
static_cast<grpc_chttp2_transport*>(op->handler_private.extra_arg);
|
1791
1799
|
|
1792
|
-
if (op->goaway_error) {
|
1800
|
+
if (op->goaway_error != GRPC_ERROR_NONE) {
|
1793
1801
|
send_goaway(t, op->goaway_error);
|
1794
1802
|
}
|
1795
1803
|
|
@@ -1864,7 +1872,7 @@ void grpc_chttp2_maybe_complete_recv_initial_metadata(
|
|
1864
1872
|
|
1865
1873
|
void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
1866
1874
|
grpc_chttp2_stream* s) {
|
1867
|
-
|
1875
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1868
1876
|
if (s->recv_message_ready != nullptr) {
|
1869
1877
|
*s->recv_message = nullptr;
|
1870
1878
|
if (s->final_metadata_requested && s->seen_error) {
|
@@ -1941,6 +1949,10 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
|
1941
1949
|
null_then_sched_closure(&s->recv_message_ready);
|
1942
1950
|
} else if (s->published_metadata[1] != GRPC_METADATA_NOT_PUBLISHED) {
|
1943
1951
|
*s->recv_message = nullptr;
|
1952
|
+
if (s->call_failed_before_recv_message != nullptr) {
|
1953
|
+
*s->call_failed_before_recv_message =
|
1954
|
+
(s->published_metadata[1] != GRPC_METADATA_PUBLISHED_AT_CLOSE);
|
1955
|
+
}
|
1944
1956
|
null_then_sched_closure(&s->recv_message_ready);
|
1945
1957
|
}
|
1946
1958
|
GRPC_ERROR_UNREF(error);
|
@@ -2014,7 +2026,7 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
|
2014
2026
|
}
|
2015
2027
|
|
2016
2028
|
static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
2017
|
-
|
2029
|
+
grpc_error_handle error) {
|
2018
2030
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(
|
2019
2031
|
grpc_chttp2_stream_map_delete(&t->stream_map, id));
|
2020
2032
|
GPR_DEBUG_ASSERT(s);
|
@@ -2057,7 +2069,7 @@ static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
|
2057
2069
|
}
|
2058
2070
|
|
2059
2071
|
void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2060
|
-
|
2072
|
+
grpc_error_handle due_to_error) {
|
2061
2073
|
if (!t->is_client && !s->sent_trailing_metadata &&
|
2062
2074
|
grpc_error_has_clear_grpc_status(due_to_error)) {
|
2063
2075
|
close_from_api(t, s, due_to_error);
|
@@ -2081,7 +2093,7 @@ void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2081
2093
|
}
|
2082
2094
|
|
2083
2095
|
void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2084
|
-
|
2096
|
+
grpc_error_handle error) {
|
2085
2097
|
grpc_status_code status;
|
2086
2098
|
grpc_slice slice;
|
2087
2099
|
grpc_error_get_status(error, s->deadline, &status, &slice, nullptr, nullptr);
|
@@ -2118,7 +2130,8 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2118
2130
|
GRPC_ERROR_UNREF(error);
|
2119
2131
|
}
|
2120
2132
|
|
2121
|
-
static void add_error(
|
2133
|
+
static void add_error(grpc_error_handle error, grpc_error_handle* refs,
|
2134
|
+
size_t* nrefs) {
|
2122
2135
|
if (error == GRPC_ERROR_NONE) return;
|
2123
2136
|
for (size_t i = 0; i < *nrefs; i++) {
|
2124
2137
|
if (error == refs[i]) {
|
@@ -2129,14 +2142,15 @@ static void add_error(grpc_error* error, grpc_error** refs, size_t* nrefs) {
|
|
2129
2142
|
++*nrefs;
|
2130
2143
|
}
|
2131
2144
|
|
2132
|
-
static
|
2133
|
-
|
2134
|
-
|
2145
|
+
static grpc_error_handle removal_error(grpc_error_handle extra_error,
|
2146
|
+
grpc_chttp2_stream* s,
|
2147
|
+
const char* main_error_msg) {
|
2148
|
+
grpc_error_handle refs[3];
|
2135
2149
|
size_t nrefs = 0;
|
2136
2150
|
add_error(s->read_closed_error, refs, &nrefs);
|
2137
2151
|
add_error(s->write_closed_error, refs, &nrefs);
|
2138
2152
|
add_error(extra_error, refs, &nrefs);
|
2139
|
-
|
2153
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2140
2154
|
if (nrefs > 0) {
|
2141
2155
|
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(main_error_msg,
|
2142
2156
|
refs, nrefs);
|
@@ -2146,7 +2160,8 @@ static grpc_error* removal_error(grpc_error* extra_error, grpc_chttp2_stream* s,
|
|
2146
2160
|
}
|
2147
2161
|
|
2148
2162
|
static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2149
|
-
grpc_chttp2_write_cb** list,
|
2163
|
+
grpc_chttp2_write_cb** list,
|
2164
|
+
grpc_error_handle error) {
|
2150
2165
|
while (*list) {
|
2151
2166
|
grpc_chttp2_write_cb* cb = *list;
|
2152
2167
|
*list = cb->next;
|
@@ -2159,7 +2174,8 @@ static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2159
2174
|
}
|
2160
2175
|
|
2161
2176
|
void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
2162
|
-
grpc_chttp2_stream* s,
|
2177
|
+
grpc_chttp2_stream* s,
|
2178
|
+
grpc_error_handle error) {
|
2163
2179
|
error =
|
2164
2180
|
removal_error(error, s, "Pending writes failed due to stream closure");
|
2165
2181
|
s->send_initial_metadata = nullptr;
|
@@ -2183,10 +2199,10 @@ void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
|
2183
2199
|
|
2184
2200
|
void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
2185
2201
|
grpc_chttp2_stream* s, int close_reads,
|
2186
|
-
int close_writes,
|
2202
|
+
int close_writes, grpc_error_handle error) {
|
2187
2203
|
if (s->read_closed && s->write_closed) {
|
2188
2204
|
// already closed, but we should still fake the status if needed.
|
2189
|
-
|
2205
|
+
grpc_error_handle overall_error = removal_error(error, s, "Stream removed");
|
2190
2206
|
if (overall_error != GRPC_ERROR_NONE) {
|
2191
2207
|
grpc_chttp2_fake_status(t, s, overall_error);
|
2192
2208
|
}
|
@@ -2207,7 +2223,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2207
2223
|
}
|
2208
2224
|
if (s->read_closed && s->write_closed) {
|
2209
2225
|
became_closed = true;
|
2210
|
-
|
2226
|
+
grpc_error_handle overall_error =
|
2211
2227
|
removal_error(GRPC_ERROR_REF(error), s, "Stream removed");
|
2212
2228
|
if (s->id != 0) {
|
2213
2229
|
remove_stream(t, s->id, GRPC_ERROR_REF(overall_error));
|
@@ -2236,7 +2252,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2236
2252
|
}
|
2237
2253
|
|
2238
2254
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2239
|
-
|
2255
|
+
grpc_error_handle error) {
|
2240
2256
|
grpc_slice hdr;
|
2241
2257
|
grpc_slice status_hdr;
|
2242
2258
|
grpc_slice http_status_hdr;
|
@@ -2394,7 +2410,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2394
2410
|
}
|
2395
2411
|
|
2396
2412
|
struct cancel_stream_cb_args {
|
2397
|
-
|
2413
|
+
grpc_error_handle error;
|
2398
2414
|
grpc_chttp2_transport* t;
|
2399
2415
|
};
|
2400
2416
|
|
@@ -2404,7 +2420,8 @@ static void cancel_stream_cb(void* user_data, uint32_t /*key*/, void* stream) {
|
|
2404
2420
|
grpc_chttp2_cancel_stream(args->t, s, GRPC_ERROR_REF(args->error));
|
2405
2421
|
}
|
2406
2422
|
|
2407
|
-
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2423
|
+
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2424
|
+
grpc_error_handle error) {
|
2408
2425
|
intptr_t http2_error;
|
2409
2426
|
// If there is no explicit grpc or HTTP/2 error, set to UNAVAILABLE on server.
|
2410
2427
|
if (!t->is_client && !grpc_error_has_clear_grpc_status(error) &&
|
@@ -2458,15 +2475,15 @@ void grpc_chttp2_act_on_flowctl_action(
|
|
2458
2475
|
});
|
2459
2476
|
}
|
2460
2477
|
|
2461
|
-
static
|
2478
|
+
static grpc_error_handle try_http_parsing(grpc_chttp2_transport* t) {
|
2462
2479
|
grpc_http_parser parser;
|
2463
2480
|
size_t i = 0;
|
2464
|
-
|
2481
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2465
2482
|
grpc_http_response response;
|
2466
2483
|
|
2467
2484
|
grpc_http_parser_init(&parser, GRPC_HTTP_RESPONSE, &response);
|
2468
2485
|
|
2469
|
-
|
2486
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
2470
2487
|
for (; i < t->read_buffer.count && parse_error == GRPC_ERROR_NONE; i++) {
|
2471
2488
|
parse_error =
|
2472
2489
|
grpc_http_parser_parse(&parser, t->read_buffer.slices[i], nullptr);
|
@@ -2487,34 +2504,34 @@ static grpc_error* try_http_parsing(grpc_chttp2_transport* t) {
|
|
2487
2504
|
return error;
|
2488
2505
|
}
|
2489
2506
|
|
2490
|
-
static void read_action(void* tp,
|
2507
|
+
static void read_action(void* tp, grpc_error_handle error) {
|
2491
2508
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2492
2509
|
t->combiner->Run(
|
2493
2510
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
|
2494
2511
|
GRPC_ERROR_REF(error));
|
2495
2512
|
}
|
2496
2513
|
|
2497
|
-
static void read_action_locked(void* tp,
|
2514
|
+
static void read_action_locked(void* tp, grpc_error_handle error) {
|
2498
2515
|
GPR_TIMER_SCOPE("reading_action_locked", 0);
|
2499
2516
|
|
2500
2517
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2501
2518
|
|
2502
2519
|
GRPC_ERROR_REF(error);
|
2503
2520
|
|
2504
|
-
|
2521
|
+
grpc_error_handle err = error;
|
2505
2522
|
if (err != GRPC_ERROR_NONE) {
|
2506
2523
|
err = grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2507
2524
|
"Endpoint read failed", &err, 1),
|
2508
2525
|
GRPC_ERROR_INT_OCCURRED_DURING_WRITE,
|
2509
2526
|
t->write_state);
|
2510
2527
|
}
|
2511
|
-
GPR_SWAP(
|
2528
|
+
GPR_SWAP(grpc_error_handle, err, error);
|
2512
2529
|
GRPC_ERROR_UNREF(err);
|
2513
2530
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
2514
2531
|
GPR_TIMER_SCOPE("reading_action.parse", 0);
|
2515
2532
|
size_t i = 0;
|
2516
|
-
|
2517
|
-
|
2533
|
+
grpc_error_handle errors[3] = {GRPC_ERROR_REF(error), GRPC_ERROR_NONE,
|
2534
|
+
GRPC_ERROR_NONE};
|
2518
2535
|
for (; i < t->read_buffer.count && errors[1] == GRPC_ERROR_NONE; i++) {
|
2519
2536
|
errors[1] = grpc_chttp2_perform_read(t, t->read_buffer.slices[i]);
|
2520
2537
|
}
|
@@ -2605,18 +2622,18 @@ void schedule_bdp_ping_locked(grpc_chttp2_transport* t) {
|
|
2605
2622
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
|
2606
2623
|
}
|
2607
2624
|
|
2608
|
-
static void start_bdp_ping(void* tp,
|
2625
|
+
static void start_bdp_ping(void* tp, grpc_error_handle error) {
|
2609
2626
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2610
2627
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_bdp_ping_locked,
|
2611
2628
|
start_bdp_ping_locked, t, nullptr),
|
2612
2629
|
GRPC_ERROR_REF(error));
|
2613
2630
|
}
|
2614
2631
|
|
2615
|
-
static void start_bdp_ping_locked(void* tp,
|
2632
|
+
static void start_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2616
2633
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2617
2634
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2618
2635
|
gpr_log(GPR_INFO, "%s: Start BDP ping err=%s", t->peer_string.c_str(),
|
2619
|
-
|
2636
|
+
grpc_error_std_string(error).c_str());
|
2620
2637
|
}
|
2621
2638
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2622
2639
|
return;
|
@@ -2629,18 +2646,18 @@ static void start_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2629
2646
|
t->bdp_ping_started = true;
|
2630
2647
|
}
|
2631
2648
|
|
2632
|
-
static void finish_bdp_ping(void* tp,
|
2649
|
+
static void finish_bdp_ping(void* tp, grpc_error_handle error) {
|
2633
2650
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2634
2651
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked,
|
2635
2652
|
finish_bdp_ping_locked, t, nullptr),
|
2636
2653
|
GRPC_ERROR_REF(error));
|
2637
2654
|
}
|
2638
2655
|
|
2639
|
-
static void finish_bdp_ping_locked(void* tp,
|
2656
|
+
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2640
2657
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2641
2658
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2642
2659
|
gpr_log(GPR_INFO, "%s: Complete BDP ping err=%s", t->peer_string.c_str(),
|
2643
|
-
|
2660
|
+
grpc_error_std_string(error).c_str());
|
2644
2661
|
}
|
2645
2662
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2646
2663
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "bdp_ping");
|
@@ -2666,7 +2683,7 @@ static void finish_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2666
2683
|
&t->next_bdp_ping_timer_expired_locked);
|
2667
2684
|
}
|
2668
2685
|
|
2669
|
-
static void next_bdp_ping_timer_expired(void* tp,
|
2686
|
+
static void next_bdp_ping_timer_expired(void* tp, grpc_error_handle error) {
|
2670
2687
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2671
2688
|
t->combiner->Run(
|
2672
2689
|
GRPC_CLOSURE_INIT(&t->next_bdp_ping_timer_expired_locked,
|
@@ -2674,7 +2691,8 @@ static void next_bdp_ping_timer_expired(void* tp, grpc_error* error) {
|
|
2674
2691
|
GRPC_ERROR_REF(error));
|
2675
2692
|
}
|
2676
2693
|
|
2677
|
-
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2694
|
+
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2695
|
+
grpc_error_handle error) {
|
2678
2696
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2679
2697
|
GPR_ASSERT(t->have_next_bdp_ping_timer);
|
2680
2698
|
t->have_next_bdp_ping_timer = false;
|
@@ -2750,14 +2768,14 @@ void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
|
2750
2768
|
}
|
2751
2769
|
}
|
2752
2770
|
|
2753
|
-
static void init_keepalive_ping(void* arg,
|
2771
|
+
static void init_keepalive_ping(void* arg, grpc_error_handle error) {
|
2754
2772
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2755
2773
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->init_keepalive_ping_locked,
|
2756
2774
|
init_keepalive_ping_locked, t, nullptr),
|
2757
2775
|
GRPC_ERROR_REF(error));
|
2758
2776
|
}
|
2759
2777
|
|
2760
|
-
static void init_keepalive_ping_locked(void* arg,
|
2778
|
+
static void init_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2761
2779
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2762
2780
|
GPR_ASSERT(t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING);
|
2763
2781
|
if (t->destroying || t->closed_with_error != GRPC_ERROR_NONE) {
|
@@ -2790,14 +2808,14 @@ static void init_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2790
2808
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "init keepalive ping");
|
2791
2809
|
}
|
2792
2810
|
|
2793
|
-
static void start_keepalive_ping(void* arg,
|
2811
|
+
static void start_keepalive_ping(void* arg, grpc_error_handle error) {
|
2794
2812
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2795
2813
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_keepalive_ping_locked,
|
2796
2814
|
start_keepalive_ping_locked, t, nullptr),
|
2797
2815
|
GRPC_ERROR_REF(error));
|
2798
2816
|
}
|
2799
2817
|
|
2800
|
-
static void start_keepalive_ping_locked(void* arg,
|
2818
|
+
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2801
2819
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2802
2820
|
if (error != GRPC_ERROR_NONE) {
|
2803
2821
|
return;
|
@@ -2818,14 +2836,14 @@ static void start_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2818
2836
|
t->keepalive_ping_started = true;
|
2819
2837
|
}
|
2820
2838
|
|
2821
|
-
static void finish_keepalive_ping(void* arg,
|
2839
|
+
static void finish_keepalive_ping(void* arg, grpc_error_handle error) {
|
2822
2840
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2823
2841
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked,
|
2824
2842
|
finish_keepalive_ping_locked, t, nullptr),
|
2825
2843
|
GRPC_ERROR_REF(error));
|
2826
2844
|
}
|
2827
2845
|
|
2828
|
-
static void finish_keepalive_ping_locked(void* arg,
|
2846
|
+
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2829
2847
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2830
2848
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2831
2849
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2856,7 +2874,7 @@ static void finish_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2856
2874
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "keepalive ping end");
|
2857
2875
|
}
|
2858
2876
|
|
2859
|
-
static void keepalive_watchdog_fired(void* arg,
|
2877
|
+
static void keepalive_watchdog_fired(void* arg, grpc_error_handle error) {
|
2860
2878
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2861
2879
|
t->combiner->Run(
|
2862
2880
|
GRPC_CLOSURE_INIT(&t->keepalive_watchdog_fired_locked,
|
@@ -2864,7 +2882,8 @@ static void keepalive_watchdog_fired(void* arg, grpc_error* error) {
|
|
2864
2882
|
GRPC_ERROR_REF(error));
|
2865
2883
|
}
|
2866
2884
|
|
2867
|
-
static void keepalive_watchdog_fired_locked(void* arg,
|
2885
|
+
static void keepalive_watchdog_fired_locked(void* arg,
|
2886
|
+
grpc_error_handle error) {
|
2868
2887
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2869
2888
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2870
2889
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2921,7 +2940,7 @@ static void set_pollset_set(grpc_transport* gt, grpc_stream* /*gs*/,
|
|
2921
2940
|
// BYTE STREAM
|
2922
2941
|
//
|
2923
2942
|
|
2924
|
-
static void reset_byte_stream(void* arg,
|
2943
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error) {
|
2925
2944
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(arg);
|
2926
2945
|
s->pending_byte_stream = false;
|
2927
2946
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2952,8 +2971,8 @@ Chttp2IncomingByteStream::Chttp2IncomingByteStream(
|
|
2952
2971
|
stream->byte_stream_error = GRPC_ERROR_NONE;
|
2953
2972
|
}
|
2954
2973
|
|
2955
|
-
void Chttp2IncomingByteStream::OrphanLocked(
|
2956
|
-
|
2974
|
+
void Chttp2IncomingByteStream::OrphanLocked(
|
2975
|
+
void* arg, grpc_error_handle /*error_ignored*/) {
|
2957
2976
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2958
2977
|
grpc_chttp2_stream* s = bs->stream_;
|
2959
2978
|
grpc_chttp2_transport* t = s->t;
|
@@ -2972,7 +2991,7 @@ void Chttp2IncomingByteStream::Orphan() {
|
|
2972
2991
|
}
|
2973
2992
|
|
2974
2993
|
void Chttp2IncomingByteStream::NextLocked(void* arg,
|
2975
|
-
|
2994
|
+
grpc_error_handle /*error_ignored*/) {
|
2976
2995
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2977
2996
|
grpc_chttp2_transport* t = bs->transport_;
|
2978
2997
|
grpc_chttp2_stream* s = bs->stream_;
|
@@ -3042,9 +3061,9 @@ void Chttp2IncomingByteStream::MaybeCreateStreamDecompressionCtx() {
|
|
3042
3061
|
}
|
3043
3062
|
}
|
3044
3063
|
|
3045
|
-
|
3064
|
+
grpc_error_handle Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
3046
3065
|
GPR_TIMER_SCOPE("incoming_byte_stream_pull", 0);
|
3047
|
-
|
3066
|
+
grpc_error_handle error;
|
3048
3067
|
if (stream_->unprocessed_incoming_frames_buffer.length > 0) {
|
3049
3068
|
if (!stream_->unprocessed_incoming_frames_decompressed &&
|
3050
3069
|
stream_->stream_decompression_method !=
|
@@ -3087,7 +3106,7 @@ grpc_error* Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
|
3087
3106
|
return GRPC_ERROR_NONE;
|
3088
3107
|
}
|
3089
3108
|
|
3090
|
-
void Chttp2IncomingByteStream::PublishError(
|
3109
|
+
void Chttp2IncomingByteStream::PublishError(grpc_error_handle error) {
|
3091
3110
|
GPR_ASSERT(error != GRPC_ERROR_NONE);
|
3092
3111
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, stream_->on_next,
|
3093
3112
|
GRPC_ERROR_REF(error));
|
@@ -3097,10 +3116,10 @@ void Chttp2IncomingByteStream::PublishError(grpc_error* error) {
|
|
3097
3116
|
grpc_chttp2_cancel_stream(transport_, stream_, GRPC_ERROR_REF(error));
|
3098
3117
|
}
|
3099
3118
|
|
3100
|
-
|
3101
|
-
|
3119
|
+
grpc_error_handle Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
3120
|
+
grpc_slice* slice_out) {
|
3102
3121
|
if (remaining_bytes_ < GRPC_SLICE_LENGTH(slice)) {
|
3103
|
-
|
3122
|
+
grpc_error_handle error =
|
3104
3123
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Too many bytes in stream");
|
3105
3124
|
transport_->combiner->Run(&stream_->reset_byte_stream,
|
3106
3125
|
GRPC_ERROR_REF(error));
|
@@ -3115,8 +3134,8 @@ grpc_error* Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
|
3115
3134
|
}
|
3116
3135
|
}
|
3117
3136
|
|
3118
|
-
|
3119
|
-
|
3137
|
+
grpc_error_handle Chttp2IncomingByteStream::Finished(grpc_error_handle error,
|
3138
|
+
bool reset_on_error) {
|
3120
3139
|
if (error == GRPC_ERROR_NONE) {
|
3121
3140
|
if (remaining_bytes_ != 0) {
|
3122
3141
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Truncated message");
|
@@ -3130,7 +3149,7 @@ grpc_error* Chttp2IncomingByteStream::Finished(grpc_error* error,
|
|
3130
3149
|
return error;
|
3131
3150
|
}
|
3132
3151
|
|
3133
|
-
void Chttp2IncomingByteStream::Shutdown(
|
3152
|
+
void Chttp2IncomingByteStream::Shutdown(grpc_error_handle error) {
|
3134
3153
|
GRPC_ERROR_UNREF(Finished(error, true /* reset_on_error */));
|
3135
3154
|
}
|
3136
3155
|
|
@@ -3162,14 +3181,14 @@ static void post_destructive_reclaimer(grpc_chttp2_transport* t) {
|
|
3162
3181
|
}
|
3163
3182
|
}
|
3164
3183
|
|
3165
|
-
static void benign_reclaimer(void* arg,
|
3184
|
+
static void benign_reclaimer(void* arg, grpc_error_handle error) {
|
3166
3185
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3167
3186
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->benign_reclaimer_locked,
|
3168
3187
|
benign_reclaimer_locked, t, nullptr),
|
3169
3188
|
GRPC_ERROR_REF(error));
|
3170
3189
|
}
|
3171
3190
|
|
3172
|
-
static void benign_reclaimer_locked(void* arg,
|
3191
|
+
static void benign_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3173
3192
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3174
3193
|
if (error == GRPC_ERROR_NONE &&
|
3175
3194
|
grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
@@ -3199,14 +3218,14 @@ static void benign_reclaimer_locked(void* arg, grpc_error* error) {
|
|
3199
3218
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3200
3219
|
}
|
3201
3220
|
|
3202
|
-
static void destructive_reclaimer(void* arg,
|
3221
|
+
static void destructive_reclaimer(void* arg, grpc_error_handle error) {
|
3203
3222
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3204
3223
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->destructive_reclaimer_locked,
|
3205
3224
|
destructive_reclaimer_locked, t, nullptr),
|
3206
3225
|
GRPC_ERROR_REF(error));
|
3207
3226
|
}
|
3208
3227
|
|
3209
|
-
static void destructive_reclaimer_locked(void* arg,
|
3228
|
+
static void destructive_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3210
3229
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3211
3230
|
size_t n = grpc_chttp2_stream_map_size(&t->stream_map);
|
3212
3231
|
t->destructive_reclaimer_registered = false;
|