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.

Files changed (685) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +80 -66
  3. data/include/grpc/event_engine/event_engine.h +30 -14
  4. data/include/grpc/grpc_security.h +4 -0
  5. data/include/grpc/impl/grpc_types.h +11 -2
  6. data/include/grpc/support/port_platform.h +4 -4
  7. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -0
  8. data/src/core/ext/filters/client_channel/backend_metric.cc +6 -0
  9. data/src/core/ext/filters/client_channel/backup_poller.cc +2 -11
  10. data/src/core/ext/filters/client_channel/backup_poller.h +0 -3
  11. data/src/core/ext/filters/client_channel/client_channel.cc +848 -813
  12. data/src/core/ext/filters/client_channel/client_channel.h +131 -173
  13. data/src/core/ext/filters/client_channel/client_channel_internal.h +114 -0
  14. data/src/core/ext/filters/client_channel/config_selector.h +4 -3
  15. data/src/core/ext/filters/client_channel/http_proxy.cc +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +6 -1
  17. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +17 -18
  18. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +134 -151
  19. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +1 -15
  20. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +14 -10
  21. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +68 -30
  22. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +13 -5
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +8 -1
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -5
  25. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +2 -2
  26. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +30 -38
  27. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +4 -4
  28. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +20 -26
  29. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +31 -179
  30. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -2
  31. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -2
  32. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +4 -2
  33. data/src/core/ext/filters/client_channel/retry_filter.cc +95 -102
  34. data/src/core/ext/filters/client_channel/subchannel.cc +2 -4
  35. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +26 -27
  36. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +8 -5
  37. data/src/core/ext/filters/http/client/http_client_filter.cc +3 -3
  38. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -12
  39. data/src/core/ext/filters/http/message_compress/compression_filter.cc +27 -11
  40. data/src/core/ext/filters/message_size/message_size_filter.cc +141 -224
  41. data/src/core/ext/filters/message_size/message_size_filter.h +48 -3
  42. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -6
  43. data/src/core/ext/gcp/metadata_query.cc +142 -0
  44. data/src/core/ext/gcp/metadata_query.h +82 -0
  45. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +70 -55
  46. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +149 -60
  47. data/src/core/ext/transport/chttp2/transport/flow_control.cc +5 -2
  48. data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -1
  49. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
  50. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +42 -23
  51. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +5 -3
  52. data/src/core/ext/transport/chttp2/transport/internal.h +18 -3
  53. data/src/core/ext/transport/chttp2/transport/parsing.cc +9 -2
  54. data/src/core/ext/transport/chttp2/transport/writing.cc +10 -5
  55. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -14
  56. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +5 -3
  57. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +22 -0
  58. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +5 -3
  59. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +22 -0
  60. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +23 -5
  61. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +94 -3
  62. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -2
  63. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -0
  64. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +6 -3
  65. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
  66. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +24 -6
  67. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +111 -12
  68. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +9 -7
  69. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +27 -9
  70. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -1
  71. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +11 -7
  72. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +56 -12
  73. 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
  74. 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
  75. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +5 -3
  76. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
  77. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +13 -2
  78. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +49 -0
  79. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +24 -9
  80. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +66 -12
  81. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
  82. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +139 -136
  83. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +31 -15
  84. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -0
  85. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +12 -9
  86. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +15 -0
  87. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +54 -45
  88. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +135 -119
  89. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  90. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +100 -97
  91. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +15 -18
  92. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +272 -264
  93. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +117 -117
  94. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +5 -5
  95. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +5 -5
  96. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +5 -5
  97. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +12 -9
  98. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -0
  99. data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -2
  100. data/src/core/ext/xds/xds_client_stats.cc +29 -15
  101. data/src/core/ext/xds/xds_client_stats.h +24 -20
  102. data/src/core/ext/xds/xds_endpoint.cc +5 -2
  103. data/src/core/ext/xds/xds_endpoint.h +9 -1
  104. data/src/core/ext/xds/xds_http_rbac_filter.cc +1 -1
  105. data/src/core/ext/xds/xds_lb_policy_registry.cc +13 -0
  106. data/src/core/ext/xds/xds_transport_grpc.cc +1 -1
  107. data/src/core/{ext/filters/client_channel/resolver/dns/dns_resolver_selection.h → lib/backoff/random_early_detection.cc} +14 -12
  108. data/src/core/lib/backoff/random_early_detection.h +59 -0
  109. data/src/core/lib/channel/call_finalization.h +1 -1
  110. data/src/core/lib/channel/call_tracer.cc +51 -0
  111. data/src/core/lib/channel/call_tracer.h +101 -38
  112. data/src/core/lib/channel/connected_channel.cc +483 -1050
  113. data/src/core/lib/channel/context.h +8 -1
  114. data/src/core/lib/channel/promise_based_filter.cc +106 -42
  115. data/src/core/lib/channel/promise_based_filter.h +27 -13
  116. data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
  117. data/src/core/lib/config/config_vars.cc +151 -0
  118. data/src/core/lib/config/config_vars.h +127 -0
  119. data/src/core/lib/config/config_vars_non_generated.cc +51 -0
  120. data/src/core/lib/config/load_config.cc +66 -0
  121. data/src/core/lib/config/load_config.h +49 -0
  122. data/src/core/lib/debug/trace.cc +5 -6
  123. data/src/core/lib/debug/trace.h +0 -5
  124. data/src/core/lib/event_engine/event_engine.cc +37 -2
  125. data/src/core/lib/event_engine/handle_containers.h +7 -22
  126. data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
  127. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -4
  128. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -9
  129. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +48 -15
  130. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -8
  131. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -5
  132. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -3
  133. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +27 -18
  134. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +0 -3
  135. data/src/core/lib/event_engine/resolved_address.cc +2 -1
  136. data/src/core/lib/event_engine/windows/win_socket.cc +0 -1
  137. data/src/core/lib/event_engine/windows/windows_endpoint.cc +129 -82
  138. data/src/core/lib/event_engine/windows/windows_endpoint.h +21 -5
  139. data/src/core/lib/event_engine/windows/windows_engine.cc +39 -18
  140. data/src/core/lib/event_engine/windows/windows_engine.h +2 -1
  141. data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
  142. data/src/core/lib/event_engine/windows/windows_listener.h +155 -0
  143. data/src/core/lib/experiments/config.cc +3 -10
  144. data/src/core/lib/experiments/experiments.cc +7 -0
  145. data/src/core/lib/experiments/experiments.h +9 -1
  146. data/src/core/lib/gpr/log.cc +15 -28
  147. data/src/core/lib/gprpp/fork.cc +8 -14
  148. data/src/core/lib/gprpp/orphanable.h +4 -3
  149. data/src/core/lib/gprpp/per_cpu.h +9 -3
  150. data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +49 -37
  151. data/src/core/lib/gprpp/ref_counted.h +33 -34
  152. data/src/core/lib/gprpp/thd.h +16 -0
  153. data/src/core/lib/gprpp/time.cc +1 -0
  154. data/src/core/lib/gprpp/time.h +4 -4
  155. data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +2 -2
  156. data/src/core/lib/iomgr/call_combiner.h +2 -2
  157. data/src/core/lib/iomgr/endpoint_cfstream.cc +4 -2
  158. data/src/core/lib/iomgr/endpoint_pair.h +2 -2
  159. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -2
  160. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  161. data/src/core/lib/iomgr/ev_posix.cc +13 -53
  162. data/src/core/lib/iomgr/ev_posix.h +0 -3
  163. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +103 -76
  164. data/src/core/lib/iomgr/iomgr.cc +4 -8
  165. data/src/core/lib/iomgr/iomgr_windows.cc +8 -2
  166. data/src/core/lib/iomgr/pollset_set_windows.cc +9 -9
  167. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  168. data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -3
  169. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -2
  170. data/src/core/lib/iomgr/tcp_posix.cc +0 -1
  171. data/src/core/lib/iomgr/tcp_server_posix.cc +5 -16
  172. data/src/core/lib/iomgr/tcp_server_windows.cc +176 -9
  173. data/src/core/lib/iomgr/tcp_windows.cc +12 -8
  174. data/src/core/lib/load_balancing/lb_policy.cc +9 -13
  175. data/src/core/lib/load_balancing/lb_policy.h +4 -2
  176. data/src/core/lib/promise/activity.cc +22 -6
  177. data/src/core/lib/promise/activity.h +61 -24
  178. data/src/core/lib/promise/cancel_callback.h +77 -0
  179. data/src/core/lib/promise/detail/basic_seq.h +1 -1
  180. data/src/core/lib/promise/detail/promise_factory.h +4 -0
  181. data/src/core/lib/promise/for_each.h +176 -0
  182. data/src/core/lib/promise/if.h +9 -0
  183. data/src/core/lib/promise/interceptor_list.h +23 -2
  184. data/src/core/lib/promise/latch.h +89 -3
  185. data/src/core/lib/promise/loop.h +13 -9
  186. data/src/core/lib/promise/map.h +7 -0
  187. data/src/core/lib/promise/party.cc +286 -0
  188. data/src/core/lib/promise/party.h +499 -0
  189. data/src/core/lib/promise/pipe.h +197 -57
  190. data/src/core/lib/promise/poll.h +48 -0
  191. data/src/core/lib/promise/promise.h +2 -2
  192. data/src/core/lib/resource_quota/arena.cc +19 -3
  193. data/src/core/lib/resource_quota/arena.h +119 -5
  194. data/src/core/lib/resource_quota/memory_quota.cc +1 -1
  195. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +12 -35
  196. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
  197. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -59
  198. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -5
  199. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
  200. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -0
  201. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +2 -0
  202. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +5 -9
  203. data/src/core/lib/security/security_connector/ssl_utils.cc +11 -25
  204. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +12 -0
  205. data/src/core/lib/security/transport/secure_endpoint.cc +4 -2
  206. data/src/core/lib/security/transport/server_auth_filter.cc +20 -2
  207. data/src/core/lib/slice/slice.cc +1 -1
  208. data/src/core/lib/surface/builtins.cc +2 -0
  209. data/src/core/lib/surface/call.cc +926 -1024
  210. data/src/core/lib/surface/call.h +10 -0
  211. data/src/core/lib/surface/lame_client.cc +1 -0
  212. data/src/core/lib/surface/version.cc +2 -2
  213. data/src/core/lib/transport/batch_builder.cc +179 -0
  214. data/src/core/lib/transport/batch_builder.h +468 -0
  215. data/src/core/lib/transport/bdp_estimator.cc +7 -7
  216. data/src/core/lib/transport/bdp_estimator.h +10 -6
  217. data/src/core/lib/transport/custom_metadata.h +30 -0
  218. data/src/core/lib/transport/metadata_batch.cc +9 -6
  219. data/src/core/lib/transport/metadata_batch.h +58 -16
  220. data/src/core/lib/transport/parsed_metadata.h +3 -3
  221. data/src/core/lib/transport/timeout_encoding.cc +6 -1
  222. data/src/core/lib/transport/transport.cc +30 -2
  223. data/src/core/lib/transport/transport.h +70 -14
  224. data/src/core/lib/transport/transport_impl.h +7 -0
  225. data/src/core/lib/transport/transport_op_string.cc +52 -42
  226. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -2
  227. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +1 -0
  228. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +21 -4
  229. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +5 -0
  230. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
  231. data/src/core/tsi/ssl_transport_security.cc +4 -2
  232. data/src/ruby/lib/grpc/version.rb +1 -1
  233. data/third_party/abseil-cpp/absl/base/config.h +1 -1
  234. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
  235. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
  236. data/third_party/abseil-cpp/absl/flags/config.h +68 -0
  237. data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
  238. data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
  239. data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
  240. data/{src/core/lib/gprpp/global_config_custom.h → third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc} +11 -14
  241. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  242. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
  243. data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
  244. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
  245. data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  246. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
  247. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
  248. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
  249. data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  250. data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
  251. data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  252. data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
  253. data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
  254. data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
  255. data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
  256. data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
  257. data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
  258. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +12 -8
  259. data/third_party/boringssl-with-bazel/err_data.c +728 -712
  260. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
  261. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
  262. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
  263. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
  264. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
  265. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
  266. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
  267. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +174 -194
  268. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
  269. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
  270. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
  271. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
  272. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
  273. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
  274. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
  275. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
  276. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
  277. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
  278. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
  279. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
  280. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +133 -88
  281. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
  282. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +791 -791
  283. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +526 -526
  284. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
  285. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
  286. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
  287. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
  288. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
  289. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +11 -7
  290. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +4 -4
  291. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
  292. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +4 -4
  293. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +17 -10
  294. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -3
  295. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
  296. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
  297. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
  298. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +9 -5
  299. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
  300. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
  301. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
  302. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
  303. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
  304. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
  305. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
  306. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
  307. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
  308. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
  309. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
  310. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
  311. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
  312. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
  313. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
  314. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
  315. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +6 -12
  316. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -11
  317. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
  318. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
  319. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
  320. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
  321. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
  322. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
  323. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
  324. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
  325. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
  326. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
  327. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
  328. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
  329. data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
  330. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
  331. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +16 -27
  332. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
  333. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
  334. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
  335. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
  336. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
  337. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
  338. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +39 -16
  339. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
  340. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  341. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
  342. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +214 -99
  343. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +21 -5
  344. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
  345. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
  346. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
  347. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
  348. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
  349. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
  350. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
  351. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
  352. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
  353. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
  354. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
  355. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
  356. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +5 -5
  357. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
  358. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
  359. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
  360. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
  361. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
  362. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
  363. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
  364. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
  365. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
  366. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
  367. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
  368. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
  369. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +35 -27
  370. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
  371. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
  372. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
  373. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
  374. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
  375. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  376. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
  377. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
  378. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
  379. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
  380. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
  381. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
  382. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
  383. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
  384. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
  385. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
  386. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
  387. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
  388. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
  389. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
  390. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
  391. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
  392. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
  393. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
  394. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
  395. data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
  396. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
  397. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +21 -6
  398. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
  399. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
  400. data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
  401. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +25 -25
  402. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +91 -17
  403. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +5 -5
  404. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +34 -12
  405. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +54 -23
  406. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +44 -60
  407. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
  408. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +60 -53
  409. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
  410. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +48 -36
  411. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
  412. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +2 -7
  413. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -3
  414. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -1
  415. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +8 -0
  416. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +42 -14
  417. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
  418. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
  419. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -15
  420. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
  421. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +2 -4
  422. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +71 -43
  423. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +14 -16
  424. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -4
  425. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
  426. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
  427. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
  428. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
  429. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
  430. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
  431. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -45
  432. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
  433. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +22 -0
  434. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +63 -52
  435. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +107 -62
  436. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +58 -31
  437. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
  438. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +523 -422
  439. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  440. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
  441. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
  442. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
  443. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
  444. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
  445. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +19 -6
  446. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +32 -14
  447. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
  448. data/third_party/boringssl-with-bazel/src/crypto/internal.h +373 -18
  449. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +61 -0
  450. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +205 -0
  451. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
  452. data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
  453. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
  454. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +13 -1
  455. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
  456. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
  457. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +629 -613
  458. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
  459. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
  460. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
  461. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
  462. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
  463. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
  464. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
  465. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
  466. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
  467. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
  468. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
  469. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  470. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
  471. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
  472. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
  473. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +3 -4
  474. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
  475. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
  476. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
  477. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
  478. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +66 -34
  479. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +190 -77
  480. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +81 -284
  481. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +109 -42
  482. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
  483. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +54 -55
  484. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
  485. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
  486. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
  487. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +284 -331
  488. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
  489. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
  490. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +67 -50
  491. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +153 -150
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +786 -0
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +227 -252
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +230 -224
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
  504. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +534 -618
  505. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
  506. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +116 -182
  507. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
  508. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +181 -202
  509. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
  510. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
  511. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1865 -2050
  512. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +433 -462
  513. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
  514. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +267 -263
  515. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
  516. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
  517. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
  518. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
  519. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
  520. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +326 -415
  521. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
  522. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
  523. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
  524. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
  525. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
  526. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
  527. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
  528. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
  529. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
  530. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
  531. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
  532. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
  533. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +78 -170
  534. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
  535. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
  536. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
  537. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
  538. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
  539. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +309 -346
  540. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +341 -365
  541. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
  542. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
  543. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
  544. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
  545. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
  546. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +122 -125
  547. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
  548. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +247 -253
  549. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
  550. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
  551. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
  552. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
  553. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +143 -136
  554. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +664 -707
  555. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +83 -75
  556. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1062 -1146
  557. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +8 -4
  558. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
  559. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +211 -187
  560. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
  561. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -14
  562. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +21 -2
  563. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
  564. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
  565. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
  566. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
  567. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
  568. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
  569. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
  570. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
  571. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
  572. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  573. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
  574. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
  575. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
  576. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
  577. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +22 -30
  578. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  579. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
  580. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +41 -16
  581. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
  582. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
  583. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +13 -0
  584. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
  585. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -15
  586. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
  587. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
  588. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +7 -4
  589. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
  590. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +13 -21
  591. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -75
  592. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
  593. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +384 -286
  594. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +5 -6
  595. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
  596. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +18 -7
  597. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +49 -23
  598. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
  599. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1592 -1074
  600. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +202 -205
  601. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
  602. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
  603. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
  604. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
  605. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
  606. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +34 -20
  607. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +65 -34
  608. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
  609. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
  610. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +32 -28
  611. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
  612. data/third_party/boringssl-with-bazel/src/ssl/internal.h +130 -98
  613. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +27 -11
  614. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  615. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
  616. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
  617. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +39 -65
  618. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
  619. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
  620. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +30 -33
  621. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +77 -100
  622. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +120 -107
  623. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +164 -30
  624. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +150 -60
  625. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +22 -11
  626. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
  627. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
  628. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +5 -43
  629. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
  630. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +2 -2
  631. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +22 -34
  632. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
  633. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
  634. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
  635. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
  636. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
  637. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
  638. metadata +107 -72
  639. data/src/core/ext/filters/client_channel/lb_call_state_internal.h +0 -39
  640. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
  641. data/src/core/lib/gprpp/global_config.h +0 -93
  642. data/src/core/lib/gprpp/global_config_env.cc +0 -140
  643. data/src/core/lib/gprpp/global_config_env.h +0 -133
  644. data/src/core/lib/gprpp/global_config_generic.h +0 -40
  645. data/src/core/lib/promise/intra_activity_waiter.h +0 -55
  646. data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
  647. data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -29
  648. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
  649. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
  650. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
  651. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
  652. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
  653. data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
  654. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
  655. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
  656. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
  657. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
  658. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
  659. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
  660. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
  661. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
  662. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
  663. /data/src/core/lib/gpr/{log_android.cc → android/log.cc} +0 -0
  664. /data/src/core/lib/gpr/{cpu_iphone.cc → iphone/cpu.cc} +0 -0
  665. /data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +0 -0
  666. /data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +0 -0
  667. /data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +0 -0
  668. /data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +0 -0
  669. /data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +0 -0
  670. /data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +0 -0
  671. /data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +0 -0
  672. /data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +0 -0
  673. /data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +0 -0
  674. /data/src/core/lib/gpr/{cpu_windows.cc → windows/cpu.cc} +0 -0
  675. /data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +0 -0
  676. /data/src/core/lib/gpr/{string_windows.cc → windows/string.cc} +0 -0
  677. /data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +0 -0
  678. /data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +0 -0
  679. /data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +0 -0
  680. /data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +0 -0
  681. /data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +0 -0
  682. /data/src/core/lib/gprpp/{env_posix.cc → posix/env.cc} +0 -0
  683. /data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +0 -0
  684. /data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +0 -0
  685. /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(const char* name)
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, bw / 125000.0,
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, name_,
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", name_,
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(const char* name);
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, name_,
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, name_,
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
- const char* name_;
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(MementoType content_type) {
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(MementoType te) {
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(MementoType content_type) {
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(MementoType content_type) {
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(MementoType x) {
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) { return std::string(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(MementoType x) { return x.ToString(); }
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(MementoType te);
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(MementoType content_type);
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(MementoType content_type);
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(MementoType content_type);
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(MementoType x) {
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(MementoType x) { return x.ToString(); }
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 MementoType& value) {
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(MementoType x) { return x; }
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(MementoType) { return "<internal-lb-stats>"; }
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(MementoType x);
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 = absl::string_view;
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::Encode, log_fn);
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(MementoType value) { ... }
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::WaitForReady, grpc_core::GrpcTrailersOnly>;
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::DisplayValue);
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::DisplayValue);
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::DisplayValue);
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 - 1) / 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
- hdl->Set(GrpcStatusMetadata(), static_cast<grpc_status_code>(status.code()));
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(status.message()));
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