grpc 1.37.1 → 1.40.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 +112 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +330 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +66 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +44 -19
- data/include/grpc/impl/codegen/port_platform.h +46 -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 +975 -3282
- data/src/core/ext/filters/client_channel/client_channel.h +513 -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 +20 -7
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +53 -51
- 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 +14 -23
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +16 -16
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -17
- 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 +17 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +53 -65
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +36 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +33 -55
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +151 -163
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -16
- data/src/core/ext/filters/client_channel/lb_policy.h +70 -46
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +158 -102
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2598 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_call_data.h +45 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +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 +33 -23
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +49 -46
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +141 -126
- 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 +9 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +12 -12
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -16
- 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 +11 -10
- 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 +652 -736
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
- 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 +33 -28
- data/src/core/ext/transport/chttp2/transport/parsing.cc +129 -106
- data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +56 -35
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -76
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +97 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +67 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +66 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +227 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +32 -24
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -73
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +27 -19
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +57 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +29 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +15 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +85 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +274 -91
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +11 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +33 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +1 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +82 -66
- data/src/core/ext/upb-generated/validate/validate.upb.h +220 -124
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +437 -410
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +684 -664
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +441 -375
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +122 -114
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- 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 +665 -317
- data/src/core/ext/xds/xds_api.h +52 -14
- data/src/core/ext/xds/xds_bootstrap.cc +101 -160
- 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 +370 -215
- data/src/core/ext/xds/xds_client.h +38 -28
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +3 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +11 -10
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/channel/status_util.h +4 -0
- data/src/core/lib/compression/stream_compression.h +1 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/debug/stats.h +1 -1
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/gprpp/sync.h +2 -30
- 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 +8 -10
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +13 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +7 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +29 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- 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 +5 -6
- data/src/core/lib/matchers/matchers.cc +46 -58
- data/src/core/lib/matchers/matchers.h +30 -29
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +68 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +60 -76
- 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 +45 -36
- data/src/core/lib/security/transport/server_auth_filter.cc +17 -18
- 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/slice/slice_internal.h +1 -0
- data/src/core/lib/surface/call.cc +72 -52
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +31 -23
- data/src/core/lib/surface/server.h +19 -18
- 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 +2 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +116 -51
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -36,27 +36,31 @@
|
|
36
36
|
#include "src/core/lib/transport/status_conversion.h"
|
37
37
|
#include "src/core/lib/transport/timeout_encoding.h"
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
static
|
43
|
-
|
44
|
-
static
|
45
|
-
static
|
46
|
-
static
|
47
|
-
static
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
static
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
39
|
+
using grpc_core::HPackParser;
|
40
|
+
|
41
|
+
static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t);
|
42
|
+
static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
43
|
+
int is_continuation);
|
44
|
+
static grpc_error_handle init_data_frame_parser(grpc_chttp2_transport* t);
|
45
|
+
static grpc_error_handle init_rst_stream_parser(grpc_chttp2_transport* t);
|
46
|
+
static grpc_error_handle init_settings_frame_parser(grpc_chttp2_transport* t);
|
47
|
+
static grpc_error_handle init_window_update_frame_parser(
|
48
|
+
grpc_chttp2_transport* t);
|
49
|
+
static grpc_error_handle init_ping_parser(grpc_chttp2_transport* t);
|
50
|
+
static grpc_error_handle init_goaway_parser(grpc_chttp2_transport* t);
|
51
|
+
static grpc_error_handle init_non_header_skip_frame_parser(
|
52
|
+
grpc_chttp2_transport* t);
|
53
|
+
|
54
|
+
static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t,
|
55
|
+
const grpc_slice& slice,
|
56
|
+
int is_last);
|
57
|
+
|
58
|
+
grpc_error_handle grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
59
|
+
const grpc_slice& slice) {
|
56
60
|
const uint8_t* beg = GRPC_SLICE_START_PTR(slice);
|
57
61
|
const uint8_t* end = GRPC_SLICE_END_PTR(slice);
|
58
62
|
const uint8_t* cur = beg;
|
59
|
-
|
63
|
+
grpc_error_handle err;
|
60
64
|
|
61
65
|
if (cur == end) return GRPC_ERROR_NONE;
|
62
66
|
|
@@ -105,8 +109,8 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
105
109
|
if (cur == end) {
|
106
110
|
return GRPC_ERROR_NONE;
|
107
111
|
}
|
108
|
-
/* fallthrough */
|
109
112
|
dts_fh_0:
|
113
|
+
ABSL_FALLTHROUGH_INTENDED;
|
110
114
|
case GRPC_DTS_FH_0:
|
111
115
|
GPR_DEBUG_ASSERT(cur < end);
|
112
116
|
t->incoming_frame_size = (static_cast<uint32_t>(*cur)) << 16;
|
@@ -114,7 +118,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
114
118
|
t->deframe_state = GRPC_DTS_FH_1;
|
115
119
|
return GRPC_ERROR_NONE;
|
116
120
|
}
|
117
|
-
|
121
|
+
ABSL_FALLTHROUGH_INTENDED;
|
118
122
|
case GRPC_DTS_FH_1:
|
119
123
|
GPR_DEBUG_ASSERT(cur < end);
|
120
124
|
t->incoming_frame_size |= (static_cast<uint32_t>(*cur)) << 8;
|
@@ -122,7 +126,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
122
126
|
t->deframe_state = GRPC_DTS_FH_2;
|
123
127
|
return GRPC_ERROR_NONE;
|
124
128
|
}
|
125
|
-
|
129
|
+
ABSL_FALLTHROUGH_INTENDED;
|
126
130
|
case GRPC_DTS_FH_2:
|
127
131
|
GPR_DEBUG_ASSERT(cur < end);
|
128
132
|
t->incoming_frame_size |= *cur;
|
@@ -130,7 +134,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
130
134
|
t->deframe_state = GRPC_DTS_FH_3;
|
131
135
|
return GRPC_ERROR_NONE;
|
132
136
|
}
|
133
|
-
|
137
|
+
ABSL_FALLTHROUGH_INTENDED;
|
134
138
|
case GRPC_DTS_FH_3:
|
135
139
|
GPR_DEBUG_ASSERT(cur < end);
|
136
140
|
t->incoming_frame_type = *cur;
|
@@ -138,7 +142,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
138
142
|
t->deframe_state = GRPC_DTS_FH_4;
|
139
143
|
return GRPC_ERROR_NONE;
|
140
144
|
}
|
141
|
-
|
145
|
+
ABSL_FALLTHROUGH_INTENDED;
|
142
146
|
case GRPC_DTS_FH_4:
|
143
147
|
GPR_DEBUG_ASSERT(cur < end);
|
144
148
|
t->incoming_frame_flags = *cur;
|
@@ -146,7 +150,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
146
150
|
t->deframe_state = GRPC_DTS_FH_5;
|
147
151
|
return GRPC_ERROR_NONE;
|
148
152
|
}
|
149
|
-
|
153
|
+
ABSL_FALLTHROUGH_INTENDED;
|
150
154
|
case GRPC_DTS_FH_5:
|
151
155
|
GPR_DEBUG_ASSERT(cur < end);
|
152
156
|
t->incoming_stream_id = ((static_cast<uint32_t>(*cur)) & 0x7f) << 24;
|
@@ -154,7 +158,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
154
158
|
t->deframe_state = GRPC_DTS_FH_6;
|
155
159
|
return GRPC_ERROR_NONE;
|
156
160
|
}
|
157
|
-
|
161
|
+
ABSL_FALLTHROUGH_INTENDED;
|
158
162
|
case GRPC_DTS_FH_6:
|
159
163
|
GPR_DEBUG_ASSERT(cur < end);
|
160
164
|
t->incoming_stream_id |= (static_cast<uint32_t>(*cur)) << 16;
|
@@ -162,7 +166,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
162
166
|
t->deframe_state = GRPC_DTS_FH_7;
|
163
167
|
return GRPC_ERROR_NONE;
|
164
168
|
}
|
165
|
-
|
169
|
+
ABSL_FALLTHROUGH_INTENDED;
|
166
170
|
case GRPC_DTS_FH_7:
|
167
171
|
GPR_DEBUG_ASSERT(cur < end);
|
168
172
|
t->incoming_stream_id |= (static_cast<uint32_t>(*cur)) << 8;
|
@@ -170,7 +174,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
170
174
|
t->deframe_state = GRPC_DTS_FH_8;
|
171
175
|
return GRPC_ERROR_NONE;
|
172
176
|
}
|
173
|
-
|
177
|
+
ABSL_FALLTHROUGH_INTENDED;
|
174
178
|
case GRPC_DTS_FH_8:
|
175
179
|
GPR_DEBUG_ASSERT(cur < end);
|
176
180
|
t->incoming_stream_id |= (static_cast<uint32_t>(*cur));
|
@@ -204,7 +208,7 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
204
208
|
if (++cur == end) {
|
205
209
|
return GRPC_ERROR_NONE;
|
206
210
|
}
|
207
|
-
|
211
|
+
ABSL_FALLTHROUGH_INTENDED;
|
208
212
|
case GRPC_DTS_FRAME:
|
209
213
|
GPR_DEBUG_ASSERT(cur < end);
|
210
214
|
if (static_cast<uint32_t>(end - cur) == t->incoming_frame_size) {
|
@@ -244,13 +248,13 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
244
248
|
t->incoming_frame_size -= static_cast<uint32_t>(end - cur);
|
245
249
|
return GRPC_ERROR_NONE;
|
246
250
|
}
|
247
|
-
GPR_UNREACHABLE_CODE(return
|
251
|
+
GPR_UNREACHABLE_CODE(return GRPC_ERROR_NONE);
|
248
252
|
}
|
249
253
|
|
250
|
-
GPR_UNREACHABLE_CODE(return
|
254
|
+
GPR_UNREACHABLE_CODE(return GRPC_ERROR_NONE);
|
251
255
|
}
|
252
256
|
|
253
|
-
static
|
257
|
+
static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t) {
|
254
258
|
if (t->is_first_frame &&
|
255
259
|
t->incoming_frame_type != GRPC_CHTTP2_FRAME_SETTINGS) {
|
256
260
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
@@ -299,42 +303,61 @@ static grpc_error* init_frame_parser(grpc_chttp2_transport* t) {
|
|
299
303
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
300
304
|
gpr_log(GPR_ERROR, "Unknown frame type %02x", t->incoming_frame_type);
|
301
305
|
}
|
302
|
-
return
|
306
|
+
return init_non_header_skip_frame_parser(t);
|
303
307
|
}
|
304
308
|
}
|
305
309
|
|
306
|
-
static
|
307
|
-
|
308
|
-
|
310
|
+
static grpc_error_handle skip_parser(void* /*parser*/,
|
311
|
+
grpc_chttp2_transport* /*t*/,
|
312
|
+
grpc_chttp2_stream* /*s*/,
|
313
|
+
const grpc_slice& /*slice*/,
|
314
|
+
int /*is_last*/) {
|
309
315
|
return GRPC_ERROR_NONE;
|
310
316
|
}
|
311
317
|
|
312
|
-
|
318
|
+
grpc_error_handle skip_header(grpc_mdelem md) {
|
313
319
|
GRPC_MDELEM_UNREF(md);
|
314
320
|
return GRPC_ERROR_NONE;
|
315
321
|
}
|
316
322
|
|
317
|
-
static
|
318
|
-
|
319
|
-
if (
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
t->hpack_parser.is_boundary = is_eoh;
|
326
|
-
t->hpack_parser.is_eof = static_cast<uint8_t>(is_eoh ? t->header_eof : 0);
|
323
|
+
static HPackParser::Boundary hpack_boundary_type(grpc_chttp2_transport* t,
|
324
|
+
bool is_eoh) {
|
325
|
+
if (is_eoh) {
|
326
|
+
if (t->header_eof) {
|
327
|
+
return HPackParser::Boundary::EndOfStream;
|
328
|
+
} else {
|
329
|
+
return HPackParser::Boundary::EndOfHeaders;
|
330
|
+
}
|
327
331
|
} else {
|
328
|
-
|
332
|
+
return HPackParser::Boundary::None;
|
329
333
|
}
|
334
|
+
}
|
335
|
+
|
336
|
+
static grpc_error_handle init_header_skip_frame_parser(
|
337
|
+
grpc_chttp2_transport* t, HPackParser::Priority priority_type) {
|
338
|
+
bool is_eoh = t->expect_continuation_stream_id != 0;
|
339
|
+
t->parser = grpc_chttp2_header_parser_parse;
|
340
|
+
t->parser_data = &t->hpack_parser;
|
341
|
+
t->hpack_parser.BeginFrame(skip_header, hpack_boundary_type(t, is_eoh),
|
342
|
+
priority_type);
|
343
|
+
return GRPC_ERROR_NONE;
|
344
|
+
}
|
345
|
+
|
346
|
+
static grpc_error_handle init_non_header_skip_frame_parser(
|
347
|
+
grpc_chttp2_transport* t) {
|
348
|
+
t->parser = skip_parser;
|
330
349
|
return GRPC_ERROR_NONE;
|
331
350
|
}
|
332
351
|
|
333
352
|
void grpc_chttp2_parsing_become_skip_parser(grpc_chttp2_transport* t) {
|
334
|
-
|
353
|
+
if (t->parser == grpc_chttp2_header_parser_parse) {
|
354
|
+
t->hpack_parser.ResetSink(skip_header);
|
355
|
+
} else {
|
356
|
+
t->parser = skip_parser;
|
357
|
+
}
|
335
358
|
}
|
336
359
|
|
337
|
-
static
|
360
|
+
static grpc_error_handle init_data_frame_parser(grpc_chttp2_transport* t) {
|
338
361
|
// Update BDP accounting since we have received a data frame.
|
339
362
|
grpc_core::BdpEstimator* bdp_est = t->flow_control->bdp_estimator();
|
340
363
|
if (bdp_est) {
|
@@ -347,7 +370,7 @@ static grpc_error* init_data_frame_parser(grpc_chttp2_transport* t) {
|
|
347
370
|
}
|
348
371
|
grpc_chttp2_stream* s =
|
349
372
|
grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
|
350
|
-
|
373
|
+
grpc_error_handle err = GRPC_ERROR_NONE;
|
351
374
|
grpc_core::chttp2::FlowControlAction action;
|
352
375
|
if (s == nullptr) {
|
353
376
|
err = t->flow_control->RecvData(t->incoming_frame_size);
|
@@ -361,12 +384,12 @@ static grpc_error* init_data_frame_parser(grpc_chttp2_transport* t) {
|
|
361
384
|
goto error_handler;
|
362
385
|
}
|
363
386
|
if (s == nullptr) {
|
364
|
-
return
|
387
|
+
return init_non_header_skip_frame_parser(t);
|
365
388
|
}
|
366
389
|
s->received_bytes += t->incoming_frame_size;
|
367
390
|
s->stats.incoming.framing_bytes += 9;
|
368
391
|
if (err == GRPC_ERROR_NONE && s->read_closed) {
|
369
|
-
return
|
392
|
+
return init_non_header_skip_frame_parser(t);
|
370
393
|
}
|
371
394
|
if (err == GRPC_ERROR_NONE) {
|
372
395
|
err = grpc_chttp2_data_parser_begin_frame(
|
@@ -389,7 +412,7 @@ error_handler:
|
|
389
412
|
grpc_chttp2_add_rst_stream_to_next_write(t, t->incoming_stream_id,
|
390
413
|
GRPC_HTTP2_PROTOCOL_ERROR,
|
391
414
|
&s->stats.outgoing);
|
392
|
-
return
|
415
|
+
return init_non_header_skip_frame_parser(t);
|
393
416
|
} else {
|
394
417
|
return err;
|
395
418
|
}
|
@@ -413,8 +436,8 @@ static void GPR_ATTRIBUTE_NOINLINE on_initial_header_log(
|
|
413
436
|
gpr_free(value);
|
414
437
|
}
|
415
438
|
|
416
|
-
static
|
417
|
-
|
439
|
+
static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
|
440
|
+
handle_timeout(grpc_chttp2_stream* s, grpc_mdelem md) {
|
418
441
|
grpc_millis* cached_timeout =
|
419
442
|
static_cast<grpc_millis*>(grpc_mdelem_get_user_data(md, free_timeout));
|
420
443
|
grpc_millis timeout;
|
@@ -443,9 +466,11 @@ static grpc_error* GPR_ATTRIBUTE_NOINLINE handle_timeout(grpc_chttp2_stream* s,
|
|
443
466
|
return GRPC_ERROR_NONE;
|
444
467
|
}
|
445
468
|
|
446
|
-
static
|
447
|
-
|
448
|
-
|
469
|
+
static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
|
470
|
+
handle_metadata_size_limit_exceeded(grpc_chttp2_transport* t,
|
471
|
+
grpc_chttp2_stream* s, grpc_mdelem md,
|
472
|
+
size_t new_size,
|
473
|
+
size_t metadata_size_limit) {
|
449
474
|
gpr_log(GPR_DEBUG,
|
450
475
|
"received initial metadata size exceeds limit (%" PRIuPTR
|
451
476
|
" vs. %" PRIuPTR
|
@@ -463,9 +488,9 @@ static grpc_error* GPR_ATTRIBUTE_NOINLINE handle_metadata_size_limit_exceeded(
|
|
463
488
|
return GRPC_ERROR_NONE;
|
464
489
|
}
|
465
490
|
|
466
|
-
static
|
491
|
+
static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
|
467
492
|
handle_metadata_add_failure(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
468
|
-
grpc_mdelem md,
|
493
|
+
grpc_mdelem md, grpc_error_handle error) {
|
469
494
|
grpc_chttp2_cancel_stream(t, s, error);
|
470
495
|
grpc_chttp2_parsing_become_skip_parser(t);
|
471
496
|
s->seen_error = true;
|
@@ -473,7 +498,7 @@ handle_metadata_add_failure(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
473
498
|
return GRPC_ERROR_NONE;
|
474
499
|
}
|
475
500
|
|
476
|
-
static
|
501
|
+
static grpc_error_handle on_initial_header(void* tp, grpc_mdelem md) {
|
477
502
|
GPR_TIMER_SCOPE("on_initial_header", 0);
|
478
503
|
|
479
504
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
@@ -496,7 +521,7 @@ static grpc_error* on_initial_header(void* tp, grpc_mdelem md) {
|
|
496
521
|
return handle_metadata_size_limit_exceeded(t, s, md, new_size,
|
497
522
|
metadata_size_limit);
|
498
523
|
} else {
|
499
|
-
|
524
|
+
grpc_error_handle error =
|
500
525
|
grpc_chttp2_incoming_metadata_buffer_add(&s->metadata_buffer[0], md);
|
501
526
|
if (GPR_UNLIKELY(error != GRPC_ERROR_NONE)) {
|
502
527
|
return handle_metadata_add_failure(t, s, md, error);
|
@@ -506,7 +531,7 @@ static grpc_error* on_initial_header(void* tp, grpc_mdelem md) {
|
|
506
531
|
return GRPC_ERROR_NONE;
|
507
532
|
}
|
508
533
|
|
509
|
-
static
|
534
|
+
static grpc_error_handle on_trailing_header(void* tp, grpc_mdelem md) {
|
510
535
|
GPR_TIMER_SCOPE("on_trailing_header", 0);
|
511
536
|
|
512
537
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
@@ -545,7 +570,7 @@ static grpc_error* on_trailing_header(void* tp, grpc_mdelem md) {
|
|
545
570
|
s->seen_error = true;
|
546
571
|
GRPC_MDELEM_UNREF(md);
|
547
572
|
} else {
|
548
|
-
|
573
|
+
grpc_error_handle error =
|
549
574
|
grpc_chttp2_incoming_metadata_buffer_add(&s->metadata_buffer[1], md);
|
550
575
|
if (error != GRPC_ERROR_NONE) {
|
551
576
|
grpc_chttp2_cancel_stream(t, s, error);
|
@@ -557,9 +582,9 @@ static grpc_error* on_trailing_header(void* tp, grpc_mdelem md) {
|
|
557
582
|
return GRPC_ERROR_NONE;
|
558
583
|
}
|
559
584
|
|
560
|
-
static
|
561
|
-
|
562
|
-
|
585
|
+
static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
|
586
|
+
int is_continuation) {
|
587
|
+
const bool is_eoh =
|
563
588
|
(t->incoming_frame_flags & GRPC_CHTTP2_DATA_FLAG_END_HEADERS) != 0;
|
564
589
|
grpc_chttp2_stream* s;
|
565
590
|
|
@@ -576,6 +601,11 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
|
|
576
601
|
(t->incoming_frame_flags & GRPC_CHTTP2_DATA_FLAG_END_STREAM) != 0;
|
577
602
|
}
|
578
603
|
|
604
|
+
const auto priority_type = !is_continuation && (t->incoming_frame_flags &
|
605
|
+
GRPC_CHTTP2_FLAG_HAS_PRIORITY)
|
606
|
+
? HPackParser::Priority::Included
|
607
|
+
: HPackParser::Priority::None;
|
608
|
+
|
579
609
|
t->ping_state.last_ping_sent_time = GRPC_MILLIS_INF_PAST;
|
580
610
|
|
581
611
|
/* could be a new grpc_chttp2_stream or an existing grpc_chttp2_stream */
|
@@ -585,7 +615,7 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
|
|
585
615
|
GRPC_CHTTP2_IF_TRACING(
|
586
616
|
gpr_log(GPR_ERROR,
|
587
617
|
"grpc_chttp2_stream disbanded before CONTINUATION received"));
|
588
|
-
return
|
618
|
+
return init_header_skip_frame_parser(t, priority_type);
|
589
619
|
}
|
590
620
|
if (t->is_client) {
|
591
621
|
if (GPR_LIKELY((t->incoming_stream_id & 1) &&
|
@@ -595,11 +625,7 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
|
|
595
625
|
GRPC_CHTTP2_IF_TRACING(gpr_log(
|
596
626
|
GPR_ERROR, "ignoring new grpc_chttp2_stream creation on client"));
|
597
627
|
}
|
598
|
-
|
599
|
-
if (t->incoming_frame_flags & GRPC_CHTTP2_FLAG_HAS_PRIORITY) {
|
600
|
-
grpc_chttp2_hpack_parser_set_has_priority(&t->hpack_parser);
|
601
|
-
}
|
602
|
-
return err;
|
628
|
+
return init_header_skip_frame_parser(t, priority_type);
|
603
629
|
} else if (GPR_UNLIKELY(t->last_new_stream_id >= t->incoming_stream_id)) {
|
604
630
|
GRPC_CHTTP2_IF_TRACING(gpr_log(
|
605
631
|
GPR_ERROR,
|
@@ -607,13 +633,13 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
|
|
607
633
|
"last grpc_chttp2_stream "
|
608
634
|
"id=%d, new grpc_chttp2_stream id=%d",
|
609
635
|
t->last_new_stream_id, t->incoming_stream_id));
|
610
|
-
return
|
636
|
+
return init_header_skip_frame_parser(t, priority_type);
|
611
637
|
} else if (GPR_UNLIKELY((t->incoming_stream_id & 1) == 0)) {
|
612
638
|
GRPC_CHTTP2_IF_TRACING(gpr_log(
|
613
639
|
GPR_ERROR,
|
614
640
|
"ignoring grpc_chttp2_stream with non-client generated index %d",
|
615
641
|
t->incoming_stream_id));
|
616
|
-
return
|
642
|
+
return init_header_skip_frame_parser(t, priority_type);
|
617
643
|
} else if (GPR_UNLIKELY(
|
618
644
|
grpc_chttp2_stream_map_size(&t->stream_map) >=
|
619
645
|
t->settings[GRPC_ACKED_SETTINGS]
|
@@ -626,7 +652,7 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
|
|
626
652
|
if (GPR_UNLIKELY(s == nullptr)) {
|
627
653
|
GRPC_CHTTP2_IF_TRACING(
|
628
654
|
gpr_log(GPR_ERROR, "grpc_chttp2_stream not accepted"));
|
629
|
-
return
|
655
|
+
return init_header_skip_frame_parser(t, priority_type);
|
630
656
|
}
|
631
657
|
if (t->channelz_socket != nullptr) {
|
632
658
|
t->channelz_socket->RecordStreamStartedFromRemote();
|
@@ -640,13 +666,14 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
|
|
640
666
|
GRPC_CHTTP2_IF_TRACING(gpr_log(
|
641
667
|
GPR_ERROR, "skipping already closed grpc_chttp2_stream header"));
|
642
668
|
t->incoming_stream = nullptr;
|
643
|
-
return
|
669
|
+
return init_header_skip_frame_parser(t, priority_type);
|
644
670
|
}
|
645
671
|
t->parser = grpc_chttp2_header_parser_parse;
|
646
672
|
t->parser_data = &t->hpack_parser;
|
647
673
|
if (t->header_eof) {
|
648
674
|
s->eos_received = true;
|
649
675
|
}
|
676
|
+
HPackParser::Sink on_header;
|
650
677
|
switch (s->header_frames_received) {
|
651
678
|
case 0:
|
652
679
|
if (t->is_client && t->header_eof) {
|
@@ -654,32 +681,28 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
|
|
654
681
|
if (s->trailing_metadata_available != nullptr) {
|
655
682
|
*s->trailing_metadata_available = true;
|
656
683
|
}
|
657
|
-
|
684
|
+
on_header = [t](grpc_mdelem md) { return on_trailing_header(t, md); };
|
658
685
|
} else {
|
659
686
|
GRPC_CHTTP2_IF_TRACING(gpr_log(GPR_INFO, "parsing initial_metadata"));
|
660
|
-
|
687
|
+
on_header = [t](grpc_mdelem md) { return on_initial_header(t, md); };
|
661
688
|
}
|
662
689
|
break;
|
663
690
|
case 1:
|
664
691
|
GRPC_CHTTP2_IF_TRACING(gpr_log(GPR_INFO, "parsing trailing_metadata"));
|
665
|
-
|
692
|
+
on_header = [t](grpc_mdelem md) { return on_trailing_header(t, md); };
|
666
693
|
break;
|
667
694
|
case 2:
|
668
695
|
gpr_log(GPR_ERROR, "too many header frames received");
|
669
|
-
return
|
670
|
-
}
|
671
|
-
t->hpack_parser.on_header_user_data = t;
|
672
|
-
t->hpack_parser.is_boundary = is_eoh;
|
673
|
-
t->hpack_parser.is_eof = static_cast<uint8_t>(is_eoh ? t->header_eof : 0);
|
674
|
-
if (!is_continuation &&
|
675
|
-
(t->incoming_frame_flags & GRPC_CHTTP2_FLAG_HAS_PRIORITY)) {
|
676
|
-
grpc_chttp2_hpack_parser_set_has_priority(&t->hpack_parser);
|
696
|
+
return init_header_skip_frame_parser(t, priority_type);
|
677
697
|
}
|
698
|
+
t->hpack_parser.BeginFrame(std::move(on_header),
|
699
|
+
hpack_boundary_type(t, is_eoh), priority_type);
|
678
700
|
return GRPC_ERROR_NONE;
|
679
701
|
}
|
680
702
|
|
681
|
-
static
|
682
|
-
|
703
|
+
static grpc_error_handle init_window_update_frame_parser(
|
704
|
+
grpc_chttp2_transport* t) {
|
705
|
+
grpc_error_handle err = grpc_chttp2_window_update_parser_begin_frame(
|
683
706
|
&t->simple.window_update, t->incoming_frame_size,
|
684
707
|
t->incoming_frame_flags);
|
685
708
|
if (err != GRPC_ERROR_NONE) return err;
|
@@ -687,7 +710,7 @@ static grpc_error* init_window_update_frame_parser(grpc_chttp2_transport* t) {
|
|
687
710
|
grpc_chttp2_stream* s = t->incoming_stream =
|
688
711
|
grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
|
689
712
|
if (s == nullptr) {
|
690
|
-
return
|
713
|
+
return init_non_header_skip_frame_parser(t);
|
691
714
|
}
|
692
715
|
s->stats.incoming.framing_bytes += 9;
|
693
716
|
}
|
@@ -696,8 +719,8 @@ static grpc_error* init_window_update_frame_parser(grpc_chttp2_transport* t) {
|
|
696
719
|
return GRPC_ERROR_NONE;
|
697
720
|
}
|
698
721
|
|
699
|
-
static
|
700
|
-
|
722
|
+
static grpc_error_handle init_ping_parser(grpc_chttp2_transport* t) {
|
723
|
+
grpc_error_handle err = grpc_chttp2_ping_parser_begin_frame(
|
701
724
|
&t->simple.ping, t->incoming_frame_size, t->incoming_frame_flags);
|
702
725
|
if (err != GRPC_ERROR_NONE) return err;
|
703
726
|
t->parser = grpc_chttp2_ping_parser_parse;
|
@@ -705,14 +728,14 @@ static grpc_error* init_ping_parser(grpc_chttp2_transport* t) {
|
|
705
728
|
return GRPC_ERROR_NONE;
|
706
729
|
}
|
707
730
|
|
708
|
-
static
|
709
|
-
|
731
|
+
static grpc_error_handle init_rst_stream_parser(grpc_chttp2_transport* t) {
|
732
|
+
grpc_error_handle err = grpc_chttp2_rst_stream_parser_begin_frame(
|
710
733
|
&t->simple.rst_stream, t->incoming_frame_size, t->incoming_frame_flags);
|
711
734
|
if (err != GRPC_ERROR_NONE) return err;
|
712
735
|
grpc_chttp2_stream* s = t->incoming_stream =
|
713
736
|
grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
|
714
737
|
if (!t->incoming_stream) {
|
715
|
-
return
|
738
|
+
return init_non_header_skip_frame_parser(t);
|
716
739
|
}
|
717
740
|
s->stats.incoming.framing_bytes += 9;
|
718
741
|
t->parser = grpc_chttp2_rst_stream_parser_parse;
|
@@ -720,8 +743,8 @@ static grpc_error* init_rst_stream_parser(grpc_chttp2_transport* t) {
|
|
720
743
|
return GRPC_ERROR_NONE;
|
721
744
|
}
|
722
745
|
|
723
|
-
static
|
724
|
-
|
746
|
+
static grpc_error_handle init_goaway_parser(grpc_chttp2_transport* t) {
|
747
|
+
grpc_error_handle err = grpc_chttp2_goaway_parser_begin_frame(
|
725
748
|
&t->goaway_parser, t->incoming_frame_size, t->incoming_frame_flags);
|
726
749
|
if (err != GRPC_ERROR_NONE) return err;
|
727
750
|
t->parser = grpc_chttp2_goaway_parser_parse;
|
@@ -729,13 +752,13 @@ static grpc_error* init_goaway_parser(grpc_chttp2_transport* t) {
|
|
729
752
|
return GRPC_ERROR_NONE;
|
730
753
|
}
|
731
754
|
|
732
|
-
static
|
755
|
+
static grpc_error_handle init_settings_frame_parser(grpc_chttp2_transport* t) {
|
733
756
|
if (t->incoming_stream_id != 0) {
|
734
757
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
735
758
|
"Settings frame received for grpc_chttp2_stream");
|
736
759
|
}
|
737
760
|
|
738
|
-
|
761
|
+
grpc_error_handle err = grpc_chttp2_settings_parser_begin_frame(
|
739
762
|
&t->simple.settings, t->incoming_frame_size, t->incoming_frame_flags,
|
740
763
|
t->settings[GRPC_PEER_SETTINGS]);
|
741
764
|
if (err != GRPC_ERROR_NONE) {
|
@@ -745,7 +768,7 @@ static grpc_error* init_settings_frame_parser(grpc_chttp2_transport* t) {
|
|
745
768
|
memcpy(t->settings[GRPC_ACKED_SETTINGS], t->settings[GRPC_SENT_SETTINGS],
|
746
769
|
GRPC_CHTTP2_NUM_SETTINGS * sizeof(uint32_t));
|
747
770
|
grpc_chttp2_hptbl_set_max_bytes(
|
748
|
-
|
771
|
+
t->hpack_parser.hpack_table(),
|
749
772
|
t->settings[GRPC_ACKED_SETTINGS]
|
750
773
|
[GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]);
|
751
774
|
t->sent_local_settings = false;
|
@@ -755,17 +778,17 @@ static grpc_error* init_settings_frame_parser(grpc_chttp2_transport* t) {
|
|
755
778
|
return GRPC_ERROR_NONE;
|
756
779
|
}
|
757
780
|
|
758
|
-
static
|
759
|
-
|
781
|
+
static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t,
|
782
|
+
const grpc_slice& slice,
|
783
|
+
int is_last) {
|
760
784
|
grpc_chttp2_stream* s = t->incoming_stream;
|
761
|
-
|
785
|
+
grpc_error_handle err = t->parser(t->parser_data, t, s, slice, is_last);
|
762
786
|
intptr_t unused;
|
763
787
|
if (GPR_LIKELY(err == GRPC_ERROR_NONE)) {
|
764
788
|
return err;
|
765
789
|
} else if (grpc_error_get_int(err, GRPC_ERROR_INT_STREAM_ID, &unused)) {
|
766
790
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
767
|
-
|
768
|
-
gpr_log(GPR_ERROR, "%s", msg);
|
791
|
+
gpr_log(GPR_ERROR, "%s", grpc_error_std_string(err).c_str());
|
769
792
|
}
|
770
793
|
grpc_chttp2_parsing_become_skip_parser(t);
|
771
794
|
if (s) {
|