grpc 1.53.0.pre2 → 1.54.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +80 -66
- data/include/grpc/event_engine/event_engine.h +30 -14
- data/include/grpc/grpc_security.h +4 -0
- data/include/grpc/impl/grpc_types.h +11 -2
- data/include/grpc/support/port_platform.h +4 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +6 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +2 -11
- data/src/core/ext/filters/client_channel/backup_poller.h +0 -3
- data/src/core/ext/filters/client_channel/client_channel.cc +848 -813
- data/src/core/ext/filters/client_channel/client_channel.h +131 -173
- data/src/core/ext/filters/client_channel/client_channel_internal.h +114 -0
- data/src/core/ext/filters/client_channel/config_selector.h +4 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +17 -18
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +134 -151
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +1 -15
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +14 -10
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +68 -30
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +13 -5
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +8 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -5
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +30 -38
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +20 -26
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +31 -179
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +4 -2
- data/src/core/ext/filters/client_channel/retry_filter.cc +95 -102
- data/src/core/ext/filters/client_channel/subchannel.cc +2 -4
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +26 -27
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +8 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -3
- data/src/core/ext/filters/http/http_filters_plugin.cc +1 -12
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +27 -11
- data/src/core/ext/filters/message_size/message_size_filter.cc +141 -224
- data/src/core/ext/filters/message_size/message_size_filter.h +48 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -6
- data/src/core/ext/gcp/metadata_query.cc +142 -0
- data/src/core/ext/gcp/metadata_query.h +82 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +70 -55
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +149 -60
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +5 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +42 -23
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +5 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +9 -2
- data/src/core/ext/transport/chttp2/transport/writing.cc +10 -5
- data/src/core/ext/transport/inproc/inproc_transport.cc +20 -14
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +23 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +94 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +6 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +24 -6
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +111 -12
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +27 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +11 -7
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +56 -12
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +49 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +24 -9
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +66 -12
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +139 -136
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +31 -15
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +54 -45
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +135 -119
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +100 -97
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +15 -18
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +272 -264
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +117 -117
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -2
- data/src/core/ext/xds/xds_client_stats.cc +29 -15
- data/src/core/ext/xds/xds_client_stats.h +24 -20
- data/src/core/ext/xds/xds_endpoint.cc +5 -2
- data/src/core/ext/xds/xds_endpoint.h +9 -1
- data/src/core/ext/xds/xds_http_rbac_filter.cc +1 -1
- data/src/core/ext/xds/xds_lb_policy_registry.cc +13 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +1 -1
- data/src/core/{ext/filters/client_channel/resolver/dns/dns_resolver_selection.h → lib/backoff/random_early_detection.cc} +14 -12
- data/src/core/lib/backoff/random_early_detection.h +59 -0
- data/src/core/lib/channel/call_finalization.h +1 -1
- data/src/core/lib/channel/call_tracer.cc +51 -0
- data/src/core/lib/channel/call_tracer.h +101 -38
- data/src/core/lib/channel/connected_channel.cc +483 -1050
- data/src/core/lib/channel/context.h +8 -1
- data/src/core/lib/channel/promise_based_filter.cc +106 -42
- data/src/core/lib/channel/promise_based_filter.h +27 -13
- data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
- data/src/core/lib/config/config_vars.cc +151 -0
- data/src/core/lib/config/config_vars.h +127 -0
- data/src/core/lib/config/config_vars_non_generated.cc +51 -0
- data/src/core/lib/config/load_config.cc +66 -0
- data/src/core/lib/config/load_config.h +49 -0
- data/src/core/lib/debug/trace.cc +5 -6
- data/src/core/lib/debug/trace.h +0 -5
- data/src/core/lib/event_engine/event_engine.cc +37 -2
- data/src/core/lib/event_engine/handle_containers.h +7 -22
- data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -4
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -9
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +48 -15
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -8
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -3
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +27 -18
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +0 -3
- data/src/core/lib/event_engine/resolved_address.cc +2 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +129 -82
- data/src/core/lib/event_engine/windows/windows_endpoint.h +21 -5
- data/src/core/lib/event_engine/windows/windows_engine.cc +39 -18
- data/src/core/lib/event_engine/windows/windows_engine.h +2 -1
- data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
- data/src/core/lib/event_engine/windows/windows_listener.h +155 -0
- data/src/core/lib/experiments/config.cc +3 -10
- data/src/core/lib/experiments/experiments.cc +7 -0
- data/src/core/lib/experiments/experiments.h +9 -1
- data/src/core/lib/gpr/log.cc +15 -28
- data/src/core/lib/gprpp/fork.cc +8 -14
- data/src/core/lib/gprpp/orphanable.h +4 -3
- data/src/core/lib/gprpp/per_cpu.h +9 -3
- data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +49 -37
- data/src/core/lib/gprpp/ref_counted.h +33 -34
- data/src/core/lib/gprpp/thd.h +16 -0
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/gprpp/time.h +4 -4
- data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +2 -2
- data/src/core/lib/iomgr/call_combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +4 -2
- data/src/core/lib/iomgr/endpoint_pair.h +2 -2
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -2
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/ev_posix.cc +13 -53
- data/src/core/lib/iomgr/ev_posix.h +0 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +103 -76
- data/src/core/lib/iomgr/iomgr.cc +4 -8
- data/src/core/lib/iomgr/iomgr_windows.cc +8 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +9 -9
- data/src/core/lib/iomgr/pollset_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -3
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_posix.cc +0 -1
- data/src/core/lib/iomgr/tcp_server_posix.cc +5 -16
- data/src/core/lib/iomgr/tcp_server_windows.cc +176 -9
- data/src/core/lib/iomgr/tcp_windows.cc +12 -8
- data/src/core/lib/load_balancing/lb_policy.cc +9 -13
- data/src/core/lib/load_balancing/lb_policy.h +4 -2
- data/src/core/lib/promise/activity.cc +22 -6
- data/src/core/lib/promise/activity.h +61 -24
- data/src/core/lib/promise/cancel_callback.h +77 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -1
- data/src/core/lib/promise/detail/promise_factory.h +4 -0
- data/src/core/lib/promise/for_each.h +176 -0
- data/src/core/lib/promise/if.h +9 -0
- data/src/core/lib/promise/interceptor_list.h +23 -2
- data/src/core/lib/promise/latch.h +89 -3
- data/src/core/lib/promise/loop.h +13 -9
- data/src/core/lib/promise/map.h +7 -0
- data/src/core/lib/promise/party.cc +286 -0
- data/src/core/lib/promise/party.h +499 -0
- data/src/core/lib/promise/pipe.h +197 -57
- data/src/core/lib/promise/poll.h +48 -0
- data/src/core/lib/promise/promise.h +2 -2
- data/src/core/lib/resource_quota/arena.cc +19 -3
- data/src/core/lib/resource_quota/arena.h +119 -5
- data/src/core/lib/resource_quota/memory_quota.cc +1 -1
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +12 -35
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -59
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +2 -0
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +5 -9
- data/src/core/lib/security/security_connector/ssl_utils.cc +11 -25
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +12 -0
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -2
- data/src/core/lib/security/transport/server_auth_filter.cc +20 -2
- data/src/core/lib/slice/slice.cc +1 -1
- data/src/core/lib/surface/builtins.cc +2 -0
- data/src/core/lib/surface/call.cc +926 -1024
- data/src/core/lib/surface/call.h +10 -0
- data/src/core/lib/surface/lame_client.cc +1 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +179 -0
- data/src/core/lib/transport/batch_builder.h +468 -0
- data/src/core/lib/transport/bdp_estimator.cc +7 -7
- data/src/core/lib/transport/bdp_estimator.h +10 -6
- data/src/core/lib/transport/custom_metadata.h +30 -0
- data/src/core/lib/transport/metadata_batch.cc +9 -6
- data/src/core/lib/transport/metadata_batch.h +58 -16
- data/src/core/lib/transport/parsed_metadata.h +3 -3
- data/src/core/lib/transport/timeout_encoding.cc +6 -1
- data/src/core/lib/transport/transport.cc +30 -2
- data/src/core/lib/transport/transport.h +70 -14
- data/src/core/lib/transport/transport_impl.h +7 -0
- data/src/core/lib/transport/transport_op_string.cc +52 -42
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -2
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +1 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +21 -4
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +5 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +4 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/abseil-cpp/absl/base/config.h +1 -1
- data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
- data/third_party/abseil-cpp/absl/flags/config.h +68 -0
- data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
- data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
- data/{src/core/lib/gprpp/global_config_custom.h → third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc} +11 -14
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
- data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
- data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
- data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
- data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
- data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
- data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
- data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
- data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
- data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +12 -8
- data/third_party/boringssl-with-bazel/err_data.c +728 -712
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +174 -194
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +133 -88
- data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +791 -791
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +526 -526
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +11 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +9 -5
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
- data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +6 -12
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +16 -27
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +39 -16
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +214 -99
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +21 -5
- data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
- data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
- data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
- data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +35 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
- data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +21 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +25 -25
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +91 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +34 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +54 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +44 -60
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +60 -53
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +48 -36
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +2 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +42 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +71 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +14 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -45
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +22 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +63 -52
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +107 -62
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +58 -31
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +523 -422
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +19 -6
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +32 -14
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +373 -18
- data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +61 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +205 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +13 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +629 -613
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
- data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +66 -34
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +190 -77
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +81 -284
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +109 -42
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +54 -55
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +284 -331
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
- data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +67 -50
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +153 -150
- data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +786 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +227 -252
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +230 -224
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +534 -618
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +116 -182
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +181 -202
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1865 -2050
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +433 -462
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +267 -263
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +326 -415
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +78 -170
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +309 -346
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +341 -365
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +122 -125
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +247 -253
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +143 -136
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +664 -707
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +83 -75
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1062 -1146
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +8 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +211 -187
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +21 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +22 -30
- data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +41 -16
- data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +13 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +7 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +13 -21
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -75
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +384 -286
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +5 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +18 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +49 -23
- data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1592 -1074
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +202 -205
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +34 -20
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +65 -34
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +32 -28
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +130 -98
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +27 -11
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
- data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +39 -65
- data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +30 -33
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +77 -100
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +120 -107
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +164 -30
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +150 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +22 -11
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +5 -43
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +22 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
- metadata +107 -72
- data/src/core/ext/filters/client_channel/lb_call_state_internal.h +0 -39
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
- data/src/core/lib/gprpp/global_config.h +0 -93
- data/src/core/lib/gprpp/global_config_env.cc +0 -140
- data/src/core/lib/gprpp/global_config_env.h +0 -133
- data/src/core/lib/gprpp/global_config_generic.h +0 -40
- data/src/core/lib/promise/intra_activity_waiter.h +0 -55
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
- data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
- data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
- data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
- /data/src/core/lib/gpr/{log_android.cc → android/log.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_iphone.cc → iphone/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +0 -0
- /data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +0 -0
- /data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +0 -0
- /data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +0 -0
- /data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +0 -0
- /data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_windows.cc → windows/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +0 -0
- /data/src/core/lib/gpr/{string_windows.cc → windows/string.cc} +0 -0
- /data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +0 -0
- /data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +0 -0
- /data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +0 -0
- /data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +0 -0
- /data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +0 -0
- /data/src/core/lib/gprpp/{env_posix.cc → posix/env.cc} +0 -0
- /data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +0 -0
- /data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +0 -0
- /data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +0 -0
@@ -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
|
@@ -93,7 +93,7 @@ StaticSlice ContentTypeMetadata::Encode(ValueType x) {
|
|
93
93
|
return StaticSlice::FromStaticString("unrepresentable value"));
|
94
94
|
}
|
95
95
|
|
96
|
-
const char* ContentTypeMetadata::DisplayValue(
|
96
|
+
const char* ContentTypeMetadata::DisplayValue(ValueType content_type) {
|
97
97
|
switch (content_type) {
|
98
98
|
case ValueType::kApplicationGrpc:
|
99
99
|
return "application/grpc";
|
@@ -137,7 +137,7 @@ TeMetadata::MementoType TeMetadata::ParseMemento(
|
|
137
137
|
return out;
|
138
138
|
}
|
139
139
|
|
140
|
-
const char* TeMetadata::DisplayValue(
|
140
|
+
const char* TeMetadata::DisplayValue(ValueType te) {
|
141
141
|
switch (te) {
|
142
142
|
case ValueType::kTrailers:
|
143
143
|
return "trailers";
|
@@ -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";
|
@@ -222,7 +222,7 @@ StaticSlice HttpMethodMetadata::Encode(ValueType x) {
|
|
222
222
|
}
|
223
223
|
}
|
224
224
|
|
225
|
-
const char* HttpMethodMetadata::DisplayValue(
|
225
|
+
const char* HttpMethodMetadata::DisplayValue(ValueType content_type) {
|
226
226
|
switch (content_type) {
|
227
227
|
case kPost:
|
228
228
|
return "POST";
|
@@ -264,7 +264,7 @@ Slice LbCostBinMetadata::Encode(const ValueType& x) {
|
|
264
264
|
return Slice(std::move(slice));
|
265
265
|
}
|
266
266
|
|
267
|
-
std::string LbCostBinMetadata::DisplayValue(
|
267
|
+
std::string LbCostBinMetadata::DisplayValue(ValueType x) {
|
268
268
|
return absl::StrCat(x.name, ":", x.cost);
|
269
269
|
}
|
270
270
|
|
@@ -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
|
}
|
@@ -45,6 +45,7 @@
|
|
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 {
|
@@ -74,7 +75,8 @@ struct GrpcTimeoutMetadata {
|
|
74
75
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
75
76
|
static ValueType MementoToValue(MementoType timeout);
|
76
77
|
static Slice Encode(ValueType x);
|
77
|
-
static std::string DisplayValue(
|
78
|
+
static std::string DisplayValue(ValueType x) { return x.ToString(); }
|
79
|
+
static std::string DisplayMemento(MementoType x) { return x.ToString(); }
|
78
80
|
};
|
79
81
|
|
80
82
|
// TE metadata trait.
|
@@ -95,7 +97,8 @@ struct TeMetadata {
|
|
95
97
|
GPR_ASSERT(x == kTrailers);
|
96
98
|
return StaticSlice::FromStaticString("trailers");
|
97
99
|
}
|
98
|
-
static const char* DisplayValue(
|
100
|
+
static const char* DisplayValue(ValueType te);
|
101
|
+
static const char* DisplayMemento(MementoType te) { return DisplayValue(te); }
|
99
102
|
};
|
100
103
|
|
101
104
|
inline size_t EncodedSizeOfKey(TeMetadata, TeMetadata::ValueType x) {
|
@@ -121,7 +124,10 @@ struct ContentTypeMetadata {
|
|
121
124
|
}
|
122
125
|
|
123
126
|
static StaticSlice Encode(ValueType x);
|
124
|
-
static const char* DisplayValue(
|
127
|
+
static const char* DisplayValue(ValueType content_type);
|
128
|
+
static const char* DisplayMemento(ValueType content_type) {
|
129
|
+
return DisplayValue(content_type);
|
130
|
+
}
|
125
131
|
};
|
126
132
|
|
127
133
|
// scheme metadata trait.
|
@@ -143,7 +149,10 @@ struct HttpSchemeMetadata {
|
|
143
149
|
return content_type;
|
144
150
|
}
|
145
151
|
static StaticSlice Encode(ValueType x);
|
146
|
-
static const char* DisplayValue(
|
152
|
+
static const char* DisplayValue(ValueType content_type);
|
153
|
+
static const char* DisplayMemento(MementoType content_type) {
|
154
|
+
return DisplayValue(content_type);
|
155
|
+
}
|
147
156
|
};
|
148
157
|
|
149
158
|
size_t EncodedSizeOfKey(HttpSchemeMetadata, HttpSchemeMetadata::ValueType x);
|
@@ -164,7 +173,10 @@ struct HttpMethodMetadata {
|
|
164
173
|
return content_type;
|
165
174
|
}
|
166
175
|
static StaticSlice Encode(ValueType x);
|
167
|
-
static const char* DisplayValue(
|
176
|
+
static const char* DisplayValue(ValueType content_type);
|
177
|
+
static const char* DisplayMemento(MementoType content_type) {
|
178
|
+
return DisplayValue(content_type);
|
179
|
+
}
|
168
180
|
};
|
169
181
|
|
170
182
|
// Base type for metadata pertaining to a single compression algorithm
|
@@ -178,13 +190,14 @@ struct CompressionAlgorithmBasedMetadata {
|
|
178
190
|
GPR_ASSERT(x != GRPC_COMPRESS_ALGORITHMS_COUNT);
|
179
191
|
return Slice::FromStaticString(CompressionAlgorithmAsString(x));
|
180
192
|
}
|
181
|
-
static const char* DisplayValue(
|
193
|
+
static const char* DisplayValue(ValueType x) {
|
182
194
|
if (const char* p = CompressionAlgorithmAsString(x)) {
|
183
195
|
return p;
|
184
196
|
} else {
|
185
197
|
return "<discarded-invalid-value>";
|
186
198
|
}
|
187
199
|
}
|
200
|
+
static const char* DisplayMemento(MementoType x) { return DisplayValue(x); }
|
188
201
|
};
|
189
202
|
|
190
203
|
// grpc-encoding metadata trait.
|
@@ -210,7 +223,10 @@ struct GrpcAcceptEncodingMetadata {
|
|
210
223
|
}
|
211
224
|
static ValueType MementoToValue(MementoType x) { return x; }
|
212
225
|
static Slice Encode(ValueType x) { return x.ToSlice(); }
|
213
|
-
static absl::string_view DisplayValue(
|
226
|
+
static absl::string_view DisplayValue(ValueType x) { return x.ToString(); }
|
227
|
+
static absl::string_view DisplayMemento(MementoType x) {
|
228
|
+
return DisplayValue(x);
|
229
|
+
}
|
214
230
|
};
|
215
231
|
|
216
232
|
struct SimpleSliceBasedMetadata {
|
@@ -221,7 +237,10 @@ struct SimpleSliceBasedMetadata {
|
|
221
237
|
}
|
222
238
|
static ValueType MementoToValue(MementoType value) { return value; }
|
223
239
|
static Slice Encode(const ValueType& x) { return x.Ref(); }
|
224
|
-
static absl::string_view DisplayValue(const
|
240
|
+
static absl::string_view DisplayValue(const ValueType& value) {
|
241
|
+
return value.as_string_view();
|
242
|
+
}
|
243
|
+
static absl::string_view DisplayMemento(const MementoType& value) {
|
225
244
|
return value.as_string_view();
|
226
245
|
}
|
227
246
|
};
|
@@ -289,7 +308,8 @@ struct SimpleIntBasedMetadataBase {
|
|
289
308
|
using MementoType = Int;
|
290
309
|
static ValueType MementoToValue(MementoType value) { return value; }
|
291
310
|
static Slice Encode(ValueType x) { return Slice::FromInt64(x); }
|
292
|
-
static Int DisplayValue(
|
311
|
+
static Int DisplayValue(ValueType x) { return x; }
|
312
|
+
static Int DisplayMemento(MementoType x) { return x; }
|
293
313
|
};
|
294
314
|
|
295
315
|
template <typename Int, Int kInvalidValue>
|
@@ -328,6 +348,7 @@ struct GrpcRetryPushbackMsMetadata {
|
|
328
348
|
static ValueType MementoToValue(MementoType x) { return x; }
|
329
349
|
static Slice Encode(Duration x) { return Slice::FromInt64(x.millis()); }
|
330
350
|
static int64_t DisplayValue(Duration x) { return x.millis(); }
|
351
|
+
static int64_t DisplayMemento(Duration x) { return DisplayValue(x); }
|
331
352
|
static Duration ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
332
353
|
};
|
333
354
|
|
@@ -349,7 +370,10 @@ struct GrpcLbClientStatsMetadata {
|
|
349
370
|
using MementoType = ValueType;
|
350
371
|
static ValueType MementoToValue(MementoType value) { return value; }
|
351
372
|
static Slice Encode(ValueType) { abort(); }
|
352
|
-
static const char* DisplayValue(
|
373
|
+
static const char* DisplayValue(ValueType) { return "<internal-lb-stats>"; }
|
374
|
+
static const char* DisplayMemento(MementoType) {
|
375
|
+
return "<internal-lb-stats>";
|
376
|
+
}
|
353
377
|
static MementoType ParseMemento(Slice, MetadataParseErrorFn) {
|
354
378
|
return nullptr;
|
355
379
|
}
|
@@ -377,7 +401,8 @@ struct LbCostBinMetadata {
|
|
377
401
|
using MementoType = ValueType;
|
378
402
|
static ValueType MementoToValue(MementoType value) { return value; }
|
379
403
|
static Slice Encode(const ValueType& x);
|
380
|
-
static std::string DisplayValue(
|
404
|
+
static std::string DisplayValue(ValueType x);
|
405
|
+
static std::string DisplayMemento(MementoType x) { return DisplayValue(x); }
|
381
406
|
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
382
407
|
};
|
383
408
|
|
@@ -397,8 +422,8 @@ struct GrpcStreamNetworkState {
|
|
397
422
|
struct PeerString {
|
398
423
|
static absl::string_view DebugKey() { return "PeerString"; }
|
399
424
|
static constexpr bool kRepeatable = false;
|
400
|
-
using ValueType =
|
401
|
-
static std::string DisplayValue(ValueType x);
|
425
|
+
using ValueType = Slice;
|
426
|
+
static std::string DisplayValue(const ValueType& x);
|
402
427
|
};
|
403
428
|
|
404
429
|
// Annotation added by various systems to describe the reason for a failure.
|
@@ -417,6 +442,15 @@ struct GrpcStatusFromWire {
|
|
417
442
|
static absl::string_view DisplayValue(bool x) { return x ? "true" : "false"; }
|
418
443
|
};
|
419
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
|
+
|
420
454
|
// Annotation added by client surface code to denote wait-for-ready state
|
421
455
|
struct WaitForReady {
|
422
456
|
struct ValueType {
|
@@ -698,6 +732,11 @@ struct AdaptDisplayValueToLog<Slice> {
|
|
698
732
|
}
|
699
733
|
};
|
700
734
|
|
735
|
+
template <>
|
736
|
+
struct AdaptDisplayValueToLog<const char*> {
|
737
|
+
static std::string ToString(const char* value) { return std::string(value); }
|
738
|
+
};
|
739
|
+
|
701
740
|
template <>
|
702
741
|
struct AdaptDisplayValueToLog<StaticSlice> {
|
703
742
|
static absl::string_view ToString(StaticSlice value) {
|
@@ -739,7 +778,7 @@ struct Value<Which, absl::enable_if_t<Which::kRepeatable == false &&
|
|
739
778
|
return EncodeTo(encoder);
|
740
779
|
}
|
741
780
|
void LogTo(LogFn log_fn) const {
|
742
|
-
LogKeyValueTo(Which::key(), value, Which::
|
781
|
+
LogKeyValueTo(Which::key(), value, Which::DisplayValue, log_fn);
|
743
782
|
}
|
744
783
|
using StorageType = typename Which::ValueType;
|
745
784
|
GPR_NO_UNIQUE_ADDRESS StorageType value;
|
@@ -1025,7 +1064,8 @@ MetadataValueAsSlice(typename Which::ValueType value) {
|
|
1025
1064
|
// // Convert a value to something that can be passed to StrCat and
|
1026
1065
|
// displayed
|
1027
1066
|
// // for debugging
|
1028
|
-
// static SomeStrCatableType DisplayValue(
|
1067
|
+
// static SomeStrCatableType DisplayValue(ValueType value) { ... }
|
1068
|
+
// static SomeStrCatableType DisplayMemento(MementoType value) { ... }
|
1029
1069
|
// };
|
1030
1070
|
//
|
1031
1071
|
// Non-encodable traits are determined by missing the key() method, and have
|
@@ -1348,7 +1388,9 @@ using grpc_metadata_batch_base = grpc_core::MetadataMap<
|
|
1348
1388
|
// Non-encodable things
|
1349
1389
|
grpc_core::GrpcStreamNetworkState, grpc_core::PeerString,
|
1350
1390
|
grpc_core::GrpcStatusContext, grpc_core::GrpcStatusFromWire,
|
1351
|
-
grpc_core::
|
1391
|
+
grpc_core::GrpcCallWasCancelled, grpc_core::WaitForReady,
|
1392
|
+
grpc_core::GrpcTrailersOnly GRPC_CUSTOM_CLIENT_METADATA
|
1393
|
+
GRPC_CUSTOM_SERVER_METADATA>;
|
1352
1394
|
|
1353
1395
|
struct grpc_metadata_batch : public grpc_metadata_batch_base {
|
1354
1396
|
using grpc_metadata_batch_base::grpc_metadata_batch_base;
|
@@ -300,7 +300,7 @@ ParsedMetadata<MetadataContainer>::TrivialTraitVTable() {
|
|
300
300
|
return metadata_detail::MakeDebugStringPipeline(
|
301
301
|
Which::key(), value,
|
302
302
|
metadata_detail::FieldFromTrivial<typename Which::MementoType>,
|
303
|
-
Which::
|
303
|
+
Which::DisplayMemento);
|
304
304
|
},
|
305
305
|
// key
|
306
306
|
Which::key(),
|
@@ -334,7 +334,7 @@ ParsedMetadata<MetadataContainer>::NonTrivialTraitVTable() {
|
|
334
334
|
return metadata_detail::MakeDebugStringPipeline(
|
335
335
|
Which::key(), value,
|
336
336
|
metadata_detail::FieldFromPointer<typename Which::MementoType>,
|
337
|
-
Which::
|
337
|
+
Which::DisplayMemento);
|
338
338
|
},
|
339
339
|
// key
|
340
340
|
Which::key(),
|
@@ -362,7 +362,7 @@ ParsedMetadata<MetadataContainer>::SliceTraitVTable() {
|
|
362
362
|
[](const Buffer& value) {
|
363
363
|
return metadata_detail::MakeDebugStringPipeline(
|
364
364
|
Which::key(), value, metadata_detail::SliceFromBuffer,
|
365
|
-
Which::
|
365
|
+
Which::DisplayMemento);
|
366
366
|
},
|
367
367
|
// key
|
368
368
|
Which::key(),
|
@@ -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
|
|