grpc 1.37.1 → 1.38.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +64 -58
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +5 -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 +628 -3101
- 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 +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- 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/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/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 +36 -30
- 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 +84 -61
- 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.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
- 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_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_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 +17 -9
- 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 +13 -11
- 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 +43 -28
- 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 +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -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 +16 -15
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -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 +1 -1
- 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 +2 -2
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
- 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 +31 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- 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 +101 -93
- data/src/core/ext/xds/xds_api.h +6 -6
- 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 +3 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -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/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/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- 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 +180 -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_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -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/exec_ctx.cc +4 -4
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- 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 +1 -1
- 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 +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- 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 +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -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/socket_utils_common_posix.cc +22 -20
- 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 +15 -17
- 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 +36 -34
- 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 +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- 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_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/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 +9 -9
- 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/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 +14 -4
- 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 +22 -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 +46 -45
- data/src/core/lib/surface/call.h +2 -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 +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -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 +19 -8
- 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 +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/tsi/alts/crypt/gsec.h +4 -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/rb_grpc_imports.generated.h +1 -1
- 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 +477 -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 +1 -1
- 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/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/err/err.c +87 -80
- 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/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/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- 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 +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- 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/urandom.c +26 -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 +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- 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 +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -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 +39 -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_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- 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_val.c +2 -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/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- 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/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -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 +1 -38
- 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/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- 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/ssl.h +185 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- 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 +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +68 -45
- 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
@@ -83,8 +83,8 @@ inline bool UnderFraction(const uint32_t numerator,
|
|
83
83
|
|
84
84
|
class ChannelData {
|
85
85
|
public:
|
86
|
-
static
|
87
|
-
|
86
|
+
static grpc_error_handle Init(grpc_channel_element* elem,
|
87
|
+
grpc_channel_element_args* args);
|
88
88
|
static void Destroy(grpc_channel_element* elem);
|
89
89
|
|
90
90
|
int index() const { return index_; }
|
@@ -99,8 +99,8 @@ class ChannelData {
|
|
99
99
|
|
100
100
|
class CallData {
|
101
101
|
public:
|
102
|
-
static
|
103
|
-
|
102
|
+
static grpc_error_handle Init(grpc_call_element* elem,
|
103
|
+
const grpc_call_element_args* args);
|
104
104
|
|
105
105
|
static void Destroy(grpc_call_element* elem,
|
106
106
|
const grpc_call_final_info* /*final_info*/,
|
@@ -129,7 +129,7 @@ class CallData {
|
|
129
129
|
// GRPC_ERROR_NONE.
|
130
130
|
// If this call is already been delay injected, skip the active faults
|
131
131
|
// quota check.
|
132
|
-
|
132
|
+
grpc_error_handle MaybeAbort();
|
133
133
|
|
134
134
|
// Delays the stream operations batch.
|
135
135
|
void DelayBatch(grpc_call_element* elem,
|
@@ -144,11 +144,11 @@ class CallData {
|
|
144
144
|
}
|
145
145
|
|
146
146
|
// This is a callback that will be invoked after the delay timer is up.
|
147
|
-
static void ResumeBatch(void* arg,
|
147
|
+
static void ResumeBatch(void* arg, grpc_error_handle error);
|
148
148
|
|
149
149
|
// This is a callback invoked upon completion of recv_trailing_metadata.
|
150
150
|
// Injects the abort_error_ to the recv_trailing_metadata batch if needed.
|
151
|
-
static void HijackedRecvTrailingMetadataReady(void* arg,
|
151
|
+
static void HijackedRecvTrailingMetadataReady(void* arg, grpc_error_handle);
|
152
152
|
|
153
153
|
// Used to track the policy structs that needs to be destroyed in dtor.
|
154
154
|
bool fi_policy_owned_ = false;
|
@@ -166,7 +166,7 @@ class CallData {
|
|
166
166
|
ResumeBatchCanceller* resume_batch_canceller_ ABSL_GUARDED_BY(delay_mu_);
|
167
167
|
grpc_transport_stream_op_batch* delayed_batch_ ABSL_GUARDED_BY(delay_mu_);
|
168
168
|
// Abort states
|
169
|
-
|
169
|
+
grpc_error_handle abort_error_ = GRPC_ERROR_NONE;
|
170
170
|
grpc_closure recv_trailing_metadata_ready_;
|
171
171
|
grpc_closure* original_recv_trailing_metadata_ready_;
|
172
172
|
// Protects the asynchronous delay, resume, and cancellation.
|
@@ -175,8 +175,8 @@ class CallData {
|
|
175
175
|
|
176
176
|
// ChannelData
|
177
177
|
|
178
|
-
|
179
|
-
|
178
|
+
grpc_error_handle ChannelData::Init(grpc_channel_element* elem,
|
179
|
+
grpc_channel_element_args* args) {
|
180
180
|
GPR_ASSERT(elem->filter == &FaultInjectionFilterVtable);
|
181
181
|
new (elem->channel_data) ChannelData(elem, args);
|
182
182
|
return GRPC_ERROR_NONE;
|
@@ -204,7 +204,7 @@ class CallData::ResumeBatchCanceller {
|
|
204
204
|
}
|
205
205
|
|
206
206
|
private:
|
207
|
-
static void Cancel(void* arg,
|
207
|
+
static void Cancel(void* arg, grpc_error_handle error) {
|
208
208
|
auto* self = static_cast<ResumeBatchCanceller*>(arg);
|
209
209
|
auto* chand = static_cast<ChannelData*>(self->elem_->channel_data);
|
210
210
|
auto* calld = static_cast<CallData*>(self->elem_->call_data);
|
@@ -214,7 +214,7 @@ class CallData::ResumeBatchCanceller {
|
|
214
214
|
gpr_log(GPR_INFO,
|
215
215
|
"chand=%p calld=%p: cancelling schdueled pick: "
|
216
216
|
"error=%s self=%p calld->resume_batch_canceller_=%p",
|
217
|
-
chand, calld,
|
217
|
+
chand, calld, grpc_error_std_string(error).c_str(), self,
|
218
218
|
calld->resume_batch_canceller_);
|
219
219
|
}
|
220
220
|
if (error != GRPC_ERROR_NONE && calld->resume_batch_canceller_ == self) {
|
@@ -237,8 +237,8 @@ class CallData::ResumeBatchCanceller {
|
|
237
237
|
|
238
238
|
// CallData
|
239
239
|
|
240
|
-
|
241
|
-
|
240
|
+
grpc_error_handle CallData::Init(grpc_call_element* elem,
|
241
|
+
const grpc_call_element_args* args) {
|
242
242
|
auto* calld = new (elem->call_data) CallData(elem, args);
|
243
243
|
if (calld->fi_policy_ == nullptr) {
|
244
244
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -273,7 +273,7 @@ void CallData::StartTransportStreamOpBatch(
|
|
273
273
|
calld->DelayBatch(elem, batch);
|
274
274
|
return;
|
275
275
|
}
|
276
|
-
|
276
|
+
grpc_error_handle abort_error = calld->MaybeAbort();
|
277
277
|
if (abort_error != GRPC_ERROR_NONE) {
|
278
278
|
calld->abort_error_ = abort_error;
|
279
279
|
grpc_transport_stream_op_batch_finish_with_failure(
|
@@ -414,7 +414,7 @@ bool CallData::MaybeDelay() {
|
|
414
414
|
return false;
|
415
415
|
}
|
416
416
|
|
417
|
-
|
417
|
+
grpc_error_handle CallData::MaybeAbort() {
|
418
418
|
if (abort_request_ && (delay_request_ || HaveActiveFaultsQuota(false))) {
|
419
419
|
return grpc_error_set_int(
|
420
420
|
GRPC_ERROR_CREATE_FROM_COPIED_STRING(fi_policy_->abort_message.c_str()),
|
@@ -434,7 +434,7 @@ void CallData::DelayBatch(grpc_call_element* elem,
|
|
434
434
|
grpc_timer_init(&delay_timer_, resume_time, &batch->handler_private.closure);
|
435
435
|
}
|
436
436
|
|
437
|
-
void CallData::ResumeBatch(void* arg,
|
437
|
+
void CallData::ResumeBatch(void* arg, grpc_error_handle error) {
|
438
438
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
439
439
|
auto* calld = static_cast<CallData*>(elem->call_data);
|
440
440
|
MutexLock lock(&calld->delay_mu_);
|
@@ -462,7 +462,8 @@ void CallData::ResumeBatch(void* arg, grpc_error* error) {
|
|
462
462
|
grpc_call_next_op(elem, calld->delayed_batch_);
|
463
463
|
}
|
464
464
|
|
465
|
-
void CallData::HijackedRecvTrailingMetadataReady(void* arg,
|
465
|
+
void CallData::HijackedRecvTrailingMetadataReady(void* arg,
|
466
|
+
grpc_error_handle error) {
|
466
467
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
467
468
|
auto* calld = static_cast<CallData*>(elem->call_data);
|
468
469
|
if (calld->abort_error_ != GRPC_ERROR_NONE) {
|
@@ -37,12 +37,12 @@ size_t g_fault_injection_parser_index;
|
|
37
37
|
|
38
38
|
std::vector<FaultInjectionMethodParsedConfig::FaultInjectionPolicy>
|
39
39
|
ParseFaultInjectionPolicy(const Json::Array& policies_json_array,
|
40
|
-
std::vector<
|
40
|
+
std::vector<grpc_error_handle>* error_list) {
|
41
41
|
std::vector<FaultInjectionMethodParsedConfig::FaultInjectionPolicy> policies;
|
42
42
|
for (size_t i = 0; i < policies_json_array.size(); i++) {
|
43
43
|
FaultInjectionMethodParsedConfig::FaultInjectionPolicy
|
44
44
|
fault_injection_policy;
|
45
|
-
std::vector<
|
45
|
+
std::vector<grpc_error_handle> sub_error_list;
|
46
46
|
if (policies_json_array[i].type() != Json::Type::OBJECT) {
|
47
47
|
error_list->push_back(GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
48
48
|
absl::StrCat("faultInjectionPolicy index ", i,
|
@@ -135,7 +135,7 @@ ParseFaultInjectionPolicy(const Json::Array& policies_json_array,
|
|
135
135
|
if (!sub_error_list.empty()) {
|
136
136
|
// Can't use GRPC_ERROR_CREATE_FROM_VECTOR() here, because the error
|
137
137
|
// string is not static in this case.
|
138
|
-
|
138
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
139
139
|
absl::StrCat("failed to parse faultInjectionPolicy index ", i)
|
140
140
|
.c_str());
|
141
141
|
for (size_t i = 0; i < sub_error_list.size(); ++i) {
|
@@ -152,7 +152,7 @@ ParseFaultInjectionPolicy(const Json::Array& policies_json_array,
|
|
152
152
|
|
153
153
|
std::unique_ptr<ServiceConfigParser::ParsedConfig>
|
154
154
|
FaultInjectionServiceConfigParser::ParsePerMethodParams(
|
155
|
-
const grpc_channel_args* args, const Json& json,
|
155
|
+
const grpc_channel_args* args, const Json& json, grpc_error_handle* error) {
|
156
156
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
157
157
|
// Only parse fault injection policy if the following channel arg is present.
|
158
158
|
if (!grpc_channel_args_find_bool(
|
@@ -162,7 +162,7 @@ FaultInjectionServiceConfigParser::ParsePerMethodParams(
|
|
162
162
|
// Parse fault injection policy from given Json
|
163
163
|
std::vector<FaultInjectionMethodParsedConfig::FaultInjectionPolicy>
|
164
164
|
fault_injection_policies;
|
165
|
-
std::vector<
|
165
|
+
std::vector<grpc_error_handle> error_list;
|
166
166
|
const Json::Array* policies_json_array;
|
167
167
|
if (ParseJsonObjectField(json.object_value(), "faultInjectionPolicy",
|
168
168
|
&policies_json_array, &error_list)) {
|
@@ -73,7 +73,7 @@ class FaultInjectionServiceConfigParser : public ServiceConfigParser::Parser {
|
|
73
73
|
// Parses the per-method service config for fault injection filter.
|
74
74
|
std::unique_ptr<ServiceConfigParser::ParsedConfig> ParsePerMethodParams(
|
75
75
|
const grpc_channel_args* args, const Json& json,
|
76
|
-
|
76
|
+
grpc_error_handle* error) override;
|
77
77
|
// Returns the parser index for FaultInjectionServiceConfigParser.
|
78
78
|
static size_t ParserIndex();
|
79
79
|
// Registers FaultInjectionServiceConfigParser to ServiceConfigParser.
|
@@ -48,10 +48,12 @@
|
|
48
48
|
/* default maximum size of payload eligible for GET request */
|
49
49
|
static constexpr size_t kMaxPayloadSizeForGet = 2048;
|
50
50
|
|
51
|
-
static void recv_initial_metadata_ready(void* user_data,
|
52
|
-
|
53
|
-
static void
|
54
|
-
|
51
|
+
static void recv_initial_metadata_ready(void* user_data,
|
52
|
+
grpc_error_handle error);
|
53
|
+
static void recv_trailing_metadata_ready(void* user_data,
|
54
|
+
grpc_error_handle error);
|
55
|
+
static void on_send_message_next_done(void* arg, grpc_error_handle error);
|
56
|
+
static void send_message_on_complete(void* arg, grpc_error_handle error);
|
55
57
|
|
56
58
|
namespace {
|
57
59
|
struct call_data {
|
@@ -81,14 +83,14 @@ struct call_data {
|
|
81
83
|
grpc_linked_mdelem user_agent;
|
82
84
|
// State for handling recv_initial_metadata ops.
|
83
85
|
grpc_metadata_batch* recv_initial_metadata;
|
84
|
-
|
86
|
+
grpc_error_handle recv_initial_metadata_error = GRPC_ERROR_NONE;
|
85
87
|
grpc_closure* original_recv_initial_metadata_ready = nullptr;
|
86
88
|
grpc_closure recv_initial_metadata_ready;
|
87
89
|
// State for handling recv_trailing_metadata ops.
|
88
90
|
grpc_metadata_batch* recv_trailing_metadata;
|
89
91
|
grpc_closure* original_recv_trailing_metadata_ready;
|
90
92
|
grpc_closure recv_trailing_metadata_ready;
|
91
|
-
|
93
|
+
grpc_error_handle recv_trailing_metadata_error = GRPC_ERROR_NONE;
|
92
94
|
bool seen_recv_trailing_metadata_ready = false;
|
93
95
|
// State for handling send_message ops.
|
94
96
|
grpc_transport_stream_op_batch* send_message_batch;
|
@@ -108,7 +110,8 @@ struct channel_data {
|
|
108
110
|
};
|
109
111
|
} // namespace
|
110
112
|
|
111
|
-
static
|
113
|
+
static grpc_error_handle client_filter_incoming_metadata(
|
114
|
+
grpc_metadata_batch* b) {
|
112
115
|
if (b->idx.named.status != nullptr) {
|
113
116
|
/* If both gRPC status and HTTP status are provided in the response, we
|
114
117
|
* should prefer the gRPC status code, as mentioned in
|
@@ -123,7 +126,7 @@ static grpc_error* client_filter_incoming_metadata(grpc_metadata_batch* b) {
|
|
123
126
|
GPR_DUMP_ASCII);
|
124
127
|
std::string msg =
|
125
128
|
absl::StrCat("Received http2 header with status: ", val);
|
126
|
-
|
129
|
+
grpc_error_handle e = grpc_error_set_str(
|
127
130
|
grpc_error_set_int(
|
128
131
|
grpc_error_set_str(
|
129
132
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -182,7 +185,8 @@ static grpc_error* client_filter_incoming_metadata(grpc_metadata_batch* b) {
|
|
182
185
|
return GRPC_ERROR_NONE;
|
183
186
|
}
|
184
187
|
|
185
|
-
static void recv_initial_metadata_ready(void* user_data,
|
188
|
+
static void recv_initial_metadata_ready(void* user_data,
|
189
|
+
grpc_error_handle error) {
|
186
190
|
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
187
191
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
188
192
|
if (error == GRPC_ERROR_NONE) {
|
@@ -201,7 +205,8 @@ static void recv_initial_metadata_ready(void* user_data, grpc_error* error) {
|
|
201
205
|
grpc_core::Closure::Run(DEBUG_LOCATION, closure, error);
|
202
206
|
}
|
203
207
|
|
204
|
-
static void recv_trailing_metadata_ready(void* user_data,
|
208
|
+
static void recv_trailing_metadata_ready(void* user_data,
|
209
|
+
grpc_error_handle error) {
|
205
210
|
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
206
211
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
207
212
|
if (calld->original_recv_initial_metadata_ready != nullptr) {
|
@@ -223,7 +228,7 @@ static void recv_trailing_metadata_ready(void* user_data, grpc_error* error) {
|
|
223
228
|
calld->original_recv_trailing_metadata_ready, error);
|
224
229
|
}
|
225
230
|
|
226
|
-
static void send_message_on_complete(void* arg,
|
231
|
+
static void send_message_on_complete(void* arg, grpc_error_handle error) {
|
227
232
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
228
233
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
229
234
|
calld->send_message_cache.Destroy();
|
@@ -234,9 +239,10 @@ static void send_message_on_complete(void* arg, grpc_error* error) {
|
|
234
239
|
|
235
240
|
// Pulls a slice from the send_message byte stream, updating
|
236
241
|
// calld->send_message_bytes_read.
|
237
|
-
static
|
242
|
+
static grpc_error_handle pull_slice_from_send_message(call_data* calld) {
|
238
243
|
grpc_slice incoming_slice;
|
239
|
-
|
244
|
+
grpc_error_handle error =
|
245
|
+
calld->send_message_caching_stream->Pull(&incoming_slice);
|
240
246
|
if (error == GRPC_ERROR_NONE) {
|
241
247
|
calld->send_message_bytes_read += GRPC_SLICE_LENGTH(incoming_slice);
|
242
248
|
grpc_slice_unref_internal(incoming_slice);
|
@@ -249,10 +255,11 @@ static grpc_error* pull_slice_from_send_message(call_data* calld) {
|
|
249
255
|
// calld->send_message_caching_stream->length(), then we have completed
|
250
256
|
// reading from the byte stream; otherwise, an async read has been dispatched
|
251
257
|
// and on_send_message_next_done() will be invoked when it is complete.
|
252
|
-
static
|
258
|
+
static grpc_error_handle read_all_available_send_message_data(
|
259
|
+
call_data* calld) {
|
253
260
|
while (calld->send_message_caching_stream->Next(
|
254
261
|
SIZE_MAX, &calld->on_send_message_next_done)) {
|
255
|
-
|
262
|
+
grpc_error_handle error = pull_slice_from_send_message(calld);
|
256
263
|
if (error != GRPC_ERROR_NONE) return error;
|
257
264
|
if (calld->send_message_bytes_read ==
|
258
265
|
calld->send_message_caching_stream->length()) {
|
@@ -263,7 +270,7 @@ static grpc_error* read_all_available_send_message_data(call_data* calld) {
|
|
263
270
|
}
|
264
271
|
|
265
272
|
// Async callback for ByteStream::Next().
|
266
|
-
static void on_send_message_next_done(void* arg,
|
273
|
+
static void on_send_message_next_done(void* arg, grpc_error_handle error) {
|
267
274
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
268
275
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
269
276
|
if (error != GRPC_ERROR_NONE) {
|
@@ -301,8 +308,8 @@ static char* slice_buffer_to_string(grpc_slice_buffer* slice_buffer) {
|
|
301
308
|
|
302
309
|
// Modifies the path entry in the batch's send_initial_metadata to
|
303
310
|
// append the base64-encoded query for a GET request.
|
304
|
-
static
|
305
|
-
|
311
|
+
static grpc_error_handle update_path_for_get(
|
312
|
+
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
306
313
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
307
314
|
grpc_slice path_slice =
|
308
315
|
GRPC_MDVALUE(batch->payload->send_initial_metadata.send_initial_metadata
|
@@ -376,7 +383,7 @@ static void http_client_start_transport_stream_op_batch(
|
|
376
383
|
&calld->recv_trailing_metadata_ready;
|
377
384
|
}
|
378
385
|
|
379
|
-
|
386
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
380
387
|
bool batch_will_be_handled_asynchronously = false;
|
381
388
|
if (batch->send_initial_metadata) {
|
382
389
|
// Decide which HTTP VERB to use. We use GET if the request is marked
|
@@ -475,7 +482,7 @@ done:
|
|
475
482
|
}
|
476
483
|
|
477
484
|
/* Constructor for call_data */
|
478
|
-
static
|
485
|
+
static grpc_error_handle http_client_init_call_elem(
|
479
486
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
480
487
|
new (elem->call_data) call_data(elem, *args);
|
481
488
|
return GRPC_ERROR_NONE;
|
@@ -561,7 +568,7 @@ static grpc_core::ManagedMemorySlice user_agent_from_args(
|
|
561
568
|
}
|
562
569
|
|
563
570
|
/* Constructor for channel_data */
|
564
|
-
static
|
571
|
+
static grpc_error_handle http_client_init_channel_elem(
|
565
572
|
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
566
573
|
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
567
574
|
GPR_ASSERT(!args->is_last);
|
@@ -57,7 +57,7 @@ void client_authority_start_transport_stream_op_batch(
|
|
57
57
|
if (batch->send_initial_metadata &&
|
58
58
|
batch->payload->send_initial_metadata.send_initial_metadata->idx.named
|
59
59
|
.authority == nullptr) {
|
60
|
-
|
60
|
+
grpc_error_handle error = grpc_metadata_batch_add_head(
|
61
61
|
batch->payload->send_initial_metadata.send_initial_metadata,
|
62
62
|
&calld->authority_storage,
|
63
63
|
GRPC_MDELEM_REF(chand->default_authority_mdelem), GRPC_BATCH_AUTHORITY);
|
@@ -72,7 +72,7 @@ void client_authority_start_transport_stream_op_batch(
|
|
72
72
|
}
|
73
73
|
|
74
74
|
/* Constructor for call_data */
|
75
|
-
|
75
|
+
grpc_error_handle client_authority_init_call_elem(
|
76
76
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
77
77
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
78
78
|
calld->call_combiner = args->call_combiner;
|
@@ -85,7 +85,7 @@ void client_authority_destroy_call_elem(
|
|
85
85
|
grpc_closure* /*ignored*/) {}
|
86
86
|
|
87
87
|
/* Constructor for channel_data */
|
88
|
-
|
88
|
+
grpc_error_handle client_authority_init_channel_elem(
|
89
89
|
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
90
90
|
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
91
91
|
const grpc_arg* default_authority_arg =
|
@@ -131,25 +131,25 @@ class CallData {
|
|
131
131
|
bool SkipMessageCompression();
|
132
132
|
void InitializeState(grpc_call_element* elem);
|
133
133
|
|
134
|
-
|
135
|
-
|
134
|
+
grpc_error_handle ProcessSendInitialMetadata(
|
135
|
+
grpc_call_element* elem, grpc_metadata_batch* initial_metadata);
|
136
136
|
|
137
137
|
// Methods for processing a send_message batch
|
138
|
-
static void StartSendMessageBatch(void* elem_arg,
|
139
|
-
static void OnSendMessageNextDone(void* elem_arg,
|
140
|
-
|
138
|
+
static void StartSendMessageBatch(void* elem_arg, grpc_error_handle unused);
|
139
|
+
static void OnSendMessageNextDone(void* elem_arg, grpc_error_handle error);
|
140
|
+
grpc_error_handle PullSliceFromSendMessage();
|
141
141
|
void ContinueReadingSendMessage(grpc_call_element* elem);
|
142
142
|
void FinishSendMessage(grpc_call_element* elem);
|
143
143
|
void SendMessageBatchContinue(grpc_call_element* elem);
|
144
144
|
static void FailSendMessageBatchInCallCombiner(void* calld_arg,
|
145
|
-
|
145
|
+
grpc_error_handle error);
|
146
146
|
|
147
|
-
static void SendMessageOnComplete(void* calld_arg,
|
147
|
+
static void SendMessageOnComplete(void* calld_arg, grpc_error_handle error);
|
148
148
|
|
149
149
|
grpc_core::CallCombiner* call_combiner_;
|
150
150
|
grpc_message_compression_algorithm message_compression_algorithm_ =
|
151
151
|
GRPC_MESSAGE_COMPRESS_NONE;
|
152
|
-
|
152
|
+
grpc_error_handle cancel_error_ = GRPC_ERROR_NONE;
|
153
153
|
grpc_transport_stream_op_batch* send_message_batch_ = nullptr;
|
154
154
|
bool seen_initial_metadata_ = false;
|
155
155
|
/* Set to true, if the fields below are initialized. */
|
@@ -232,7 +232,7 @@ void CallData::InitializeState(grpc_call_element* elem) {
|
|
232
232
|
grpc_schedule_on_exec_ctx);
|
233
233
|
}
|
234
234
|
|
235
|
-
|
235
|
+
grpc_error_handle CallData::ProcessSendInitialMetadata(
|
236
236
|
grpc_call_element* elem, grpc_metadata_batch* initial_metadata) {
|
237
237
|
ChannelData* channeld = static_cast<ChannelData*>(elem->channel_data);
|
238
238
|
// Find the compression algorithm.
|
@@ -246,7 +246,7 @@ grpc_error* CallData::ProcessSendInitialMetadata(
|
|
246
246
|
grpc_compression_algorithm_to_stream_compression_algorithm(
|
247
247
|
compression_algorithm);
|
248
248
|
// Hint compression algorithm.
|
249
|
-
|
249
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
250
250
|
if (message_compression_algorithm_ != GRPC_MESSAGE_COMPRESS_NONE) {
|
251
251
|
InitializeState(elem);
|
252
252
|
error = grpc_metadata_batch_add_tail(
|
@@ -281,7 +281,7 @@ grpc_error* CallData::ProcessSendInitialMetadata(
|
|
281
281
|
return error;
|
282
282
|
}
|
283
283
|
|
284
|
-
void CallData::SendMessageOnComplete(void* calld_arg,
|
284
|
+
void CallData::SendMessageOnComplete(void* calld_arg, grpc_error_handle error) {
|
285
285
|
CallData* calld = static_cast<CallData*>(calld_arg);
|
286
286
|
grpc_slice_buffer_reset_and_unref_internal(&calld->slices_);
|
287
287
|
grpc_core::Closure::Run(DEBUG_LOCATION,
|
@@ -348,7 +348,7 @@ void CallData::FinishSendMessage(grpc_call_element* elem) {
|
|
348
348
|
}
|
349
349
|
|
350
350
|
void CallData::FailSendMessageBatchInCallCombiner(void* calld_arg,
|
351
|
-
|
351
|
+
grpc_error_handle error) {
|
352
352
|
CallData* calld = static_cast<CallData*>(calld_arg);
|
353
353
|
if (calld->send_message_batch_ != nullptr) {
|
354
354
|
grpc_transport_stream_op_batch_finish_with_failure(
|
@@ -359,9 +359,9 @@ void CallData::FailSendMessageBatchInCallCombiner(void* calld_arg,
|
|
359
359
|
}
|
360
360
|
|
361
361
|
// Pulls a slice from the send_message byte stream and adds it to slices_.
|
362
|
-
|
362
|
+
grpc_error_handle CallData::PullSliceFromSendMessage() {
|
363
363
|
grpc_slice incoming_slice;
|
364
|
-
|
364
|
+
grpc_error_handle error =
|
365
365
|
send_message_batch_->payload->send_message.send_message->Pull(
|
366
366
|
&incoming_slice);
|
367
367
|
if (error == GRPC_ERROR_NONE) {
|
@@ -382,7 +382,7 @@ void CallData::ContinueReadingSendMessage(grpc_call_element* elem) {
|
|
382
382
|
}
|
383
383
|
while (send_message_batch_->payload->send_message.send_message->Next(
|
384
384
|
~static_cast<size_t>(0), &on_send_message_next_done_)) {
|
385
|
-
|
385
|
+
grpc_error_handle error = PullSliceFromSendMessage();
|
386
386
|
if (error != GRPC_ERROR_NONE) {
|
387
387
|
// Closure callback; does not take ownership of error.
|
388
388
|
FailSendMessageBatchInCallCombiner(this, error);
|
@@ -398,7 +398,7 @@ void CallData::ContinueReadingSendMessage(grpc_call_element* elem) {
|
|
398
398
|
}
|
399
399
|
|
400
400
|
// Async callback for ByteStream::Next().
|
401
|
-
void CallData::OnSendMessageNextDone(void* elem_arg,
|
401
|
+
void CallData::OnSendMessageNextDone(void* elem_arg, grpc_error_handle error) {
|
402
402
|
grpc_call_element* elem = static_cast<grpc_call_element*>(elem_arg);
|
403
403
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
404
404
|
if (error != GRPC_ERROR_NONE) {
|
@@ -421,7 +421,8 @@ void CallData::OnSendMessageNextDone(void* elem_arg, grpc_error* error) {
|
|
421
421
|
}
|
422
422
|
}
|
423
423
|
|
424
|
-
void CallData::StartSendMessageBatch(void* elem_arg,
|
424
|
+
void CallData::StartSendMessageBatch(void* elem_arg,
|
425
|
+
grpc_error_handle /*unused*/) {
|
425
426
|
grpc_call_element* elem = static_cast<grpc_call_element*>(elem_arg);
|
426
427
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
427
428
|
if (calld->SkipMessageCompression()) {
|
@@ -458,7 +459,7 @@ void CallData::CompressStartTransportStreamOpBatch(
|
|
458
459
|
// Handle send_initial_metadata.
|
459
460
|
if (batch->send_initial_metadata) {
|
460
461
|
GPR_ASSERT(!seen_initial_metadata_);
|
461
|
-
|
462
|
+
grpc_error_handle error = ProcessSendInitialMetadata(
|
462
463
|
elem, batch->payload->send_initial_metadata.send_initial_metadata);
|
463
464
|
if (error != GRPC_ERROR_NONE) {
|
464
465
|
grpc_transport_stream_op_batch_finish_with_failure(batch, error,
|
@@ -503,8 +504,8 @@ void CompressStartTransportStreamOpBatch(
|
|
503
504
|
}
|
504
505
|
|
505
506
|
/* Constructor for call_data */
|
506
|
-
|
507
|
-
|
507
|
+
grpc_error_handle CompressInitCallElem(grpc_call_element* elem,
|
508
|
+
const grpc_call_element_args* args) {
|
508
509
|
new (elem->call_data) CallData(elem, *args);
|
509
510
|
return GRPC_ERROR_NONE;
|
510
511
|
}
|
@@ -518,8 +519,8 @@ void CompressDestroyCallElem(grpc_call_element* elem,
|
|
518
519
|
}
|
519
520
|
|
520
521
|
/* Constructor for ChannelData */
|
521
|
-
|
522
|
-
|
522
|
+
grpc_error_handle CompressInitChannelElem(grpc_channel_element* elem,
|
523
|
+
grpc_channel_element_args* args) {
|
523
524
|
new (elem->channel_data) ChannelData(args);
|
524
525
|
return GRPC_ERROR_NONE;
|
525
526
|
}
|