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
@@ -29,7 +29,7 @@
|
|
29
29
|
|
30
30
|
typedef struct grpc_chttp2_hpack_parser grpc_chttp2_hpack_parser;
|
31
31
|
|
32
|
-
typedef
|
32
|
+
typedef grpc_error_handle (*grpc_chttp2_hpack_parser_state)(
|
33
33
|
grpc_chttp2_hpack_parser* p, const uint8_t* beg, const uint8_t* end);
|
34
34
|
|
35
35
|
struct grpc_chttp2_hpack_parser_string {
|
@@ -45,10 +45,10 @@ struct grpc_chttp2_hpack_parser_string {
|
|
45
45
|
};
|
46
46
|
struct grpc_chttp2_hpack_parser {
|
47
47
|
/* user specified callback for each header output */
|
48
|
-
|
48
|
+
grpc_error_handle (*on_header)(void* user_data, grpc_mdelem md);
|
49
49
|
void* on_header_user_data;
|
50
50
|
|
51
|
-
|
51
|
+
grpc_error_handle last_error;
|
52
52
|
|
53
53
|
/* current parse state - or a function that implements it */
|
54
54
|
grpc_chttp2_hpack_parser_state state;
|
@@ -103,15 +103,15 @@ void grpc_chttp2_hpack_parser_destroy(grpc_chttp2_hpack_parser* p);
|
|
103
103
|
|
104
104
|
void grpc_chttp2_hpack_parser_set_has_priority(grpc_chttp2_hpack_parser* p);
|
105
105
|
|
106
|
-
|
107
|
-
|
106
|
+
grpc_error_handle grpc_chttp2_hpack_parser_parse(grpc_chttp2_hpack_parser* p,
|
107
|
+
const grpc_slice& slice);
|
108
108
|
|
109
109
|
/* wraps grpc_chttp2_hpack_parser_parse to provide a frame level parser for
|
110
110
|
the transport */
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
111
|
+
grpc_error_handle grpc_chttp2_header_parser_parse(void* hpack_parser,
|
112
|
+
grpc_chttp2_transport* t,
|
113
|
+
grpc_chttp2_stream* s,
|
114
|
+
const grpc_slice& slice,
|
115
|
+
int is_last);
|
116
116
|
|
117
117
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H */
|
@@ -114,8 +114,8 @@ void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl* tbl,
|
|
114
114
|
tbl->max_bytes = max_bytes;
|
115
115
|
}
|
116
116
|
|
117
|
-
|
118
|
-
|
117
|
+
grpc_error_handle grpc_chttp2_hptbl_set_current_table_size(
|
118
|
+
grpc_chttp2_hptbl* tbl, uint32_t bytes) {
|
119
119
|
if (tbl->current_table_bytes == bytes) {
|
120
120
|
return GRPC_ERROR_NONE;
|
121
121
|
}
|
@@ -145,7 +145,8 @@ grpc_error* grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl* tbl,
|
|
145
145
|
return GRPC_ERROR_NONE;
|
146
146
|
}
|
147
147
|
|
148
|
-
|
148
|
+
grpc_error_handle grpc_chttp2_hptbl_add(grpc_chttp2_hptbl* tbl,
|
149
|
+
grpc_mdelem md) {
|
149
150
|
/* determine how many bytes of buffer this entry represents */
|
150
151
|
size_t elem_bytes = GRPC_SLICE_LENGTH(GRPC_MDKEY(md)) +
|
151
152
|
GRPC_SLICE_LENGTH(GRPC_MDVALUE(md)) +
|
@@ -89,8 +89,8 @@ struct grpc_chttp2_hptbl {
|
|
89
89
|
void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl* tbl);
|
90
90
|
void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl* tbl,
|
91
91
|
uint32_t max_bytes);
|
92
|
-
|
93
|
-
|
92
|
+
grpc_error_handle grpc_chttp2_hptbl_set_current_table_size(
|
93
|
+
grpc_chttp2_hptbl* tbl, uint32_t bytes);
|
94
94
|
|
95
95
|
/* lookup a table entry based on its hpack index */
|
96
96
|
grpc_mdelem grpc_chttp2_hptbl_lookup_dynamic_index(const grpc_chttp2_hptbl* tbl,
|
@@ -117,8 +117,8 @@ inline grpc_mdelem grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl* tbl,
|
|
117
117
|
}
|
118
118
|
}
|
119
119
|
/* add a table entry to the index */
|
120
|
-
|
121
|
-
|
120
|
+
grpc_error_handle grpc_chttp2_hptbl_add(grpc_chttp2_hptbl* tbl,
|
121
|
+
grpc_mdelem md) GRPC_MUST_USE_RESULT;
|
122
122
|
|
123
123
|
size_t grpc_chttp2_get_size_in_hpack_table(grpc_mdelem elem,
|
124
124
|
bool use_true_binary_metadata);
|
@@ -27,7 +27,7 @@
|
|
27
27
|
#include <grpc/support/alloc.h>
|
28
28
|
#include <grpc/support/log.h>
|
29
29
|
|
30
|
-
|
30
|
+
grpc_error_handle grpc_chttp2_incoming_metadata_buffer_add(
|
31
31
|
grpc_chttp2_incoming_metadata_buffer* buffer, grpc_mdelem elem) {
|
32
32
|
buffer->size += GRPC_MDELEM_LENGTH(elem);
|
33
33
|
grpc_linked_mdelem* storage;
|
@@ -42,7 +42,7 @@ grpc_error* grpc_chttp2_incoming_metadata_buffer_add(
|
|
42
42
|
return grpc_metadata_batch_link_tail(&buffer->batch, storage);
|
43
43
|
}
|
44
44
|
|
45
|
-
|
45
|
+
grpc_error_handle grpc_chttp2_incoming_metadata_buffer_replace_or_add(
|
46
46
|
grpc_chttp2_incoming_metadata_buffer* buffer, grpc_mdelem elem) {
|
47
47
|
for (grpc_linked_mdelem* l = buffer->batch.list.head; l != nullptr;
|
48
48
|
l = l->next) {
|
@@ -46,10 +46,10 @@ struct grpc_chttp2_incoming_metadata_buffer {
|
|
46
46
|
void grpc_chttp2_incoming_metadata_buffer_publish(
|
47
47
|
grpc_chttp2_incoming_metadata_buffer* buffer, grpc_metadata_batch* batch);
|
48
48
|
|
49
|
-
|
49
|
+
grpc_error_handle grpc_chttp2_incoming_metadata_buffer_add(
|
50
50
|
grpc_chttp2_incoming_metadata_buffer* buffer,
|
51
51
|
grpc_mdelem elem) GRPC_MUST_USE_RESULT;
|
52
|
-
|
52
|
+
grpc_error_handle grpc_chttp2_incoming_metadata_buffer_replace_or_add(
|
53
53
|
grpc_chttp2_incoming_metadata_buffer* buffer,
|
54
54
|
grpc_mdelem elem) GRPC_MUST_USE_RESULT;
|
55
55
|
void grpc_chttp2_incoming_metadata_buffer_set_deadline(
|
@@ -217,8 +217,8 @@ class Chttp2IncomingByteStream : public ByteStream {
|
|
217
217
|
void Orphan() override;
|
218
218
|
|
219
219
|
bool Next(size_t max_size_hint, grpc_closure* on_complete) override;
|
220
|
-
|
221
|
-
void Shutdown(
|
220
|
+
grpc_error_handle Pull(grpc_slice* slice) override;
|
221
|
+
void Shutdown(grpc_error_handle error) override;
|
222
222
|
|
223
223
|
// TODO(roth): When I converted this class to C++, I wanted to make it
|
224
224
|
// inherit from RefCounted or InternallyRefCounted instead of continuing
|
@@ -241,17 +241,17 @@ class Chttp2IncomingByteStream : public ByteStream {
|
|
241
241
|
}
|
242
242
|
}
|
243
243
|
|
244
|
-
void PublishError(
|
244
|
+
void PublishError(grpc_error_handle error);
|
245
245
|
|
246
|
-
|
246
|
+
grpc_error_handle Push(const grpc_slice& slice, grpc_slice* slice_out);
|
247
247
|
|
248
|
-
|
248
|
+
grpc_error_handle Finished(grpc_error_handle error, bool reset_on_error);
|
249
249
|
|
250
250
|
uint32_t remaining_bytes() const { return remaining_bytes_; }
|
251
251
|
|
252
252
|
private:
|
253
|
-
static void NextLocked(void* arg,
|
254
|
-
static void OrphanLocked(void* arg,
|
253
|
+
static void NextLocked(void* arg, grpc_error_handle error_ignored);
|
254
|
+
static void OrphanLocked(void* arg, grpc_error_handle error_ignored);
|
255
255
|
|
256
256
|
void MaybeCreateStreamDecompressionCtx();
|
257
257
|
|
@@ -309,7 +309,7 @@ struct grpc_chttp2_transport {
|
|
309
309
|
/** is the transport destroying itself? */
|
310
310
|
uint8_t destroying = false;
|
311
311
|
/** has the upper layer closed the transport? */
|
312
|
-
|
312
|
+
grpc_error_handle closed_with_error = GRPC_ERROR_NONE;
|
313
313
|
|
314
314
|
/** is there a read request to the endpoint outstanding? */
|
315
315
|
uint8_t endpoint_reading = 1;
|
@@ -358,7 +358,7 @@ struct grpc_chttp2_transport {
|
|
358
358
|
|
359
359
|
/** Set to a grpc_error object if a goaway frame is received. By default, set
|
360
360
|
* to GRPC_ERROR_NONE */
|
361
|
-
|
361
|
+
grpc_error_handle goaway_error = GRPC_ERROR_NONE;
|
362
362
|
|
363
363
|
grpc_chttp2_sent_goaway_state sent_goaway_state = GRPC_CHTTP2_NO_GOAWAY_SEND;
|
364
364
|
|
@@ -428,9 +428,9 @@ struct grpc_chttp2_transport {
|
|
428
428
|
/* active parser */
|
429
429
|
void* parser_data = nullptr;
|
430
430
|
grpc_chttp2_stream* incoming_stream = nullptr;
|
431
|
-
|
432
|
-
|
433
|
-
|
431
|
+
grpc_error_handle (*parser)(void* parser_user_data, grpc_chttp2_transport* t,
|
432
|
+
grpc_chttp2_stream* s, const grpc_slice& slice,
|
433
|
+
int is_last);
|
434
434
|
|
435
435
|
grpc_chttp2_write_cb* write_cb_pool = nullptr;
|
436
436
|
|
@@ -443,7 +443,7 @@ struct grpc_chttp2_transport {
|
|
443
443
|
|
444
444
|
/* if non-NULL, close the transport with this error when writes are finished
|
445
445
|
*/
|
446
|
-
|
446
|
+
grpc_error_handle close_transport_on_writes_finished = GRPC_ERROR_NONE;
|
447
447
|
|
448
448
|
/* a list of closures to run after writes are finished */
|
449
449
|
grpc_closure_list run_after_write = GRPC_CLOSURE_LIST_INIT;
|
@@ -581,9 +581,9 @@ struct grpc_chttp2_stream {
|
|
581
581
|
bool eos_sent = false;
|
582
582
|
|
583
583
|
/** the error that resulted in this stream being read-closed */
|
584
|
-
|
584
|
+
grpc_error_handle read_closed_error = GRPC_ERROR_NONE;
|
585
585
|
/** the error that resulted in this stream being write-closed */
|
586
|
-
|
586
|
+
grpc_error_handle write_closed_error = GRPC_ERROR_NONE;
|
587
587
|
|
588
588
|
grpc_published_metadata_method published_metadata[2] = {};
|
589
589
|
bool final_metadata_requested = false;
|
@@ -604,13 +604,14 @@ struct grpc_chttp2_stream {
|
|
604
604
|
* true */
|
605
605
|
grpc_slice_buffer unprocessed_incoming_frames_buffer;
|
606
606
|
grpc_closure reset_byte_stream;
|
607
|
-
|
608
|
-
|
607
|
+
grpc_error_handle byte_stream_error =
|
608
|
+
GRPC_ERROR_NONE; /* protected by t combiner */
|
609
|
+
bool received_last_frame = false; /* protected by t combiner */
|
609
610
|
|
610
611
|
grpc_millis deadline = GRPC_MILLIS_INF_FUTURE;
|
611
612
|
|
612
613
|
/** saw some stream level error */
|
613
|
-
|
614
|
+
grpc_error_handle forced_close_error = GRPC_ERROR_NONE;
|
614
615
|
/** how many header frames have we received? */
|
615
616
|
uint8_t header_frames_received = 0;
|
616
617
|
/** parsing state for data frames */
|
@@ -696,12 +697,12 @@ struct grpc_chttp2_begin_write_result {
|
|
696
697
|
};
|
697
698
|
grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
|
698
699
|
grpc_chttp2_transport* t);
|
699
|
-
void grpc_chttp2_end_write(grpc_chttp2_transport* t,
|
700
|
+
void grpc_chttp2_end_write(grpc_chttp2_transport* t, grpc_error_handle error);
|
700
701
|
|
701
702
|
/** Process one slice of incoming data; return 1 if the connection is still
|
702
703
|
viable after reading, or 0 if the connection should be torn down */
|
703
|
-
|
704
|
-
|
704
|
+
grpc_error_handle grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
705
|
+
const grpc_slice& slice);
|
705
706
|
|
706
707
|
bool grpc_chttp2_list_add_writable_stream(grpc_chttp2_transport* t,
|
707
708
|
grpc_chttp2_stream* s);
|
@@ -771,7 +772,8 @@ void grpc_chttp2_parsing_become_skip_parser(grpc_chttp2_transport* t);
|
|
771
772
|
void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
772
773
|
grpc_chttp2_stream* s,
|
773
774
|
grpc_closure** pclosure,
|
774
|
-
|
775
|
+
grpc_error_handle error,
|
776
|
+
const char* desc);
|
775
777
|
|
776
778
|
#define GRPC_HEADER_SIZE_IN_BYTES 5
|
777
779
|
#define MAX_SIZE_T (~(size_t)0)
|
@@ -791,10 +793,11 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
791
793
|
} while (0)
|
792
794
|
|
793
795
|
void grpc_chttp2_fake_status(grpc_chttp2_transport* t,
|
794
|
-
grpc_chttp2_stream* stream,
|
796
|
+
grpc_chttp2_stream* stream,
|
797
|
+
grpc_error_handle error);
|
795
798
|
void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
796
799
|
grpc_chttp2_stream* s, int close_reads,
|
797
|
-
int close_writes,
|
800
|
+
int close_writes, grpc_error_handle error);
|
798
801
|
void grpc_chttp2_start_writing(grpc_chttp2_transport* t);
|
799
802
|
|
800
803
|
#ifndef NDEBUG
|
@@ -862,7 +865,7 @@ void grpc_chttp2_mark_stream_writable(grpc_chttp2_transport* t,
|
|
862
865
|
grpc_chttp2_stream* s);
|
863
866
|
|
864
867
|
void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
865
|
-
|
868
|
+
grpc_error_handle due_to_error);
|
866
869
|
|
867
870
|
void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_chttp2_transport* t,
|
868
871
|
grpc_chttp2_stream* s);
|
@@ -872,14 +875,15 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
|
872
875
|
grpc_chttp2_stream* s);
|
873
876
|
|
874
877
|
void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
875
|
-
grpc_chttp2_stream* s,
|
878
|
+
grpc_chttp2_stream* s,
|
879
|
+
grpc_error_handle error);
|
876
880
|
|
877
881
|
/** Set the default keepalive configurations, must only be called at
|
878
882
|
initialization */
|
879
883
|
void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
880
884
|
bool is_client);
|
881
885
|
|
882
|
-
void grpc_chttp2_retry_initiate_ping(void* tp,
|
886
|
+
void grpc_chttp2_retry_initiate_ping(void* tp, grpc_error_handle error);
|
883
887
|
|
884
888
|
void schedule_bdp_ping_locked(grpc_chttp2_transport* t);
|
885
889
|
|
@@ -36,27 +36,29 @@
|
|
36
36
|
#include "src/core/lib/transport/status_conversion.h"
|
37
37
|
#include "src/core/lib/transport/timeout_encoding.h"
|
38
38
|
|
39
|
-
static
|
40
|
-
static
|
41
|
-
|
42
|
-
static
|
43
|
-
static
|
44
|
-
static
|
45
|
-
static
|
46
|
-
|
47
|
-
static
|
48
|
-
static
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
39
|
+
static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t);
|
40
|
+
static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
41
|
+
int is_continuation);
|
42
|
+
static grpc_error_handle init_data_frame_parser(grpc_chttp2_transport* t);
|
43
|
+
static grpc_error_handle init_rst_stream_parser(grpc_chttp2_transport* t);
|
44
|
+
static grpc_error_handle init_settings_frame_parser(grpc_chttp2_transport* t);
|
45
|
+
static grpc_error_handle init_window_update_frame_parser(
|
46
|
+
grpc_chttp2_transport* t);
|
47
|
+
static grpc_error_handle init_ping_parser(grpc_chttp2_transport* t);
|
48
|
+
static grpc_error_handle init_goaway_parser(grpc_chttp2_transport* t);
|
49
|
+
static grpc_error_handle init_skip_frame_parser(grpc_chttp2_transport* t,
|
50
|
+
int is_header);
|
51
|
+
|
52
|
+
static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t,
|
53
|
+
const grpc_slice& slice,
|
54
|
+
int is_last);
|
55
|
+
|
56
|
+
grpc_error_handle grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
57
|
+
const grpc_slice& slice) {
|
56
58
|
const uint8_t* beg = GRPC_SLICE_START_PTR(slice);
|
57
59
|
const uint8_t* end = GRPC_SLICE_END_PTR(slice);
|
58
60
|
const uint8_t* cur = beg;
|
59
|
-
|
61
|
+
grpc_error_handle err;
|
60
62
|
|
61
63
|
if (cur == end) return GRPC_ERROR_NONE;
|
62
64
|
|
@@ -250,7 +252,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
250
252
|
GPR_UNREACHABLE_CODE(return nullptr);
|
251
253
|
}
|
252
254
|
|
253
|
-
static
|
255
|
+
static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t) {
|
254
256
|
if (t->is_first_frame &&
|
255
257
|
t->incoming_frame_type != GRPC_CHTTP2_FRAME_SETTINGS) {
|
256
258
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
@@ -303,19 +305,21 @@ static grpc_error* init_frame_parser(grpc_chttp2_transport* t) {
|
|
303
305
|
}
|
304
306
|
}
|
305
307
|
|
306
|
-
static
|
307
|
-
|
308
|
-
|
308
|
+
static grpc_error_handle skip_parser(void* /*parser*/,
|
309
|
+
grpc_chttp2_transport* /*t*/,
|
310
|
+
grpc_chttp2_stream* /*s*/,
|
311
|
+
const grpc_slice& /*slice*/,
|
312
|
+
int /*is_last*/) {
|
309
313
|
return GRPC_ERROR_NONE;
|
310
314
|
}
|
311
315
|
|
312
|
-
static
|
316
|
+
static grpc_error_handle skip_header(void* /*tp*/, grpc_mdelem md) {
|
313
317
|
GRPC_MDELEM_UNREF(md);
|
314
318
|
return GRPC_ERROR_NONE;
|
315
319
|
}
|
316
320
|
|
317
|
-
static
|
318
|
-
|
321
|
+
static grpc_error_handle init_skip_frame_parser(grpc_chttp2_transport* t,
|
322
|
+
int is_header) {
|
319
323
|
if (is_header) {
|
320
324
|
uint8_t is_eoh = t->expect_continuation_stream_id != 0;
|
321
325
|
t->parser = grpc_chttp2_header_parser_parse;
|
@@ -334,7 +338,7 @@ void grpc_chttp2_parsing_become_skip_parser(grpc_chttp2_transport* t) {
|
|
334
338
|
init_skip_frame_parser(t, t->parser == grpc_chttp2_header_parser_parse);
|
335
339
|
}
|
336
340
|
|
337
|
-
static
|
341
|
+
static grpc_error_handle init_data_frame_parser(grpc_chttp2_transport* t) {
|
338
342
|
// Update BDP accounting since we have received a data frame.
|
339
343
|
grpc_core::BdpEstimator* bdp_est = t->flow_control->bdp_estimator();
|
340
344
|
if (bdp_est) {
|
@@ -347,7 +351,7 @@ static grpc_error* init_data_frame_parser(grpc_chttp2_transport* t) {
|
|
347
351
|
}
|
348
352
|
grpc_chttp2_stream* s =
|
349
353
|
grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
|
350
|
-
|
354
|
+
grpc_error_handle err = GRPC_ERROR_NONE;
|
351
355
|
grpc_core::chttp2::FlowControlAction action;
|
352
356
|
if (s == nullptr) {
|
353
357
|
err = t->flow_control->RecvData(t->incoming_frame_size);
|
@@ -413,8 +417,8 @@ static void GPR_ATTRIBUTE_NOINLINE on_initial_header_log(
|
|
413
417
|
gpr_free(value);
|
414
418
|
}
|
415
419
|
|
416
|
-
static
|
417
|
-
|
420
|
+
static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
|
421
|
+
handle_timeout(grpc_chttp2_stream* s, grpc_mdelem md) {
|
418
422
|
grpc_millis* cached_timeout =
|
419
423
|
static_cast<grpc_millis*>(grpc_mdelem_get_user_data(md, free_timeout));
|
420
424
|
grpc_millis timeout;
|
@@ -443,9 +447,11 @@ static grpc_error* GPR_ATTRIBUTE_NOINLINE handle_timeout(grpc_chttp2_stream* s,
|
|
443
447
|
return GRPC_ERROR_NONE;
|
444
448
|
}
|
445
449
|
|
446
|
-
static
|
447
|
-
|
448
|
-
|
450
|
+
static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
|
451
|
+
handle_metadata_size_limit_exceeded(grpc_chttp2_transport* t,
|
452
|
+
grpc_chttp2_stream* s, grpc_mdelem md,
|
453
|
+
size_t new_size,
|
454
|
+
size_t metadata_size_limit) {
|
449
455
|
gpr_log(GPR_DEBUG,
|
450
456
|
"received initial metadata size exceeds limit (%" PRIuPTR
|
451
457
|
" vs. %" PRIuPTR
|
@@ -463,9 +469,9 @@ static grpc_error* GPR_ATTRIBUTE_NOINLINE handle_metadata_size_limit_exceeded(
|
|
463
469
|
return GRPC_ERROR_NONE;
|
464
470
|
}
|
465
471
|
|
466
|
-
static
|
472
|
+
static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
|
467
473
|
handle_metadata_add_failure(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
468
|
-
grpc_mdelem md,
|
474
|
+
grpc_mdelem md, grpc_error_handle error) {
|
469
475
|
grpc_chttp2_cancel_stream(t, s, error);
|
470
476
|
grpc_chttp2_parsing_become_skip_parser(t);
|
471
477
|
s->seen_error = true;
|
@@ -473,7 +479,7 @@ handle_metadata_add_failure(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
473
479
|
return GRPC_ERROR_NONE;
|
474
480
|
}
|
475
481
|
|
476
|
-
static
|
482
|
+
static grpc_error_handle on_initial_header(void* tp, grpc_mdelem md) {
|
477
483
|
GPR_TIMER_SCOPE("on_initial_header", 0);
|
478
484
|
|
479
485
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
@@ -496,7 +502,7 @@ static grpc_error* on_initial_header(void* tp, grpc_mdelem md) {
|
|
496
502
|
return handle_metadata_size_limit_exceeded(t, s, md, new_size,
|
497
503
|
metadata_size_limit);
|
498
504
|
} else {
|
499
|
-
|
505
|
+
grpc_error_handle error =
|
500
506
|
grpc_chttp2_incoming_metadata_buffer_add(&s->metadata_buffer[0], md);
|
501
507
|
if (GPR_UNLIKELY(error != GRPC_ERROR_NONE)) {
|
502
508
|
return handle_metadata_add_failure(t, s, md, error);
|
@@ -506,7 +512,7 @@ static grpc_error* on_initial_header(void* tp, grpc_mdelem md) {
|
|
506
512
|
return GRPC_ERROR_NONE;
|
507
513
|
}
|
508
514
|
|
509
|
-
static
|
515
|
+
static grpc_error_handle on_trailing_header(void* tp, grpc_mdelem md) {
|
510
516
|
GPR_TIMER_SCOPE("on_trailing_header", 0);
|
511
517
|
|
512
518
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
@@ -545,7 +551,7 @@ static grpc_error* on_trailing_header(void* tp, grpc_mdelem md) {
|
|
545
551
|
s->seen_error = true;
|
546
552
|
GRPC_MDELEM_UNREF(md);
|
547
553
|
} else {
|
548
|
-
|
554
|
+
grpc_error_handle error =
|
549
555
|
grpc_chttp2_incoming_metadata_buffer_add(&s->metadata_buffer[1], md);
|
550
556
|
if (error != GRPC_ERROR_NONE) {
|
551
557
|
grpc_chttp2_cancel_stream(t, s, error);
|
@@ -557,8 +563,8 @@ static grpc_error* on_trailing_header(void* tp, grpc_mdelem md) {
|
|
557
563
|
return GRPC_ERROR_NONE;
|
558
564
|
}
|
559
565
|
|
560
|
-
static
|
561
|
-
|
566
|
+
static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
567
|
+
int is_continuation) {
|
562
568
|
uint8_t is_eoh =
|
563
569
|
(t->incoming_frame_flags & GRPC_CHTTP2_DATA_FLAG_END_HEADERS) != 0;
|
564
570
|
grpc_chttp2_stream* s;
|
@@ -595,7 +601,7 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
|
|
595
601
|
GRPC_CHTTP2_IF_TRACING(gpr_log(
|
596
602
|
GPR_ERROR, "ignoring new grpc_chttp2_stream creation on client"));
|
597
603
|
}
|
598
|
-
|
604
|
+
grpc_error_handle err = init_skip_frame_parser(t, 1);
|
599
605
|
if (t->incoming_frame_flags & GRPC_CHTTP2_FLAG_HAS_PRIORITY) {
|
600
606
|
grpc_chttp2_hpack_parser_set_has_priority(&t->hpack_parser);
|
601
607
|
}
|
@@ -678,8 +684,9 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
|
|
678
684
|
return GRPC_ERROR_NONE;
|
679
685
|
}
|
680
686
|
|
681
|
-
static
|
682
|
-
|
687
|
+
static grpc_error_handle init_window_update_frame_parser(
|
688
|
+
grpc_chttp2_transport* t) {
|
689
|
+
grpc_error_handle err = grpc_chttp2_window_update_parser_begin_frame(
|
683
690
|
&t->simple.window_update, t->incoming_frame_size,
|
684
691
|
t->incoming_frame_flags);
|
685
692
|
if (err != GRPC_ERROR_NONE) return err;
|
@@ -696,8 +703,8 @@ static grpc_error* init_window_update_frame_parser(grpc_chttp2_transport* t) {
|
|
696
703
|
return GRPC_ERROR_NONE;
|
697
704
|
}
|
698
705
|
|
699
|
-
static
|
700
|
-
|
706
|
+
static grpc_error_handle init_ping_parser(grpc_chttp2_transport* t) {
|
707
|
+
grpc_error_handle err = grpc_chttp2_ping_parser_begin_frame(
|
701
708
|
&t->simple.ping, t->incoming_frame_size, t->incoming_frame_flags);
|
702
709
|
if (err != GRPC_ERROR_NONE) return err;
|
703
710
|
t->parser = grpc_chttp2_ping_parser_parse;
|
@@ -705,8 +712,8 @@ static grpc_error* init_ping_parser(grpc_chttp2_transport* t) {
|
|
705
712
|
return GRPC_ERROR_NONE;
|
706
713
|
}
|
707
714
|
|
708
|
-
static
|
709
|
-
|
715
|
+
static grpc_error_handle init_rst_stream_parser(grpc_chttp2_transport* t) {
|
716
|
+
grpc_error_handle err = grpc_chttp2_rst_stream_parser_begin_frame(
|
710
717
|
&t->simple.rst_stream, t->incoming_frame_size, t->incoming_frame_flags);
|
711
718
|
if (err != GRPC_ERROR_NONE) return err;
|
712
719
|
grpc_chttp2_stream* s = t->incoming_stream =
|
@@ -720,8 +727,8 @@ static grpc_error* init_rst_stream_parser(grpc_chttp2_transport* t) {
|
|
720
727
|
return GRPC_ERROR_NONE;
|
721
728
|
}
|
722
729
|
|
723
|
-
static
|
724
|
-
|
730
|
+
static grpc_error_handle init_goaway_parser(grpc_chttp2_transport* t) {
|
731
|
+
grpc_error_handle err = grpc_chttp2_goaway_parser_begin_frame(
|
725
732
|
&t->goaway_parser, t->incoming_frame_size, t->incoming_frame_flags);
|
726
733
|
if (err != GRPC_ERROR_NONE) return err;
|
727
734
|
t->parser = grpc_chttp2_goaway_parser_parse;
|
@@ -729,13 +736,13 @@ static grpc_error* init_goaway_parser(grpc_chttp2_transport* t) {
|
|
729
736
|
return GRPC_ERROR_NONE;
|
730
737
|
}
|
731
738
|
|
732
|
-
static
|
739
|
+
static grpc_error_handle init_settings_frame_parser(grpc_chttp2_transport* t) {
|
733
740
|
if (t->incoming_stream_id != 0) {
|
734
741
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
735
742
|
"Settings frame received for grpc_chttp2_stream");
|
736
743
|
}
|
737
744
|
|
738
|
-
|
745
|
+
grpc_error_handle err = grpc_chttp2_settings_parser_begin_frame(
|
739
746
|
&t->simple.settings, t->incoming_frame_size, t->incoming_frame_flags,
|
740
747
|
t->settings[GRPC_PEER_SETTINGS]);
|
741
748
|
if (err != GRPC_ERROR_NONE) {
|
@@ -755,17 +762,17 @@ static grpc_error* init_settings_frame_parser(grpc_chttp2_transport* t) {
|
|
755
762
|
return GRPC_ERROR_NONE;
|
756
763
|
}
|
757
764
|
|
758
|
-
static
|
759
|
-
|
765
|
+
static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t,
|
766
|
+
const grpc_slice& slice,
|
767
|
+
int is_last) {
|
760
768
|
grpc_chttp2_stream* s = t->incoming_stream;
|
761
|
-
|
769
|
+
grpc_error_handle err = t->parser(t->parser_data, t, s, slice, is_last);
|
762
770
|
intptr_t unused;
|
763
771
|
if (GPR_LIKELY(err == GRPC_ERROR_NONE)) {
|
764
772
|
return err;
|
765
773
|
} else if (grpc_error_get_int(err, GRPC_ERROR_INT_STREAM_ID, &unused)) {
|
766
774
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
767
|
-
|
768
|
-
gpr_log(GPR_ERROR, "%s", msg);
|
775
|
+
gpr_log(GPR_ERROR, "%s", grpc_error_std_string(err).c_str());
|
769
776
|
}
|
770
777
|
grpc_chttp2_parsing_become_skip_parser(t);
|
771
778
|
if (s) {
|