grpc 1.69.0 → 1.70.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +251 -249
  3. data/include/grpc/support/atm.h +0 -13
  4. data/src/core/call/request_buffer.cc +224 -0
  5. data/src/core/call/request_buffer.h +192 -0
  6. data/src/core/client_channel/client_channel.cc +2 -3
  7. data/src/core/client_channel/client_channel_args.h +21 -0
  8. data/src/core/client_channel/client_channel_filter.h +1 -3
  9. data/src/core/client_channel/retry_interceptor.cc +406 -0
  10. data/src/core/client_channel/retry_interceptor.h +157 -0
  11. data/src/core/client_channel/retry_service_config.h +13 -0
  12. data/src/core/client_channel/retry_throttle.cc +33 -18
  13. data/src/core/client_channel/retry_throttle.h +3 -3
  14. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +596 -94
  15. data/src/core/ext/transport/chttp2/server/chttp2_server.h +189 -13
  16. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +1 -0
  17. data/src/core/ext/transport/chttp2/transport/frame_security.cc +1 -3
  18. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +40 -1
  19. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +3 -1
  20. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +66 -36
  21. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +19 -17
  22. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +116 -0
  23. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +31 -5
  24. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +2 -0
  25. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +67 -6
  26. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +12 -8
  27. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +151 -0
  28. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +60 -0
  29. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +32 -0
  30. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +228 -21
  31. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +65 -17
  32. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +6 -0
  33. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +7 -106
  34. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +7 -28
  35. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -2
  36. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +85 -0
  37. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +25 -3
  38. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +2 -1
  39. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +152 -0
  40. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +40 -10
  41. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +2 -0
  42. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +135 -4
  43. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +41 -9
  44. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +2 -0
  45. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +0 -2
  46. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +0 -1
  47. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +0 -1
  48. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +16 -0
  49. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +3 -2
  50. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +60 -0
  51. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +13 -2
  52. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +0 -1
  53. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +0 -1
  54. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +102 -24
  55. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +28 -19
  56. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +251 -18
  57. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +41 -16
  58. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +2 -0
  59. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +2 -1
  60. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +11 -10
  61. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +418 -413
  62. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +161 -153
  63. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +5 -0
  64. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +267 -261
  65. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +46 -0
  66. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +33 -0
  67. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +29 -19
  68. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +15 -0
  69. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +58 -65
  70. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +0 -5
  71. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +73 -63
  72. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +49 -48
  73. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +117 -100
  74. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  75. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +905 -897
  76. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +5 -0
  77. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +15 -18
  78. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +460 -457
  79. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +16 -19
  80. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +95 -95
  81. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +202 -191
  82. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +148 -135
  83. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +5 -0
  84. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +23 -22
  85. data/src/core/filter/filter_args.h +112 -0
  86. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +1 -1
  87. data/src/core/lib/channel/promise_based_filter.h +5 -79
  88. data/src/core/lib/debug/trace_flags.cc +2 -0
  89. data/src/core/lib/debug/trace_flags.h +1 -0
  90. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +14 -0
  91. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +7 -2
  92. data/src/core/lib/event_engine/posix_engine/posix_engine.h +0 -2
  93. data/src/core/lib/event_engine/windows/windows_engine.cc +1 -0
  94. data/src/core/lib/experiments/experiments.cc +90 -39
  95. data/src/core/lib/experiments/experiments.h +43 -24
  96. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +1 -1
  97. data/src/core/lib/promise/activity.cc +2 -0
  98. data/src/core/lib/promise/activity.h +29 -8
  99. data/src/core/lib/promise/map.h +42 -0
  100. data/src/core/lib/promise/party.cc +36 -1
  101. data/src/core/lib/promise/party.h +13 -5
  102. data/src/core/lib/promise/sleep.h +1 -0
  103. data/src/core/lib/promise/status_flag.h +10 -0
  104. data/src/core/lib/resource_quota/arena.h +8 -0
  105. data/src/core/lib/resource_quota/connection_quota.h +4 -0
  106. data/src/core/lib/surface/call_utils.h +2 -0
  107. data/src/core/lib/surface/client_call.cc +43 -35
  108. data/src/core/lib/surface/client_call.h +5 -0
  109. data/src/core/lib/surface/event_string.cc +7 -1
  110. data/src/core/lib/surface/init_internally.h +13 -2
  111. data/src/core/lib/surface/server_call.cc +100 -85
  112. data/src/core/lib/surface/version.cc +2 -2
  113. data/src/core/lib/transport/call_filters.cc +10 -4
  114. data/src/core/lib/transport/call_filters.h +8 -0
  115. data/src/core/lib/transport/call_spine.cc +36 -71
  116. data/src/core/lib/transport/call_spine.h +131 -7
  117. data/src/core/lib/transport/call_state.h +132 -39
  118. data/src/core/lib/transport/interception_chain.cc +8 -0
  119. data/src/core/lib/transport/interception_chain.h +9 -0
  120. data/src/core/load_balancing/endpoint_list.cc +10 -0
  121. data/src/core/load_balancing/endpoint_list.h +13 -6
  122. data/src/core/load_balancing/lb_policy.h +0 -8
  123. data/src/core/load_balancing/pick_first/pick_first.cc +89 -56
  124. data/src/core/load_balancing/ring_hash/ring_hash.cc +158 -70
  125. data/src/core/load_balancing/ring_hash/ring_hash.h +4 -11
  126. data/src/core/load_balancing/round_robin/round_robin.cc +9 -14
  127. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +12 -15
  128. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +4 -4
  129. data/src/core/resolver/xds/xds_dependency_manager.cc +139 -135
  130. data/src/core/resolver/xds/xds_dependency_manager.h +24 -18
  131. data/src/core/resolver/xds/xds_resolver.cc +28 -47
  132. data/src/core/server/server.cc +290 -24
  133. data/src/core/server/server.h +199 -61
  134. data/src/core/server/xds_server_config_fetcher.cc +78 -142
  135. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  136. data/src/core/util/backoff.cc +15 -4
  137. data/src/core/util/http_client/httpcli.cc +66 -18
  138. data/src/core/util/http_client/httpcli.h +14 -4
  139. data/src/core/util/matchers.h +5 -10
  140. data/src/core/util/ref_counted.h +1 -0
  141. data/src/core/util/ref_counted_ptr.h +1 -1
  142. data/src/core/util/useful.h +9 -11
  143. data/src/core/xds/grpc/xds_endpoint_parser.cc +54 -23
  144. data/src/core/xds/grpc/xds_metadata.h +8 -0
  145. data/src/core/xds/xds_client/xds_api.cc +0 -223
  146. data/src/core/xds/xds_client/xds_api.h +1 -133
  147. data/src/core/xds/xds_client/xds_client.cc +599 -466
  148. data/src/core/xds/xds_client/xds_client.h +107 -26
  149. data/src/core/xds/xds_client/xds_resource_type_impl.h +10 -5
  150. data/src/ruby/ext/grpc/extconf.rb +1 -0
  151. data/src/ruby/lib/grpc/version.rb +1 -1
  152. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_bitstr.c → a_bitstr.cc} +3 -2
  153. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_d2i_fp.c → a_d2i_fp.cc} +1 -1
  154. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_dup.c → a_dup.cc} +1 -1
  155. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_i2d_fp.c → a_i2d_fp.cc} +1 -1
  156. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_int.c → a_int.cc} +2 -1
  157. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_mbstr.c → a_mbstr.cc} +9 -7
  158. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_object.c → a_object.cc} +1 -1
  159. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_strnid.c → a_strnid.cc} +7 -4
  160. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_type.c → a_type.cc} +4 -4
  161. data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_lib.c → asn1_lib.cc} +4 -4
  162. data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn_pack.c → asn_pack.cc} +2 -2
  163. data/third_party/boringssl-with-bazel/src/crypto/asn1/{posix_time.c → posix_time.cc} +2 -2
  164. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_dec.c → tasn_dec.cc} +4 -3
  165. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_enc.c → tasn_enc.cc} +9 -6
  166. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_fre.c → tasn_fre.cc} +14 -20
  167. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_new.c → tasn_new.cc} +7 -6
  168. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_utl.c → tasn_utl.cc} +13 -10
  169. data/third_party/boringssl-with-bazel/src/crypto/base64/{base64.c → base64.cc} +9 -12
  170. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +7 -1
  171. data/third_party/boringssl-with-bazel/src/crypto/bio/{bio.c → bio.cc} +32 -58
  172. data/third_party/boringssl-with-bazel/src/crypto/bio/{bio_mem.c → bio_mem.cc} +8 -7
  173. data/third_party/boringssl-with-bazel/src/crypto/bio/{connect.c → connect.cc} +24 -16
  174. data/third_party/boringssl-with-bazel/src/crypto/bio/{file.c → file.cc} +3 -3
  175. data/third_party/boringssl-with-bazel/src/crypto/bio/{pair.c → pair.cc} +22 -20
  176. data/third_party/boringssl-with-bazel/src/crypto/bio/{printf.c → printf.cc} +2 -2
  177. data/third_party/boringssl-with-bazel/src/crypto/bio/{socket_helper.c → socket_helper.cc} +1 -1
  178. data/third_party/boringssl-with-bazel/src/crypto/blake2/{blake2.c → blake2.cc} +2 -2
  179. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/{bn_asn1.c → bn_asn1.cc} +1 -1
  180. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/{convert.c → convert.cc} +21 -21
  181. data/third_party/boringssl-with-bazel/src/crypto/buf/{buf.c → buf.cc} +6 -3
  182. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{asn1_compat.c → asn1_compat.cc} +1 -1
  183. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{ber.c → ber.cc} +1 -1
  184. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{cbb.c → cbb.cc} +33 -49
  185. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{cbs.c → cbs.cc} +20 -27
  186. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +1 -1
  187. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{unicode.c → unicode.cc} +1 -1
  188. data/third_party/boringssl-with-bazel/src/crypto/chacha/{chacha.c → chacha.cc} +1 -1
  189. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +1 -1
  190. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_aesctrhmac.c → e_aesctrhmac.cc} +1 -1
  191. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_aesgcmsiv.c → e_aesgcmsiv.cc} +23 -26
  192. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_chacha20poly1305.c → e_chacha20poly1305.cc} +1 -8
  193. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_des.c → e_des.cc} +61 -49
  194. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_null.c → e_null.cc} +12 -9
  195. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_rc2.c → e_rc2.cc} +23 -19
  196. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_rc4.c → e_rc4.cc} +10 -8
  197. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_tls.c → e_tls.cc} +2 -1
  198. data/third_party/boringssl-with-bazel/src/crypto/conf/{conf.c → conf.cc} +17 -14
  199. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +1 -1
  200. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_apple.c → cpu_aarch64_apple.cc} +2 -2
  201. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_fuchsia.c → cpu_aarch64_fuchsia.cc} +2 -2
  202. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_linux.c → cpu_aarch64_linux.cc} +2 -2
  203. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_openbsd.c → cpu_aarch64_openbsd.cc} +4 -4
  204. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_sysreg.c → cpu_aarch64_sysreg.cc} +3 -2
  205. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_win.c → cpu_aarch64_win.cc} +2 -2
  206. data/third_party/boringssl-with-bazel/src/crypto/{cpu_arm_freebsd.c → cpu_arm_freebsd.cc} +3 -3
  207. data/third_party/boringssl-with-bazel/src/crypto/{cpu_arm_linux.c → cpu_arm_linux.cc} +5 -5
  208. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +1 -1
  209. data/third_party/boringssl-with-bazel/src/crypto/{cpu_intel.c → cpu_intel.cc} +47 -32
  210. data/third_party/boringssl-with-bazel/src/crypto/{crypto.c → crypto.cc} +6 -11
  211. data/third_party/boringssl-with-bazel/src/crypto/curve25519/{curve25519.c → curve25519.cc} +28 -31
  212. data/third_party/boringssl-with-bazel/src/crypto/curve25519/{curve25519_64_adx.c → curve25519_64_adx.cc} +1 -1
  213. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +1 -1
  214. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  215. data/third_party/boringssl-with-bazel/src/crypto/curve25519/{spake25519.c → spake25519.cc} +20 -16
  216. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/{dh_asn1.c → dh_asn1.cc} +2 -2
  217. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/{digest_extra.c → digest_extra.cc} +113 -31
  218. data/third_party/boringssl-with-bazel/src/crypto/dsa/{dsa.c → dsa.cc} +153 -154
  219. data/third_party/boringssl-with-bazel/src/crypto/dsa/{dsa_asn1.c → dsa_asn1.cc} +2 -2
  220. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +1 -3
  221. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/{ec_asn1.c → ec_asn1.cc} +35 -0
  222. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/{ec_derive.c → ec_derive.cc} +1 -1
  223. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/{hash_to_curve.c → hash_to_curve.cc} +66 -64
  224. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +1 -1
  225. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/{ecdsa_asn1.c → ecdsa_asn1.cc} +15 -25
  226. data/third_party/boringssl-with-bazel/src/crypto/engine/{engine.c → engine.cc} +12 -8
  227. data/third_party/boringssl-with-bazel/src/crypto/err/{err.c → err.cc} +24 -27
  228. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +1 -1
  229. data/third_party/boringssl-with-bazel/src/crypto/evp/{evp.c → evp.cc} +8 -9
  230. data/third_party/boringssl-with-bazel/src/crypto/evp/{evp_ctx.c → evp_ctx.cc} +7 -8
  231. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_dh.c → p_dh.cc} +23 -14
  232. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_dh_asn1.c → p_dh_asn1.cc} +38 -21
  233. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_dsa_asn1.c → p_dsa_asn1.cc} +19 -24
  234. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ec.c → p_ec.cc} +20 -23
  235. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ec_asn1.c → p_ec_asn1.cc} +20 -20
  236. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ed25519.c → p_ed25519.cc} +22 -19
  237. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ed25519_asn1.c → p_ed25519_asn1.cc} +14 -13
  238. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_hkdf.c → p_hkdf.cc} +18 -14
  239. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_rsa.c → p_rsa.cc} +38 -37
  240. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_rsa_asn1.c → p_rsa_asn1.cc} +16 -18
  241. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_x25519.c → p_x25519.cc} +22 -19
  242. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_x25519_asn1.c → p_x25519_asn1.cc} +18 -17
  243. data/third_party/boringssl-with-bazel/src/crypto/evp/{pbkdf.c → pbkdf.cc} +2 -2
  244. data/third_party/boringssl-with-bazel/src/crypto/evp/{print.c → print.cc} +4 -5
  245. data/third_party/boringssl-with-bazel/src/crypto/evp/{scrypt.c → scrypt.cc} +7 -5
  246. data/third_party/boringssl-with-bazel/src/crypto/{ex_data.c → ex_data.cc} +3 -4
  247. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes_nohw.c.inc → aes_nohw.cc.inc} +1 -1
  248. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +1 -5
  249. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{key_wrap.c.inc → key_wrap.cc.inc} +1 -1
  250. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{bcm.c → bcm.cc} +96 -101
  251. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +165 -12
  252. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{add.c.inc → add.cc.inc} +1 -0
  253. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/{x86_64-gcc.c.inc → x86_64-gcc.cc.inc} +4 -4
  254. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bn.c.inc → bn.cc.inc} +12 -24
  255. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{ctx.c.inc → ctx.cc.inc} +5 -7
  256. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div.c.inc → div.cc.inc} +29 -38
  257. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div_extra.c.inc → div_extra.cc.inc} +1 -1
  258. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{exponentiation.c.inc → exponentiation.cc.inc} +22 -22
  259. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd.c.inc → gcd.cc.inc} +3 -6
  260. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd_extra.c.inc → gcd_extra.cc.inc} +33 -25
  261. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery.c.inc → montgomery.cc.inc} +10 -17
  262. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{mul.c.inc → mul.cc.inc} +11 -15
  263. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{prime.c.inc → prime.cc.inc} +31 -34
  264. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{shift.c.inc → shift.cc.inc} +3 -4
  265. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{aead.c.inc → aead.cc.inc} +18 -10
  266. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{cipher.c.inc → cipher.cc.inc} +6 -9
  267. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aes.c.inc → e_aes.cc.inc} +46 -54
  268. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/{cmac.c.inc → cmac.cc.inc} +6 -6
  269. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +14 -10
  270. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{dh.c.inc → dh.cc.inc} +15 -19
  271. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +1 -3
  272. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digest.c.inc → digest.cc.inc} +17 -13
  273. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digests.c.inc → digests.cc.inc} +29 -113
  274. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/{digestsign.c.inc → digestsign.cc.inc} +3 -3
  275. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +1 -1
  276. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec.c.inc → ec.cc.inc} +10 -15
  277. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_key.c.inc → ec_key.cc.inc} +12 -14
  278. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{felem.c.inc → felem.cc.inc} +1 -1
  279. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{oct.c.inc → oct.cc.inc} +5 -6
  280. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p224-64.c.inc → p224-64.cc.inc} +1 -1
  281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h +1 -1
  282. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-nistz.c.inc → p256-nistz.cc.inc} +15 -13
  283. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256.c.inc → p256.cc.inc} +1 -1
  284. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
  285. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{scalar.c.inc → scalar.cc.inc} +1 -1
  286. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple_mul.c.inc → simple_mul.cc.inc} +1 -1
  287. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{util.c.inc → util.cc.inc} +1 -1
  288. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{wnaf.c.inc → wnaf.cc.inc} +24 -15
  289. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/{ecdh.c.inc → ecdh.cc.inc} +14 -5
  290. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/{ecdsa.c.inc → ecdsa.cc.inc} +6 -7
  291. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +1 -1
  292. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{fips_shared_support.c → fips_shared_support.cc} +2 -3
  293. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/{hkdf.c.inc → hkdf.cc.inc} +1 -1
  294. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/{hmac.c.inc → hmac.cc.inc} +3 -2
  295. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm.c.inc → gcm.cc.inc} +69 -21
  296. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm_nohw.c.inc → gcm_nohw.cc.inc} +1 -1
  297. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +53 -33
  298. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{polyval.c.inc → polyval.cc.inc} +2 -3
  299. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{ctrdrbg.c.inc → ctrdrbg.cc.inc} +5 -4
  300. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -1
  301. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{rand.c.inc → rand.cc.inc} +20 -18
  302. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{blinding.c.inc → blinding.cc.inc} +5 -4
  303. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{padding.c.inc → padding.cc.inc} +21 -21
  304. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa.c.inc → rsa.cc.inc} +77 -73
  305. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa_impl.c.inc → rsa_impl.cc.inc} +50 -53
  306. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{fips.c.inc → fips.cc.inc} +14 -6
  307. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{self_check.c.inc → self_check.cc.inc} +56 -52
  308. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/{service_indicator.c.inc → service_indicator.cc.inc} +10 -11
  309. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +2 -4
  310. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha1.c.inc → sha1.cc.inc} +26 -33
  311. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha256.c.inc → sha256.cc.inc} +37 -55
  312. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha512.c.inc → sha512.cc.inc} +48 -76
  313. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +1 -1
  314. data/third_party/boringssl-with-bazel/src/crypto/hpke/{hpke.c → hpke.cc} +7 -4
  315. data/third_party/boringssl-with-bazel/src/crypto/hrss/{hrss.c → hrss.cc} +53 -110
  316. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +1 -1
  317. data/third_party/boringssl-with-bazel/src/crypto/internal.h +191 -248
  318. data/third_party/boringssl-with-bazel/src/crypto/keccak/internal.h +1 -1
  319. data/third_party/boringssl-with-bazel/src/crypto/keccak/{keccak.c → keccak.cc} +1 -1
  320. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +1 -1
  321. data/third_party/boringssl-with-bazel/src/crypto/kyber/{kyber.c → kyber.cc} +1 -1
  322. data/third_party/boringssl-with-bazel/src/crypto/lhash/{lhash.c → lhash.cc} +8 -7
  323. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/md4/md4.c.inc → md4/md4.cc} +8 -12
  324. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/md5 → md5}/internal.h +1 -1
  325. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/md5/md5.c.inc → md5/md5.cc} +4 -3
  326. data/third_party/boringssl-with-bazel/src/crypto/{mem.c → mem.cc} +34 -22
  327. data/third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h +4 -1
  328. data/third_party/boringssl-with-bazel/src/crypto/mldsa/{mldsa.c → mldsa.cc} +646 -543
  329. data/third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h +1 -1
  330. data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +8 -8
  331. data/third_party/boringssl-with-bazel/src/crypto/obj/{obj.c → obj.cc} +27 -30
  332. data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_info.c → pem_info.cc} +2 -2
  333. data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_lib.c → pem_lib.cc} +3 -4
  334. data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_oth.c → pem_oth.cc} +1 -1
  335. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +1 -1
  336. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/{pkcs7.c → pkcs7.cc} +5 -5
  337. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/{pkcs7_x509.c → pkcs7_x509.cc} +26 -25
  338. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +2 -2
  339. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/{p5_pbev2.c → p5_pbev2.cc} +2 -2
  340. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/{pkcs8.c → pkcs8.cc} +159 -158
  341. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/{pkcs8_x509.c → pkcs8_x509.cc} +90 -97
  342. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +1 -1
  343. data/third_party/boringssl-with-bazel/src/crypto/poly1305/{poly1305.c → poly1305.cc} +3 -3
  344. data/third_party/boringssl-with-bazel/src/crypto/poly1305/{poly1305_arm.c → poly1305_arm.cc} +4 -2
  345. data/third_party/boringssl-with-bazel/src/crypto/poly1305/{poly1305_vec.c → poly1305_vec.cc} +14 -11
  346. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -1
  347. data/third_party/boringssl-with-bazel/src/crypto/pool/{pool.c → pool.cc} +12 -11
  348. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{deterministic.c → deterministic.cc} +2 -2
  349. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{fork_detect.c → fork_detect.cc} +11 -12
  350. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{forkunsafe.c → forkunsafe.cc} +2 -2
  351. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{getentropy.c → getentropy.cc} +1 -1
  352. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getrandom_fillin.h +1 -1
  353. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{ios.c → ios.cc} +1 -1
  354. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{passive.c → passive.cc} +22 -18
  355. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{rand_extra.c → rand_extra.cc} +1 -1
  356. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h +1 -1
  357. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{trusty.c → trusty.cc} +1 -1
  358. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{urandom.c → urandom.cc} +7 -7
  359. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{windows.c → windows.cc} +1 -1
  360. data/third_party/boringssl-with-bazel/src/crypto/{refcount.c → refcount.cc} +1 -1
  361. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/{rsa_asn1.c → rsa_asn1.cc} +2 -2
  362. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/{rsa_crypt.c → rsa_crypt.cc} +81 -78
  363. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_extra.cc +17 -0
  364. data/third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc +52 -0
  365. data/third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc +87 -0
  366. data/third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc +104 -0
  367. data/third_party/boringssl-with-bazel/src/crypto/siphash/{siphash.c → siphash.cc} +1 -1
  368. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/address.h +123 -0
  369. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/fors.cc +169 -0
  370. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/fors.h +58 -0
  371. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/internal.h +63 -0
  372. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/merkle.cc +161 -0
  373. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/merkle.h +70 -0
  374. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/params.h +83 -0
  375. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc +307 -0
  376. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/thash.cc +173 -0
  377. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/thash.h +85 -0
  378. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/wots.cc +171 -0
  379. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/wots.h +50 -0
  380. data/third_party/boringssl-with-bazel/src/crypto/stack/{stack.c → stack.cc} +10 -6
  381. data/third_party/boringssl-with-bazel/src/crypto/{thread_none.c → thread_none.cc} +1 -1
  382. data/third_party/boringssl-with-bazel/src/crypto/{thread_pthread.c → thread_pthread.cc} +9 -8
  383. data/third_party/boringssl-with-bazel/src/crypto/{thread_win.c → thread_win.cc} +21 -17
  384. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +1 -1
  385. data/third_party/boringssl-with-bazel/src/crypto/trust_token/{pmbtoken.c → pmbtoken.cc} +146 -158
  386. data/third_party/boringssl-with-bazel/src/crypto/trust_token/{trust_token.c → trust_token.cc} +19 -21
  387. data/third_party/boringssl-with-bazel/src/crypto/trust_token/{voprf.c → voprf.cc} +165 -169
  388. data/third_party/boringssl-with-bazel/src/crypto/x509/{a_digest.c → a_digest.cc} +1 -1
  389. data/third_party/boringssl-with-bazel/src/crypto/x509/{a_sign.c → a_sign.cc} +37 -34
  390. data/third_party/boringssl-with-bazel/src/crypto/x509/{a_verify.c → a_verify.cc} +1 -1
  391. data/third_party/boringssl-with-bazel/src/crypto/x509/{algorithm.c → algorithm.cc} +1 -1
  392. data/third_party/boringssl-with-bazel/src/crypto/x509/{asn1_gen.c → asn1_gen.cc} +5 -6
  393. data/third_party/boringssl-with-bazel/src/crypto/x509/{by_dir.c → by_dir.cc} +7 -6
  394. data/third_party/boringssl-with-bazel/src/crypto/x509/{policy.c → policy.cc} +188 -178
  395. data/third_party/boringssl-with-bazel/src/crypto/x509/{rsa_pss.c → rsa_pss.cc} +48 -44
  396. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_akey.c → v3_akey.cc} +4 -2
  397. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_alt.c → v3_alt.cc} +5 -5
  398. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_bcons.c → v3_bcons.cc} +3 -1
  399. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_bitst.c → v3_bitst.cc} +6 -3
  400. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_conf.c → v3_conf.cc} +5 -5
  401. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_cpols.c → v3_cpols.cc} +47 -41
  402. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_crld.c → v3_crld.cc} +3 -2
  403. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_enum.c → v3_enum.cc} +5 -2
  404. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_extku.c → v3_extku.cc} +3 -1
  405. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_genn.c → v3_genn.cc} +7 -7
  406. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_ia5.c → v3_ia5.cc} +3 -2
  407. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_info.c → v3_info.cc} +4 -2
  408. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_int.c → v3_int.cc} +3 -1
  409. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_lib.c → v3_lib.cc} +9 -6
  410. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_ncons.c → v3_ncons.cc} +3 -3
  411. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_ocsp.c → v3_ocsp.cc} +4 -1
  412. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_pcons.c → v3_pcons.cc} +3 -3
  413. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_pmaps.c → v3_pmaps.cc} +3 -3
  414. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_prn.c → v3_prn.cc} +2 -1
  415. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_purp.c → v3_purp.cc} +16 -8
  416. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_skey.c → v3_skey.cc} +6 -3
  417. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_utl.c → v3_utl.cc} +15 -10
  418. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_att.c → x509_att.cc} +3 -2
  419. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_lu.c → x509_lu.cc} +6 -5
  420. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_v3.c → x509_v3.cc} +2 -2
  421. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_vfy.c → x509_vfy.cc} +216 -212
  422. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_vpm.c → x509_vpm.cc} +55 -13
  423. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509spki.c → x509spki.cc} +3 -3
  424. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_all.c → x_all.cc} +10 -6
  425. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_crl.c → x_crl.cc} +6 -6
  426. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_name.c → x_name.cc} +39 -32
  427. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_pubkey.c → x_pubkey.cc} +4 -2
  428. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_x509.c → x_x509.cc} +48 -44
  429. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_x509a.c → x_x509a.cc} +4 -2
  430. data/third_party/boringssl-with-bazel/src/gen/crypto/{err_data.c → err_data.cc} +359 -358
  431. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -1
  432. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +1 -1
  433. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +1 -1
  434. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +237 -275
  435. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +12 -5
  436. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +82 -0
  437. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -1
  438. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +1 -1
  439. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -1
  440. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  441. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +1 -1
  442. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +1 -1
  443. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +13 -2
  444. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +1 -1
  445. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +1 -1
  446. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -0
  447. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -1
  448. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  449. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +1 -1
  450. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +1 -1
  451. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +17 -1
  452. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +1 -1
  453. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -1
  454. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +1 -1
  455. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +1 -1
  456. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
  457. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +1 -1
  458. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +1 -1
  459. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +1 -1
  460. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +8 -8
  461. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +1 -1
  462. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +1 -1
  463. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +1 -1
  464. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -1
  465. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +1 -1
  466. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +1 -1
  467. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +1 -1
  468. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +1 -1
  469. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +2 -2
  470. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +1 -1
  471. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +1 -1
  472. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +1 -1
  473. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +1 -1
  474. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +10 -5
  475. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +1 -1
  476. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +2 -40
  477. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +1 -1
  478. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +133 -0
  479. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +6 -1
  480. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +1 -1
  481. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +160 -116
  482. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -0
  483. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +1 -1
  484. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +2 -2
  485. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +1 -1
  486. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -1
  487. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -1
  488. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +1 -1
  489. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3_errors.h +2 -2
  490. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -6
  491. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +667 -322
  492. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +116 -119
  493. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +163 -21
  494. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +4 -12
  495. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +94 -49
  496. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +296 -198
  497. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +23 -14
  498. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +363 -343
  499. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +48 -58
  500. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +44 -36
  501. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +145 -159
  502. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +65 -58
  503. data/third_party/boringssl-with-bazel/src/ssl/internal.h +910 -356
  504. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +29 -41
  505. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +13 -11
  506. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +2 -2
  507. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +90 -183
  508. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +38 -64
  509. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -1
  510. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +103 -44
  511. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +210 -220
  512. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +70 -12
  513. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +20 -17
  514. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +146 -169
  515. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +15 -16
  516. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +79 -95
  517. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -9
  518. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +91 -16
  519. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +30 -16
  520. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +51 -56
  521. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +22 -25
  522. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +43 -27
  523. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +63 -59
  524. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +204 -121
  525. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +86 -59
  526. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +51 -62
  527. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +37 -25
  528. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +6 -0
  529. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +6 -0
  530. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +4 -1
  531. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1 -1
  532. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +3 -0
  533. metadata +339 -339
  534. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +0 -426
  535. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +0 -87
  536. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +0 -32
  537. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +0 -408
  538. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +0 -124
  539. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +0 -38
  540. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +0 -108
  541. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +0 -33
  542. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -67
  543. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -48
  544. data/src/core/util/atm.cc +0 -34
  545. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +0 -1539
  546. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +0 -58
  547. data/third_party/boringssl-with-bazel/src/crypto/spx/address.c +0 -101
  548. data/third_party/boringssl-with-bazel/src/crypto/spx/address.h +0 -50
  549. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.c +0 -133
  550. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.h +0 -54
  551. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.c +0 -150
  552. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.h +0 -61
  553. data/third_party/boringssl-with-bazel/src/crypto/spx/params.h +0 -71
  554. data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +0 -140
  555. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c +0 -53
  556. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.h +0 -44
  557. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.c +0 -136
  558. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.h +0 -70
  559. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.c +0 -135
  560. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.h +0 -45
  561. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +0 -129
  562. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/spx.h +0 -90
  563. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_bool.c → a_bool.cc} +0 -0
  564. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_gentm.c → a_gentm.cc} +0 -0
  565. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_octet.c → a_octet.cc} +0 -0
  566. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_strex.c → a_strex.cc} +0 -0
  567. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_time.c → a_time.cc} +0 -0
  568. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_utctm.c → a_utctm.cc} +0 -0
  569. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_par.c → asn1_par.cc} +0 -0
  570. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{f_int.c → f_int.cc} +0 -0
  571. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{f_string.c → f_string.cc} +0 -0
  572. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_typ.c → tasn_typ.cc} +0 -0
  573. /data/third_party/boringssl-with-bazel/src/crypto/bio/{errno.c → errno.cc} +0 -0
  574. /data/third_party/boringssl-with-bazel/src/crypto/bio/{fd.c → fd.cc} +0 -0
  575. /data/third_party/boringssl-with-bazel/src/crypto/bio/{hexdump.c → hexdump.cc} +0 -0
  576. /data/third_party/boringssl-with-bazel/src/crypto/bio/{socket.c → socket.cc} +0 -0
  577. /data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{cipher_extra.c → cipher_extra.cc} +0 -0
  578. /data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{derive_key.c → derive_key.cc} +0 -0
  579. /data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{tls_cbc.c → tls_cbc.cc} +0 -0
  580. /data/third_party/boringssl-with-bazel/src/crypto/des/{des.c → des.cc} +0 -0
  581. /data/third_party/boringssl-with-bazel/src/crypto/dh_extra/{params.c → params.cc} +0 -0
  582. /data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/{ecdh_extra.c → ecdh_extra.cc} +0 -0
  583. /data/third_party/boringssl-with-bazel/src/crypto/evp/{evp_asn1.c → evp_asn1.cc} +0 -0
  584. /data/third_party/boringssl-with-bazel/src/crypto/evp/{sign.c → sign.cc} +0 -0
  585. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes.c.inc → aes.cc.inc} +0 -0
  586. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{mode_wrappers.c.inc → mode_wrappers.cc.inc} +0 -0
  587. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bytes.c.inc → bytes.cc.inc} +0 -0
  588. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{cmp.c.inc → cmp.cc.inc} +0 -0
  589. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{generic.c.inc → generic.cc.inc} +0 -0
  590. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{jacobi.c.inc → jacobi.cc.inc} +0 -0
  591. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery_inv.c.inc → montgomery_inv.cc.inc} +0 -0
  592. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{random.c.inc → random.cc.inc} +0 -0
  593. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{rsaz_exp.c.inc → rsaz_exp.cc.inc} +0 -0
  594. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{sqrt.c.inc → sqrt.cc.inc} +0 -0
  595. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aesccm.c.inc → e_aesccm.cc.inc} +0 -0
  596. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{check.c.inc → check.cc.inc} +0 -0
  597. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_montgomery.c.inc → ec_montgomery.cc.inc} +0 -0
  598. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple.c.inc → simple.cc.inc} +0 -0
  599. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cbc.c.inc → cbc.cc.inc} +0 -0
  600. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cfb.c.inc → cfb.cc.inc} +0 -0
  601. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ctr.c.inc → ctr.cc.inc} +0 -0
  602. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ofb.c.inc → ofb.cc.inc} +0 -0
  603. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/{kdf.c.inc → kdf.cc.inc} +0 -0
  604. /data/third_party/boringssl-with-bazel/src/crypto/obj/{obj_xref.c → obj_xref.cc} +0 -0
  605. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_all.c → pem_all.cc} +0 -0
  606. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_pk8.c → pem_pk8.cc} +0 -0
  607. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_pkey.c → pem_pkey.cc} +0 -0
  608. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_x509.c → pem_x509.cc} +0 -0
  609. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_xaux.c → pem_xaux.cc} +0 -0
  610. /data/third_party/boringssl-with-bazel/src/crypto/rc4/{rc4.c → rc4.cc} +0 -0
  611. /data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/{rsa_print.c → rsa_print.cc} +0 -0
  612. /data/third_party/boringssl-with-bazel/src/crypto/{thread.c → thread.cc} +0 -0
  613. /data/third_party/boringssl-with-bazel/src/crypto/x509/{by_file.c → by_file.cc} +0 -0
  614. /data/third_party/boringssl-with-bazel/src/crypto/x509/{i2d_pr.c → i2d_pr.cc} +0 -0
  615. /data/third_party/boringssl-with-bazel/src/crypto/x509/{name_print.c → name_print.cc} +0 -0
  616. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_crl.c → t_crl.cc} +0 -0
  617. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_req.c → t_req.cc} +0 -0
  618. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_x509.c → t_x509.cc} +0 -0
  619. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_x509a.c → t_x509a.cc} +0 -0
  620. /data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_akeya.c → v3_akeya.cc} +0 -0
  621. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509.c → x509.cc} +0 -0
  622. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_cmp.c → x509_cmp.cc} +0 -0
  623. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_d2.c → x509_d2.cc} +0 -0
  624. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_def.c → x509_def.cc} +0 -0
  625. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_ext.c → x509_ext.cc} +0 -0
  626. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_obj.c → x509_obj.cc} +0 -0
  627. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_req.c → x509_req.cc} +0 -0
  628. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_set.c → x509_set.cc} +0 -0
  629. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_trs.c → x509_trs.cc} +0 -0
  630. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_txt.c → x509_txt.cc} +0 -0
  631. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509cset.c → x509cset.cc} +0 -0
  632. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509name.c → x509name.cc} +0 -0
  633. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509rset.c → x509rset.cc} +0 -0
  634. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_algor.c → x_algor.cc} +0 -0
  635. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_attrib.c → x_attrib.cc} +0 -0
  636. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_exten.c → x_exten.cc} +0 -0
  637. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_req.c → x_req.cc} +0 -0
  638. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_sig.c → x_sig.cc} +0 -0
  639. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_spki.c → x_spki.cc} +0 -0
  640. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_val.c → x_val.cc} +0 -0
