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
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
namespace {
|
24
24
|
void (*write_timestamps_callback_g)(void*, grpc_core::Timestamps*,
|
25
|
-
|
25
|
+
grpc_error_handle error) = nullptr;
|
26
26
|
void* (*get_copied_context_fn_g)(void*) = nullptr;
|
27
27
|
} // namespace
|
28
28
|
|
@@ -41,7 +41,7 @@ void ContextList::Append(ContextList** head, grpc_chttp2_stream* s) {
|
|
41
41
|
}
|
42
42
|
|
43
43
|
void ContextList::Execute(void* arg, grpc_core::Timestamps* ts,
|
44
|
-
|
44
|
+
grpc_error_handle error) {
|
45
45
|
ContextList* head = static_cast<ContextList*>(arg);
|
46
46
|
ContextList* to_be_freed;
|
47
47
|
while (head != nullptr) {
|
@@ -57,9 +57,8 @@ void ContextList::Execute(void* arg, grpc_core::Timestamps* ts,
|
|
57
57
|
}
|
58
58
|
}
|
59
59
|
|
60
|
-
void grpc_http2_set_write_timestamps_callback(
|
61
|
-
|
62
|
-
grpc_error* error)) {
|
60
|
+
void grpc_http2_set_write_timestamps_callback(
|
61
|
+
void (*fn)(void*, grpc_core::Timestamps*, grpc_error_handle error)) {
|
63
62
|
write_timestamps_callback_g = fn;
|
64
63
|
}
|
65
64
|
|
@@ -36,7 +36,8 @@ class ContextList {
|
|
36
36
|
/* Executes a function \a fn with each context in the list and \a ts. It also
|
37
37
|
* frees up the entire list after this operation. It is intended as a callback
|
38
38
|
* and hence does not take a ref on \a error */
|
39
|
-
static void Execute(void* arg, grpc_core::Timestamps* ts,
|
39
|
+
static void Execute(void* arg, grpc_core::Timestamps* ts,
|
40
|
+
grpc_error_handle error);
|
40
41
|
|
41
42
|
private:
|
42
43
|
void* trace_context_ = nullptr;
|
@@ -44,9 +45,8 @@ class ContextList {
|
|
44
45
|
size_t byte_offset_ = 0;
|
45
46
|
};
|
46
47
|
|
47
|
-
void grpc_http2_set_write_timestamps_callback(
|
48
|
-
|
49
|
-
grpc_error* error));
|
48
|
+
void grpc_http2_set_write_timestamps_callback(
|
49
|
+
void (*fn)(void*, grpc_core::Timestamps*, grpc_error_handle error));
|
50
50
|
void grpc_http2_set_fn_get_copied_context(void* (*fn)(void*));
|
51
51
|
} /* namespace grpc_core */
|
52
52
|
|
@@ -203,7 +203,7 @@ uint32_t TransportFlowControl::MaybeSendUpdate(bool writing_anyway) {
|
|
203
203
|
return 0;
|
204
204
|
}
|
205
205
|
|
206
|
-
|
206
|
+
grpc_error_handle TransportFlowControl::ValidateRecvData(
|
207
207
|
int64_t incoming_frame_size) {
|
208
208
|
if (incoming_frame_size > announced_window_) {
|
209
209
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
@@ -219,10 +219,10 @@ StreamFlowControl::StreamFlowControl(TransportFlowControl* tfc,
|
|
219
219
|
const grpc_chttp2_stream* s)
|
220
220
|
: tfc_(tfc), s_(s) {}
|
221
221
|
|
222
|
-
|
222
|
+
grpc_error_handle StreamFlowControl::RecvData(int64_t incoming_frame_size) {
|
223
223
|
FlowControlTrace trace(" data recv", tfc_, this);
|
224
224
|
|
225
|
-
|
225
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
226
226
|
error = tfc_->ValidateRecvData(incoming_frame_size);
|
227
227
|
if (error != GRPC_ERROR_NONE) return error;
|
228
228
|
|
@@ -168,7 +168,7 @@ class TransportFlowControlBase {
|
|
168
168
|
|
169
169
|
// Called to do bookkeeping when a stream owned by this transport receives
|
170
170
|
// data from the wire. Also does error checking for frame size.
|
171
|
-
virtual
|
171
|
+
virtual grpc_error_handle RecvData(int64_t /* incoming_frame_size */) = 0;
|
172
172
|
|
173
173
|
// Called to do bookkeeping when we receive a WINDOW_UPDATE frame.
|
174
174
|
virtual void RecvUpdate(uint32_t /* size */) = 0;
|
@@ -210,7 +210,7 @@ class TransportFlowControlDisabled final : public TransportFlowControlBase {
|
|
210
210
|
FlowControlAction MakeAction() override { return FlowControlAction(); }
|
211
211
|
FlowControlAction PeriodicUpdate() override { return FlowControlAction(); }
|
212
212
|
void StreamSentData(int64_t /* size */) override {}
|
213
|
-
|
213
|
+
grpc_error_handle RecvData(int64_t /* incoming_frame_size */) override {
|
214
214
|
return GRPC_ERROR_NONE;
|
215
215
|
}
|
216
216
|
void RecvUpdate(uint32_t /* size */) override {}
|
@@ -246,14 +246,14 @@ class TransportFlowControl final : public TransportFlowControlBase {
|
|
246
246
|
|
247
247
|
void StreamSentData(int64_t size) override { remote_window_ -= size; }
|
248
248
|
|
249
|
-
|
249
|
+
grpc_error_handle ValidateRecvData(int64_t incoming_frame_size);
|
250
250
|
void CommitRecvData(int64_t incoming_frame_size) {
|
251
251
|
announced_window_ -= incoming_frame_size;
|
252
252
|
}
|
253
253
|
|
254
|
-
|
254
|
+
grpc_error_handle RecvData(int64_t incoming_frame_size) override {
|
255
255
|
FlowControlTrace trace(" data recv", this, nullptr);
|
256
|
-
|
256
|
+
grpc_error_handle error = ValidateRecvData(incoming_frame_size);
|
257
257
|
if (error != GRPC_ERROR_NONE) return error;
|
258
258
|
CommitRecvData(incoming_frame_size);
|
259
259
|
return GRPC_ERROR_NONE;
|
@@ -352,7 +352,7 @@ class StreamFlowControlBase {
|
|
352
352
|
virtual void SentData(int64_t /* outgoing_frame_size */) = 0;
|
353
353
|
|
354
354
|
// Bookkeeping and error checking for when data is received by this stream.
|
355
|
-
virtual
|
355
|
+
virtual grpc_error_handle RecvData(int64_t /* incoming_frame_size */) = 0;
|
356
356
|
|
357
357
|
// Called to check if this stream needs to send a WINDOW_UPDATE frame.
|
358
358
|
virtual uint32_t MaybeSendUpdate() = 0;
|
@@ -395,7 +395,7 @@ class StreamFlowControlDisabled : public StreamFlowControlBase {
|
|
395
395
|
}
|
396
396
|
FlowControlAction MakeAction() override { return FlowControlAction(); }
|
397
397
|
void SentData(int64_t /* outgoing_frame_size */) override {}
|
398
|
-
|
398
|
+
grpc_error_handle RecvData(int64_t /* incoming_frame_size */) override {
|
399
399
|
return GRPC_ERROR_NONE;
|
400
400
|
}
|
401
401
|
uint32_t MaybeSendUpdate() override { return 0; }
|
@@ -427,7 +427,7 @@ class StreamFlowControl final : public StreamFlowControlBase {
|
|
427
427
|
}
|
428
428
|
|
429
429
|
// we have received data from the wire
|
430
|
-
|
430
|
+
grpc_error_handle RecvData(int64_t incoming_frame_size) override;
|
431
431
|
|
432
432
|
// returns an announce if we should send a stream update to our peer, else
|
433
433
|
// returns zero
|
@@ -41,7 +41,7 @@ grpc_chttp2_data_parser::~grpc_chttp2_data_parser() {
|
|
41
41
|
GRPC_ERROR_UNREF(error);
|
42
42
|
}
|
43
43
|
|
44
|
-
|
44
|
+
grpc_error_handle grpc_chttp2_data_parser_begin_frame(
|
45
45
|
grpc_chttp2_data_parser* /*parser*/, uint8_t flags, uint32_t stream_id,
|
46
46
|
grpc_chttp2_stream* s) {
|
47
47
|
if (flags & ~GRPC_CHTTP2_DATA_FLAG_END_STREAM) {
|
@@ -89,11 +89,11 @@ void grpc_chttp2_encode_data(uint32_t id, grpc_slice_buffer* inbuf,
|
|
89
89
|
stats->data_bytes += write_bytes;
|
90
90
|
}
|
91
91
|
|
92
|
-
|
92
|
+
grpc_error_handle grpc_deframe_unprocessed_incoming_frames(
|
93
93
|
grpc_chttp2_data_parser* p, grpc_chttp2_stream* s,
|
94
94
|
grpc_slice_buffer* slices, grpc_slice* slice_out,
|
95
95
|
grpc_core::OrphanablePtr<grpc_core::ByteStream>* stream_out) {
|
96
|
-
|
96
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
97
97
|
grpc_chttp2_transport* t = s->t;
|
98
98
|
|
99
99
|
while (slices->count > 0) {
|
@@ -275,11 +275,11 @@ grpc_error* grpc_deframe_unprocessed_incoming_frames(
|
|
275
275
|
return GRPC_ERROR_NONE;
|
276
276
|
}
|
277
277
|
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
278
|
+
grpc_error_handle grpc_chttp2_data_parser_parse(void* /*parser*/,
|
279
|
+
grpc_chttp2_transport* t,
|
280
|
+
grpc_chttp2_stream* s,
|
281
|
+
const grpc_slice& slice,
|
282
|
+
int is_last) {
|
283
283
|
if (!s->pending_byte_stream) {
|
284
284
|
grpc_slice_ref_internal(slice);
|
285
285
|
grpc_slice_buffer_add(&s->frame_storage, slice);
|
@@ -50,31 +50,31 @@ struct grpc_chttp2_data_parser {
|
|
50
50
|
grpc_chttp2_stream_state state = GRPC_CHTTP2_DATA_FH_0;
|
51
51
|
uint8_t frame_type = 0;
|
52
52
|
uint32_t frame_size = 0;
|
53
|
-
|
53
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
54
54
|
|
55
55
|
bool is_frame_compressed = false;
|
56
56
|
grpc_core::Chttp2IncomingByteStream* parsing_frame = nullptr;
|
57
57
|
};
|
58
58
|
|
59
59
|
/* start processing a new data frame */
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
grpc_chttp2_stream* s);
|
60
|
+
grpc_error_handle grpc_chttp2_data_parser_begin_frame(
|
61
|
+
grpc_chttp2_data_parser* parser, uint8_t flags, uint32_t stream_id,
|
62
|
+
grpc_chttp2_stream* s);
|
64
63
|
|
65
64
|
/* handle a slice of a data frame - is_last indicates the last slice of a
|
66
65
|
frame */
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
66
|
+
grpc_error_handle grpc_chttp2_data_parser_parse(void* parser,
|
67
|
+
grpc_chttp2_transport* t,
|
68
|
+
grpc_chttp2_stream* s,
|
69
|
+
const grpc_slice& slice,
|
70
|
+
int is_last);
|
71
71
|
|
72
72
|
void grpc_chttp2_encode_data(uint32_t id, grpc_slice_buffer* inbuf,
|
73
73
|
uint32_t write_bytes, int is_eof,
|
74
74
|
grpc_transport_one_way_stats* stats,
|
75
75
|
grpc_slice_buffer* outbuf);
|
76
76
|
|
77
|
-
|
77
|
+
grpc_error_handle grpc_deframe_unprocessed_incoming_frames(
|
78
78
|
grpc_chttp2_data_parser* p, grpc_chttp2_stream* s,
|
79
79
|
grpc_slice_buffer* slices, grpc_slice* slice_out,
|
80
80
|
grpc_core::OrphanablePtr<grpc_core::ByteStream>* stream_out);
|
@@ -36,9 +36,8 @@ void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser* p) {
|
|
36
36
|
gpr_free(p->debug_data);
|
37
37
|
}
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
uint8_t /*flags*/) {
|
39
|
+
grpc_error_handle grpc_chttp2_goaway_parser_begin_frame(
|
40
|
+
grpc_chttp2_goaway_parser* p, uint32_t length, uint8_t /*flags*/) {
|
42
41
|
if (length < 8) {
|
43
42
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
44
43
|
absl::StrFormat("goaway frame too short (%d bytes)", length).c_str());
|
@@ -52,11 +51,11 @@ grpc_error* grpc_chttp2_goaway_parser_begin_frame(grpc_chttp2_goaway_parser* p,
|
|
52
51
|
return GRPC_ERROR_NONE;
|
53
52
|
}
|
54
53
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
54
|
+
grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
55
|
+
grpc_chttp2_transport* t,
|
56
|
+
grpc_chttp2_stream* /*s*/,
|
57
|
+
const grpc_slice& slice,
|
58
|
+
int is_last) {
|
60
59
|
const uint8_t* const beg = GRPC_SLICE_START_PTR(slice);
|
61
60
|
const uint8_t* const end = GRPC_SLICE_END_PTR(slice);
|
62
61
|
const uint8_t* cur = beg;
|
@@ -47,13 +47,13 @@ struct grpc_chttp2_goaway_parser {
|
|
47
47
|
};
|
48
48
|
void grpc_chttp2_goaway_parser_init(grpc_chttp2_goaway_parser* p);
|
49
49
|
void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser* p);
|
50
|
-
|
50
|
+
grpc_error_handle grpc_chttp2_goaway_parser_begin_frame(
|
51
51
|
grpc_chttp2_goaway_parser* parser, uint32_t length, uint8_t flags);
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
grpc_error_handle grpc_chttp2_goaway_parser_parse(void* parser,
|
53
|
+
grpc_chttp2_transport* t,
|
54
|
+
grpc_chttp2_stream* s,
|
55
|
+
const grpc_slice& slice,
|
56
|
+
int is_last);
|
57
57
|
|
58
58
|
void grpc_chttp2_goaway_append(uint32_t last_stream_id, uint32_t error_code,
|
59
59
|
const grpc_slice& debug_data,
|
@@ -55,9 +55,8 @@ grpc_slice grpc_chttp2_ping_create(uint8_t ack, uint64_t opaque_8bytes) {
|
|
55
55
|
return slice;
|
56
56
|
}
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
uint8_t flags) {
|
58
|
+
grpc_error_handle grpc_chttp2_ping_parser_begin_frame(
|
59
|
+
grpc_chttp2_ping_parser* parser, uint32_t length, uint8_t flags) {
|
61
60
|
if (flags & 0xfe || length != 8) {
|
62
61
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
63
62
|
absl::StrFormat("invalid ping: length=%d, flags=%02x", length, flags)
|
@@ -69,11 +68,11 @@ grpc_error* grpc_chttp2_ping_parser_begin_frame(grpc_chttp2_ping_parser* parser,
|
|
69
68
|
return GRPC_ERROR_NONE;
|
70
69
|
}
|
71
70
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
71
|
+
grpc_error_handle grpc_chttp2_ping_parser_parse(void* parser,
|
72
|
+
grpc_chttp2_transport* t,
|
73
|
+
grpc_chttp2_stream* /*s*/,
|
74
|
+
const grpc_slice& slice,
|
75
|
+
int is_last) {
|
77
76
|
const uint8_t* const beg = GRPC_SLICE_START_PTR(slice);
|
78
77
|
const uint8_t* const end = GRPC_SLICE_END_PTR(slice);
|
79
78
|
const uint8_t* cur = beg;
|
@@ -31,12 +31,13 @@ struct grpc_chttp2_ping_parser {
|
|
31
31
|
};
|
32
32
|
grpc_slice grpc_chttp2_ping_create(uint8_t ack, uint64_t opaque_8bytes);
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
34
|
+
grpc_error_handle grpc_chttp2_ping_parser_begin_frame(
|
35
|
+
grpc_chttp2_ping_parser* parser, uint32_t length, uint8_t flags);
|
36
|
+
grpc_error_handle grpc_chttp2_ping_parser_parse(void* parser,
|
37
|
+
grpc_chttp2_transport* t,
|
38
|
+
grpc_chttp2_stream* s,
|
39
|
+
const grpc_slice& slice,
|
40
|
+
int is_last);
|
40
41
|
|
41
42
|
/* Test-only function for disabling ping ack */
|
42
43
|
void grpc_set_disable_ping_ack(bool disable_ping_ack);
|
@@ -68,7 +68,7 @@ void grpc_chttp2_add_rst_stream_to_next_write(
|
|
68
68
|
grpc_chttp2_rst_stream_create(id, code, stats));
|
69
69
|
}
|
70
70
|
|
71
|
-
|
71
|
+
grpc_error_handle grpc_chttp2_rst_stream_parser_begin_frame(
|
72
72
|
grpc_chttp2_rst_stream_parser* parser, uint32_t length, uint8_t flags) {
|
73
73
|
if (length != 4) {
|
74
74
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
@@ -80,11 +80,11 @@ grpc_error* grpc_chttp2_rst_stream_parser_begin_frame(
|
|
80
80
|
return GRPC_ERROR_NONE;
|
81
81
|
}
|
82
82
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
83
|
+
grpc_error_handle grpc_chttp2_rst_stream_parser_parse(void* parser,
|
84
|
+
grpc_chttp2_transport* t,
|
85
|
+
grpc_chttp2_stream* s,
|
86
|
+
const grpc_slice& slice,
|
87
|
+
int is_last) {
|
88
88
|
const uint8_t* const beg = GRPC_SLICE_START_PTR(slice);
|
89
89
|
const uint8_t* const end = GRPC_SLICE_END_PTR(slice);
|
90
90
|
const uint8_t* cur = beg;
|
@@ -104,7 +104,7 @@ grpc_error* grpc_chttp2_rst_stream_parser_parse(void* parser,
|
|
104
104
|
((static_cast<uint32_t>(p->reason_bytes[1])) << 16) |
|
105
105
|
((static_cast<uint32_t>(p->reason_bytes[2])) << 8) |
|
106
106
|
((static_cast<uint32_t>(p->reason_bytes[3])));
|
107
|
-
|
107
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
108
108
|
if (reason != GRPC_HTTP2_NO_ERROR || s->metadata_buffer[1].size == 0) {
|
109
109
|
error = grpc_error_set_int(
|
110
110
|
grpc_error_set_str(
|
@@ -39,12 +39,12 @@ void grpc_chttp2_add_rst_stream_to_next_write(
|
|
39
39
|
grpc_chttp2_transport* t, uint32_t id, uint32_t code,
|
40
40
|
grpc_transport_one_way_stats* stats);
|
41
41
|
|
42
|
-
|
42
|
+
grpc_error_handle grpc_chttp2_rst_stream_parser_begin_frame(
|
43
43
|
grpc_chttp2_rst_stream_parser* parser, uint32_t length, uint8_t flags);
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
grpc_error_handle grpc_chttp2_rst_stream_parser_parse(void* parser,
|
45
|
+
grpc_chttp2_transport* t,
|
46
|
+
grpc_chttp2_stream* s,
|
47
|
+
const grpc_slice& slice,
|
48
|
+
int is_last);
|
49
49
|
|
50
50
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_RST_STREAM_H */
|
@@ -84,7 +84,7 @@ grpc_slice grpc_chttp2_settings_ack_create(void) {
|
|
84
84
|
return output;
|
85
85
|
}
|
86
86
|
|
87
|
-
|
87
|
+
grpc_error_handle grpc_chttp2_settings_parser_begin_frame(
|
88
88
|
grpc_chttp2_settings_parser* parser, uint32_t length, uint8_t flags,
|
89
89
|
uint32_t* settings) {
|
90
90
|
parser->target_settings = settings;
|
@@ -110,10 +110,11 @@ grpc_error* grpc_chttp2_settings_parser_begin_frame(
|
|
110
110
|
}
|
111
111
|
}
|
112
112
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
113
|
+
grpc_error_handle grpc_chttp2_settings_parser_parse(void* p,
|
114
|
+
grpc_chttp2_transport* t,
|
115
|
+
grpc_chttp2_stream* /*s*/,
|
116
|
+
const grpc_slice& slice,
|
117
|
+
int is_last) {
|
117
118
|
grpc_chttp2_settings_parser* parser =
|
118
119
|
static_cast<grpc_chttp2_settings_parser*>(p);
|
119
120
|
const uint8_t* cur = GRPC_SLICE_START_PTR(slice);
|
@@ -49,13 +49,13 @@ grpc_slice grpc_chttp2_settings_create(uint32_t* old_settings,
|
|
49
49
|
/* Create an ack settings frame */
|
50
50
|
grpc_slice grpc_chttp2_settings_ack_create(void);
|
51
51
|
|
52
|
-
|
52
|
+
grpc_error_handle grpc_chttp2_settings_parser_begin_frame(
|
53
53
|
grpc_chttp2_settings_parser* parser, uint32_t length, uint8_t flags,
|
54
54
|
uint32_t* settings);
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
grpc_error_handle grpc_chttp2_settings_parser_parse(void* parser,
|
56
|
+
grpc_chttp2_transport* t,
|
57
|
+
grpc_chttp2_stream* s,
|
58
|
+
const grpc_slice& slice,
|
59
|
+
int is_last);
|
60
60
|
|
61
61
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_SETTINGS_H */
|
@@ -53,7 +53,7 @@ grpc_slice grpc_chttp2_window_update_create(
|
|
53
53
|
return slice;
|
54
54
|
}
|
55
55
|
|
56
|
-
|
56
|
+
grpc_error_handle grpc_chttp2_window_update_parser_begin_frame(
|
57
57
|
grpc_chttp2_window_update_parser* parser, uint32_t length, uint8_t flags) {
|
58
58
|
if (flags || length != 4) {
|
59
59
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
@@ -66,11 +66,9 @@ grpc_error* grpc_chttp2_window_update_parser_begin_frame(
|
|
66
66
|
return GRPC_ERROR_NONE;
|
67
67
|
}
|
68
68
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
const grpc_slice& slice,
|
73
|
-
int is_last) {
|
69
|
+
grpc_error_handle grpc_chttp2_window_update_parser_parse(
|
70
|
+
void* parser, grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
71
|
+
const grpc_slice& slice, int is_last) {
|
74
72
|
const uint8_t* const beg = GRPC_SLICE_START_PTR(slice);
|
75
73
|
const uint8_t* const end = GRPC_SLICE_END_PTR(slice);
|
76
74
|
const uint8_t* cur = beg;
|
@@ -33,12 +33,10 @@ struct grpc_chttp2_window_update_parser {
|
|
33
33
|
grpc_slice grpc_chttp2_window_update_create(
|
34
34
|
uint32_t id, uint32_t window_delta, grpc_transport_one_way_stats* stats);
|
35
35
|
|
36
|
-
|
36
|
+
grpc_error_handle grpc_chttp2_window_update_parser_begin_frame(
|
37
37
|
grpc_chttp2_window_update_parser* parser, uint32_t length, uint8_t flags);
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
const grpc_slice& slice,
|
42
|
-
int is_last);
|
38
|
+
grpc_error_handle grpc_chttp2_window_update_parser_parse(
|
39
|
+
void* parser, grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
40
|
+
const grpc_slice& slice, int is_last);
|
43
41
|
|
44
42
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_WINDOW_UPDATE_H */
|