grpc 1.37.1 → 1.39.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +96 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +334 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +91 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +28 -13
- data/include/grpc/impl/codegen/port_platform.h +22 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +630 -3103
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +755 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -54
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +146 -155
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -32
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2449 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +25 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +348 -199
- data/src/core/ext/xds/xds_api.h +21 -12
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/slice_allocator.cc +89 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +67 -46
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +94 -46
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -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;
|
@@ -556,6 +556,7 @@ struct grpc_chttp2_stream {
|
|
556
556
|
grpc_closure* recv_initial_metadata_ready = nullptr;
|
557
557
|
bool* trailing_metadata_available = nullptr;
|
558
558
|
grpc_core::OrphanablePtr<grpc_core::ByteStream>* recv_message;
|
559
|
+
bool* call_failed_before_recv_message = nullptr;
|
559
560
|
grpc_closure* recv_message_ready = nullptr;
|
560
561
|
grpc_metadata_batch* recv_trailing_metadata;
|
561
562
|
grpc_closure* recv_trailing_metadata_finished = nullptr;
|
@@ -581,9 +582,9 @@ struct grpc_chttp2_stream {
|
|
581
582
|
bool eos_sent = false;
|
582
583
|
|
583
584
|
/** the error that resulted in this stream being read-closed */
|
584
|
-
|
585
|
+
grpc_error_handle read_closed_error = GRPC_ERROR_NONE;
|
585
586
|
/** the error that resulted in this stream being write-closed */
|
586
|
-
|
587
|
+
grpc_error_handle write_closed_error = GRPC_ERROR_NONE;
|
587
588
|
|
588
589
|
grpc_published_metadata_method published_metadata[2] = {};
|
589
590
|
bool final_metadata_requested = false;
|
@@ -604,13 +605,14 @@ struct grpc_chttp2_stream {
|
|
604
605
|
* true */
|
605
606
|
grpc_slice_buffer unprocessed_incoming_frames_buffer;
|
606
607
|
grpc_closure reset_byte_stream;
|
607
|
-
|
608
|
-
|
608
|
+
grpc_error_handle byte_stream_error =
|
609
|
+
GRPC_ERROR_NONE; /* protected by t combiner */
|
610
|
+
bool received_last_frame = false; /* protected by t combiner */
|
609
611
|
|
610
612
|
grpc_millis deadline = GRPC_MILLIS_INF_FUTURE;
|
611
613
|
|
612
614
|
/** saw some stream level error */
|
613
|
-
|
615
|
+
grpc_error_handle forced_close_error = GRPC_ERROR_NONE;
|
614
616
|
/** how many header frames have we received? */
|
615
617
|
uint8_t header_frames_received = 0;
|
616
618
|
/** parsing state for data frames */
|
@@ -696,12 +698,12 @@ struct grpc_chttp2_begin_write_result {
|
|
696
698
|
};
|
697
699
|
grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
|
698
700
|
grpc_chttp2_transport* t);
|
699
|
-
void grpc_chttp2_end_write(grpc_chttp2_transport* t,
|
701
|
+
void grpc_chttp2_end_write(grpc_chttp2_transport* t, grpc_error_handle error);
|
700
702
|
|
701
703
|
/** Process one slice of incoming data; return 1 if the connection is still
|
702
704
|
viable after reading, or 0 if the connection should be torn down */
|
703
|
-
|
704
|
-
|
705
|
+
grpc_error_handle grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
706
|
+
const grpc_slice& slice);
|
705
707
|
|
706
708
|
bool grpc_chttp2_list_add_writable_stream(grpc_chttp2_transport* t,
|
707
709
|
grpc_chttp2_stream* s);
|
@@ -771,7 +773,8 @@ void grpc_chttp2_parsing_become_skip_parser(grpc_chttp2_transport* t);
|
|
771
773
|
void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
772
774
|
grpc_chttp2_stream* s,
|
773
775
|
grpc_closure** pclosure,
|
774
|
-
|
776
|
+
grpc_error_handle error,
|
777
|
+
const char* desc);
|
775
778
|
|
776
779
|
#define GRPC_HEADER_SIZE_IN_BYTES 5
|
777
780
|
#define MAX_SIZE_T (~(size_t)0)
|
@@ -791,10 +794,11 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
791
794
|
} while (0)
|
792
795
|
|
793
796
|
void grpc_chttp2_fake_status(grpc_chttp2_transport* t,
|
794
|
-
grpc_chttp2_stream* stream,
|
797
|
+
grpc_chttp2_stream* stream,
|
798
|
+
grpc_error_handle error);
|
795
799
|
void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
796
800
|
grpc_chttp2_stream* s, int close_reads,
|
797
|
-
int close_writes,
|
801
|
+
int close_writes, grpc_error_handle error);
|
798
802
|
void grpc_chttp2_start_writing(grpc_chttp2_transport* t);
|
799
803
|
|
800
804
|
#ifndef NDEBUG
|
@@ -862,7 +866,7 @@ void grpc_chttp2_mark_stream_writable(grpc_chttp2_transport* t,
|
|
862
866
|
grpc_chttp2_stream* s);
|
863
867
|
|
864
868
|
void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
865
|
-
|
869
|
+
grpc_error_handle due_to_error);
|
866
870
|
|
867
871
|
void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_chttp2_transport* t,
|
868
872
|
grpc_chttp2_stream* s);
|
@@ -872,14 +876,15 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
|
872
876
|
grpc_chttp2_stream* s);
|
873
877
|
|
874
878
|
void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
875
|
-
grpc_chttp2_stream* s,
|
879
|
+
grpc_chttp2_stream* s,
|
880
|
+
grpc_error_handle error);
|
876
881
|
|
877
882
|
/** Set the default keepalive configurations, must only be called at
|
878
883
|
initialization */
|
879
884
|
void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
880
885
|
bool is_client);
|
881
886
|
|
882
|
-
void grpc_chttp2_retry_initiate_ping(void* tp,
|
887
|
+
void grpc_chttp2_retry_initiate_ping(void* tp, grpc_error_handle error);
|
883
888
|
|
884
889
|
void schedule_bdp_ping_locked(grpc_chttp2_transport* t);
|
885
890
|
|
@@ -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
|
|
@@ -244,13 +246,13 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
|
|
244
246
|
t->incoming_frame_size -= static_cast<uint32_t>(end - cur);
|
245
247
|
return GRPC_ERROR_NONE;
|
246
248
|
}
|
247
|
-
GPR_UNREACHABLE_CODE(return
|
249
|
+
GPR_UNREACHABLE_CODE(return GRPC_ERROR_NONE);
|
248
250
|
}
|
249
251
|
|
250
|
-
GPR_UNREACHABLE_CODE(return
|
252
|
+
GPR_UNREACHABLE_CODE(return GRPC_ERROR_NONE);
|
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) {
|