grpc 1.53.2 → 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 +78 -66
- data/include/grpc/event_engine/event_engine.h +30 -14
- data/include/grpc/grpc_security.h +4 -0
- 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/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 +2 -16
- 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 +11 -3
- 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/bin_encoder.cc +8 -12
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +116 -58
- 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_encoder.cc +222 -118
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +113 -295
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +0 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +277 -451
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +12 -14
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +1 -9
- data/src/core/ext/transport/chttp2/transport/internal.h +16 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -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/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.h +0 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -32
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +0 -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/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 +19 -55
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +0 -21
- 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/validate_metadata.cc +42 -43
- data/src/core/lib/surface/validate_metadata.h +0 -9
- 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 +5 -2
- data/src/core/lib/transport/metadata_batch.h +17 -113
- data/src/core/lib/transport/parsed_metadata.h +6 -16
- 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 +103 -70
- 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/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +0 -29
- 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
@@ -0,0 +1,468 @@
|
|
1
|
+
// Copyright 2023 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef GRPC_SRC_CORE_LIB_TRANSPORT_BATCH_BUILDER_H
|
16
|
+
#define GRPC_SRC_CORE_LIB_TRANSPORT_BATCH_BUILDER_H
|
17
|
+
|
18
|
+
#include <grpc/support/port_platform.h>
|
19
|
+
|
20
|
+
#include <stdint.h>
|
21
|
+
|
22
|
+
#include <memory>
|
23
|
+
#include <string>
|
24
|
+
#include <utility>
|
25
|
+
|
26
|
+
#include "absl/status/status.h"
|
27
|
+
#include "absl/status/statusor.h"
|
28
|
+
#include "absl/strings/string_view.h"
|
29
|
+
#include "absl/types/optional.h"
|
30
|
+
|
31
|
+
#include <grpc/status.h>
|
32
|
+
#include <grpc/support/log.h>
|
33
|
+
|
34
|
+
#include "src/core/lib/channel/channel_stack.h"
|
35
|
+
#include "src/core/lib/debug/trace.h"
|
36
|
+
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
37
|
+
#include "src/core/lib/gprpp/status_helper.h"
|
38
|
+
#include "src/core/lib/iomgr/closure.h"
|
39
|
+
#include "src/core/lib/iomgr/error.h"
|
40
|
+
#include "src/core/lib/promise/activity.h"
|
41
|
+
#include "src/core/lib/promise/context.h"
|
42
|
+
#include "src/core/lib/promise/latch.h"
|
43
|
+
#include "src/core/lib/promise/map.h"
|
44
|
+
#include "src/core/lib/promise/party.h"
|
45
|
+
#include "src/core/lib/resource_quota/arena.h"
|
46
|
+
#include "src/core/lib/slice/slice_buffer.h"
|
47
|
+
#include "src/core/lib/surface/call.h"
|
48
|
+
#include "src/core/lib/surface/call_trace.h"
|
49
|
+
#include "src/core/lib/transport/metadata_batch.h"
|
50
|
+
#include "src/core/lib/transport/transport.h"
|
51
|
+
#include "src/core/lib/transport/transport_fwd.h"
|
52
|
+
|
53
|
+
namespace grpc_core {
|
54
|
+
|
55
|
+
// Build up a transport stream op batch for a stream for a promise based
|
56
|
+
// connected channel.
|
57
|
+
// Offered as a context from Call, so that it can collect ALL the updates during
|
58
|
+
// a single party round, and then push them down to the transport as a single
|
59
|
+
// transaction.
|
60
|
+
class BatchBuilder {
|
61
|
+
public:
|
62
|
+
explicit BatchBuilder(grpc_transport_stream_op_batch_payload* payload);
|
63
|
+
~BatchBuilder() {
|
64
|
+
if (batch_ != nullptr) FlushBatch();
|
65
|
+
}
|
66
|
+
|
67
|
+
struct Target {
|
68
|
+
grpc_transport* transport;
|
69
|
+
grpc_stream* stream;
|
70
|
+
grpc_stream_refcount* stream_refcount;
|
71
|
+
};
|
72
|
+
|
73
|
+
BatchBuilder(const BatchBuilder&) = delete;
|
74
|
+
BatchBuilder& operator=(const BatchBuilder&) = delete;
|
75
|
+
|
76
|
+
// Returns a promise that will resolve to a Status when the send is completed.
|
77
|
+
auto SendMessage(Target target, MessageHandle message);
|
78
|
+
|
79
|
+
// Returns a promise that will resolve to a Status when the send is completed.
|
80
|
+
auto SendClientInitialMetadata(Target target, ClientMetadataHandle metadata);
|
81
|
+
|
82
|
+
// Returns a promise that will resolve to a Status when the send is completed.
|
83
|
+
auto SendClientTrailingMetadata(Target target);
|
84
|
+
|
85
|
+
// Returns a promise that will resolve to a Status when the send is completed.
|
86
|
+
auto SendServerInitialMetadata(Target target, ServerMetadataHandle metadata);
|
87
|
+
|
88
|
+
// Returns a promise that will resolve to a ServerMetadataHandle when the send
|
89
|
+
// is completed.
|
90
|
+
//
|
91
|
+
// If convert_to_cancellation is true, then the status will be converted to a
|
92
|
+
// cancellation batch instead of a trailing metadata op in a coalesced batch.
|
93
|
+
//
|
94
|
+
// This quirk exists as in the filter based stack upon which our transports
|
95
|
+
// were written if a trailing metadata op were sent it always needed to be
|
96
|
+
// paired with an initial op batch, and the transports would wait for the
|
97
|
+
// initial metadata batch to arrive (in case of reordering up the stack).
|
98
|
+
auto SendServerTrailingMetadata(Target target, ServerMetadataHandle metadata,
|
99
|
+
bool convert_to_cancellation);
|
100
|
+
|
101
|
+
// Returns a promise that will resolve to a StatusOr<optional<MessageHandle>>
|
102
|
+
// when a message is received.
|
103
|
+
// Error => non-ok status
|
104
|
+
// End of stream => Ok, nullopt (no message)
|
105
|
+
// Message => Ok, message
|
106
|
+
auto ReceiveMessage(Target target);
|
107
|
+
|
108
|
+
// Returns a promise that will resolve to a StatusOr<ClientMetadataHandle>
|
109
|
+
// when the receive is complete.
|
110
|
+
auto ReceiveClientInitialMetadata(Target target);
|
111
|
+
|
112
|
+
// Returns a promise that will resolve to a StatusOr<ClientMetadataHandle>
|
113
|
+
// when the receive is complete.
|
114
|
+
auto ReceiveClientTrailingMetadata(Target target);
|
115
|
+
|
116
|
+
// Returns a promise that will resolve to a StatusOr<ServerMetadataHandle>
|
117
|
+
// when the receive is complete.
|
118
|
+
auto ReceiveServerInitialMetadata(Target target);
|
119
|
+
|
120
|
+
// Returns a promise that will resolve to a StatusOr<ServerMetadataHandle>
|
121
|
+
// when the receive is complete.
|
122
|
+
auto ReceiveServerTrailingMetadata(Target target);
|
123
|
+
|
124
|
+
// Send a cancellation: does not occupy the same payload, nor does it
|
125
|
+
// coalesce with other ops.
|
126
|
+
void Cancel(Target target, absl::Status status);
|
127
|
+
|
128
|
+
private:
|
129
|
+
struct Batch;
|
130
|
+
|
131
|
+
// Base pending operation
|
132
|
+
struct PendingCompletion {
|
133
|
+
explicit PendingCompletion(RefCountedPtr<Batch> batch);
|
134
|
+
virtual absl::string_view name() const = 0;
|
135
|
+
static void CompletionCallback(void* self, grpc_error_handle error);
|
136
|
+
grpc_closure on_done_closure;
|
137
|
+
Latch<absl::Status> done_latch;
|
138
|
+
RefCountedPtr<Batch> batch;
|
139
|
+
|
140
|
+
protected:
|
141
|
+
~PendingCompletion() = default;
|
142
|
+
};
|
143
|
+
|
144
|
+
// A pending receive message.
|
145
|
+
struct PendingReceiveMessage final : public PendingCompletion {
|
146
|
+
using PendingCompletion::PendingCompletion;
|
147
|
+
|
148
|
+
absl::string_view name() const override { return "receive_message"; }
|
149
|
+
|
150
|
+
MessageHandle IntoMessageHandle() {
|
151
|
+
return GetContext<Arena>()->MakePooled<Message>(std::move(*payload),
|
152
|
+
flags);
|
153
|
+
}
|
154
|
+
|
155
|
+
absl::optional<SliceBuffer> payload;
|
156
|
+
uint32_t flags;
|
157
|
+
};
|
158
|
+
|
159
|
+
// A pending receive metadata.
|
160
|
+
struct PendingReceiveMetadata : public PendingCompletion {
|
161
|
+
using PendingCompletion::PendingCompletion;
|
162
|
+
|
163
|
+
Arena::PoolPtr<grpc_metadata_batch> metadata =
|
164
|
+
GetContext<Arena>()->MakePooled<grpc_metadata_batch>(
|
165
|
+
GetContext<Arena>());
|
166
|
+
|
167
|
+
protected:
|
168
|
+
~PendingReceiveMetadata() = default;
|
169
|
+
};
|
170
|
+
|
171
|
+
struct PendingReceiveInitialMetadata final : public PendingReceiveMetadata {
|
172
|
+
using PendingReceiveMetadata::PendingReceiveMetadata;
|
173
|
+
absl::string_view name() const override {
|
174
|
+
return "receive_initial_metadata";
|
175
|
+
}
|
176
|
+
};
|
177
|
+
|
178
|
+
struct PendingReceiveTrailingMetadata final : public PendingReceiveMetadata {
|
179
|
+
using PendingReceiveMetadata::PendingReceiveMetadata;
|
180
|
+
absl::string_view name() const override {
|
181
|
+
return "receive_trailing_metadata";
|
182
|
+
}
|
183
|
+
};
|
184
|
+
|
185
|
+
// Pending sends in a batch
|
186
|
+
struct PendingSends final : public PendingCompletion {
|
187
|
+
using PendingCompletion::PendingCompletion;
|
188
|
+
|
189
|
+
absl::string_view name() const override { return "sends"; }
|
190
|
+
|
191
|
+
MessageHandle send_message;
|
192
|
+
Arena::PoolPtr<grpc_metadata_batch> send_initial_metadata;
|
193
|
+
Arena::PoolPtr<grpc_metadata_batch> send_trailing_metadata;
|
194
|
+
bool trailing_metadata_sent = false;
|
195
|
+
};
|
196
|
+
|
197
|
+
// One outstanding batch.
|
198
|
+
struct Batch final {
|
199
|
+
Batch(grpc_transport_stream_op_batch_payload* payload,
|
200
|
+
grpc_stream_refcount* stream_refcount);
|
201
|
+
~Batch();
|
202
|
+
Batch(const Batch&) = delete;
|
203
|
+
Batch& operator=(const Batch&) = delete;
|
204
|
+
void IncrementRefCount() { ++refs; }
|
205
|
+
void Unref() {
|
206
|
+
if (--refs == 0) party->arena()->DeletePooled(this);
|
207
|
+
}
|
208
|
+
RefCountedPtr<Batch> Ref() {
|
209
|
+
IncrementRefCount();
|
210
|
+
return RefCountedPtr<Batch>(this);
|
211
|
+
}
|
212
|
+
// Get an initialized pending completion.
|
213
|
+
// There are four pending completions potentially contained within a batch.
|
214
|
+
// They can be rather large so we don't create all of them always. Instead,
|
215
|
+
// we dynamically create them on the arena as needed.
|
216
|
+
// This method either returns the existing completion in a batch if that
|
217
|
+
// completion has already been initialized, or it creates a new completion
|
218
|
+
// and returns that.
|
219
|
+
template <typename T>
|
220
|
+
T* GetInitializedCompletion(T*(Batch::*field)) {
|
221
|
+
if (this->*field != nullptr) return this->*field;
|
222
|
+
this->*field = party->arena()->NewPooled<T>(Ref());
|
223
|
+
if (grpc_call_trace.enabled()) {
|
224
|
+
gpr_log(GPR_DEBUG, "%s[connected] Add batch closure for %s @ %s",
|
225
|
+
Activity::current()->DebugTag().c_str(),
|
226
|
+
std::string((this->*field)->name()).c_str(),
|
227
|
+
(this->*field)->on_done_closure.DebugString().c_str());
|
228
|
+
}
|
229
|
+
return this->*field;
|
230
|
+
}
|
231
|
+
// grpc_transport_perform_stream_op on target.stream
|
232
|
+
void PerformWith(Target target);
|
233
|
+
// Take a promise, and return a promise that holds a ref on this batch until
|
234
|
+
// the promise completes or is cancelled.
|
235
|
+
template <typename P>
|
236
|
+
auto RefUntil(P promise) {
|
237
|
+
return [self = Ref(), promise = std::move(promise)]() mutable {
|
238
|
+
return promise();
|
239
|
+
};
|
240
|
+
}
|
241
|
+
|
242
|
+
grpc_transport_stream_op_batch batch;
|
243
|
+
PendingReceiveMessage* pending_receive_message = nullptr;
|
244
|
+
PendingReceiveInitialMetadata* pending_receive_initial_metadata = nullptr;
|
245
|
+
PendingReceiveTrailingMetadata* pending_receive_trailing_metadata = nullptr;
|
246
|
+
PendingSends* pending_sends = nullptr;
|
247
|
+
const RefCountedPtr<Party> party;
|
248
|
+
grpc_stream_refcount* const stream_refcount;
|
249
|
+
uint8_t refs = 0;
|
250
|
+
};
|
251
|
+
|
252
|
+
// Get a batch for the given target.
|
253
|
+
// Currently: if the current batch is for this target, return it - otherwise
|
254
|
+
// flush the batch and start a new one (and return that).
|
255
|
+
// This function may change in the future to allow multiple batches to be
|
256
|
+
// building at once (if that turns out to be useful for hedging).
|
257
|
+
Batch* GetBatch(Target target);
|
258
|
+
// Flush the current batch down to the transport.
|
259
|
+
void FlushBatch();
|
260
|
+
// Create a cancel batch with its own payload.
|
261
|
+
Batch* MakeCancel(grpc_stream_refcount* stream_refcount, absl::Status status);
|
262
|
+
|
263
|
+
// Note: we don't distinguish between client and server metadata here.
|
264
|
+
// At the time of writing they're both the same thing - and it's unclear
|
265
|
+
// whether we'll get to separate them prior to batches going away or not.
|
266
|
+
// So for now we claim YAGNI and just do the simplest possible implementation.
|
267
|
+
auto SendInitialMetadata(Target target,
|
268
|
+
Arena::PoolPtr<grpc_metadata_batch> md);
|
269
|
+
auto ReceiveInitialMetadata(Target target);
|
270
|
+
auto ReceiveTrailingMetadata(Target target);
|
271
|
+
|
272
|
+
// Combine send status and server metadata into a final status to report back
|
273
|
+
// to the containing call.
|
274
|
+
static ServerMetadataHandle CompleteSendServerTrailingMetadata(
|
275
|
+
ServerMetadataHandle sent_metadata, absl::Status send_result,
|
276
|
+
bool actually_sent);
|
277
|
+
|
278
|
+
grpc_transport_stream_op_batch_payload* const payload_;
|
279
|
+
absl::optional<Target> target_;
|
280
|
+
Batch* batch_ = nullptr;
|
281
|
+
};
|
282
|
+
|
283
|
+
inline auto BatchBuilder::SendMessage(Target target, MessageHandle message) {
|
284
|
+
if (grpc_call_trace.enabled()) {
|
285
|
+
gpr_log(GPR_DEBUG, "%s[connected] Queue send message: %s",
|
286
|
+
Activity::current()->DebugTag().c_str(),
|
287
|
+
message->DebugString().c_str());
|
288
|
+
}
|
289
|
+
auto* batch = GetBatch(target);
|
290
|
+
auto* pc = batch->GetInitializedCompletion(&Batch::pending_sends);
|
291
|
+
batch->batch.on_complete = &pc->on_done_closure;
|
292
|
+
batch->batch.send_message = true;
|
293
|
+
payload_->send_message.send_message = message->payload();
|
294
|
+
payload_->send_message.flags = message->flags();
|
295
|
+
pc->send_message = std::move(message);
|
296
|
+
return batch->RefUntil(pc->done_latch.WaitAndCopy());
|
297
|
+
}
|
298
|
+
|
299
|
+
inline auto BatchBuilder::SendInitialMetadata(
|
300
|
+
Target target, Arena::PoolPtr<grpc_metadata_batch> md) {
|
301
|
+
if (grpc_call_trace.enabled()) {
|
302
|
+
gpr_log(GPR_DEBUG, "%s[connected] Queue send initial metadata: %s",
|
303
|
+
Activity::current()->DebugTag().c_str(), md->DebugString().c_str());
|
304
|
+
}
|
305
|
+
auto* batch = GetBatch(target);
|
306
|
+
auto* pc = batch->GetInitializedCompletion(&Batch::pending_sends);
|
307
|
+
batch->batch.on_complete = &pc->on_done_closure;
|
308
|
+
batch->batch.send_initial_metadata = true;
|
309
|
+
payload_->send_initial_metadata.send_initial_metadata = md.get();
|
310
|
+
pc->send_initial_metadata = std::move(md);
|
311
|
+
return batch->RefUntil(pc->done_latch.WaitAndCopy());
|
312
|
+
}
|
313
|
+
|
314
|
+
inline auto BatchBuilder::SendClientInitialMetadata(
|
315
|
+
Target target, ClientMetadataHandle metadata) {
|
316
|
+
return SendInitialMetadata(target, std::move(metadata));
|
317
|
+
}
|
318
|
+
|
319
|
+
inline auto BatchBuilder::SendClientTrailingMetadata(Target target) {
|
320
|
+
if (grpc_call_trace.enabled()) {
|
321
|
+
gpr_log(GPR_DEBUG, "%s[connected] Queue send trailing metadata",
|
322
|
+
Activity::current()->DebugTag().c_str());
|
323
|
+
}
|
324
|
+
auto* batch = GetBatch(target);
|
325
|
+
auto* pc = batch->GetInitializedCompletion(&Batch::pending_sends);
|
326
|
+
batch->batch.on_complete = &pc->on_done_closure;
|
327
|
+
batch->batch.send_trailing_metadata = true;
|
328
|
+
auto metadata =
|
329
|
+
GetContext<Arena>()->MakePooled<grpc_metadata_batch>(GetContext<Arena>());
|
330
|
+
payload_->send_trailing_metadata.send_trailing_metadata = metadata.get();
|
331
|
+
payload_->send_trailing_metadata.sent = nullptr;
|
332
|
+
pc->send_trailing_metadata = std::move(metadata);
|
333
|
+
return batch->RefUntil(pc->done_latch.WaitAndCopy());
|
334
|
+
}
|
335
|
+
|
336
|
+
inline auto BatchBuilder::SendServerInitialMetadata(
|
337
|
+
Target target, ServerMetadataHandle metadata) {
|
338
|
+
return SendInitialMetadata(target, std::move(metadata));
|
339
|
+
}
|
340
|
+
|
341
|
+
inline auto BatchBuilder::SendServerTrailingMetadata(
|
342
|
+
Target target, ServerMetadataHandle metadata,
|
343
|
+
bool convert_to_cancellation) {
|
344
|
+
if (grpc_call_trace.enabled()) {
|
345
|
+
gpr_log(GPR_DEBUG, "%s[connected] %s: %s",
|
346
|
+
Activity::current()->DebugTag().c_str(),
|
347
|
+
convert_to_cancellation ? "Send trailing metadata as cancellation"
|
348
|
+
: "Queue send trailing metadata",
|
349
|
+
metadata->DebugString().c_str());
|
350
|
+
}
|
351
|
+
Batch* batch;
|
352
|
+
PendingSends* pc;
|
353
|
+
if (convert_to_cancellation) {
|
354
|
+
const auto status_code =
|
355
|
+
metadata->get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN);
|
356
|
+
auto status = grpc_error_set_int(
|
357
|
+
absl::Status(static_cast<absl::StatusCode>(status_code),
|
358
|
+
metadata->GetOrCreatePointer(GrpcMessageMetadata())
|
359
|
+
->as_string_view()),
|
360
|
+
StatusIntProperty::kRpcStatus, status_code);
|
361
|
+
batch = MakeCancel(target.stream_refcount, std::move(status));
|
362
|
+
pc = batch->GetInitializedCompletion(&Batch::pending_sends);
|
363
|
+
} else {
|
364
|
+
batch = GetBatch(target);
|
365
|
+
pc = batch->GetInitializedCompletion(&Batch::pending_sends);
|
366
|
+
batch->batch.send_trailing_metadata = true;
|
367
|
+
payload_->send_trailing_metadata.send_trailing_metadata = metadata.get();
|
368
|
+
payload_->send_trailing_metadata.sent = &pc->trailing_metadata_sent;
|
369
|
+
}
|
370
|
+
batch->batch.on_complete = &pc->on_done_closure;
|
371
|
+
pc->send_trailing_metadata = std::move(metadata);
|
372
|
+
auto promise = batch->RefUntil(
|
373
|
+
Map(pc->done_latch.WaitAndCopy(), [pc](absl::Status status) {
|
374
|
+
return CompleteSendServerTrailingMetadata(
|
375
|
+
std::move(pc->send_trailing_metadata), std::move(status),
|
376
|
+
pc->trailing_metadata_sent);
|
377
|
+
}));
|
378
|
+
if (convert_to_cancellation) {
|
379
|
+
batch->PerformWith(target);
|
380
|
+
}
|
381
|
+
return promise;
|
382
|
+
}
|
383
|
+
|
384
|
+
inline auto BatchBuilder::ReceiveMessage(Target target) {
|
385
|
+
if (grpc_call_trace.enabled()) {
|
386
|
+
gpr_log(GPR_DEBUG, "%s[connected] Queue receive message",
|
387
|
+
Activity::current()->DebugTag().c_str());
|
388
|
+
}
|
389
|
+
auto* batch = GetBatch(target);
|
390
|
+
auto* pc = batch->GetInitializedCompletion(&Batch::pending_receive_message);
|
391
|
+
batch->batch.recv_message = true;
|
392
|
+
payload_->recv_message.recv_message_ready = &pc->on_done_closure;
|
393
|
+
payload_->recv_message.recv_message = &pc->payload;
|
394
|
+
payload_->recv_message.flags = &pc->flags;
|
395
|
+
return batch->RefUntil(
|
396
|
+
Map(pc->done_latch.Wait(),
|
397
|
+
[pc](absl::Status status)
|
398
|
+
-> absl::StatusOr<absl::optional<MessageHandle>> {
|
399
|
+
if (!status.ok()) return status;
|
400
|
+
if (!pc->payload.has_value()) return absl::nullopt;
|
401
|
+
return pc->IntoMessageHandle();
|
402
|
+
}));
|
403
|
+
}
|
404
|
+
|
405
|
+
inline auto BatchBuilder::ReceiveInitialMetadata(Target target) {
|
406
|
+
if (grpc_call_trace.enabled()) {
|
407
|
+
gpr_log(GPR_DEBUG, "%s[connected] Queue receive initial metadata",
|
408
|
+
Activity::current()->DebugTag().c_str());
|
409
|
+
}
|
410
|
+
auto* batch = GetBatch(target);
|
411
|
+
auto* pc =
|
412
|
+
batch->GetInitializedCompletion(&Batch::pending_receive_initial_metadata);
|
413
|
+
batch->batch.recv_initial_metadata = true;
|
414
|
+
payload_->recv_initial_metadata.recv_initial_metadata_ready =
|
415
|
+
&pc->on_done_closure;
|
416
|
+
payload_->recv_initial_metadata.recv_initial_metadata = pc->metadata.get();
|
417
|
+
return batch->RefUntil(
|
418
|
+
Map(pc->done_latch.Wait(),
|
419
|
+
[pc](absl::Status status) -> absl::StatusOr<ClientMetadataHandle> {
|
420
|
+
if (!status.ok()) return status;
|
421
|
+
return std::move(pc->metadata);
|
422
|
+
}));
|
423
|
+
}
|
424
|
+
|
425
|
+
inline auto BatchBuilder::ReceiveClientInitialMetadata(Target target) {
|
426
|
+
return ReceiveInitialMetadata(target);
|
427
|
+
}
|
428
|
+
|
429
|
+
inline auto BatchBuilder::ReceiveServerInitialMetadata(Target target) {
|
430
|
+
return ReceiveInitialMetadata(target);
|
431
|
+
}
|
432
|
+
|
433
|
+
inline auto BatchBuilder::ReceiveTrailingMetadata(Target target) {
|
434
|
+
if (grpc_call_trace.enabled()) {
|
435
|
+
gpr_log(GPR_DEBUG, "%s[connected] Queue receive trailing metadata",
|
436
|
+
Activity::current()->DebugTag().c_str());
|
437
|
+
}
|
438
|
+
auto* batch = GetBatch(target);
|
439
|
+
auto* pc = batch->GetInitializedCompletion(
|
440
|
+
&Batch::pending_receive_trailing_metadata);
|
441
|
+
batch->batch.recv_trailing_metadata = true;
|
442
|
+
payload_->recv_trailing_metadata.recv_trailing_metadata_ready =
|
443
|
+
&pc->on_done_closure;
|
444
|
+
payload_->recv_trailing_metadata.recv_trailing_metadata = pc->metadata.get();
|
445
|
+
payload_->recv_trailing_metadata.collect_stats =
|
446
|
+
&GetContext<CallContext>()->call_stats()->transport_stream_stats;
|
447
|
+
return batch->RefUntil(
|
448
|
+
Map(pc->done_latch.Wait(),
|
449
|
+
[pc](absl::Status status) -> absl::StatusOr<ServerMetadataHandle> {
|
450
|
+
if (!status.ok()) return status;
|
451
|
+
return std::move(pc->metadata);
|
452
|
+
}));
|
453
|
+
}
|
454
|
+
|
455
|
+
inline auto BatchBuilder::ReceiveClientTrailingMetadata(Target target) {
|
456
|
+
return ReceiveTrailingMetadata(target);
|
457
|
+
}
|
458
|
+
|
459
|
+
inline auto BatchBuilder::ReceiveServerTrailingMetadata(Target target) {
|
460
|
+
return ReceiveTrailingMetadata(target);
|
461
|
+
}
|
462
|
+
|
463
|
+
template <>
|
464
|
+
struct ContextType<BatchBuilder> {};
|
465
|
+
|
466
|
+
} // namespace grpc_core
|
467
|
+
|
468
|
+
#endif // GRPC_SRC_CORE_LIB_TRANSPORT_BATCH_BUILDER_H
|
@@ -29,7 +29,7 @@ grpc_core::TraceFlag grpc_bdp_estimator_trace(false, "bdp_estimator");
|
|
29
29
|
|
30
30
|
namespace grpc_core {
|
31
31
|
|
32
|
-
BdpEstimator::BdpEstimator(
|
32
|
+
BdpEstimator::BdpEstimator(absl::string_view name)
|
33
33
|
: ping_state_(PingState::UNSCHEDULED),
|
34
34
|
accumulator_(0),
|
35
35
|
estimate_(65536),
|
@@ -50,16 +50,16 @@ Timestamp BdpEstimator::CompletePing() {
|
|
50
50
|
gpr_log(GPR_INFO,
|
51
51
|
"bdp[%s]:complete acc=%" PRId64 " est=%" PRId64
|
52
52
|
" dt=%lf bw=%lfMbs bw_est=%lfMbs",
|
53
|
-
name_, accumulator_, estimate_, dt,
|
54
|
-
bw_est_ / 125000.0);
|
53
|
+
std::string(name_).c_str(), accumulator_, estimate_, dt,
|
54
|
+
bw / 125000.0, bw_est_ / 125000.0);
|
55
55
|
}
|
56
56
|
GPR_ASSERT(ping_state_ == PingState::STARTED);
|
57
57
|
if (accumulator_ > 2 * estimate_ / 3 && bw > bw_est_) {
|
58
58
|
estimate_ = std::max(accumulator_, estimate_ * 2);
|
59
59
|
bw_est_ = bw;
|
60
60
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace)) {
|
61
|
-
gpr_log(GPR_INFO, "bdp[%s]: estimate increased to %" PRId64,
|
62
|
-
estimate_);
|
61
|
+
gpr_log(GPR_INFO, "bdp[%s]: estimate increased to %" PRId64,
|
62
|
+
std::string(name_).c_str(), estimate_);
|
63
63
|
}
|
64
64
|
inter_ping_delay_ /= 2; // if the ping estimate changes,
|
65
65
|
// exponentially get faster at probing
|
@@ -74,8 +74,8 @@ Timestamp BdpEstimator::CompletePing() {
|
|
74
74
|
if (start_inter_ping_delay != inter_ping_delay_) {
|
75
75
|
stable_estimate_count_ = 0;
|
76
76
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace)) {
|
77
|
-
gpr_log(GPR_INFO, "bdp[%s]:update_inter_time to %" PRId64 "ms",
|
78
|
-
inter_ping_delay_.millis());
|
77
|
+
gpr_log(GPR_INFO, "bdp[%s]:update_inter_time to %" PRId64 "ms",
|
78
|
+
std::string(name_).c_str(), inter_ping_delay_.millis());
|
79
79
|
}
|
80
80
|
}
|
81
81
|
ping_state_ = PingState::UNSCHEDULED;
|
@@ -23,6 +23,10 @@
|
|
23
23
|
|
24
24
|
#include <inttypes.h>
|
25
25
|
|
26
|
+
#include <string>
|
27
|
+
|
28
|
+
#include "absl/strings/string_view.h"
|
29
|
+
|
26
30
|
#include <grpc/support/log.h>
|
27
31
|
#include <grpc/support/time.h>
|
28
32
|
|
@@ -35,7 +39,7 @@ namespace grpc_core {
|
|
35
39
|
|
36
40
|
class BdpEstimator {
|
37
41
|
public:
|
38
|
-
explicit BdpEstimator(
|
42
|
+
explicit BdpEstimator(absl::string_view name);
|
39
43
|
~BdpEstimator() {}
|
40
44
|
|
41
45
|
int64_t EstimateBdp() const { return estimate_; }
|
@@ -48,8 +52,8 @@ class BdpEstimator {
|
|
48
52
|
// transport (but not necessarily started)
|
49
53
|
void SchedulePing() {
|
50
54
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace)) {
|
51
|
-
gpr_log(GPR_INFO, "bdp[%s]:sched acc=%" PRId64 " est=%" PRId64,
|
52
|
-
accumulator_, estimate_);
|
55
|
+
gpr_log(GPR_INFO, "bdp[%s]:sched acc=%" PRId64 " est=%" PRId64,
|
56
|
+
std::string(name_).c_str(), accumulator_, estimate_);
|
53
57
|
}
|
54
58
|
GPR_ASSERT(ping_state_ == PingState::UNSCHEDULED);
|
55
59
|
ping_state_ = PingState::SCHEDULED;
|
@@ -61,8 +65,8 @@ class BdpEstimator {
|
|
61
65
|
// the ping is on the wire
|
62
66
|
void StartPing() {
|
63
67
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_bdp_estimator_trace)) {
|
64
|
-
gpr_log(GPR_INFO, "bdp[%s]:start acc=%" PRId64 " est=%" PRId64,
|
65
|
-
accumulator_, estimate_);
|
68
|
+
gpr_log(GPR_INFO, "bdp[%s]:start acc=%" PRId64 " est=%" PRId64,
|
69
|
+
std::string(name_).c_str(), accumulator_, estimate_);
|
66
70
|
}
|
67
71
|
GPR_ASSERT(ping_state_ == PingState::SCHEDULED);
|
68
72
|
ping_state_ = PingState::STARTED;
|
@@ -85,7 +89,7 @@ class BdpEstimator {
|
|
85
89
|
Duration inter_ping_delay_;
|
86
90
|
int stable_estimate_count_;
|
87
91
|
double bw_est_;
|
88
|
-
|
92
|
+
absl::string_view name_;
|
89
93
|
};
|
90
94
|
|
91
95
|
} // namespace grpc_core
|
@@ -0,0 +1,30 @@
|
|
1
|
+
// Copyright 2023 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef GRPC_SRC_CORE_LIB_TRANSPORT_CUSTOM_METADATA_H
|
16
|
+
#define GRPC_SRC_CORE_LIB_TRANSPORT_CUSTOM_METADATA_H
|
17
|
+
|
18
|
+
// This file defines two macros: GRPC_CUSTOM_CLIENT_METADATA and
|
19
|
+
// GRPC_CUSTOM_SERVER_METADATA.
|
20
|
+
// Each of these is a comma-prefixed and comma-separated list of metadata types
|
21
|
+
// that will be added to ClientMetadata and ServerMetadata respectively.
|
22
|
+
// (note: for now both are added to both).
|
23
|
+
// Different sites with internal grpc-core extensions can substitute this file
|
24
|
+
// and define their own versions of these macros to extend the metadata system
|
25
|
+
// with fast metadata types of their own.
|
26
|
+
|
27
|
+
#define GRPC_CUSTOM_CLIENT_METADATA
|
28
|
+
#define GRPC_CUSTOM_SERVER_METADATA
|
29
|
+
|
30
|
+
#endif // GRPC_SRC_CORE_LIB_TRANSPORT_CUSTOM_METADATA_H
|
@@ -179,7 +179,7 @@ size_t EncodedSizeOfKey(HttpSchemeMetadata, HttpSchemeMetadata::ValueType x) {
|
|
179
179
|
}
|
180
180
|
}
|
181
181
|
|
182
|
-
const char* HttpSchemeMetadata::DisplayValue(
|
182
|
+
const char* HttpSchemeMetadata::DisplayValue(ValueType content_type) {
|
183
183
|
switch (content_type) {
|
184
184
|
case kHttp:
|
185
185
|
return "http";
|
@@ -292,7 +292,10 @@ std::string GrpcStreamNetworkState::DisplayValue(ValueType x) {
|
|
292
292
|
GPR_UNREACHABLE_CODE(return "unknown value");
|
293
293
|
}
|
294
294
|
|
295
|
-
std::string PeerString::DisplayValue(ValueType x) {
|
295
|
+
std::string PeerString::DisplayValue(const ValueType& x) {
|
296
|
+
return std::string(x.as_string_view());
|
297
|
+
}
|
298
|
+
|
296
299
|
const std::string& GrpcStatusContext::DisplayValue(const std::string& x) {
|
297
300
|
return x;
|
298
301
|
}
|