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
@@ -77,7 +77,8 @@ bool grpc_cq_begin_op(grpc_completion_queue* cq, void* tag);
|
|
77
77
|
|
78
78
|
/* Queue a GRPC_OP_COMPLETED operation; tag must correspond to the tag passed to
|
79
79
|
grpc_cq_begin_op */
|
80
|
-
void grpc_cq_end_op(grpc_completion_queue* cq, void* tag,
|
80
|
+
void grpc_cq_end_op(grpc_completion_queue* cq, void* tag,
|
81
|
+
grpc_error_handle error,
|
81
82
|
void (*done)(void* done_arg, grpc_cq_completion* storage),
|
82
83
|
void* done_arg, grpc_cq_completion* storage,
|
83
84
|
bool internal = false);
|
@@ -92,6 +93,6 @@ int grpc_get_cq_poll_num(grpc_completion_queue* cq);
|
|
92
93
|
|
93
94
|
grpc_completion_queue* grpc_completion_queue_create_internal(
|
94
95
|
grpc_cq_completion_type completion_type, grpc_cq_polling_type polling_type,
|
95
|
-
|
96
|
+
grpc_completion_queue_functor* shutdown_callback);
|
96
97
|
|
97
98
|
#endif /* GRPC_CORE_LIB_SURFACE_COMPLETION_QUEUE_H */
|
@@ -72,8 +72,7 @@ grpc_completion_queue* grpc_completion_queue_create_for_pluck(void* reserved) {
|
|
72
72
|
}
|
73
73
|
|
74
74
|
grpc_completion_queue* grpc_completion_queue_create_for_callback(
|
75
|
-
|
76
|
-
void* reserved) {
|
75
|
+
grpc_completion_queue_functor* shutdown_callback, void* reserved) {
|
77
76
|
GPR_ASSERT(!reserved);
|
78
77
|
grpc_completion_queue_attributes attr = {
|
79
78
|
2, GRPC_CQ_CALLBACK, GRPC_CQ_DEFAULT_POLLING, shutdown_callback};
|
@@ -126,7 +126,6 @@ void grpc_register_plugin(void (*init)(void), void (*destroy)(void)) {
|
|
126
126
|
}
|
127
127
|
|
128
128
|
void grpc_init(void) {
|
129
|
-
int i;
|
130
129
|
gpr_once_init(&g_basic_init, do_basic_init);
|
131
130
|
|
132
131
|
grpc_core::MutexLock lock(g_init_mu);
|
@@ -150,7 +149,7 @@ void grpc_init(void) {
|
|
150
149
|
gpr_timers_global_init();
|
151
150
|
grpc_core::HandshakerRegistry::Init();
|
152
151
|
grpc_security_init();
|
153
|
-
for (i = 0; i < g_number_of_plugins; i++) {
|
152
|
+
for (int i = 0; i < g_number_of_plugins; i++) {
|
154
153
|
if (g_all_of_the_plugins[i].init != nullptr) {
|
155
154
|
g_all_of_the_plugins[i].init();
|
156
155
|
}
|
@@ -175,7 +174,6 @@ void grpc_shutdown_internal_locked(void) {
|
|
175
174
|
grpc_iomgr_shutdown_background_closure();
|
176
175
|
{
|
177
176
|
grpc_timer_manager_set_threading(false); // shutdown timer_manager thread
|
178
|
-
grpc_core::Executor::ShutdownAll();
|
179
177
|
for (i = g_number_of_plugins; i >= 0; i--) {
|
180
178
|
if (g_all_of_the_plugins[i].destroy != nullptr) {
|
181
179
|
g_all_of_the_plugins[i].destroy();
|
data/src/core/lib/surface/init.h
CHANGED
@@ -15,10 +15,19 @@
|
|
15
15
|
* limitations under the License.
|
16
16
|
*
|
17
17
|
*/
|
18
|
-
|
19
18
|
#ifndef GRPC_CORE_LIB_SURFACE_INIT_H
|
20
19
|
#define GRPC_CORE_LIB_SURFACE_INIT_H
|
21
20
|
|
21
|
+
#include <grpc/support/port_platform.h>
|
22
|
+
|
23
|
+
#include <memory>
|
24
|
+
|
25
|
+
namespace grpc_event_engine {
|
26
|
+
namespace experimental {
|
27
|
+
class EventEngine;
|
28
|
+
}
|
29
|
+
} // namespace grpc_event_engine
|
30
|
+
|
22
31
|
void grpc_register_security_filters(void);
|
23
32
|
void grpc_security_pre_init(void);
|
24
33
|
void grpc_security_init(void);
|
@@ -44,14 +44,14 @@ namespace {
|
|
44
44
|
struct ChannelData {
|
45
45
|
explicit ChannelData(grpc_channel_element_args* args)
|
46
46
|
: state_tracker("lame_channel", GRPC_CHANNEL_SHUTDOWN) {
|
47
|
-
|
47
|
+
grpc_error_handle err = grpc_channel_args_find_pointer<grpc_error>(
|
48
48
|
args->channel_args, GRPC_ARG_LAME_FILTER_ERROR);
|
49
49
|
if (err != nullptr) error = GRPC_ERROR_REF(err);
|
50
50
|
}
|
51
51
|
|
52
52
|
~ChannelData() { GRPC_ERROR_UNREF(error); }
|
53
53
|
|
54
|
-
|
54
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
55
55
|
Mutex mu;
|
56
56
|
ConnectivityStateTracker state_tracker;
|
57
57
|
};
|
@@ -98,8 +98,8 @@ static void lame_start_transport_op(grpc_channel_element* elem,
|
|
98
98
|
}
|
99
99
|
}
|
100
100
|
|
101
|
-
static
|
102
|
-
|
101
|
+
static grpc_error_handle lame_init_call_elem(
|
102
|
+
grpc_call_element* elem, const grpc_call_element_args* args) {
|
103
103
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
104
104
|
calld->call_combiner = args->call_combiner;
|
105
105
|
return GRPC_ERROR_NONE;
|
@@ -111,8 +111,8 @@ static void lame_destroy_call_elem(grpc_call_element* /*elem*/,
|
|
111
111
|
ExecCtx::Run(DEBUG_LOCATION, then_schedule_closure, GRPC_ERROR_NONE);
|
112
112
|
}
|
113
113
|
|
114
|
-
static
|
115
|
-
|
114
|
+
static grpc_error_handle lame_init_channel_elem(
|
115
|
+
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
116
116
|
new (elem->channel_data) ChannelData(args);
|
117
117
|
return GRPC_ERROR_NONE;
|
118
118
|
}
|
@@ -122,13 +122,13 @@ static void lame_destroy_channel_elem(grpc_channel_element* elem) {
|
|
122
122
|
chand->~ChannelData();
|
123
123
|
}
|
124
124
|
|
125
|
-
// Channel arg vtable for a
|
125
|
+
// Channel arg vtable for a grpc_error_handle.
|
126
126
|
void* ErrorCopy(void* p) {
|
127
|
-
|
127
|
+
grpc_error_handle error = static_cast<grpc_error_handle>(p);
|
128
128
|
return GRPC_ERROR_REF(error);
|
129
129
|
}
|
130
130
|
void ErrorDestroy(void* p) {
|
131
|
-
|
131
|
+
grpc_error_handle error = static_cast<grpc_error_handle>(p);
|
132
132
|
GRPC_ERROR_UNREF(error);
|
133
133
|
}
|
134
134
|
int ErrorCompare(void* p, void* q) { return GPR_ICMP(p, q); }
|
@@ -137,7 +137,7 @@ const grpc_arg_pointer_vtable kLameFilterErrorArgVtable = {
|
|
137
137
|
|
138
138
|
} // namespace
|
139
139
|
|
140
|
-
grpc_arg MakeLameClientErrorArg(
|
140
|
+
grpc_arg MakeLameClientErrorArg(grpc_error_handle error) {
|
141
141
|
return grpc_channel_arg_pointer_create(
|
142
142
|
const_cast<char*>(GRPC_ARG_LAME_FILTER_ERROR), error,
|
143
143
|
&kLameFilterErrorArgVtable);
|
@@ -169,7 +169,7 @@ grpc_channel* grpc_lame_client_channel_create(const char* target,
|
|
169
169
|
"grpc_lame_client_channel_create(target=%s, error_code=%d, "
|
170
170
|
"error_message=%s)",
|
171
171
|
3, (target, (int)error_code, error_message));
|
172
|
-
|
172
|
+
grpc_error_handle error = grpc_error_set_str(
|
173
173
|
grpc_error_set_int(
|
174
174
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("lame client channel"),
|
175
175
|
GRPC_ERROR_INT_GRPC_STATUS, error_code),
|
@@ -25,7 +25,7 @@
|
|
25
25
|
|
26
26
|
namespace grpc_core {
|
27
27
|
// Does NOT take ownership of error.
|
28
|
-
grpc_arg MakeLameClientErrorArg(
|
28
|
+
grpc_arg MakeLameClientErrorArg(grpc_error_handle error);
|
29
29
|
} // namespace grpc_core
|
30
30
|
|
31
31
|
extern const grpc_channel_filter grpc_lame_filter;
|
@@ -159,7 +159,7 @@ class Server::RequestMatcherInterface {
|
|
159
159
|
// Mark all application-requested RPCs failed if they have not been matched to
|
160
160
|
// an incoming RPC. The error parameter indicates why the RPCs are being
|
161
161
|
// failed (always server shutdown in all current implementations).
|
162
|
-
virtual void KillRequests(
|
162
|
+
virtual void KillRequests(grpc_error_handle error) = 0;
|
163
163
|
|
164
164
|
// How many request queues are supported by this matcher. This is an abstract
|
165
165
|
// concept that essentially maps to gRPC completion queues.
|
@@ -211,7 +211,7 @@ class Server::RealRequestMatcher : public RequestMatcherInterface {
|
|
211
211
|
}
|
212
212
|
}
|
213
213
|
|
214
|
-
void KillRequests(
|
214
|
+
void KillRequests(grpc_error_handle error) override {
|
215
215
|
for (size_t i = 0; i < requests_per_cq_.size(); i++) {
|
216
216
|
RequestedCall* rc;
|
217
217
|
while ((rc = reinterpret_cast<RequestedCall*>(
|
@@ -336,7 +336,9 @@ class Server::AllocatingRequestMatcherBase : public RequestMatcherInterface {
|
|
336
336
|
|
337
337
|
void ZombifyPending() override {}
|
338
338
|
|
339
|
-
void KillRequests(
|
339
|
+
void KillRequests(grpc_error_handle error) override {
|
340
|
+
GRPC_ERROR_UNREF(error);
|
341
|
+
}
|
340
342
|
|
341
343
|
size_t request_queue_count() const override { return 0; }
|
342
344
|
|
@@ -444,7 +446,7 @@ class ChannelBroadcaster {
|
|
444
446
|
}
|
445
447
|
|
446
448
|
// Broadcasts a shutdown on each channel.
|
447
|
-
void BroadcastShutdown(bool send_goaway,
|
449
|
+
void BroadcastShutdown(bool send_goaway, grpc_error_handle force_disconnect) {
|
448
450
|
for (grpc_channel* channel : channels_) {
|
449
451
|
SendShutdown(channel, send_goaway, GRPC_ERROR_REF(force_disconnect));
|
450
452
|
GRPC_CHANNEL_INTERNAL_UNREF(channel, "broadcast");
|
@@ -459,14 +461,14 @@ class ChannelBroadcaster {
|
|
459
461
|
grpc_slice slice;
|
460
462
|
};
|
461
463
|
|
462
|
-
static void ShutdownCleanup(void* arg,
|
464
|
+
static void ShutdownCleanup(void* arg, grpc_error_handle /*error*/) {
|
463
465
|
ShutdownCleanupArgs* a = static_cast<ShutdownCleanupArgs*>(arg);
|
464
466
|
grpc_slice_unref_internal(a->slice);
|
465
467
|
delete a;
|
466
468
|
}
|
467
469
|
|
468
470
|
static void SendShutdown(grpc_channel* channel, bool send_goaway,
|
469
|
-
|
471
|
+
grpc_error_handle send_disconnect) {
|
470
472
|
ShutdownCleanupArgs* sc = new ShutdownCleanupArgs;
|
471
473
|
GRPC_CLOSURE_INIT(&sc->closure, ShutdownCleanup, sc,
|
472
474
|
grpc_schedule_on_exec_ctx);
|
@@ -607,13 +609,13 @@ void Server::Start() {
|
|
607
609
|
starting_cv_.Signal();
|
608
610
|
}
|
609
611
|
|
610
|
-
|
612
|
+
grpc_error_handle Server::SetupTransport(
|
611
613
|
grpc_transport* transport, grpc_pollset* accepting_pollset,
|
612
614
|
const grpc_channel_args* args,
|
613
615
|
const RefCountedPtr<grpc_core::channelz::SocketNode>& socket_node,
|
614
616
|
grpc_resource_user* resource_user) {
|
615
617
|
// Create channel.
|
616
|
-
|
618
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
617
619
|
grpc_channel* channel = grpc_channel_create(
|
618
620
|
nullptr, args, GRPC_SERVER_CHANNEL, transport, resource_user, &error);
|
619
621
|
if (channel == nullptr) {
|
@@ -710,7 +712,8 @@ void Server::DoneRequestEvent(void* req, grpc_cq_completion* /*c*/) {
|
|
710
712
|
delete static_cast<RequestedCall*>(req);
|
711
713
|
}
|
712
714
|
|
713
|
-
void Server::FailCall(size_t cq_idx, RequestedCall* rc,
|
715
|
+
void Server::FailCall(size_t cq_idx, RequestedCall* rc,
|
716
|
+
grpc_error_handle error) {
|
714
717
|
*rc->call = nullptr;
|
715
718
|
rc->initial_metadata->count = 0;
|
716
719
|
GPR_ASSERT(error != GRPC_ERROR_NONE);
|
@@ -750,7 +753,7 @@ void Server::MaybeFinishShutdown() {
|
|
750
753
|
}
|
751
754
|
}
|
752
755
|
|
753
|
-
void Server::KillPendingWorkLocked(
|
756
|
+
void Server::KillPendingWorkLocked(grpc_error_handle error) {
|
754
757
|
if (started_) {
|
755
758
|
unregistered_request_matcher_->KillRequests(GRPC_ERROR_REF(error));
|
756
759
|
unregistered_request_matcher_->ZombifyPending();
|
@@ -772,7 +775,7 @@ std::vector<grpc_channel*> Server::GetChannelsLocked() const {
|
|
772
775
|
return channels;
|
773
776
|
}
|
774
777
|
|
775
|
-
void Server::ListenerDestroyDone(void* arg,
|
778
|
+
void Server::ListenerDestroyDone(void* arg, grpc_error_handle /*error*/) {
|
776
779
|
Server* server = static_cast<Server*>(arg);
|
777
780
|
MutexLock lock(&server->mu_global_);
|
778
781
|
server->listeners_destroyed_++;
|
@@ -1134,7 +1137,7 @@ void Server::ChannelData::AcceptStream(void* arg, grpc_transport* /*transport*/,
|
|
1134
1137
|
args.add_initial_metadata_count = 0;
|
1135
1138
|
args.send_deadline = GRPC_MILLIS_INF_FUTURE;
|
1136
1139
|
grpc_call* call;
|
1137
|
-
|
1140
|
+
grpc_error_handle error = grpc_call_create(&args, &call);
|
1138
1141
|
grpc_call_element* elem =
|
1139
1142
|
grpc_call_stack_element(grpc_call_get_call_stack(call), 0);
|
1140
1143
|
auto* calld = static_cast<Server::CallData*>(elem->call_data);
|
@@ -1146,7 +1149,8 @@ void Server::ChannelData::AcceptStream(void* arg, grpc_transport* /*transport*/,
|
|
1146
1149
|
calld->Start(elem);
|
1147
1150
|
}
|
1148
1151
|
|
1149
|
-
void Server::ChannelData::FinishDestroy(void* arg,
|
1152
|
+
void Server::ChannelData::FinishDestroy(void* arg,
|
1153
|
+
grpc_error_handle /*error*/) {
|
1150
1154
|
auto* chand = static_cast<Server::ChannelData*>(arg);
|
1151
1155
|
Server* server = chand->server_.get();
|
1152
1156
|
GRPC_CHANNEL_INTERNAL_UNREF(chand->channel_, "server");
|
@@ -1173,7 +1177,7 @@ void Server::ChannelData::Destroy() {
|
|
1173
1177
|
op);
|
1174
1178
|
}
|
1175
1179
|
|
1176
|
-
|
1180
|
+
grpc_error_handle Server::ChannelData::InitChannelElement(
|
1177
1181
|
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
1178
1182
|
GPR_ASSERT(args->is_first);
|
1179
1183
|
GPR_ASSERT(!args->is_last);
|
@@ -1284,7 +1288,7 @@ void Server::CallData::Publish(size_t cq_idx, RequestedCall* rc) {
|
|
1284
1288
|
rc, &rc->completion, true);
|
1285
1289
|
}
|
1286
1290
|
|
1287
|
-
void Server::CallData::PublishNewRpc(void* arg,
|
1291
|
+
void Server::CallData::PublishNewRpc(void* arg, grpc_error_handle error) {
|
1288
1292
|
grpc_call_element* call_elem = static_cast<grpc_call_element*>(arg);
|
1289
1293
|
auto* calld = static_cast<Server::CallData*>(call_elem->call_data);
|
1290
1294
|
auto* chand = static_cast<Server::ChannelData*>(call_elem->channel_data);
|
@@ -1300,7 +1304,7 @@ void Server::CallData::PublishNewRpc(void* arg, grpc_error* error) {
|
|
1300
1304
|
|
1301
1305
|
namespace {
|
1302
1306
|
|
1303
|
-
void KillZombieClosure(void* call,
|
1307
|
+
void KillZombieClosure(void* call, grpc_error_handle /*error*/) {
|
1304
1308
|
grpc_call_unref(static_cast<grpc_call*>(call));
|
1305
1309
|
}
|
1306
1310
|
|
@@ -1352,8 +1356,8 @@ void Server::CallData::StartNewRpc(grpc_call_element* elem) {
|
|
1352
1356
|
}
|
1353
1357
|
}
|
1354
1358
|
|
1355
|
-
void Server::CallData::RecvInitialMetadataBatchComplete(
|
1356
|
-
|
1359
|
+
void Server::CallData::RecvInitialMetadataBatchComplete(
|
1360
|
+
void* arg, grpc_error_handle error) {
|
1357
1361
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
1358
1362
|
auto* calld = static_cast<Server::CallData*>(elem->call_data);
|
1359
1363
|
if (error != GRPC_ERROR_NONE) {
|
@@ -1385,7 +1389,8 @@ void Server::CallData::StartTransportStreamOpBatchImpl(
|
|
1385
1389
|
grpc_call_next_op(elem, batch);
|
1386
1390
|
}
|
1387
1391
|
|
1388
|
-
void Server::CallData::RecvInitialMetadataReady(void* arg,
|
1392
|
+
void Server::CallData::RecvInitialMetadataReady(void* arg,
|
1393
|
+
grpc_error_handle error) {
|
1389
1394
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
1390
1395
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
1391
1396
|
grpc_millis op_deadline;
|
@@ -1411,7 +1416,7 @@ void Server::CallData::RecvInitialMetadataReady(void* arg, grpc_error* error) {
|
|
1411
1416
|
/* do nothing */
|
1412
1417
|
} else {
|
1413
1418
|
/* Pass the error reference to calld->recv_initial_metadata_error */
|
1414
|
-
|
1419
|
+
grpc_error_handle src_error = error;
|
1415
1420
|
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
1416
1421
|
"Missing :authority or :path", &src_error, 1);
|
1417
1422
|
GRPC_ERROR_UNREF(src_error);
|
@@ -1428,7 +1433,8 @@ void Server::CallData::RecvInitialMetadataReady(void* arg, grpc_error* error) {
|
|
1428
1433
|
Closure::Run(DEBUG_LOCATION, closure, error);
|
1429
1434
|
}
|
1430
1435
|
|
1431
|
-
void Server::CallData::RecvTrailingMetadataReady(void* arg,
|
1436
|
+
void Server::CallData::RecvTrailingMetadataReady(void* arg,
|
1437
|
+
grpc_error_handle error) {
|
1432
1438
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
1433
1439
|
CallData* calld = static_cast<CallData*>(elem->call_data);
|
1434
1440
|
if (calld->original_recv_initial_metadata_ready_ != nullptr) {
|
@@ -1449,7 +1455,7 @@ void Server::CallData::RecvTrailingMetadataReady(void* arg, grpc_error* error) {
|
|
1449
1455
|
error);
|
1450
1456
|
}
|
1451
1457
|
|
1452
|
-
|
1458
|
+
grpc_error_handle Server::CallData::InitCallElement(
|
1453
1459
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
1454
1460
|
auto* chand = static_cast<ChannelData*>(elem->channel_data);
|
1455
1461
|
new (elem->call_data) Server::CallData(elem, *args, chand->server());
|
@@ -128,7 +128,7 @@ class Server : public InternallyRefCounted<Server> {
|
|
128
128
|
|
129
129
|
// Sets up a transport. Creates a channel stack and binds the transport to
|
130
130
|
// the server. Called from the listener when a new connection is accepted.
|
131
|
-
|
131
|
+
grpc_error_handle SetupTransport(
|
132
132
|
grpc_transport* transport, grpc_pollset* accepting_pollset,
|
133
133
|
const grpc_channel_args* args,
|
134
134
|
const RefCountedPtr<channelz::SocketNode>& socket_node,
|
@@ -202,8 +202,8 @@ class Server : public InternallyRefCounted<Server> {
|
|
202
202
|
bool is_idempotent);
|
203
203
|
|
204
204
|
// Filter vtable functions.
|
205
|
-
static
|
206
|
-
|
205
|
+
static grpc_error_handle InitChannelElement(
|
206
|
+
grpc_channel_element* elem, grpc_channel_element_args* args);
|
207
207
|
static void DestroyChannelElement(grpc_channel_element* elem);
|
208
208
|
|
209
209
|
private:
|
@@ -214,7 +214,7 @@ class Server : public InternallyRefCounted<Server> {
|
|
214
214
|
|
215
215
|
void Destroy() ABSL_EXCLUSIVE_LOCKS_REQUIRED(server_->mu_global_);
|
216
216
|
|
217
|
-
static void FinishDestroy(void* arg,
|
217
|
+
static void FinishDestroy(void* arg, grpc_error_handle error);
|
218
218
|
|
219
219
|
RefCountedPtr<Server> server_;
|
220
220
|
grpc_channel* channel_;
|
@@ -264,8 +264,8 @@ class Server : public InternallyRefCounted<Server> {
|
|
264
264
|
void FailCallCreation();
|
265
265
|
|
266
266
|
// Filter vtable functions.
|
267
|
-
static
|
268
|
-
|
267
|
+
static grpc_error_handle InitCallElement(
|
268
|
+
grpc_call_element* elem, const grpc_call_element_args* args);
|
269
269
|
static void DestroyCallElement(grpc_call_element* elem,
|
270
270
|
const grpc_call_final_info* /*final_info*/,
|
271
271
|
grpc_closure* /*ignored*/);
|
@@ -274,15 +274,16 @@ class Server : public InternallyRefCounted<Server> {
|
|
274
274
|
|
275
275
|
private:
|
276
276
|
// Helper functions for handling calls at the top of the call stack.
|
277
|
-
static void RecvInitialMetadataBatchComplete(void* arg,
|
277
|
+
static void RecvInitialMetadataBatchComplete(void* arg,
|
278
|
+
grpc_error_handle error);
|
278
279
|
void StartNewRpc(grpc_call_element* elem);
|
279
|
-
static void PublishNewRpc(void* arg,
|
280
|
+
static void PublishNewRpc(void* arg, grpc_error_handle error);
|
280
281
|
|
281
282
|
// Functions used inside the call stack.
|
282
283
|
void StartTransportStreamOpBatchImpl(grpc_call_element* elem,
|
283
284
|
grpc_transport_stream_op_batch* batch);
|
284
|
-
static void RecvInitialMetadataReady(void* arg,
|
285
|
-
static void RecvTrailingMetadataReady(void* arg,
|
285
|
+
static void RecvInitialMetadataReady(void* arg, grpc_error_handle error);
|
286
|
+
static void RecvTrailingMetadataReady(void* arg, grpc_error_handle error);
|
286
287
|
|
287
288
|
RefCountedPtr<Server> server_;
|
288
289
|
|
@@ -309,12 +310,12 @@ class Server : public InternallyRefCounted<Server> {
|
|
309
310
|
uint32_t recv_initial_metadata_flags_ = 0;
|
310
311
|
grpc_closure recv_initial_metadata_ready_;
|
311
312
|
grpc_closure* original_recv_initial_metadata_ready_;
|
312
|
-
|
313
|
+
grpc_error_handle recv_initial_metadata_error_ = GRPC_ERROR_NONE;
|
313
314
|
|
314
315
|
bool seen_recv_trailing_metadata_ready_ = false;
|
315
316
|
grpc_closure recv_trailing_metadata_ready_;
|
316
317
|
grpc_closure* original_recv_trailing_metadata_ready_;
|
317
|
-
|
318
|
+
grpc_error_handle recv_trailing_metadata_error_ = GRPC_ERROR_NONE;
|
318
319
|
|
319
320
|
grpc_closure publish_;
|
320
321
|
|
@@ -336,7 +337,7 @@ class Server : public InternallyRefCounted<Server> {
|
|
336
337
|
grpc_cq_completion completion;
|
337
338
|
};
|
338
339
|
|
339
|
-
static void ListenerDestroyDone(void* arg,
|
340
|
+
static void ListenerDestroyDone(void* arg, grpc_error_handle error);
|
340
341
|
|
341
342
|
static void DoneShutdownEvent(void* server,
|
342
343
|
grpc_cq_completion* /*completion*/) {
|
@@ -345,13 +346,13 @@ class Server : public InternallyRefCounted<Server> {
|
|
345
346
|
|
346
347
|
static void DoneRequestEvent(void* req, grpc_cq_completion* completion);
|
347
348
|
|
348
|
-
void FailCall(size_t cq_idx, RequestedCall* rc,
|
349
|
+
void FailCall(size_t cq_idx, RequestedCall* rc, grpc_error_handle error);
|
349
350
|
grpc_call_error QueueRequestedCall(size_t cq_idx, RequestedCall* rc);
|
350
351
|
|
351
352
|
void MaybeFinishShutdown() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_global_)
|
352
353
|
ABSL_LOCKS_EXCLUDED(mu_call_);
|
353
354
|
|
354
|
-
void KillPendingWorkLocked(
|
355
|
+
void KillPendingWorkLocked(grpc_error_handle error)
|
355
356
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_call_);
|
356
357
|
|
357
358
|
static grpc_call_error ValidateServerRequest(
|
@@ -30,9 +30,9 @@
|
|
30
30
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
31
31
|
#include "src/core/lib/surface/validate_metadata.h"
|
32
32
|
|
33
|
-
static
|
34
|
-
|
35
|
-
|
33
|
+
static grpc_error_handle conforms_to(const grpc_slice& slice,
|
34
|
+
const uint8_t* legal_bits,
|
35
|
+
const char* err_desc) {
|
36
36
|
const uint8_t* p = GRPC_SLICE_START_PTR(slice);
|
37
37
|
const uint8_t* e = GRPC_SLICE_END_PTR(slice);
|
38
38
|
for (; p != e; p++) {
|
@@ -40,7 +40,7 @@ static grpc_error* conforms_to(const grpc_slice& slice,
|
|
40
40
|
int byte = idx / 8;
|
41
41
|
int bit = idx % 8;
|
42
42
|
if ((legal_bits[byte] & (1 << bit)) == 0) {
|
43
|
-
|
43
|
+
grpc_error_handle error = grpc_error_set_str(
|
44
44
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_COPIED_STRING(err_desc),
|
45
45
|
GRPC_ERROR_INT_OFFSET,
|
46
46
|
p - GRPC_SLICE_START_PTR(slice)),
|
@@ -52,13 +52,13 @@ static grpc_error* conforms_to(const grpc_slice& slice,
|
|
52
52
|
return GRPC_ERROR_NONE;
|
53
53
|
}
|
54
54
|
|
55
|
-
static int error2int(
|
55
|
+
static int error2int(grpc_error_handle error) {
|
56
56
|
int r = (error == GRPC_ERROR_NONE);
|
57
57
|
GRPC_ERROR_UNREF(error);
|
58
58
|
return r;
|
59
59
|
}
|
60
60
|
|
61
|
-
|
61
|
+
grpc_error_handle grpc_validate_header_key_is_legal(const grpc_slice& slice) {
|
62
62
|
static const uint8_t legal_header_bits[256 / 8] = {
|
63
63
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xff, 0x03, 0x00, 0x00, 0x00,
|
64
64
|
0x80, 0xfe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
@@ -82,7 +82,7 @@ int grpc_header_key_is_legal(grpc_slice slice) {
|
|
82
82
|
return error2int(grpc_validate_header_key_is_legal(slice));
|
83
83
|
}
|
84
84
|
|
85
|
-
|
85
|
+
grpc_error_handle grpc_validate_header_nonbin_value_is_legal(
|
86
86
|
const grpc_slice& slice) {
|
87
87
|
static const uint8_t legal_header_bits[256 / 8] = {
|
88
88
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|