grpc 1.53.0.pre2 → 1.54.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 +80 -66
- data/include/grpc/event_engine/event_engine.h +30 -14
- data/include/grpc/grpc_security.h +4 -0
- data/include/grpc/impl/grpc_types.h +11 -2
- data/include/grpc/support/port_platform.h +4 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +6 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +2 -11
- data/src/core/ext/filters/client_channel/backup_poller.h +0 -3
- data/src/core/ext/filters/client_channel/client_channel.cc +848 -813
- data/src/core/ext/filters/client_channel/client_channel.h +131 -173
- data/src/core/ext/filters/client_channel/client_channel_internal.h +114 -0
- data/src/core/ext/filters/client_channel/config_selector.h +4 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +17 -18
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +134 -151
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +1 -15
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +14 -10
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +68 -30
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +13 -5
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +8 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -5
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +30 -38
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +20 -26
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +31 -179
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +4 -2
- data/src/core/ext/filters/client_channel/retry_filter.cc +95 -102
- data/src/core/ext/filters/client_channel/subchannel.cc +2 -4
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +26 -27
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +8 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -3
- data/src/core/ext/filters/http/http_filters_plugin.cc +1 -12
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +27 -11
- data/src/core/ext/filters/message_size/message_size_filter.cc +141 -224
- data/src/core/ext/filters/message_size/message_size_filter.h +48 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -6
- data/src/core/ext/gcp/metadata_query.cc +142 -0
- data/src/core/ext/gcp/metadata_query.h +82 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +70 -55
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +149 -60
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +5 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +42 -23
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +5 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +9 -2
- data/src/core/ext/transport/chttp2/transport/writing.cc +10 -5
- data/src/core/ext/transport/inproc/inproc_transport.cc +20 -14
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +23 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +94 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +6 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +24 -6
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +111 -12
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +27 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +11 -7
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +56 -12
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +49 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +24 -9
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +66 -12
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +139 -136
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +31 -15
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +54 -45
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +135 -119
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +100 -97
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +15 -18
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +272 -264
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +117 -117
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -2
- data/src/core/ext/xds/xds_client_stats.cc +29 -15
- data/src/core/ext/xds/xds_client_stats.h +24 -20
- data/src/core/ext/xds/xds_endpoint.cc +5 -2
- data/src/core/ext/xds/xds_endpoint.h +9 -1
- data/src/core/ext/xds/xds_http_rbac_filter.cc +1 -1
- data/src/core/ext/xds/xds_lb_policy_registry.cc +13 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +1 -1
- data/src/core/{ext/filters/client_channel/resolver/dns/dns_resolver_selection.h → lib/backoff/random_early_detection.cc} +14 -12
- data/src/core/lib/backoff/random_early_detection.h +59 -0
- data/src/core/lib/channel/call_finalization.h +1 -1
- data/src/core/lib/channel/call_tracer.cc +51 -0
- data/src/core/lib/channel/call_tracer.h +101 -38
- data/src/core/lib/channel/connected_channel.cc +483 -1050
- data/src/core/lib/channel/context.h +8 -1
- data/src/core/lib/channel/promise_based_filter.cc +106 -42
- data/src/core/lib/channel/promise_based_filter.h +27 -13
- data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
- data/src/core/lib/config/config_vars.cc +151 -0
- data/src/core/lib/config/config_vars.h +127 -0
- data/src/core/lib/config/config_vars_non_generated.cc +51 -0
- data/src/core/lib/config/load_config.cc +66 -0
- data/src/core/lib/config/load_config.h +49 -0
- data/src/core/lib/debug/trace.cc +5 -6
- data/src/core/lib/debug/trace.h +0 -5
- data/src/core/lib/event_engine/event_engine.cc +37 -2
- data/src/core/lib/event_engine/handle_containers.h +7 -22
- data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -4
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -9
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +48 -15
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -8
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -3
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +27 -18
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +0 -3
- data/src/core/lib/event_engine/resolved_address.cc +2 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +129 -82
- data/src/core/lib/event_engine/windows/windows_endpoint.h +21 -5
- data/src/core/lib/event_engine/windows/windows_engine.cc +39 -18
- data/src/core/lib/event_engine/windows/windows_engine.h +2 -1
- data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
- data/src/core/lib/event_engine/windows/windows_listener.h +155 -0
- data/src/core/lib/experiments/config.cc +3 -10
- data/src/core/lib/experiments/experiments.cc +7 -0
- data/src/core/lib/experiments/experiments.h +9 -1
- data/src/core/lib/gpr/log.cc +15 -28
- data/src/core/lib/gprpp/fork.cc +8 -14
- data/src/core/lib/gprpp/orphanable.h +4 -3
- data/src/core/lib/gprpp/per_cpu.h +9 -3
- data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +49 -37
- data/src/core/lib/gprpp/ref_counted.h +33 -34
- data/src/core/lib/gprpp/thd.h +16 -0
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/gprpp/time.h +4 -4
- data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +2 -2
- data/src/core/lib/iomgr/call_combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +4 -2
- data/src/core/lib/iomgr/endpoint_pair.h +2 -2
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -2
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/ev_posix.cc +13 -53
- data/src/core/lib/iomgr/ev_posix.h +0 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +103 -76
- data/src/core/lib/iomgr/iomgr.cc +4 -8
- data/src/core/lib/iomgr/iomgr_windows.cc +8 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +9 -9
- data/src/core/lib/iomgr/pollset_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -3
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_posix.cc +0 -1
- data/src/core/lib/iomgr/tcp_server_posix.cc +5 -16
- data/src/core/lib/iomgr/tcp_server_windows.cc +176 -9
- data/src/core/lib/iomgr/tcp_windows.cc +12 -8
- data/src/core/lib/load_balancing/lb_policy.cc +9 -13
- data/src/core/lib/load_balancing/lb_policy.h +4 -2
- data/src/core/lib/promise/activity.cc +22 -6
- data/src/core/lib/promise/activity.h +61 -24
- data/src/core/lib/promise/cancel_callback.h +77 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -1
- data/src/core/lib/promise/detail/promise_factory.h +4 -0
- data/src/core/lib/promise/for_each.h +176 -0
- data/src/core/lib/promise/if.h +9 -0
- data/src/core/lib/promise/interceptor_list.h +23 -2
- data/src/core/lib/promise/latch.h +89 -3
- data/src/core/lib/promise/loop.h +13 -9
- data/src/core/lib/promise/map.h +7 -0
- data/src/core/lib/promise/party.cc +286 -0
- data/src/core/lib/promise/party.h +499 -0
- data/src/core/lib/promise/pipe.h +197 -57
- data/src/core/lib/promise/poll.h +48 -0
- data/src/core/lib/promise/promise.h +2 -2
- data/src/core/lib/resource_quota/arena.cc +19 -3
- data/src/core/lib/resource_quota/arena.h +119 -5
- data/src/core/lib/resource_quota/memory_quota.cc +1 -1
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +12 -35
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -59
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +2 -0
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +5 -9
- data/src/core/lib/security/security_connector/ssl_utils.cc +11 -25
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +12 -0
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -2
- data/src/core/lib/security/transport/server_auth_filter.cc +20 -2
- data/src/core/lib/slice/slice.cc +1 -1
- data/src/core/lib/surface/builtins.cc +2 -0
- data/src/core/lib/surface/call.cc +926 -1024
- data/src/core/lib/surface/call.h +10 -0
- data/src/core/lib/surface/lame_client.cc +1 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +179 -0
- data/src/core/lib/transport/batch_builder.h +468 -0
- data/src/core/lib/transport/bdp_estimator.cc +7 -7
- data/src/core/lib/transport/bdp_estimator.h +10 -6
- data/src/core/lib/transport/custom_metadata.h +30 -0
- data/src/core/lib/transport/metadata_batch.cc +9 -6
- data/src/core/lib/transport/metadata_batch.h +58 -16
- data/src/core/lib/transport/parsed_metadata.h +3 -3
- data/src/core/lib/transport/timeout_encoding.cc +6 -1
- data/src/core/lib/transport/transport.cc +30 -2
- data/src/core/lib/transport/transport.h +70 -14
- data/src/core/lib/transport/transport_impl.h +7 -0
- data/src/core/lib/transport/transport_op_string.cc +52 -42
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -2
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +1 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +21 -4
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +5 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +4 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/abseil-cpp/absl/base/config.h +1 -1
- data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
- data/third_party/abseil-cpp/absl/flags/config.h +68 -0
- data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
- data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
- data/{src/core/lib/gprpp/global_config_custom.h → third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc} +11 -14
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
- data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
- data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
- data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
- data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
- data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
- data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
- data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
- data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
- data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +12 -8
- data/third_party/boringssl-with-bazel/err_data.c +728 -712
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +174 -194
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +133 -88
- data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +791 -791
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +526 -526
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +11 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +9 -5
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
- data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +6 -12
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +16 -27
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +39 -16
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +214 -99
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +21 -5
- data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
- data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
- data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
- data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +35 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
- data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +21 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +25 -25
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +91 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +34 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +54 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +44 -60
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +60 -53
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +48 -36
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +2 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +42 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +71 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +14 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -45
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +22 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +63 -52
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +107 -62
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +58 -31
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +523 -422
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +19 -6
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +32 -14
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +373 -18
- data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +61 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +205 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +13 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +629 -613
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
- data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +66 -34
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +190 -77
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +81 -284
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +109 -42
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +54 -55
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +284 -331
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
- data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +67 -50
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +153 -150
- data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +786 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +227 -252
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +230 -224
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +534 -618
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +116 -182
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +181 -202
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1865 -2050
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +433 -462
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +267 -263
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +326 -415
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +78 -170
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +309 -346
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +341 -365
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +122 -125
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +247 -253
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +143 -136
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +664 -707
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +83 -75
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1062 -1146
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +8 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +211 -187
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +21 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +22 -30
- data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +41 -16
- data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +13 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +7 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +13 -21
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -75
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +384 -286
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +5 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +18 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +49 -23
- data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1592 -1074
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +202 -205
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +34 -20
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +65 -34
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +32 -28
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +130 -98
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +27 -11
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
- data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +39 -65
- data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +30 -33
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +77 -100
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +120 -107
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +164 -30
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +150 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +22 -11
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +5 -43
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +22 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
- metadata +107 -72
- data/src/core/ext/filters/client_channel/lb_call_state_internal.h +0 -39
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
- data/src/core/lib/gprpp/global_config.h +0 -93
- data/src/core/lib/gprpp/global_config_env.cc +0 -140
- data/src/core/lib/gprpp/global_config_env.h +0 -133
- data/src/core/lib/gprpp/global_config_generic.h +0 -40
- data/src/core/lib/promise/intra_activity_waiter.h +0 -55
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
- data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
- data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
- data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
- /data/src/core/lib/gpr/{log_android.cc → android/log.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_iphone.cc → iphone/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +0 -0
- /data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +0 -0
- /data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +0 -0
- /data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +0 -0
- /data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +0 -0
- /data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_windows.cc → windows/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +0 -0
- /data/src/core/lib/gpr/{string_windows.cc → windows/string.cc} +0 -0
- /data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +0 -0
- /data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +0 -0
- /data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +0 -0
- /data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +0 -0
- /data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +0 -0
- /data/src/core/lib/gprpp/{env_posix.cc → posix/env.cc} +0 -0
- /data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +0 -0
- /data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +0 -0
- /data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +0 -0
data/src/core/lib/promise/pipe.h
CHANGED
@@ -25,7 +25,6 @@
|
|
25
25
|
#include <type_traits>
|
26
26
|
#include <utility>
|
27
27
|
|
28
|
-
#include "absl/base/attributes.h"
|
29
28
|
#include "absl/strings/str_cat.h"
|
30
29
|
#include "absl/types/optional.h"
|
31
30
|
#include "absl/types/variant.h"
|
@@ -39,7 +38,6 @@
|
|
39
38
|
#include "src/core/lib/promise/context.h"
|
40
39
|
#include "src/core/lib/promise/if.h"
|
41
40
|
#include "src/core/lib/promise/interceptor_list.h"
|
42
|
-
#include "src/core/lib/promise/intra_activity_waiter.h"
|
43
41
|
#include "src/core/lib/promise/map.h"
|
44
42
|
#include "src/core/lib/promise/poll.h"
|
45
43
|
#include "src/core/lib/promise/seq.h"
|
@@ -160,9 +158,11 @@ class Center : public InterceptorList<T> {
|
|
160
158
|
case ValueState::kClosed:
|
161
159
|
case ValueState::kReadyClosed:
|
162
160
|
case ValueState::kCancelled:
|
161
|
+
case ValueState::kWaitingForAckAndClosed:
|
163
162
|
return false;
|
164
163
|
case ValueState::kReady:
|
165
164
|
case ValueState::kAcked:
|
165
|
+
case ValueState::kWaitingForAck:
|
166
166
|
return on_empty_.pending();
|
167
167
|
case ValueState::kEmpty:
|
168
168
|
value_state_ = ValueState::kReady;
|
@@ -180,11 +180,14 @@ class Center : public InterceptorList<T> {
|
|
180
180
|
GPR_DEBUG_ASSERT(refs_ != 0);
|
181
181
|
switch (value_state_) {
|
182
182
|
case ValueState::kClosed:
|
183
|
-
|
183
|
+
return true;
|
184
184
|
case ValueState::kCancelled:
|
185
185
|
return false;
|
186
186
|
case ValueState::kReady:
|
187
|
+
case ValueState::kReadyClosed:
|
187
188
|
case ValueState::kEmpty:
|
189
|
+
case ValueState::kWaitingForAck:
|
190
|
+
case ValueState::kWaitingForAckAndClosed:
|
188
191
|
return on_empty_.pending();
|
189
192
|
case ValueState::kAcked:
|
190
193
|
value_state_ = ValueState::kEmpty;
|
@@ -206,12 +209,14 @@ class Center : public InterceptorList<T> {
|
|
206
209
|
switch (value_state_) {
|
207
210
|
case ValueState::kEmpty:
|
208
211
|
case ValueState::kAcked:
|
212
|
+
case ValueState::kWaitingForAck:
|
213
|
+
case ValueState::kWaitingForAckAndClosed:
|
209
214
|
return on_full_.pending();
|
210
215
|
case ValueState::kReadyClosed:
|
211
|
-
|
212
|
-
|
213
|
-
ABSL_FALLTHROUGH_INTENDED;
|
216
|
+
value_state_ = ValueState::kWaitingForAckAndClosed;
|
217
|
+
return std::move(value_);
|
214
218
|
case ValueState::kReady:
|
219
|
+
value_state_ = ValueState::kWaitingForAck;
|
215
220
|
return std::move(value_);
|
216
221
|
case ValueState::kClosed:
|
217
222
|
case ValueState::kCancelled:
|
@@ -220,18 +225,89 @@ class Center : public InterceptorList<T> {
|
|
220
225
|
GPR_UNREACHABLE_CODE(return absl::nullopt);
|
221
226
|
}
|
222
227
|
|
228
|
+
// Check if the pipe is closed for sending (if there is a value still queued
|
229
|
+
// but the pipe is closed, reports closed).
|
230
|
+
Poll<bool> PollClosedForSender() {
|
231
|
+
if (grpc_trace_promise_primitives.enabled()) {
|
232
|
+
gpr_log(GPR_INFO, "%s", DebugOpString("PollClosedForSender").c_str());
|
233
|
+
}
|
234
|
+
GPR_DEBUG_ASSERT(refs_ != 0);
|
235
|
+
switch (value_state_) {
|
236
|
+
case ValueState::kEmpty:
|
237
|
+
case ValueState::kAcked:
|
238
|
+
case ValueState::kReady:
|
239
|
+
case ValueState::kWaitingForAck:
|
240
|
+
return on_closed_.pending();
|
241
|
+
case ValueState::kWaitingForAckAndClosed:
|
242
|
+
case ValueState::kReadyClosed:
|
243
|
+
case ValueState::kClosed:
|
244
|
+
return false;
|
245
|
+
case ValueState::kCancelled:
|
246
|
+
return true;
|
247
|
+
}
|
248
|
+
GPR_UNREACHABLE_CODE(return true);
|
249
|
+
}
|
250
|
+
|
251
|
+
// Check if the pipe is closed for receiving (if there is a value still queued
|
252
|
+
// but the pipe is closed, reports open).
|
253
|
+
Poll<bool> PollClosedForReceiver() {
|
254
|
+
if (grpc_trace_promise_primitives.enabled()) {
|
255
|
+
gpr_log(GPR_INFO, "%s", DebugOpString("PollClosedForReceiver").c_str());
|
256
|
+
}
|
257
|
+
GPR_DEBUG_ASSERT(refs_ != 0);
|
258
|
+
switch (value_state_) {
|
259
|
+
case ValueState::kEmpty:
|
260
|
+
case ValueState::kAcked:
|
261
|
+
case ValueState::kReady:
|
262
|
+
case ValueState::kReadyClosed:
|
263
|
+
case ValueState::kWaitingForAck:
|
264
|
+
case ValueState::kWaitingForAckAndClosed:
|
265
|
+
return on_closed_.pending();
|
266
|
+
case ValueState::kClosed:
|
267
|
+
return false;
|
268
|
+
case ValueState::kCancelled:
|
269
|
+
return true;
|
270
|
+
}
|
271
|
+
GPR_UNREACHABLE_CODE(return true);
|
272
|
+
}
|
273
|
+
|
274
|
+
Poll<Empty> PollEmpty() {
|
275
|
+
if (grpc_trace_promise_primitives.enabled()) {
|
276
|
+
gpr_log(GPR_INFO, "%s", DebugOpString("PollEmpty").c_str());
|
277
|
+
}
|
278
|
+
GPR_DEBUG_ASSERT(refs_ != 0);
|
279
|
+
switch (value_state_) {
|
280
|
+
case ValueState::kReady:
|
281
|
+
case ValueState::kReadyClosed:
|
282
|
+
return on_empty_.pending();
|
283
|
+
case ValueState::kWaitingForAck:
|
284
|
+
case ValueState::kWaitingForAckAndClosed:
|
285
|
+
case ValueState::kAcked:
|
286
|
+
case ValueState::kEmpty:
|
287
|
+
case ValueState::kClosed:
|
288
|
+
case ValueState::kCancelled:
|
289
|
+
return Empty{};
|
290
|
+
}
|
291
|
+
GPR_UNREACHABLE_CODE(return Empty{});
|
292
|
+
}
|
293
|
+
|
223
294
|
void AckNext() {
|
224
295
|
if (grpc_trace_promise_primitives.enabled()) {
|
225
296
|
gpr_log(GPR_INFO, "%s", DebugOpString("AckNext").c_str());
|
226
297
|
}
|
227
298
|
switch (value_state_) {
|
228
299
|
case ValueState::kReady:
|
300
|
+
case ValueState::kWaitingForAck:
|
229
301
|
value_state_ = ValueState::kAcked;
|
230
302
|
on_empty_.Wake();
|
231
303
|
break;
|
232
304
|
case ValueState::kReadyClosed:
|
305
|
+
case ValueState::kWaitingForAckAndClosed:
|
233
306
|
this->ResetInterceptorList();
|
234
307
|
value_state_ = ValueState::kClosed;
|
308
|
+
on_closed_.Wake();
|
309
|
+
on_empty_.Wake();
|
310
|
+
on_full_.Wake();
|
235
311
|
break;
|
236
312
|
case ValueState::kClosed:
|
237
313
|
case ValueState::kCancelled:
|
@@ -251,14 +327,22 @@ class Center : public InterceptorList<T> {
|
|
251
327
|
case ValueState::kAcked:
|
252
328
|
this->ResetInterceptorList();
|
253
329
|
value_state_ = ValueState::kClosed;
|
330
|
+
on_empty_.Wake();
|
254
331
|
on_full_.Wake();
|
332
|
+
on_closed_.Wake();
|
255
333
|
break;
|
256
334
|
case ValueState::kReady:
|
257
335
|
value_state_ = ValueState::kReadyClosed;
|
336
|
+
on_closed_.Wake();
|
337
|
+
break;
|
338
|
+
case ValueState::kWaitingForAck:
|
339
|
+
value_state_ = ValueState::kWaitingForAckAndClosed;
|
340
|
+
on_closed_.Wake();
|
258
341
|
break;
|
259
342
|
case ValueState::kReadyClosed:
|
260
343
|
case ValueState::kClosed:
|
261
344
|
case ValueState::kCancelled:
|
345
|
+
case ValueState::kWaitingForAckAndClosed:
|
262
346
|
break;
|
263
347
|
}
|
264
348
|
}
|
@@ -272,13 +356,15 @@ class Center : public InterceptorList<T> {
|
|
272
356
|
case ValueState::kAcked:
|
273
357
|
case ValueState::kReady:
|
274
358
|
case ValueState::kReadyClosed:
|
359
|
+
case ValueState::kWaitingForAck:
|
360
|
+
case ValueState::kWaitingForAckAndClosed:
|
275
361
|
this->ResetInterceptorList();
|
276
362
|
value_state_ = ValueState::kCancelled;
|
363
|
+
on_empty_.Wake();
|
277
364
|
on_full_.Wake();
|
365
|
+
on_closed_.Wake();
|
278
366
|
break;
|
279
367
|
case ValueState::kClosed:
|
280
|
-
value_state_ = ValueState::kCancelled;
|
281
|
-
break;
|
282
368
|
case ValueState::kCancelled:
|
283
369
|
break;
|
284
370
|
}
|
@@ -305,6 +391,8 @@ class Center : public InterceptorList<T> {
|
|
305
391
|
kEmpty,
|
306
392
|
// Value has been pushed but not acked, it's possible to receive.
|
307
393
|
kReady,
|
394
|
+
// Value has been read and not acked, both send/receive blocked until ack.
|
395
|
+
kWaitingForAck,
|
308
396
|
// Value has been received and acked, we can unblock senders and transition
|
309
397
|
// to empty.
|
310
398
|
kAcked,
|
@@ -313,6 +401,9 @@ class Center : public InterceptorList<T> {
|
|
313
401
|
// Pipe is closed successfully, no more values can be sent
|
314
402
|
// (but one value is queued and ready to be received)
|
315
403
|
kReadyClosed,
|
404
|
+
// Pipe is closed successfully, no more values can be sent
|
405
|
+
// (but one value is queued and waiting to be acked)
|
406
|
+
kWaitingForAckAndClosed,
|
316
407
|
// Pipe is closed unsuccessfully, no more values can be sent
|
317
408
|
kCancelled,
|
318
409
|
};
|
@@ -321,7 +412,8 @@ class Center : public InterceptorList<T> {
|
|
321
412
|
return absl::StrCat(DebugTag(), op, " refs=", refs_,
|
322
413
|
" value_state=", ValueStateName(value_state_),
|
323
414
|
" on_empty=", on_empty_.DebugString().c_str(),
|
324
|
-
" on_full=", on_full_.DebugString().c_str()
|
415
|
+
" on_full=", on_full_.DebugString().c_str(),
|
416
|
+
" on_closed=", on_closed_.DebugString().c_str());
|
325
417
|
}
|
326
418
|
|
327
419
|
static const char* ValueStateName(ValueState state) {
|
@@ -336,6 +428,10 @@ class Center : public InterceptorList<T> {
|
|
336
428
|
return "Closed";
|
337
429
|
case ValueState::kReadyClosed:
|
338
430
|
return "ReadyClosed";
|
431
|
+
case ValueState::kWaitingForAck:
|
432
|
+
return "WaitingForAck";
|
433
|
+
case ValueState::kWaitingForAckAndClosed:
|
434
|
+
return "WaitingForAckAndClosed";
|
339
435
|
case ValueState::kCancelled:
|
340
436
|
return "Cancelled";
|
341
437
|
}
|
@@ -349,6 +445,7 @@ class Center : public InterceptorList<T> {
|
|
349
445
|
ValueState value_state_;
|
350
446
|
IntraActivityWaiter on_empty_;
|
351
447
|
IntraActivityWaiter on_full_;
|
448
|
+
IntraActivityWaiter on_closed_;
|
352
449
|
|
353
450
|
// Make failure to destruct show up in ASAN builds.
|
354
451
|
#ifndef NDEBUG
|
@@ -388,11 +485,25 @@ class PipeSender {
|
|
388
485
|
// receiver is either closed or able to receive another message.
|
389
486
|
PushType Push(T value);
|
390
487
|
|
488
|
+
// Return a promise that resolves when the receiver is closed.
|
489
|
+
// The resolved value is a bool - true if the pipe was cancelled, false if it
|
490
|
+
// was closed successfully.
|
491
|
+
// Checks closed from the senders perspective: that is, if there is a value in
|
492
|
+
// the pipe but the pipe is closed, reports closed.
|
493
|
+
auto AwaitClosed() {
|
494
|
+
return [center = center_]() { return center->PollClosedForSender(); };
|
495
|
+
}
|
496
|
+
|
497
|
+
// Interject PromiseFactory f into the pipeline.
|
498
|
+
// f will be called with the current value traversing the pipe, and should
|
499
|
+
// return a value to replace it with.
|
500
|
+
// Interjects at the Push end of the pipe.
|
391
501
|
template <typename Fn>
|
392
502
|
void InterceptAndMap(Fn f, DebugLocation from = {}) {
|
393
503
|
center_->PrependMap(std::move(f), from);
|
394
504
|
}
|
395
505
|
|
506
|
+
// Per above, but calls cleanup_fn when the pipe is closed.
|
396
507
|
template <typename Fn, typename OnHalfClose>
|
397
508
|
void InterceptAndMap(Fn f, OnHalfClose cleanup_fn, DebugLocation from = {}) {
|
398
509
|
center_->PrependMapWithCleanup(std::move(f), std::move(cleanup_fn), from);
|
@@ -409,6 +520,31 @@ class PipeSender {
|
|
409
520
|
#endif
|
410
521
|
};
|
411
522
|
|
523
|
+
template <typename T>
|
524
|
+
class PipeReceiver;
|
525
|
+
|
526
|
+
namespace pipe_detail {
|
527
|
+
|
528
|
+
// Implementation of PipeReceiver::Next promise.
|
529
|
+
template <typename T>
|
530
|
+
class Next {
|
531
|
+
public:
|
532
|
+
Next(const Next&) = delete;
|
533
|
+
Next& operator=(const Next&) = delete;
|
534
|
+
Next(Next&& other) noexcept = default;
|
535
|
+
Next& operator=(Next&& other) noexcept = default;
|
536
|
+
|
537
|
+
Poll<absl::optional<T>> operator()() { return center_->Next(); }
|
538
|
+
|
539
|
+
private:
|
540
|
+
friend class PipeReceiver<T>;
|
541
|
+
explicit Next(RefCountedPtr<Center<T>> center) : center_(std::move(center)) {}
|
542
|
+
|
543
|
+
RefCountedPtr<Center<T>> center_;
|
544
|
+
};
|
545
|
+
|
546
|
+
} // namespace pipe_detail
|
547
|
+
|
412
548
|
// Receive end of a Pipe.
|
413
549
|
template <typename T>
|
414
550
|
class PipeReceiver {
|
@@ -418,7 +554,7 @@ class PipeReceiver {
|
|
418
554
|
PipeReceiver(PipeReceiver&& other) noexcept = default;
|
419
555
|
PipeReceiver& operator=(PipeReceiver&& other) noexcept = default;
|
420
556
|
~PipeReceiver() {
|
421
|
-
if (center_ != nullptr) center_->
|
557
|
+
if (center_ != nullptr) center_->MarkCancelled();
|
422
558
|
}
|
423
559
|
|
424
560
|
void Swap(PipeReceiver<T>* other) { std::swap(center_, other->center_); }
|
@@ -428,13 +564,55 @@ class PipeReceiver {
|
|
428
564
|
// message was received, or no value if the other end of the pipe was closed.
|
429
565
|
// Blocks the promise until the receiver is either closed or a message is
|
430
566
|
// available.
|
431
|
-
auto Next()
|
567
|
+
auto Next() {
|
568
|
+
return Seq(
|
569
|
+
pipe_detail::Next<T>(center_->Ref()),
|
570
|
+
[center = center_->Ref()](absl::optional<T> value) {
|
571
|
+
bool open = value.has_value();
|
572
|
+
bool cancelled = center->cancelled();
|
573
|
+
return If(
|
574
|
+
open,
|
575
|
+
[center = std::move(center), value = std::move(value)]() mutable {
|
576
|
+
auto run = center->Run(std::move(value));
|
577
|
+
return Map(std::move(run),
|
578
|
+
[center = std::move(center)](
|
579
|
+
absl::optional<T> value) mutable {
|
580
|
+
if (value.has_value()) {
|
581
|
+
center->value() = std::move(*value);
|
582
|
+
return NextResult<T>(std::move(center));
|
583
|
+
} else {
|
584
|
+
center->MarkCancelled();
|
585
|
+
return NextResult<T>(true);
|
586
|
+
}
|
587
|
+
});
|
588
|
+
},
|
589
|
+
[cancelled]() { return NextResult<T>(cancelled); });
|
590
|
+
});
|
591
|
+
}
|
432
592
|
|
593
|
+
// Return a promise that resolves when the receiver is closed.
|
594
|
+
// The resolved value is a bool - true if the pipe was cancelled, false if it
|
595
|
+
// was closed successfully.
|
596
|
+
// Checks closed from the receivers perspective: that is, if there is a value
|
597
|
+
// in the pipe but the pipe is closed, reports open until that value is read.
|
598
|
+
auto AwaitClosed() {
|
599
|
+
return [center = center_]() { return center->PollClosedForReceiver(); };
|
600
|
+
}
|
601
|
+
|
602
|
+
auto AwaitEmpty() {
|
603
|
+
return [center = center_]() { return center->PollEmpty(); };
|
604
|
+
}
|
605
|
+
|
606
|
+
// Interject PromiseFactory f into the pipeline.
|
607
|
+
// f will be called with the current value traversing the pipe, and should
|
608
|
+
// return a value to replace it with.
|
609
|
+
// Interjects at the Next end of the pipe.
|
433
610
|
template <typename Fn>
|
434
611
|
void InterceptAndMap(Fn f, DebugLocation from = {}) {
|
435
612
|
center_->AppendMap(std::move(f), from);
|
436
613
|
}
|
437
614
|
|
615
|
+
// Per above, but calls cleanup_fn when the pipe is closed.
|
438
616
|
template <typename Fn, typename OnHalfClose>
|
439
617
|
void InterceptAndMapWithHalfClose(Fn f, OnHalfClose cleanup_fn,
|
440
618
|
DebugLocation from = {}) {
|
@@ -459,12 +637,19 @@ template <typename T>
|
|
459
637
|
class Push {
|
460
638
|
public:
|
461
639
|
Push(const Push&) = delete;
|
640
|
+
|
462
641
|
Push& operator=(const Push&) = delete;
|
463
642
|
Push(Push&& other) noexcept = default;
|
464
643
|
Push& operator=(Push&& other) noexcept = default;
|
465
644
|
|
466
645
|
Poll<bool> operator()() {
|
467
|
-
if (center_ == nullptr)
|
646
|
+
if (center_ == nullptr) {
|
647
|
+
if (grpc_trace_promise_primitives.enabled()) {
|
648
|
+
gpr_log(GPR_DEBUG, "%s Pipe push has a null center",
|
649
|
+
Activity::current()->DebugTag().c_str());
|
650
|
+
}
|
651
|
+
return false;
|
652
|
+
}
|
468
653
|
if (auto* p = absl::get_if<T>(&state_)) {
|
469
654
|
auto r = center_->Push(p);
|
470
655
|
if (auto* ok = r.value_if_ready()) {
|
@@ -489,24 +674,6 @@ class Push {
|
|
489
674
|
absl::variant<T, AwaitingAck> state_;
|
490
675
|
};
|
491
676
|
|
492
|
-
// Implementation of PipeReceiver::Next promise.
|
493
|
-
template <typename T>
|
494
|
-
class Next {
|
495
|
-
public:
|
496
|
-
Next(const Next&) = delete;
|
497
|
-
Next& operator=(const Next&) = delete;
|
498
|
-
Next(Next&& other) noexcept = default;
|
499
|
-
Next& operator=(Next&& other) noexcept = default;
|
500
|
-
|
501
|
-
Poll<absl::optional<T>> operator()() { return center_->Next(); }
|
502
|
-
|
503
|
-
private:
|
504
|
-
friend class PipeReceiver<T>;
|
505
|
-
explicit Next(RefCountedPtr<Center<T>> center) : center_(std::move(center)) {}
|
506
|
-
|
507
|
-
RefCountedPtr<Center<T>> center_;
|
508
|
-
};
|
509
|
-
|
510
677
|
} // namespace pipe_detail
|
511
678
|
|
512
679
|
template <typename T>
|
@@ -515,33 +682,6 @@ pipe_detail::Push<T> PipeSender<T>::Push(T value) {
|
|
515
682
|
std::move(value));
|
516
683
|
}
|
517
684
|
|
518
|
-
template <typename T>
|
519
|
-
auto PipeReceiver<T>::Next() {
|
520
|
-
return Seq(
|
521
|
-
pipe_detail::Next<T>(center_->Ref()),
|
522
|
-
[center = center_->Ref()](absl::optional<T> value) {
|
523
|
-
bool open = value.has_value();
|
524
|
-
bool cancelled = center->cancelled();
|
525
|
-
return If(
|
526
|
-
open,
|
527
|
-
[center = std::move(center), value = std::move(value)]() mutable {
|
528
|
-
auto run_interceptors = center->Run(std::move(value));
|
529
|
-
return Map(std::move(run_interceptors),
|
530
|
-
[center = std::move(center)](
|
531
|
-
absl::optional<T> value) mutable {
|
532
|
-
if (value.has_value()) {
|
533
|
-
center->value() = std::move(*value);
|
534
|
-
return NextResult<T>(std::move(center));
|
535
|
-
} else {
|
536
|
-
center->MarkCancelled();
|
537
|
-
return NextResult<T>(true);
|
538
|
-
}
|
539
|
-
});
|
540
|
-
},
|
541
|
-
[cancelled]() { return NextResult<T>(cancelled); });
|
542
|
-
});
|
543
|
-
}
|
544
|
-
|
545
685
|
template <typename T>
|
546
686
|
using PipeReceiverNextType = decltype(std::declval<PipeReceiver<T>>().Next());
|
547
687
|
|
data/src/core/lib/promise/poll.h
CHANGED
@@ -88,6 +88,8 @@ class Poll {
|
|
88
88
|
Poll(U value) : ready_(true) {
|
89
89
|
Construct(&value_, std::move(value));
|
90
90
|
}
|
91
|
+
// NOLINTNEXTLINE(google-explicit-constructor)
|
92
|
+
Poll(T&& value) : ready_(true) { Construct(&value_, std::forward<T>(value)); }
|
91
93
|
~Poll() {
|
92
94
|
if (ready_) Destruct(&value_);
|
93
95
|
}
|
@@ -137,9 +139,55 @@ class Poll {
|
|
137
139
|
};
|
138
140
|
};
|
139
141
|
|
142
|
+
template <>
|
143
|
+
class Poll<Empty> {
|
144
|
+
public:
|
145
|
+
// NOLINTNEXTLINE(google-explicit-constructor)
|
146
|
+
Poll(Pending) : ready_(false) {}
|
147
|
+
Poll() : ready_(false) {}
|
148
|
+
Poll(const Poll& other) = default;
|
149
|
+
Poll(Poll&& other) noexcept = default;
|
150
|
+
Poll& operator=(const Poll& other) = default;
|
151
|
+
Poll& operator=(Poll&& other) = default;
|
152
|
+
// NOLINTNEXTLINE(google-explicit-constructor)
|
153
|
+
Poll(Empty) : ready_(true) {}
|
154
|
+
~Poll() = default;
|
155
|
+
|
156
|
+
bool pending() const { return !ready_; }
|
157
|
+
bool ready() const { return ready_; }
|
158
|
+
|
159
|
+
Empty value() const {
|
160
|
+
GPR_DEBUG_ASSERT(ready());
|
161
|
+
return Empty{};
|
162
|
+
}
|
163
|
+
|
164
|
+
Empty* value_if_ready() {
|
165
|
+
static Empty value;
|
166
|
+
if (ready()) return &value;
|
167
|
+
return nullptr;
|
168
|
+
}
|
169
|
+
|
170
|
+
const Empty* value_if_ready() const {
|
171
|
+
static Empty value;
|
172
|
+
if (ready()) return &value;
|
173
|
+
return nullptr;
|
174
|
+
}
|
175
|
+
|
176
|
+
private:
|
177
|
+
// Flag indicating readiness.
|
178
|
+
bool ready_;
|
179
|
+
};
|
180
|
+
|
181
|
+
// Ensure degenerate cases are not defined:
|
182
|
+
|
183
|
+
// Can't poll for a Pending
|
140
184
|
template <>
|
141
185
|
class Poll<Pending>;
|
142
186
|
|
187
|
+
// Can't poll for a poll
|
188
|
+
template <class T>
|
189
|
+
class Poll<Poll<T>>;
|
190
|
+
|
143
191
|
template <typename T>
|
144
192
|
bool operator==(const Poll<T>& a, const Poll<T>& b) {
|
145
193
|
if (a.pending() && b.pending()) return true;
|
@@ -17,10 +17,10 @@
|
|
17
17
|
|
18
18
|
#include <grpc/support/port_platform.h>
|
19
19
|
|
20
|
-
#include <functional>
|
21
20
|
#include <type_traits>
|
22
21
|
#include <utility>
|
23
22
|
|
23
|
+
#include "absl/functional/any_invocable.h"
|
24
24
|
#include "absl/status/status.h"
|
25
25
|
#include "absl/types/optional.h"
|
26
26
|
|
@@ -33,7 +33,7 @@ namespace grpc_core {
|
|
33
33
|
// Most of the time we just pass around the functor, but occasionally
|
34
34
|
// it pays to have a type erased variant, which we define here.
|
35
35
|
template <typename T>
|
36
|
-
using Promise =
|
36
|
+
using Promise = absl::AnyInvocable<Poll<T>()>;
|
37
37
|
|
38
38
|
// Helper to execute a promise immediately and return either the result or
|
39
39
|
// nothing.
|
@@ -54,6 +54,9 @@ Arena::~Arena() {
|
|
54
54
|
gpr_free_aligned(z);
|
55
55
|
z = prev_z;
|
56
56
|
}
|
57
|
+
#ifdef GRPC_ARENA_TRACE_POOLED_ALLOCATIONS
|
58
|
+
gpr_log(GPR_ERROR, "DESTRUCT_ARENA %p", this);
|
59
|
+
#endif
|
57
60
|
}
|
58
61
|
|
59
62
|
Arena* Arena::Create(size_t initial_size, MemoryAllocator* memory_allocator) {
|
@@ -71,7 +74,7 @@ std::pair<Arena*, void*> Arena::CreateWithAlloc(
|
|
71
74
|
return std::make_pair(new_arena, first_alloc);
|
72
75
|
}
|
73
76
|
|
74
|
-
void Arena::
|
77
|
+
void Arena::DestroyManagedNewObjects() {
|
75
78
|
ManagedNewObject* p;
|
76
79
|
// Outer loop: clear the managed new object list.
|
77
80
|
// We do this repeatedly in case a destructor ends up allocating something.
|
@@ -82,6 +85,10 @@ void Arena::Destroy() {
|
|
82
85
|
Destruct(std::exchange(p, p->next));
|
83
86
|
}
|
84
87
|
}
|
88
|
+
}
|
89
|
+
|
90
|
+
void Arena::Destroy() {
|
91
|
+
DestroyManagedNewObjects();
|
85
92
|
memory_allocator_->Release(total_allocated_.load(std::memory_order_relaxed));
|
86
93
|
this->~Arena();
|
87
94
|
gpr_free_aligned(this);
|
@@ -114,7 +121,8 @@ void Arena::ManagedNewObject::Link(std::atomic<ManagedNewObject*>* head) {
|
|
114
121
|
}
|
115
122
|
}
|
116
123
|
|
117
|
-
void* Arena::AllocPooled(size_t
|
124
|
+
void* Arena::AllocPooled(size_t obj_size, size_t alloc_size,
|
125
|
+
std::atomic<FreePoolNode*>* head) {
|
118
126
|
// ABA mitigation:
|
119
127
|
// AllocPooled may be called by multiple threads, and to remove a node from
|
120
128
|
// the free list we need to manipulate the next pointer, which may be done
|
@@ -132,7 +140,11 @@ void* Arena::AllocPooled(size_t alloc_size, std::atomic<FreePoolNode*>* head) {
|
|
132
140
|
FreePoolNode* p = head->exchange(nullptr, std::memory_order_acquire);
|
133
141
|
// If there are no nodes in the free list, then go ahead and allocate from the
|
134
142
|
// arena.
|
135
|
-
if (p == nullptr)
|
143
|
+
if (p == nullptr) {
|
144
|
+
void* r = Alloc(alloc_size);
|
145
|
+
TracePoolAlloc(obj_size, r);
|
146
|
+
return r;
|
147
|
+
}
|
136
148
|
// We had a non-empty free list... but we own the *entire* free list.
|
137
149
|
// We only want one node, so if there are extras we'd better give them back.
|
138
150
|
if (p->next != nullptr) {
|
@@ -151,10 +163,14 @@ void* Arena::AllocPooled(size_t alloc_size, std::atomic<FreePoolNode*>* head) {
|
|
151
163
|
extra = next;
|
152
164
|
}
|
153
165
|
}
|
166
|
+
TracePoolAlloc(obj_size, p);
|
154
167
|
return p;
|
155
168
|
}
|
156
169
|
|
157
170
|
void Arena::FreePooled(void* p, std::atomic<FreePoolNode*>* head) {
|
171
|
+
// May spuriously trace a free of an already freed object - see AllocPooled
|
172
|
+
// ABA mitigation.
|
173
|
+
TracePoolFree(p);
|
158
174
|
FreePoolNode* node = static_cast<FreePoolNode*>(p);
|
159
175
|
node->next = head->load(std::memory_order_acquire);
|
160
176
|
while (!head->compare_exchange_weak(
|