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
@@ -45,54 +45,11 @@
|
|
45
45
|
#include "src/core/lib/gprpp/time.h"
|
46
46
|
#include "src/core/lib/resource_quota/arena.h"
|
47
47
|
#include "src/core/lib/slice/slice.h"
|
48
|
+
#include "src/core/lib/transport/custom_metadata.h"
|
48
49
|
#include "src/core/lib/transport/parsed_metadata.h"
|
49
50
|
|
50
51
|
namespace grpc_core {
|
51
52
|
|
52
|
-
///////////////////////////////////////////////////////////////////////////////
|
53
|
-
// Compression traits.
|
54
|
-
//
|
55
|
-
// Each metadata trait exposes exactly one compression trait.
|
56
|
-
// This type directs how transports might choose to compress the metadata.
|
57
|
-
// Adding a value here typically involves editing all transports to support the
|
58
|
-
// trait, and so should not be done lightly.
|
59
|
-
|
60
|
-
// No compression.
|
61
|
-
struct NoCompressionCompressor {};
|
62
|
-
|
63
|
-
// Expect a single value for this metadata key, but we don't know apriori its
|
64
|
-
// value.
|
65
|
-
// It's ok if it changes over time, but it should be mostly stable.
|
66
|
-
// This is used for things like user-agent, which is expected to be the same
|
67
|
-
// for all requests.
|
68
|
-
struct StableValueCompressor {};
|
69
|
-
|
70
|
-
// Expect a single value for this metadata key, and we know apriori its value.
|
71
|
-
template <typename T, T value>
|
72
|
-
struct KnownValueCompressor {};
|
73
|
-
|
74
|
-
// Values are uncompressible, but expect the key to be in most requests and try
|
75
|
-
// and compress that.
|
76
|
-
struct FrequentKeyWithNoValueCompressionCompressor {};
|
77
|
-
|
78
|
-
// Expect a small set of values for this metadata key.
|
79
|
-
struct SmallSetOfValuesCompressor {};
|
80
|
-
|
81
|
-
// Expect integral values up to N for this metadata key.
|
82
|
-
template <size_t N>
|
83
|
-
struct SmallIntegralValuesCompressor {};
|
84
|
-
|
85
|
-
// Specialty compressor for grpc-timeout metadata.
|
86
|
-
struct TimeoutCompressor {};
|
87
|
-
|
88
|
-
// Specialty compressors for HTTP/2 psuedo headers.
|
89
|
-
struct HttpSchemeCompressor {};
|
90
|
-
struct HttpMethodCompressor {};
|
91
|
-
struct HttpStatusCompressor {};
|
92
|
-
|
93
|
-
///////////////////////////////////////////////////////////////////////////////
|
94
|
-
// Metadata traits
|
95
|
-
|
96
53
|
// Given a metadata key and a value, return the encoded size.
|
97
54
|
// Defaults to calling the key's Encode() method and then calculating the size
|
98
55
|
// of that, but can be overridden for specific keys if there's a better way of
|
@@ -114,7 +71,6 @@ struct GrpcTimeoutMetadata {
|
|
114
71
|
static constexpr bool kRepeatable = false;
|
115
72
|
using ValueType = Timestamp;
|
116
73
|
using MementoType = Duration;
|
117
|
-
using CompressionTraits = TimeoutCompressor;
|
118
74
|
static absl::string_view key() { return "grpc-timeout"; }
|
119
75
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
120
76
|
static ValueType MementoToValue(MementoType timeout);
|
@@ -134,7 +90,6 @@ struct TeMetadata {
|
|
134
90
|
kInvalid,
|
135
91
|
};
|
136
92
|
using MementoType = ValueType;
|
137
|
-
using CompressionTraits = KnownValueCompressor<ValueType, kTrailers>;
|
138
93
|
static absl::string_view key() { return "te"; }
|
139
94
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
140
95
|
static ValueType MementoToValue(MementoType te) { return te; }
|
@@ -162,7 +117,6 @@ struct ContentTypeMetadata {
|
|
162
117
|
kInvalid,
|
163
118
|
};
|
164
119
|
using MementoType = ValueType;
|
165
|
-
using CompressionTraits = KnownValueCompressor<ValueType, kApplicationGrpc>;
|
166
120
|
static absl::string_view key() { return "content-type"; }
|
167
121
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
168
122
|
static ValueType MementoToValue(MementoType content_type) {
|
@@ -185,7 +139,6 @@ struct HttpSchemeMetadata {
|
|
185
139
|
kInvalid,
|
186
140
|
};
|
187
141
|
using MementoType = ValueType;
|
188
|
-
using CompressionTraits = HttpSchemeCompressor;
|
189
142
|
static absl::string_view key() { return ":scheme"; }
|
190
143
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error) {
|
191
144
|
return Parse(value.as_string_view(), on_error);
|
@@ -214,7 +167,6 @@ struct HttpMethodMetadata {
|
|
214
167
|
kInvalid,
|
215
168
|
};
|
216
169
|
using MementoType = ValueType;
|
217
|
-
using CompressionTraits = HttpMethodCompressor;
|
218
170
|
static absl::string_view key() { return ":method"; }
|
219
171
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
220
172
|
static ValueType MementoToValue(MementoType content_type) {
|
@@ -251,15 +203,12 @@ struct CompressionAlgorithmBasedMetadata {
|
|
251
203
|
// grpc-encoding metadata trait.
|
252
204
|
struct GrpcEncodingMetadata : public CompressionAlgorithmBasedMetadata {
|
253
205
|
static constexpr bool kRepeatable = false;
|
254
|
-
using CompressionTraits =
|
255
|
-
SmallIntegralValuesCompressor<GRPC_COMPRESS_ALGORITHMS_COUNT>;
|
256
206
|
static absl::string_view key() { return "grpc-encoding"; }
|
257
207
|
};
|
258
208
|
|
259
209
|
// grpc-internal-encoding-request metadata trait.
|
260
210
|
struct GrpcInternalEncodingRequest : public CompressionAlgorithmBasedMetadata {
|
261
211
|
static constexpr bool kRepeatable = false;
|
262
|
-
using CompressionTraits = NoCompressionCompressor;
|
263
212
|
static absl::string_view key() { return "grpc-internal-encoding-request"; }
|
264
213
|
};
|
265
214
|
|
@@ -269,7 +218,6 @@ struct GrpcAcceptEncodingMetadata {
|
|
269
218
|
static absl::string_view key() { return "grpc-accept-encoding"; }
|
270
219
|
using ValueType = CompressionAlgorithmSet;
|
271
220
|
using MementoType = ValueType;
|
272
|
-
using CompressionTraits = StableValueCompressor;
|
273
221
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn) {
|
274
222
|
return CompressionAlgorithmSet::FromString(value.as_string_view());
|
275
223
|
}
|
@@ -300,63 +248,54 @@ struct SimpleSliceBasedMetadata {
|
|
300
248
|
// user-agent metadata trait.
|
301
249
|
struct UserAgentMetadata : public SimpleSliceBasedMetadata {
|
302
250
|
static constexpr bool kRepeatable = false;
|
303
|
-
using CompressionTraits = StableValueCompressor;
|
304
251
|
static absl::string_view key() { return "user-agent"; }
|
305
252
|
};
|
306
253
|
|
307
254
|
// grpc-message metadata trait.
|
308
255
|
struct GrpcMessageMetadata : public SimpleSliceBasedMetadata {
|
309
256
|
static constexpr bool kRepeatable = false;
|
310
|
-
using CompressionTraits = NoCompressionCompressor;
|
311
257
|
static absl::string_view key() { return "grpc-message"; }
|
312
258
|
};
|
313
259
|
|
314
260
|
// host metadata trait.
|
315
261
|
struct HostMetadata : public SimpleSliceBasedMetadata {
|
316
262
|
static constexpr bool kRepeatable = false;
|
317
|
-
using CompressionTraits = NoCompressionCompressor;
|
318
263
|
static absl::string_view key() { return "host"; }
|
319
264
|
};
|
320
265
|
|
321
266
|
// endpoint-load-metrics-bin metadata trait.
|
322
267
|
struct EndpointLoadMetricsBinMetadata : public SimpleSliceBasedMetadata {
|
323
268
|
static constexpr bool kRepeatable = false;
|
324
|
-
using CompressionTraits = NoCompressionCompressor;
|
325
269
|
static absl::string_view key() { return "endpoint-load-metrics-bin"; }
|
326
270
|
};
|
327
271
|
|
328
272
|
// grpc-server-stats-bin metadata trait.
|
329
273
|
struct GrpcServerStatsBinMetadata : public SimpleSliceBasedMetadata {
|
330
274
|
static constexpr bool kRepeatable = false;
|
331
|
-
using CompressionTraits = NoCompressionCompressor;
|
332
275
|
static absl::string_view key() { return "grpc-server-stats-bin"; }
|
333
276
|
};
|
334
277
|
|
335
278
|
// grpc-trace-bin metadata trait.
|
336
279
|
struct GrpcTraceBinMetadata : public SimpleSliceBasedMetadata {
|
337
280
|
static constexpr bool kRepeatable = false;
|
338
|
-
using CompressionTraits = FrequentKeyWithNoValueCompressionCompressor;
|
339
281
|
static absl::string_view key() { return "grpc-trace-bin"; }
|
340
282
|
};
|
341
283
|
|
342
284
|
// grpc-tags-bin metadata trait.
|
343
285
|
struct GrpcTagsBinMetadata : public SimpleSliceBasedMetadata {
|
344
286
|
static constexpr bool kRepeatable = false;
|
345
|
-
using CompressionTraits = FrequentKeyWithNoValueCompressionCompressor;
|
346
287
|
static absl::string_view key() { return "grpc-tags-bin"; }
|
347
288
|
};
|
348
289
|
|
349
290
|
// :authority metadata trait.
|
350
291
|
struct HttpAuthorityMetadata : public SimpleSliceBasedMetadata {
|
351
292
|
static constexpr bool kRepeatable = false;
|
352
|
-
using CompressionTraits = SmallSetOfValuesCompressor;
|
353
293
|
static absl::string_view key() { return ":authority"; }
|
354
294
|
};
|
355
295
|
|
356
296
|
// :path metadata trait.
|
357
297
|
struct HttpPathMetadata : public SimpleSliceBasedMetadata {
|
358
298
|
static constexpr bool kRepeatable = false;
|
359
|
-
using CompressionTraits = SmallSetOfValuesCompressor;
|
360
299
|
static absl::string_view key() { return ":path"; }
|
361
300
|
};
|
362
301
|
|
@@ -390,7 +329,6 @@ struct SimpleIntBasedMetadata : public SimpleIntBasedMetadataBase<Int> {
|
|
390
329
|
struct GrpcStatusMetadata
|
391
330
|
: public SimpleIntBasedMetadata<grpc_status_code, GRPC_STATUS_UNKNOWN> {
|
392
331
|
static constexpr bool kRepeatable = false;
|
393
|
-
using CompressionTraits = SmallIntegralValuesCompressor<16>;
|
394
332
|
static absl::string_view key() { return "grpc-status"; }
|
395
333
|
};
|
396
334
|
|
@@ -398,7 +336,6 @@ struct GrpcStatusMetadata
|
|
398
336
|
struct GrpcPreviousRpcAttemptsMetadata
|
399
337
|
: public SimpleIntBasedMetadata<uint32_t, 0> {
|
400
338
|
static constexpr bool kRepeatable = false;
|
401
|
-
using CompressionTraits = NoCompressionCompressor;
|
402
339
|
static absl::string_view key() { return "grpc-previous-rpc-attempts"; }
|
403
340
|
};
|
404
341
|
|
@@ -408,7 +345,6 @@ struct GrpcRetryPushbackMsMetadata {
|
|
408
345
|
static absl::string_view key() { return "grpc-retry-pushback-ms"; }
|
409
346
|
using ValueType = Duration;
|
410
347
|
using MementoType = Duration;
|
411
|
-
using CompressionTraits = NoCompressionCompressor;
|
412
348
|
static ValueType MementoToValue(MementoType x) { return x; }
|
413
349
|
static Slice Encode(Duration x) { return Slice::FromInt64(x.millis()); }
|
414
350
|
static int64_t DisplayValue(Duration x) { return x.millis(); }
|
@@ -420,7 +356,6 @@ struct GrpcRetryPushbackMsMetadata {
|
|
420
356
|
// TODO(ctiller): consider moving to uint16_t
|
421
357
|
struct HttpStatusMetadata : public SimpleIntBasedMetadata<uint32_t, 0> {
|
422
358
|
static constexpr bool kRepeatable = false;
|
423
|
-
using CompressionTraits = HttpStatusCompressor;
|
424
359
|
static absl::string_view key() { return ":status"; }
|
425
360
|
};
|
426
361
|
|
@@ -433,7 +368,6 @@ struct GrpcLbClientStatsMetadata {
|
|
433
368
|
static absl::string_view key() { return "grpclb_client_stats"; }
|
434
369
|
using ValueType = GrpcLbClientStats*;
|
435
370
|
using MementoType = ValueType;
|
436
|
-
using CompressionTraits = NoCompressionCompressor;
|
437
371
|
static ValueType MementoToValue(MementoType value) { return value; }
|
438
372
|
static Slice Encode(ValueType) { abort(); }
|
439
373
|
static const char* DisplayValue(ValueType) { return "<internal-lb-stats>"; }
|
@@ -453,7 +387,6 @@ inline size_t EncodedSizeOfKey(GrpcLbClientStatsMetadata,
|
|
453
387
|
// lb-token metadata
|
454
388
|
struct LbTokenMetadata : public SimpleSliceBasedMetadata {
|
455
389
|
static constexpr bool kRepeatable = false;
|
456
|
-
using CompressionTraits = NoCompressionCompressor;
|
457
390
|
static absl::string_view key() { return "lb-token"; }
|
458
391
|
};
|
459
392
|
|
@@ -466,7 +399,6 @@ struct LbCostBinMetadata {
|
|
466
399
|
std::string name;
|
467
400
|
};
|
468
401
|
using MementoType = ValueType;
|
469
|
-
using CompressionTraits = NoCompressionCompressor;
|
470
402
|
static ValueType MementoToValue(MementoType value) { return value; }
|
471
403
|
static Slice Encode(const ValueType& x);
|
472
404
|
static std::string DisplayValue(ValueType x);
|
@@ -490,8 +422,8 @@ struct GrpcStreamNetworkState {
|
|
490
422
|
struct PeerString {
|
491
423
|
static absl::string_view DebugKey() { return "PeerString"; }
|
492
424
|
static constexpr bool kRepeatable = false;
|
493
|
-
using ValueType =
|
494
|
-
static std::string DisplayValue(ValueType x);
|
425
|
+
using ValueType = Slice;
|
426
|
+
static std::string DisplayValue(const ValueType& x);
|
495
427
|
};
|
496
428
|
|
497
429
|
// Annotation added by various systems to describe the reason for a failure.
|
@@ -510,6 +442,15 @@ struct GrpcStatusFromWire {
|
|
510
442
|
static absl::string_view DisplayValue(bool x) { return x ? "true" : "false"; }
|
511
443
|
};
|
512
444
|
|
445
|
+
// Annotation to denote that this call qualifies for cancelled=1 for the
|
446
|
+
// RECV_CLOSE_ON_SERVER op
|
447
|
+
struct GrpcCallWasCancelled {
|
448
|
+
static absl::string_view DebugKey() { return "GrpcCallWasCancelled"; }
|
449
|
+
static constexpr bool kRepeatable = false;
|
450
|
+
using ValueType = bool;
|
451
|
+
static absl::string_view DisplayValue(bool x) { return x ? "true" : "false"; }
|
452
|
+
};
|
453
|
+
|
513
454
|
// Annotation added by client surface code to denote wait-for-ready state
|
514
455
|
struct WaitForReady {
|
515
456
|
struct ValueType {
|
@@ -635,9 +576,8 @@ class ParseHelper {
|
|
635
576
|
|
636
577
|
GPR_ATTRIBUTE_NOINLINE ParsedMetadata<Container> NotFound(
|
637
578
|
absl::string_view key) {
|
638
|
-
return ParsedMetadata<Container>(
|
639
|
-
|
640
|
-
Slice::FromCopiedString(key), std::move(value_), transport_size_);
|
579
|
+
return ParsedMetadata<Container>(Slice::FromCopiedString(key),
|
580
|
+
std::move(value_));
|
641
581
|
}
|
642
582
|
|
643
583
|
private:
|
@@ -1053,35 +993,6 @@ class UnknownMap {
|
|
1053
993
|
ChunkedVector<std::pair<Slice, Slice>, 10> unknown_;
|
1054
994
|
};
|
1055
995
|
|
1056
|
-
// Given a factory template Factory, construct a type that derives from
|
1057
|
-
// Factory<MetadataTrait, MetadataTrait::CompressionTraits> for all
|
1058
|
-
// MetadataTraits. Useful for transports in defining the stateful parts of their
|
1059
|
-
// compression algorithm.
|
1060
|
-
template <template <typename, typename> class Factory,
|
1061
|
-
typename... MetadataTraits>
|
1062
|
-
struct StatefulCompressor;
|
1063
|
-
|
1064
|
-
template <template <typename, typename> class Factory, typename MetadataTrait,
|
1065
|
-
bool kEncodable = IsEncodableTrait<MetadataTrait>::value>
|
1066
|
-
struct SpecificStatefulCompressor;
|
1067
|
-
|
1068
|
-
template <template <typename, typename> class Factory, typename MetadataTrait>
|
1069
|
-
struct SpecificStatefulCompressor<Factory, MetadataTrait, true>
|
1070
|
-
: public Factory<MetadataTrait, typename MetadataTrait::CompressionTraits> {
|
1071
|
-
};
|
1072
|
-
|
1073
|
-
template <template <typename, typename> class Factory, typename MetadataTrait>
|
1074
|
-
struct SpecificStatefulCompressor<Factory, MetadataTrait, false> {};
|
1075
|
-
|
1076
|
-
template <template <typename, typename> class Factory, typename MetadataTrait,
|
1077
|
-
typename... MetadataTraits>
|
1078
|
-
struct StatefulCompressor<Factory, MetadataTrait, MetadataTraits...>
|
1079
|
-
: public SpecificStatefulCompressor<Factory, MetadataTrait>,
|
1080
|
-
public StatefulCompressor<Factory, MetadataTraits...> {};
|
1081
|
-
|
1082
|
-
template <template <typename, typename> class Factory>
|
1083
|
-
struct StatefulCompressor<Factory> {};
|
1084
|
-
|
1085
996
|
} // namespace metadata_detail
|
1086
997
|
|
1087
998
|
// Helper function for encoders
|
@@ -1200,15 +1111,6 @@ class MetadataMap {
|
|
1200
1111
|
explicit MetadataMap(Arena* arena);
|
1201
1112
|
~MetadataMap();
|
1202
1113
|
|
1203
|
-
// Given a compressor factory - template taking <MetadataTrait,
|
1204
|
-
// CompressionTrait>, StatefulCompressor<Factory> provides a type
|
1205
|
-
// derived from all Encodable traits in this MetadataMap.
|
1206
|
-
// This can be used by transports to delegate compression to the appropriate
|
1207
|
-
// compression algorithm.
|
1208
|
-
template <template <typename, typename> class Factory>
|
1209
|
-
using StatefulCompressor =
|
1210
|
-
metadata_detail::StatefulCompressor<Factory, Traits...>;
|
1211
|
-
|
1212
1114
|
MetadataMap(const MetadataMap&) = delete;
|
1213
1115
|
MetadataMap& operator=(const MetadataMap&) = delete;
|
1214
1116
|
MetadataMap(MetadataMap&&) noexcept;
|
@@ -1486,7 +1388,9 @@ using grpc_metadata_batch_base = grpc_core::MetadataMap<
|
|
1486
1388
|
// Non-encodable things
|
1487
1389
|
grpc_core::GrpcStreamNetworkState, grpc_core::PeerString,
|
1488
1390
|
grpc_core::GrpcStatusContext, grpc_core::GrpcStatusFromWire,
|
1489
|
-
grpc_core::
|
1391
|
+
grpc_core::GrpcCallWasCancelled, grpc_core::WaitForReady,
|
1392
|
+
grpc_core::GrpcTrailersOnly GRPC_CUSTOM_CLIENT_METADATA
|
1393
|
+
GRPC_CUSTOM_SERVER_METADATA>;
|
1490
1394
|
|
1491
1395
|
struct grpc_metadata_batch : public grpc_metadata_batch_base {
|
1492
1396
|
using grpc_metadata_batch_base::grpc_metadata_batch_base;
|
@@ -26,7 +26,6 @@
|
|
26
26
|
|
27
27
|
#include "absl/functional/function_ref.h"
|
28
28
|
#include "absl/meta/type_traits.h"
|
29
|
-
#include "absl/strings/escaping.h"
|
30
29
|
#include "absl/strings/match.h"
|
31
30
|
#include "absl/strings/str_cat.h"
|
32
31
|
#include "absl/strings/string_view.h"
|
@@ -152,14 +151,9 @@ class ParsedMetadata {
|
|
152
151
|
value_.slice = value.TakeCSlice();
|
153
152
|
}
|
154
153
|
// Construct metadata from a string key, slice value pair.
|
155
|
-
|
156
|
-
// inadvertently match against any of the previous overloads.
|
157
|
-
// TODO(ctiller): re-evaluate the overload functions here so and maybe
|
158
|
-
// introduce some factory functions?
|
159
|
-
struct FromSlicePair {};
|
160
|
-
ParsedMetadata(FromSlicePair, Slice key, Slice value, uint32_t transport_size)
|
154
|
+
ParsedMetadata(Slice key, Slice value)
|
161
155
|
: vtable_(ParsedMetadata::KeyValueVTable(key.as_string_view())),
|
162
|
-
transport_size_(
|
156
|
+
transport_size_(static_cast<uint32_t>(key.size() + value.size() + 32)) {
|
163
157
|
value_.pointer =
|
164
158
|
new std::pair<Slice, Slice>(std::move(key), std::move(value));
|
165
159
|
}
|
@@ -193,13 +187,14 @@ class ParsedMetadata {
|
|
193
187
|
// HTTP2 defined storage size of this metadatum.
|
194
188
|
uint32_t transport_size() const { return transport_size_; }
|
195
189
|
// Create a new parsed metadata with the same key but a different value.
|
196
|
-
ParsedMetadata WithNewValue(Slice value,
|
190
|
+
ParsedMetadata WithNewValue(Slice value,
|
197
191
|
MetadataParseErrorFn on_error) const {
|
198
192
|
ParsedMetadata result;
|
199
193
|
result.vtable_ = vtable_;
|
200
194
|
result.value_ = value_;
|
201
195
|
result.transport_size_ =
|
202
|
-
TransportSize(static_cast<uint32_t>(key().length()),
|
196
|
+
TransportSize(static_cast<uint32_t>(key().length()),
|
197
|
+
static_cast<uint32_t>(value.length()));
|
203
198
|
vtable_->with_new_value(&value, on_error, &result);
|
204
199
|
return result;
|
205
200
|
}
|
@@ -400,17 +395,12 @@ ParsedMetadata<MetadataContainer>::KeyValueVTable(absl::string_view key) {
|
|
400
395
|
return absl::StrCat(p->first.as_string_view(), ": ",
|
401
396
|
p->second.as_string_view());
|
402
397
|
};
|
403
|
-
static const auto binary_debug_string = [](const Buffer& value) {
|
404
|
-
auto* p = static_cast<KV*>(value.pointer);
|
405
|
-
return absl::StrCat(p->first.as_string_view(), ": \"",
|
406
|
-
absl::CEscape(p->second.as_string_view()), "\"");
|
407
|
-
};
|
408
398
|
static const auto key_fn = [](const Buffer& value) {
|
409
399
|
return static_cast<KV*>(value.pointer)->first.as_string_view();
|
410
400
|
};
|
411
401
|
static const VTable vtable[2] = {
|
412
402
|
{false, destroy, set, with_new_value, debug_string, "", key_fn},
|
413
|
-
{true, destroy, set, with_new_value,
|
403
|
+
{true, destroy, set, with_new_value, debug_string, "", key_fn},
|
414
404
|
};
|
415
405
|
return &vtable[absl::EndsWith(key, "-bin")];
|
416
406
|
}
|
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
#include "src/core/lib/transport/timeout_encoding.h"
|
22
22
|
|
23
|
+
#include <limits>
|
24
|
+
|
23
25
|
#include "absl/base/attributes.h"
|
24
26
|
|
25
27
|
#include <grpc/support/log.h>
|
@@ -30,7 +32,7 @@ namespace grpc_core {
|
|
30
32
|
namespace {
|
31
33
|
|
32
34
|
int64_t DivideRoundingUp(int64_t dividend, int64_t divisor) {
|
33
|
-
return (dividend + divisor
|
35
|
+
return (dividend - 1 + divisor) / divisor;
|
34
36
|
}
|
35
37
|
|
36
38
|
constexpr int64_t kSecondsPerMinute = 60;
|
@@ -173,6 +175,9 @@ Timeout Timeout::FromMillis(int64_t millis) {
|
|
173
175
|
} else if (millis < 100000) {
|
174
176
|
int64_t value = DivideRoundingUp(millis, 100);
|
175
177
|
if (value % 10 != 0) return Timeout(value, Unit::kHundredMilliseconds);
|
178
|
+
} else if (millis > std::numeric_limits<int64_t>::max() - 999) {
|
179
|
+
// prevent signed integer overflow.
|
180
|
+
return Timeout(kMaxHours, Unit::kHours);
|
176
181
|
}
|
177
182
|
return Timeout::FromSeconds(DivideRoundingUp(millis, 1000));
|
178
183
|
}
|
@@ -26,13 +26,17 @@
|
|
26
26
|
#include <new>
|
27
27
|
|
28
28
|
#include "absl/status/status.h"
|
29
|
+
#include "absl/strings/str_cat.h"
|
29
30
|
|
30
31
|
#include <grpc/event_engine/event_engine.h>
|
32
|
+
#include <grpc/grpc.h>
|
31
33
|
|
32
34
|
#include "src/core/lib/event_engine/default_event_engine.h"
|
33
35
|
#include "src/core/lib/gpr/alloc.h"
|
36
|
+
#include "src/core/lib/gprpp/time.h"
|
34
37
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
35
38
|
#include "src/core/lib/slice/slice.h"
|
39
|
+
#include "src/core/lib/transport/error_utils.h"
|
36
40
|
#include "src/core/lib/transport/transport_impl.h"
|
37
41
|
|
38
42
|
grpc_core::DebugOnlyTraceFlag grpc_trace_stream_refcount(false,
|
@@ -271,11 +275,35 @@ namespace grpc_core {
|
|
271
275
|
ServerMetadataHandle ServerMetadataFromStatus(const absl::Status& status,
|
272
276
|
Arena* arena) {
|
273
277
|
auto hdl = arena->MakePooled<ServerMetadata>(arena);
|
274
|
-
|
278
|
+
grpc_status_code code;
|
279
|
+
std::string message;
|
280
|
+
grpc_error_get_status(status, Timestamp::InfFuture(), &code, &message,
|
281
|
+
nullptr, nullptr);
|
282
|
+
hdl->Set(GrpcStatusMetadata(), code);
|
275
283
|
if (!status.ok()) {
|
276
|
-
hdl->Set(GrpcMessageMetadata(), Slice::FromCopiedString(
|
284
|
+
hdl->Set(GrpcMessageMetadata(), Slice::FromCopiedString(message));
|
277
285
|
}
|
278
286
|
return hdl;
|
279
287
|
}
|
280
288
|
|
289
|
+
std::string Message::DebugString() const {
|
290
|
+
std::string out = absl::StrCat(payload_.Length(), "b");
|
291
|
+
auto flags = flags_;
|
292
|
+
auto explain = [&flags, &out](uint32_t flag, absl::string_view name) {
|
293
|
+
if (flags & flag) {
|
294
|
+
flags &= ~flag;
|
295
|
+
absl::StrAppend(&out, ":", name);
|
296
|
+
}
|
297
|
+
};
|
298
|
+
explain(GRPC_WRITE_BUFFER_HINT, "write_buffer");
|
299
|
+
explain(GRPC_WRITE_NO_COMPRESS, "no_compress");
|
300
|
+
explain(GRPC_WRITE_THROUGH, "write_through");
|
301
|
+
explain(GRPC_WRITE_INTERNAL_COMPRESS, "compress");
|
302
|
+
explain(GRPC_WRITE_INTERNAL_TEST_ONLY_WAS_COMPRESSED, "was_compressed");
|
303
|
+
if (flags != 0) {
|
304
|
+
absl::StrAppend(&out, ":huh=0x", absl::Hex(flags));
|
305
|
+
}
|
306
|
+
return out;
|
307
|
+
}
|
308
|
+
|
281
309
|
} // namespace grpc_core
|
@@ -27,6 +27,7 @@
|
|
27
27
|
|
28
28
|
#include <functional>
|
29
29
|
#include <string>
|
30
|
+
#include <type_traits>
|
30
31
|
#include <utility>
|
31
32
|
|
32
33
|
#include "absl/status/status.h"
|
@@ -36,7 +37,6 @@
|
|
36
37
|
#include <grpc/impl/connectivity_state.h>
|
37
38
|
#include <grpc/slice.h>
|
38
39
|
#include <grpc/status.h>
|
39
|
-
#include <grpc/support/atm.h>
|
40
40
|
#include <grpc/support/log.h>
|
41
41
|
#include <grpc/support/time.h>
|
42
42
|
|
@@ -54,6 +54,7 @@
|
|
54
54
|
#include "src/core/lib/promise/arena_promise.h"
|
55
55
|
#include "src/core/lib/promise/context.h"
|
56
56
|
#include "src/core/lib/promise/detail/status.h"
|
57
|
+
#include "src/core/lib/promise/latch.h"
|
57
58
|
#include "src/core/lib/promise/pipe.h"
|
58
59
|
#include "src/core/lib/resource_quota/arena.h"
|
59
60
|
#include "src/core/lib/slice/slice_buffer.h"
|
@@ -106,6 +107,8 @@ class Message {
|
|
106
107
|
SliceBuffer* payload() { return &payload_; }
|
107
108
|
const SliceBuffer* payload() const { return &payload_; }
|
108
109
|
|
110
|
+
std::string DebugString() const;
|
111
|
+
|
109
112
|
private:
|
110
113
|
SliceBuffer payload_;
|
111
114
|
uint32_t flags_ = 0;
|
@@ -144,11 +147,70 @@ struct StatusCastImpl<ServerMetadataHandle, absl::Status&> {
|
|
144
147
|
}
|
145
148
|
};
|
146
149
|
|
150
|
+
// Move only type that tracks call startup.
|
151
|
+
// Allows observation of when client_initial_metadata has been processed by the
|
152
|
+
// end of the local call stack.
|
153
|
+
// Interested observers can call Wait() to obtain a promise that will resolve
|
154
|
+
// when all local client_initial_metadata processing has completed.
|
155
|
+
// The result of this token is either true on successful completion, or false
|
156
|
+
// if the metadata was not sent.
|
157
|
+
// To set a successful completion, call Complete(true). For failure, call
|
158
|
+
// Complete(false).
|
159
|
+
// If Complete is not called, the destructor of a still held token will complete
|
160
|
+
// with failure.
|
161
|
+
// Transports should hold this token until client_initial_metadata has passed
|
162
|
+
// any flow control (eg MAX_CONCURRENT_STREAMS for http2).
|
163
|
+
class ClientInitialMetadataOutstandingToken {
|
164
|
+
public:
|
165
|
+
static ClientInitialMetadataOutstandingToken Empty() {
|
166
|
+
return ClientInitialMetadataOutstandingToken();
|
167
|
+
}
|
168
|
+
static ClientInitialMetadataOutstandingToken New(
|
169
|
+
Arena* arena = GetContext<Arena>()) {
|
170
|
+
ClientInitialMetadataOutstandingToken token;
|
171
|
+
token.latch_ = arena->New<Latch<bool>>();
|
172
|
+
return token;
|
173
|
+
}
|
174
|
+
|
175
|
+
ClientInitialMetadataOutstandingToken(
|
176
|
+
const ClientInitialMetadataOutstandingToken&) = delete;
|
177
|
+
ClientInitialMetadataOutstandingToken& operator=(
|
178
|
+
const ClientInitialMetadataOutstandingToken&) = delete;
|
179
|
+
ClientInitialMetadataOutstandingToken(
|
180
|
+
ClientInitialMetadataOutstandingToken&& other) noexcept
|
181
|
+
: latch_(std::exchange(other.latch_, nullptr)) {}
|
182
|
+
ClientInitialMetadataOutstandingToken& operator=(
|
183
|
+
ClientInitialMetadataOutstandingToken&& other) noexcept {
|
184
|
+
latch_ = std::exchange(other.latch_, nullptr);
|
185
|
+
return *this;
|
186
|
+
}
|
187
|
+
~ClientInitialMetadataOutstandingToken() {
|
188
|
+
if (latch_ != nullptr) latch_->Set(false);
|
189
|
+
}
|
190
|
+
void Complete(bool success) { std::exchange(latch_, nullptr)->Set(success); }
|
191
|
+
|
192
|
+
// Returns a promise that will resolve when this object (or its moved-from
|
193
|
+
// ancestor) is dropped.
|
194
|
+
auto Wait() { return latch_->Wait(); }
|
195
|
+
|
196
|
+
private:
|
197
|
+
ClientInitialMetadataOutstandingToken() = default;
|
198
|
+
|
199
|
+
Latch<bool>* latch_ = nullptr;
|
200
|
+
};
|
201
|
+
|
202
|
+
using ClientInitialMetadataOutstandingTokenWaitType =
|
203
|
+
decltype(std::declval<ClientInitialMetadataOutstandingToken>().Wait());
|
204
|
+
|
147
205
|
struct CallArgs {
|
148
206
|
// Initial metadata from the client to the server.
|
149
207
|
// During promise setup this can be manipulated by filters (and then
|
150
208
|
// passed on to the next filter).
|
151
209
|
ClientMetadataHandle client_initial_metadata;
|
210
|
+
// Token indicating that client_initial_metadata is still being processed.
|
211
|
+
// This should be moved around and only destroyed when the transport is
|
212
|
+
// satisfied that the metadata has passed any flow control measures it has.
|
213
|
+
ClientInitialMetadataOutstandingToken client_initial_metadata_outstanding;
|
152
214
|
// Initial metadata from the server to the client.
|
153
215
|
// Set once when it's available.
|
154
216
|
// During promise setup filters can substitute their own latch for this
|
@@ -331,6 +393,12 @@ struct grpc_transport_stream_op_batch {
|
|
331
393
|
/// Is this stream traced
|
332
394
|
bool is_traced : 1;
|
333
395
|
|
396
|
+
bool HasOp() const {
|
397
|
+
return send_initial_metadata || send_trailing_metadata || send_message ||
|
398
|
+
recv_initial_metadata || recv_message || recv_trailing_metadata ||
|
399
|
+
cancel_stream;
|
400
|
+
}
|
401
|
+
|
334
402
|
//**************************************************************************
|
335
403
|
// remaining fields are initialized and used at the discretion of the
|
336
404
|
// current handler of the op
|
@@ -344,12 +412,6 @@ struct grpc_transport_stream_op_batch_payload {
|
|
344
412
|
: context(context) {}
|
345
413
|
struct {
|
346
414
|
grpc_metadata_batch* send_initial_metadata = nullptr;
|
347
|
-
// If non-NULL, will be set by the transport to the peer string (a char*).
|
348
|
-
// The transport retains ownership of the string.
|
349
|
-
// Note: This pointer may be used by the transport after the
|
350
|
-
// send_initial_metadata op is completed. It must remain valid
|
351
|
-
// until the call is destroyed.
|
352
|
-
gpr_atm* peer_string = nullptr;
|
353
415
|
} send_initial_metadata;
|
354
416
|
|
355
417
|
struct {
|
@@ -394,12 +456,6 @@ struct grpc_transport_stream_op_batch_payload {
|
|
394
456
|
// uses this to set the success flag of OnReadInitialMetadataDone()
|
395
457
|
// callback.
|
396
458
|
bool* trailing_metadata_available = nullptr;
|
397
|
-
// If non-NULL, will be set by the transport to the peer string (a char*).
|
398
|
-
// The transport retains ownership of the string.
|
399
|
-
// Note: This pointer may be used by the transport after the
|
400
|
-
// recv_initial_metadata op is completed. It must remain valid
|
401
|
-
// until the call is destroyed.
|
402
|
-
gpr_atm* peer_string = nullptr;
|
403
459
|
} recv_initial_metadata;
|
404
460
|
|
405
461
|
struct {
|
@@ -546,7 +602,7 @@ void grpc_transport_stream_op_batch_finish_with_failure_from_transport(
|
|
546
602
|
grpc_transport_stream_op_batch* batch, grpc_error_handle error);
|
547
603
|
|
548
604
|
std::string grpc_transport_stream_op_batch_string(
|
549
|
-
grpc_transport_stream_op_batch* op);
|
605
|
+
grpc_transport_stream_op_batch* op, bool truncate);
|
550
606
|
std::string grpc_transport_op_string(grpc_transport_op* op);
|
551
607
|
|
552
608
|
// Send a batch of operations on a transport
|
@@ -38,6 +38,13 @@ typedef struct grpc_transport_vtable {
|
|
38
38
|
// layers and initialized by the transport
|
39
39
|
size_t sizeof_stream; // = sizeof(transport stream)
|
40
40
|
|
41
|
+
// HACK: inproc does not handle stream op batch callbacks correctly (receive
|
42
|
+
// ops are required to complete prior to on_complete triggering).
|
43
|
+
// This flag is used to disable coalescing of batches in connected_channel for
|
44
|
+
// that specific transport.
|
45
|
+
// TODO(ctiller): This ought not be necessary once we have promises complete.
|
46
|
+
bool hacky_disable_stream_op_batch_coalescing_in_connected_channel;
|
47
|
+
|
41
48
|
// name of this transport implementation
|
42
49
|
const char* name;
|
43
50
|
|