@@ -97,7 +97,7 @@ using ReadDelayHandle = XdsClient::ReadDelayHandle;
97
97
 
98
98
  // A server config fetcher that fetches the information for configuring server
99
99
  // listeners from the xDS control plane.
100
- class XdsServerConfigFetcher final : public grpc_server_config_fetcher {
100
+ class XdsServerConfigFetcher final : public ServerConfigFetcher {
101
101
  public:
102
102
  XdsServerConfigFetcher(RefCountedPtr<GrpcXdsClient> xds_client,
103
103
  grpc_server_xds_status_notifier notifier);
@@ -106,12 +106,11 @@ class XdsServerConfigFetcher final : public grpc_server_config_fetcher {
106
106
  xds_client_.reset(DEBUG_LOCATION, "XdsServerConfigFetcher");
107
107
  }
108
108
 
109
- void StartWatch(std::string listening_address,
110
- std::unique_ptr<grpc_server_config_fetcher::WatcherInterface>
111
- watcher) override;
109
+ void StartWatch(
110
+ std::string listening_address,
111
+ std::unique_ptr<ServerConfigFetcher::WatcherInterface> watcher) override;
112
112
 
113
- void CancelWatch(
114
- grpc_server_config_fetcher::WatcherInterface* watcher) override;
113
+ void CancelWatch(ServerConfigFetcher::WatcherInterface* watcher) override;
115
114
 
116
115
  // Return the interested parties from the xds client so that it can be polled.
117
116
  grpc_pollset_set* interested_parties() override {
@@ -124,7 +123,7 @@ class XdsServerConfigFetcher final : public grpc_server_config_fetcher {
124
123
  RefCountedPtr<GrpcXdsClient> xds_client_;
125
124
  const grpc_server_xds_status_notifier serving_status_notifier_;
126
125
  Mutex mu_;
127
- std::map<grpc_server_config_fetcher::WatcherInterface*, ListenerWatcher*>
126
+ std::map<ServerConfigFetcher::WatcherInterface*, ListenerWatcher*>
128
127
  listener_watchers_ ABSL_GUARDED_BY(mu_);
129
128
  };
130
129
 
@@ -142,7 +141,7 @@ class XdsServerConfigFetcher::ListenerWatcher final
142
141
  : public XdsListenerResourceType::WatcherInterface {
143
142
  public:
144
143
  ListenerWatcher(RefCountedPtr<GrpcXdsClient> xds_client,
145
- std::unique_ptr<grpc_server_config_fetcher::WatcherInterface>
144
+ std::unique_ptr<ServerConfigFetcher::WatcherInterface>
146
145
  server_config_watcher,
147
146
  grpc_server_xds_status_notifier serving_status_notifier,
148
147
  std::string listening_address);
@@ -152,13 +151,11 @@ class XdsServerConfigFetcher::ListenerWatcher final
152
151
  }
153
152
 
154
153
  void OnResourceChanged(
155
- std::shared_ptr<const XdsListenerResource> listener,
154
+ absl::StatusOr<std::shared_ptr<const XdsListenerResource>> listener,
156
155
  RefCountedPtr<ReadDelayHandle> read_delay_handle) override;
157
156
 
158
- void OnError(absl::Status status,
159
- RefCountedPtr<ReadDelayHandle> read_delay_handle) override;
160
-
161
- void OnResourceDoesNotExist(
157
+ void OnAmbientError(
158
+ absl::Status status,
162
159
  RefCountedPtr<ReadDelayHandle> read_delay_handle) override;
163
160
 
164
161
  const std::string& listening_address() const { return listening_address_; }
@@ -182,7 +179,7 @@ class XdsServerConfigFetcher::ListenerWatcher final
182
179
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(&mu_);
183
180
 
184
181
  RefCountedPtr<GrpcXdsClient> xds_client_;
185
- const std::unique_ptr<grpc_server_config_fetcher::WatcherInterface>
182
+ const std::unique_ptr<ServerConfigFetcher::WatcherInterface>
186
183
  server_config_watcher_;
187
184
  const grpc_server_xds_status_notifier serving_status_notifier_;
188
185
  const std::string listening_address_;
@@ -199,7 +196,7 @@ class XdsServerConfigFetcher::ListenerWatcher final
199
196
  // args that configure the right mTLS certs and cause the right set of HTTP
200
197
  // filters to be injected.
201
198
  class XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager final
202
- : public grpc_server_config_fetcher::ConnectionManager {
199
+ : public ServerConfigFetcher::ConnectionManager {
203
200
  public:
204
201
  FilterChainMatchManager(RefCountedPtr<GrpcXdsClient> xds_client,
205
202
  XdsListenerResource::FilterChainMap filter_chain_map,
@@ -248,9 +245,9 @@ class XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager final
248
245
  // RDS resources.
249
246
  void OnRouteConfigChanged(
250
247
  const std::string& resource_name,
251
- std::shared_ptr<const XdsRouteConfigResource> route_config);
252
- void OnError(const std::string& resource_name, absl::Status status);
253
- void OnResourceDoesNotExist(const std::string& resource_name);
248
+ absl::StatusOr<std::shared_ptr<const XdsRouteConfigResource>>
249
+ route_config);
250
+ void OnAmbientError(const std::string& resource_name, absl::Status status);
254
251
 
255
252
  RefCountedPtr<GrpcXdsClient> xds_client_;
256
253
  // This ref is only kept around till the FilterChainMatchManager becomes
@@ -288,21 +285,18 @@ class XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
288
285
  filter_chain_match_manager_(std::move(filter_chain_match_manager)) {}
289
286
 
290
287
  void OnResourceChanged(
291
- std::shared_ptr<const XdsRouteConfigResource> route_config,
288
+ absl::StatusOr<std::shared_ptr<const XdsRouteConfigResource>>
289
+ route_config,
292
290
  RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) override {
293
291
  filter_chain_match_manager_->OnRouteConfigChanged(resource_name_,
294
292
  std::move(route_config));
295
293
  }
296
294
 
297
- void OnError(
295
+ void OnAmbientError(
298
296
  absl::Status status,
299
297
  RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) override {
300
- filter_chain_match_manager_->OnError(resource_name_, status);
301
- }
302
-
303
- void OnResourceDoesNotExist(
304
- RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) override {
305
- filter_chain_match_manager_->OnResourceDoesNotExist(resource_name_);
298
+ filter_chain_match_manager_->OnAmbientError(resource_name_,
299
+ std::move(status));
306
300
  }
307
301
 
308
302
  private:
@@ -458,9 +452,8 @@ class XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
458
452
 
459
453
  void Orphaned() override;
460
454
  void OnRouteConfigChanged(
461
- std::shared_ptr<const XdsRouteConfigResource> rds_update);
462
- void OnError(absl::Status status);
463
- void OnResourceDoesNotExist();
455
+ absl::StatusOr<std::shared_ptr<const XdsRouteConfigResource>> rds_update);
456
+ void OnAmbientError(absl::Status status);
464
457
 
465
458
  RefCountedPtr<GrpcXdsClient> xds_client_;
466
459
  std::string resource_name_;
@@ -488,20 +481,16 @@ class XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
488
481
  : parent_(std::move(parent)) {}
489
482
 
490
483
  void OnResourceChanged(
491
- std::shared_ptr<const XdsRouteConfigResource> route_config,
484
+ absl::StatusOr<std::shared_ptr<const XdsRouteConfigResource>>
485
+ route_config,
492
486
  RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) override {
493
487
  parent_->OnRouteConfigChanged(std::move(route_config));
494
488
  }
495
489
 
496
- void OnError(
490
+ void OnAmbientError(
497
491
  absl::Status status,
498
492
  RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) override {
499
- parent_->OnError(status);
500
- }
501
-
502
- void OnResourceDoesNotExist(
503
- RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) override {
504
- parent_->OnResourceDoesNotExist();
493
+ parent_->OnAmbientError(std::move(status));
505
494
  }
506
495
 
507
496
  private:
@@ -532,8 +521,8 @@ std::string ListenerResourceName(absl::string_view resource_name_template,
532
521
 
533
522
  void XdsServerConfigFetcher::StartWatch(
534
523
  std::string listening_address,
535
- std::unique_ptr<grpc_server_config_fetcher::WatcherInterface> watcher) {
536
- grpc_server_config_fetcher::WatcherInterface* watcher_ptr = watcher.get();
524
+ std::unique_ptr<ServerConfigFetcher::WatcherInterface> watcher) {
525
+ ServerConfigFetcher::WatcherInterface* watcher_ptr = watcher.get();
537
526
  auto listener_watcher = MakeRefCounted<ListenerWatcher>(
538
527
  xds_client_.Ref(DEBUG_LOCATION, "ListenerWatcher"), std::move(watcher),
539
528
  serving_status_notifier_, listening_address);
@@ -550,7 +539,7 @@ void XdsServerConfigFetcher::StartWatch(
550
539
  }
551
540
 
552
541
  void XdsServerConfigFetcher::CancelWatch(
553
- grpc_server_config_fetcher::WatcherInterface* watcher) {
542
+ ServerConfigFetcher::WatcherInterface* watcher) {
554
543
  MutexLock lock(&mu_);
555
544
  auto it = listener_watchers_.find(watcher);
556
545
  if (it != listener_watchers_.end()) {
@@ -572,7 +561,7 @@ void XdsServerConfigFetcher::CancelWatch(
572
561
 
573
562
  XdsServerConfigFetcher::ListenerWatcher::ListenerWatcher(
574
563
  RefCountedPtr<GrpcXdsClient> xds_client,
575
- std::unique_ptr<grpc_server_config_fetcher::WatcherInterface>
564
+ std::unique_ptr<ServerConfigFetcher::WatcherInterface>
576
565
  server_config_watcher,
577
566
  grpc_server_xds_status_notifier serving_status_notifier,
578
567
  std::string listening_address)
@@ -582,13 +571,20 @@ XdsServerConfigFetcher::ListenerWatcher::ListenerWatcher(
582
571
  listening_address_(std::move(listening_address)) {}
583
572
 
584
573
  void XdsServerConfigFetcher::ListenerWatcher::OnResourceChanged(
585
- std::shared_ptr<const XdsListenerResource> listener,
574
+ absl::StatusOr<std::shared_ptr<const XdsListenerResource>> listener,
586
575
  RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) {
576
+ if (!listener.ok()) {
577
+ MutexLock lock(&mu_);
578
+ OnFatalError(absl::Status(
579
+ listener.status().code(),
580
+ absl::StrCat("LDS resource: ", listener.status().message())));
581
+ return;
582
+ }
587
583
  GRPC_TRACE_LOG(xds_server_config_fetcher, INFO)
588
584
  << "[ListenerWatcher " << this << "] Received LDS update from xds client "
589
- << xds_client_.get() << ": " << listener->ToString();
585
+ << xds_client_.get() << ": " << (*listener)->ToString();
590
586
  auto* tcp_listener =
591
- absl::get_if<XdsListenerResource::TcpListener>(&listener->listener);
587
+ absl::get_if<XdsListenerResource::TcpListener>(&(*listener)->listener);
592
588
  if (tcp_listener == nullptr) {
593
589
  MutexLock lock(&mu_);
594
590
  OnFatalError(
@@ -617,27 +613,12 @@ void XdsServerConfigFetcher::ListenerWatcher::OnResourceChanged(
617
613
  }
618
614
  }
619
615
 
620
- void XdsServerConfigFetcher::ListenerWatcher::OnError(
621
- absl::Status status,
622
- RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) {
623
- MutexLock lock(&mu_);
624
- if (filter_chain_match_manager_ != nullptr ||
625
- pending_filter_chain_match_manager_ != nullptr) {
626
- LOG(ERROR) << "ListenerWatcher:" << this
627
- << " XdsClient reports error: " << status << " for "
628
- << listening_address_
629
- << "; ignoring in favor of existing resource";
630
- } else {
631
- if (serving_status_notifier_.on_serving_status_update != nullptr) {
632
- serving_status_notifier_.on_serving_status_update(
633
- serving_status_notifier_.user_data, listening_address_.c_str(),
634
- {GRPC_STATUS_UNAVAILABLE, status.ToString().c_str()});
635
- } else {
636
- LOG(ERROR) << "ListenerWatcher:" << this
637
- << " error obtaining xDS Listener resource: " << status
638
- << "; not serving on " << listening_address_;
639
- }
640
- }
616
+ void XdsServerConfigFetcher::ListenerWatcher::OnAmbientError(
617
+ absl::Status status, RefCountedPtr<ReadDelayHandle> /*read_delay_handle*/) {
618
+ LOG(ERROR) << "ListenerWatcher:" << this
619
+ << " XdsClient reports ambient error: " << status << " for "
620
+ << listening_address_
621
+ << "; ignoring in favor of existing resource";
641
622
  }
642
623
 
643
624
  void XdsServerConfigFetcher::ListenerWatcher::OnFatalError(
@@ -660,12 +641,6 @@ void XdsServerConfigFetcher::ListenerWatcher::OnFatalError(
660
641
  }
661
642
  }
662
643
 
663
- void XdsServerConfigFetcher::ListenerWatcher::OnResourceDoesNotExist(
664
- RefCountedPtr<ReadDelayHandle> /* read_delay_handle */) {
665
- MutexLock lock(&mu_);
666
- OnFatalError(absl::NotFoundError("Requested listener does not exist"));
667
- }
668
-
669
644
  void XdsServerConfigFetcher::ListenerWatcher::
670
645
  PendingFilterChainMatchManagerReadyLocked(
671
646
  XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager*
@@ -843,7 +818,8 @@ XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
843
818
  void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
844
819
  OnRouteConfigChanged(
845
820
  const std::string& resource_name,
846
- std::shared_ptr<const XdsRouteConfigResource> route_config) {
821
+ absl::StatusOr<std::shared_ptr<const XdsRouteConfigResource>>
822
+ route_config) {
847
823
  RefCountedPtr<ListenerWatcher> listener_watcher;
848
824
  {
849
825
  MutexLock lock(&mu_);
@@ -853,32 +829,12 @@ void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
853
829
  listener_watcher = std::move(listener_watcher_);
854
830
  }
855
831
  }
856
- state.rds_update = std::move(route_config);
857
- }
858
- // Promote the filter chain match manager object if all the referenced
859
- // resources are fetched.
860
- if (listener_watcher != nullptr) {
861
- listener_watcher->PendingFilterChainMatchManagerReady(this);
862
- }
863
- }
864
-
865
- void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::OnError(
866
- const std::string& resource_name, absl::Status status) {
867
- RefCountedPtr<ListenerWatcher> listener_watcher;
868
- {
869
- MutexLock lock(&mu_);
870
- auto& state = rds_map_[resource_name];
871
- if (!state.rds_update.has_value()) {
872
- if (--rds_resources_yet_to_fetch_ == 0) {
873
- listener_watcher = std::move(listener_watcher_);
874
- }
875
- state.rds_update = status;
876
- } else {
877
- // Prefer existing good version over current errored version
878
- if (!state.rds_update->ok()) {
879
- state.rds_update = status;
880
- }
832
+ if (!route_config.ok()) {
833
+ route_config = absl::UnavailableError(
834
+ absl::StrCat("RDS resource ", resource_name, ": ",
835
+ route_config.status().message()));
881
836
  }
837
+ state.rds_update = std::move(route_config);
882
838
  }
883
839
  // Promote the filter chain match manager object if all the referenced
884
840
  // resources are fetched.
@@ -888,24 +844,10 @@ void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::OnError(
888
844
  }
889
845
 
890
846
  void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
891
- OnResourceDoesNotExist(const std::string& resource_name) {
892
- RefCountedPtr<ListenerWatcher> listener_watcher;
893
- {
894
- MutexLock lock(&mu_);
895
- auto& state = rds_map_[resource_name];
896
- if (!state.rds_update.has_value()) {
897
- if (--rds_resources_yet_to_fetch_ == 0) {
898
- listener_watcher = std::move(listener_watcher_);
899
- }
900
- }
901
- state.rds_update =
902
- absl::NotFoundError("Requested route config does not exist");
903
- }
904
- // Promote the filter chain match manager object if all the referenced
905
- // resources are fetched.
906
- if (listener_watcher != nullptr) {
907
- listener_watcher->PendingFilterChainMatchManagerReady(this);
908
- }
847
+ OnAmbientError(const std::string& resource_name, absl::Status status) {
848
+ LOG(ERROR) << "RouteConfigWatcher:" << this
849
+ << " XdsClient reports ambient error: " << status << " for "
850
+ << resource_name << "; ignoring in favor of existing resource";
909
851
  }
910
852
 
911
853
  const XdsListenerResource::FilterChainData* FindFilterChainDataForSourcePort(
@@ -1309,8 +1251,13 @@ void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
1309
1251
 
1310
1252
  void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
1311
1253
  DynamicXdsServerConfigSelectorProvider::OnRouteConfigChanged(
1312
- std::shared_ptr<const XdsRouteConfigResource> rds_update) {
1254
+ absl::StatusOr<std::shared_ptr<const XdsRouteConfigResource>>
1255
+ rds_update) {
1313
1256
  MutexLock lock(&mu_);
1257
+ if (!rds_update.ok()) {
1258
+ rds_update = absl::UnavailableError(absl::StrCat(
1259
+ "RDS resource ", resource_name_, ": ", rds_update.status().message()));
1260
+ }
1314
1261
  resource_ = std::move(rds_update);
1315
1262
  if (watcher_ == nullptr) {
1316
1263
  return;
@@ -1319,34 +1266,22 @@ void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
1319
1266
  // DynamicXdsServerConfigSelectorProvider while holding a lock, but if that
1320
1267
  // ever changes, we would want to invoke the update outside the critical
1321
1268
  // region with the use of a WorkSerializer.
1322
- watcher_->OnServerConfigSelectorUpdate(XdsServerConfigSelector::Create(
1323
- static_cast<const GrpcXdsBootstrap&>(xds_client_->bootstrap())
1324
- .http_filter_registry(),
1325
- *resource_, http_filters_));
1326
- }
1327
-
1328
- void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
1329
- DynamicXdsServerConfigSelectorProvider::OnError(absl::Status status) {
1330
- MutexLock lock(&mu_);
1331
- // Prefer existing good update.
1332
- if (resource_.ok()) {
1333
- return;
1334
- }
1335
- resource_ = status;
1336
- if (watcher_ == nullptr) {
1337
- return;
1269
+ if (!resource_.ok()) {
1270
+ watcher_->OnServerConfigSelectorUpdate(resource_.status());
1271
+ } else {
1272
+ watcher_->OnServerConfigSelectorUpdate(XdsServerConfigSelector::Create(
1273
+ static_cast<const GrpcXdsBootstrap&>(xds_client_->bootstrap())
1274
+ .http_filter_registry(),
1275
+ *resource_, http_filters_));
1338
1276
  }
1339
- watcher_->OnServerConfigSelectorUpdate(resource_.status());
1340
1277
  }
1341
1278
 
1342
1279
  void XdsServerConfigFetcher::ListenerWatcher::FilterChainMatchManager::
1343
- DynamicXdsServerConfigSelectorProvider::OnResourceDoesNotExist() {
1344
- MutexLock lock(&mu_);
1345
- resource_ = absl::NotFoundError("Requested route config does not exist");
1346
- if (watcher_ == nullptr) {
1347
- return;
1348
- }
1349
- watcher_->OnServerConfigSelectorUpdate(resource_.status());
1280
+ DynamicXdsServerConfigSelectorProvider::OnAmbientError(
1281
+ absl::Status status) {
1282
+ LOG(ERROR) << "RouteConfigWatcher:" << this
1283
+ << " XdsClient reports ambient error: " << status << " for "
1284
+ << resource_name_ << "; ignoring in favor of existing resource";
1350
1285
  }
1351
1286
 
1352
1287
  } // namespace
@@ -1379,6 +1314,7 @@ grpc_server_config_fetcher* grpc_server_config_fetcher_xds_create(
1379
1314
  "bootstrap file.";
1380
1315
  return nullptr;
1381
1316
  }
1382
- return new grpc_core::XdsServerConfigFetcher(std::move(*xds_client),
1383
- notifier);
1317
+ return (new grpc_core::XdsServerConfigFetcher(std::move(*xds_client),
1318
+ notifier))
1319
+ ->c_ptr();
1384
1320
  }
@@ -298,7 +298,7 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
298
298
  if (details.size > 0) {
299
299
  error = absl::StrCat("Status ", code, " from handshaker service: ",
300
300
  absl::string_view(details.data, details.size));
301
- LOG(ERROR) << error;
301
+ LOG_EVERY_N_SEC(INFO, 1) << error;
302
302
  }
303
303
  }
304
304
  // TODO(apolcyn): consider short ciruiting handle_response_done and
@@ -22,16 +22,27 @@
22
22
 
23
23
  #include <algorithm>
24
24
 
25
+ #include "src/core/lib/experiments/experiments.h"
26
+
25
27
  namespace grpc_core {
26
28
 
27
29
  BackOff::BackOff(const Options& options) : options_(options) { Reset(); }
28
30
 
29
31
  Duration BackOff::NextAttemptDelay() {
30
- if (initial_) {
31
- initial_ = false;
32
+ if (IsBackoffCapInitialAtMaxEnabled()) {
33
+ if (initial_) {
34
+ initial_ = false;
35
+ } else {
36
+ current_backoff_ *= options_.multiplier();
37
+ }
38
+ current_backoff_ = std::min(current_backoff_, options_.max_backoff());
32
39
  } else {
33
- current_backoff_ = std::min(current_backoff_ * options_.multiplier(),
34
- options_.max_backoff());
40
+ if (initial_) {
41
+ initial_ = false;
42
+ } else {
43
+ current_backoff_ = std::min(current_backoff_ * options_.multiplier(),
44
+ options_.max_backoff());
45
+ }
35
46
  }
36
47
  const double jitter =
37
48
  absl::Uniform(rand_gen_, 1 - options_.jitter(), 1 + options_.jitter());
@@ -35,9 +35,10 @@
35
35
  #include "src/core/handshaker/handshaker.h"
36
36
  #include "src/core/handshaker/handshaker_registry.h"
37
37
  #include "src/core/handshaker/tcp_connect/tcp_connect_handshaker.h"
38
- #include "src/core/lib/address_utils/sockaddr_utils.h"
39
38
  #include "src/core/lib/channel/channel_args.h"
40
39
  #include "src/core/lib/channel/channel_args_preconditioning.h"
40
+ #include "src/core/lib/event_engine/resolved_address_internal.h"
41
+ #include "src/core/lib/event_engine/tcp_socket_utils.h"
41
42
  #include "src/core/lib/iomgr/endpoint.h"
42
43
  #include "src/core/lib/iomgr/iomgr_internal.h"
43
44
  #include "src/core/lib/iomgr/pollset_set.h"
@@ -55,6 +56,9 @@ namespace grpc_core {
55
56
 
56
57
  namespace {
57
58
 
59
+ using grpc_event_engine::experimental::EventEngine;
60
+ using grpc_event_engine::experimental::ResolvedAddressToURI;
61
+
58
62
  grpc_httpcli_get_override g_get_override;
59
63
  grpc_httpcli_post_override g_post_override;
60
64
  grpc_httpcli_put_override g_put_override;
@@ -171,7 +175,15 @@ HttpRequest::HttpRequest(
171
175
  pollent_(pollent),
172
176
  pollset_set_(grpc_pollset_set_create()),
173
177
  test_only_generate_response_(std::move(test_only_generate_response)),
174
- resolver_(GetDNSResolver()) {
178
+ use_event_engine_dns_resolver_(IsEventEngineDnsNonClientChannelEnabled()),
179
+ resolver_(!use_event_engine_dns_resolver_ ? GetDNSResolver() : nullptr),
180
+ ee_resolver_(
181
+ use_event_engine_dns_resolver_
182
+ ? ChannelArgs::FromC(channel_args_)
183
+ .GetObjectRef<EventEngine>()
184
+ ->GetDNSResolver(
185
+ EventEngine::DNSResolver::ResolverOptions())
186
+ : absl::InternalError("EventEngine DNS is not enabled")) {
175
187
  grpc_http_parser_init(&parser_, GRPC_HTTP_RESPONSE, response);
176
188
  grpc_slice_buffer_init(&incoming_);
177
189
  grpc_slice_buffer_init(&outgoing_);
@@ -204,11 +216,39 @@ void HttpRequest::Start() {
204
216
  if (test_only_generate_response_.has_value()) {
205
217
  if (test_only_generate_response_.value()()) return;
206
218
  }
219
+ if (use_event_engine_dns_resolver_ && !ee_resolver_.ok()) {
220
+ Finish(ee_resolver_.status());
221
+ return;
222
+ }
207
223
  Ref().release(); // ref held by pending DNS resolution
208
- dns_request_handle_ = resolver_->LookupHostname(
209
- absl::bind_front(&HttpRequest::OnResolved, this), uri_.authority(),
210
- uri_.scheme(), kDefaultDNSRequestTimeout, pollset_set_,
211
- /*name_server=*/"");
224
+ if (use_event_engine_dns_resolver_) {
225
+ (*ee_resolver_)
226
+ ->LookupHostname(
227
+ [this](absl::StatusOr<std::vector<EventEngine::ResolvedAddress>>
228
+ addresses_or) {
229
+ ApplicationCallbackExecCtx callback_exec_ctx;
230
+ ExecCtx exec_ctx;
231
+ OnResolved(addresses_or);
232
+ },
233
+ uri_.authority(), uri_.scheme());
234
+ } else {
235
+ dns_request_handle_ = resolver_->LookupHostname(
236
+ [this](absl::StatusOr<std::vector<grpc_resolved_address>> addresses) {
237
+ if (addresses.ok()) {
238
+ std::vector<EventEngine::ResolvedAddress> ee_addresses;
239
+ for (const auto& addr : *addresses) {
240
+ ee_addresses.push_back(
241
+ grpc_event_engine::experimental::CreateResolvedAddress(addr));
242
+ }
243
+ OnResolved(ee_addresses);
244
+ } else {
245
+ OnResolved(addresses.status());
246
+ }
247
+ },
248
+ uri_.authority(), uri_.scheme(), kDefaultDNSRequestTimeout,
249
+ pollset_set_,
250
+ /*name_server=*/"");
251
+ }
212
252
  }
213
253
 
214
254
  void HttpRequest::Orphan() {
@@ -217,10 +257,16 @@ void HttpRequest::Orphan() {
217
257
  CHECK(!cancelled_);
218
258
  cancelled_ = true;
219
259
  // cancel potentially pending DNS resolution.
220
- if (dns_request_handle_.has_value() &&
221
- resolver_->Cancel(dns_request_handle_.value())) {
222
- Finish(GRPC_ERROR_CREATE("cancelled during DNS resolution"));
223
- Unref();
260
+ if (use_event_engine_dns_resolver_) {
261
+ if (*ee_resolver_ != nullptr) {
262
+ ee_resolver_->reset();
263
+ }
264
+ } else {
265
+ if (dns_request_handle_.has_value() &&
266
+ resolver_->Cancel(dns_request_handle_.value())) {
267
+ Finish(GRPC_ERROR_CREATE("cancelled during DNS resolution"));
268
+ Unref();
269
+ }
224
270
  }
225
271
  if (handshake_mgr_ != nullptr) {
226
272
  // Shutdown will cancel any ongoing tcp connect.
@@ -236,8 +282,7 @@ void HttpRequest::AppendError(grpc_error_handle error) {
236
282
  if (overall_error_.ok()) {
237
283
  overall_error_ = GRPC_ERROR_CREATE("Failed HTTP/1 client request");
238
284
  }
239
- const grpc_resolved_address* addr = &addresses_[next_address_ - 1];
240
- auto addr_text = grpc_sockaddr_to_uri(addr);
285
+ auto addr_text = ResolvedAddressToURI(addresses_[next_address_ - 1]);
241
286
  if (addr_text.ok()) error = AddMessagePrefix(*addr_text, std::move(error));
242
287
  overall_error_ = grpc_error_add_child(overall_error_, std::move(error));
243
288
  }
@@ -311,7 +356,7 @@ void HttpRequest::OnHandshakeDone(absl::StatusOr<HandshakerArgs*> result) {
311
356
  StartWrite();
312
357
  }
313
358
 
314
- void HttpRequest::DoHandshake(const grpc_resolved_address* addr) {
359
+ void HttpRequest::DoHandshake(const EventEngine::ResolvedAddress& addr) {
315
360
  // Create the security connector using the credentials and target name.
316
361
  ChannelArgs args = ChannelArgs::FromC(channel_args_);
317
362
  RefCountedPtr<grpc_channel_security_connector> sc =
@@ -322,7 +367,7 @@ void HttpRequest::DoHandshake(const grpc_resolved_address* addr) {
322
367
  &overall_error_, 1));
323
368
  return;
324
369
  }
325
- absl::StatusOr<std::string> address = grpc_sockaddr_to_uri(addr);
370
+ absl::StatusOr<std::string> address = ResolvedAddressToURI(addr);
326
371
  if (!address.ok()) {
327
372
  Finish(GRPC_ERROR_CREATE_REFERENCING("Failed to extract URI from address",
328
373
  &overall_error_, 1));
@@ -355,15 +400,18 @@ void HttpRequest::NextAddress(grpc_error_handle error) {
355
400
  &overall_error_, 1));
356
401
  return;
357
402
  }
358
- const grpc_resolved_address* addr = &addresses_[next_address_++];
359
- DoHandshake(addr);
403
+ DoHandshake(addresses_[next_address_++]);
360
404
  }
361
405
 
362
406
  void HttpRequest::OnResolved(
363
- absl::StatusOr<std::vector<grpc_resolved_address>> addresses_or) {
407
+ absl::StatusOr<std::vector<EventEngine::ResolvedAddress>> addresses_or) {
364
408
  RefCountedPtr<HttpRequest> unreffer(this);
365
409
  MutexLock lock(&mu_);
366
- dns_request_handle_.reset();
410
+ if (use_event_engine_dns_resolver_) {
411
+ ee_resolver_->reset();
412
+ } else {
413
+ dns_request_handle_.reset();
414
+ }
367
415
  if (cancelled_) {
368
416
  Finish(GRPC_ERROR_CREATE("cancelled during DNS resolution"));
369
417
  return;
@@ -19,6 +19,7 @@
19
19
  #ifndef GRPC_SRC_CORE_UTIL_HTTP_CLIENT_HTTPCLI_H
20
20
  #define GRPC_SRC_CORE_UTIL_HTTP_CLIENT_HTTPCLI_H
21
21
 
22
+ #include <grpc/event_engine/event_engine.h>
22
23
  #include <grpc/grpc.h>
23
24
  #include <grpc/slice.h>
24
25
  #include <grpc/support/port_platform.h>
@@ -42,7 +43,6 @@
42
43
  #include "src/core/lib/iomgr/iomgr_internal.h"
43
44
  #include "src/core/lib/iomgr/polling_entity.h"
44
45
  #include "src/core/lib/iomgr/resolve_address.h"
45
- #include "src/core/lib/iomgr/resolved_address.h"
46
46
  #include "src/core/lib/resource_quota/resource_quota.h"
47
47
  #include "src/core/util/debug_location.h"
48
48
  #include "src/core/util/http_client/parser.h"
@@ -225,13 +225,16 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
225
225
 
226
226
  void OnHandshakeDone(absl::StatusOr<HandshakerArgs*> result);
227
227
 
228
- void DoHandshake(const grpc_resolved_address* addr)
228
+ void DoHandshake(
229
+ const grpc_event_engine::experimental::EventEngine::ResolvedAddress& addr)
229
230
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
230
231
 
231
232
  void NextAddress(grpc_error_handle error) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
232
233
 
233
234
  void OnResolved(
234
- absl::StatusOr<std::vector<grpc_resolved_address>> addresses_or);
235
+ absl::StatusOr<std::vector<
236
+ grpc_event_engine::experimental::EventEngine::ResolvedAddress>>
237
+ addresses_or);
235
238
 
236
239
  const URI uri_;
237
240
  const grpc_slice request_text_;
@@ -252,16 +255,23 @@ class HttpRequest : public InternallyRefCounted<HttpRequest> {
252
255
  RefCountedPtr<HandshakeManager> handshake_mgr_ ABSL_GUARDED_BY(mu_);
253
256
  bool cancelled_ ABSL_GUARDED_BY(mu_) = false;
254
257
  grpc_http_parser parser_ ABSL_GUARDED_BY(mu_);
255
- std::vector<grpc_resolved_address> addresses_ ABSL_GUARDED_BY(mu_);
258
+ std::vector<grpc_event_engine::experimental::EventEngine::ResolvedAddress>
259
+ addresses_ ABSL_GUARDED_BY(mu_);
256
260
  size_t next_address_ ABSL_GUARDED_BY(mu_) = 0;
257
261
  int have_read_byte_ ABSL_GUARDED_BY(mu_) = 0;
258
262
  grpc_iomgr_object iomgr_obj_ ABSL_GUARDED_BY(mu_);
259
263
  grpc_slice_buffer incoming_ ABSL_GUARDED_BY(mu_);
260
264
  grpc_slice_buffer outgoing_ ABSL_GUARDED_BY(mu_);
261
265
  grpc_error_handle overall_error_ ABSL_GUARDED_BY(mu_) = absl::OkStatus();
266
+ // TODO(yijiem): remove these once event_engine_dns_non_client_channel
267
+ // experiment is fully enabled.
268
+ bool use_event_engine_dns_resolver_;
262
269
  std::shared_ptr<DNSResolver> resolver_;
263
270
  absl::optional<DNSResolver::TaskHandle> dns_request_handle_
264
271
  ABSL_GUARDED_BY(mu_) = DNSResolver::kNullHandle;
272
+ absl::StatusOr<std::unique_ptr<
273
+ grpc_event_engine::experimental::EventEngine::DNSResolver>>
274
+ ee_resolver_;
265
275
  };
266
276
 
267
277
  } // namespace grpc_core