grpc 1.37.0.pre1 → 1.39.0.pre1

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 (636) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +96 -59
  3. data/include/grpc/event_engine/README.md +38 -0
  4. data/include/grpc/event_engine/endpoint_config.h +48 -0
  5. data/include/grpc/event_engine/event_engine.h +334 -0
  6. data/include/grpc/event_engine/port.h +41 -0
  7. data/include/grpc/event_engine/slice_allocator.h +91 -0
  8. data/include/grpc/grpc.h +11 -4
  9. data/include/grpc/grpc_security.h +32 -0
  10. data/include/grpc/grpc_security_constants.h +15 -0
  11. data/include/grpc/impl/codegen/grpc_types.h +28 -13
  12. data/include/grpc/impl/codegen/port_platform.h +22 -0
  13. data/include/grpc/module.modulemap +14 -14
  14. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  15. data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
  16. data/src/core/ext/filters/client_channel/client_channel.cc +630 -3103
  17. data/src/core/ext/filters/client_channel/client_channel.h +489 -55
  18. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
  20. data/src/core/ext/filters/client_channel/config_selector.h +1 -1
  21. data/src/core/ext/filters/client_channel/connector.h +1 -1
  22. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
  23. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  24. data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
  25. data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
  26. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
  27. data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
  28. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  29. data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
  32. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
  33. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
  34. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
  35. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
  36. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +755 -0
  37. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
  38. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
  39. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
  40. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
  41. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -54
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
  43. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +146 -155
  45. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
  46. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
  47. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  48. data/src/core/ext/filters/client_channel/resolver.h +2 -2
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  60. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
  61. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
  62. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  63. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
  64. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
  65. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -32
  66. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
  67. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
  68. data/src/core/ext/filters/client_channel/retry_filter.cc +2449 -0
  69. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  70. data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
  71. data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
  72. data/src/core/ext/filters/client_channel/server_address.cc +1 -1
  73. data/src/core/ext/filters/client_channel/service_config.cc +15 -14
  74. data/src/core/ext/filters/client_channel/service_config.h +7 -6
  75. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
  76. data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
  77. data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
  78. data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
  79. data/src/core/ext/filters/client_channel/subchannel.h +7 -6
  80. data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
  81. data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
  82. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +46 -34
  83. data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
  84. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  85. data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
  86. data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
  87. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  88. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
  89. data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
  90. data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
  91. data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
  92. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  93. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
  94. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
  95. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  96. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
  97. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
  98. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
  99. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
  100. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
  101. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
  102. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
  103. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
  104. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
  105. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  106. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  107. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  108. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
  109. data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
  110. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  111. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
  112. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  113. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
  114. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  115. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  116. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  117. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
  118. data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
  119. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
  120. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  121. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
  122. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
  123. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
  124. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  125. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  126. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  127. data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
  128. data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
  129. data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
  130. data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
  131. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  132. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  133. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
  134. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  135. data/src/core/ext/xds/xds_api.cc +349 -200
  136. data/src/core/ext/xds/xds_api.h +21 -12
  137. data/src/core/ext/xds/xds_bootstrap.cc +97 -159
  138. data/src/core/ext/xds/xds_bootstrap.h +19 -24
  139. data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
  140. data/src/core/ext/xds/xds_certificate_provider.h +4 -4
  141. data/src/core/ext/xds/xds_channel_args.h +5 -2
  142. data/src/core/ext/xds/xds_client.cc +310 -178
  143. data/src/core/ext/xds/xds_client.h +41 -27
  144. data/src/core/ext/xds/xds_client_stats.h +3 -2
  145. data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
  146. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
  147. data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
  148. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
  149. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
  150. data/src/core/lib/channel/channel_stack.cc +10 -9
  151. data/src/core/lib/channel/channel_stack.h +10 -9
  152. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  153. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  154. data/src/core/lib/channel/channelz.cc +21 -13
  155. data/src/core/lib/channel/channelz.h +3 -0
  156. data/src/core/lib/channel/connected_channel.cc +4 -4
  157. data/src/core/lib/channel/handshaker.cc +7 -6
  158. data/src/core/lib/channel/handshaker.h +5 -5
  159. data/src/core/lib/event_engine/endpoint_config.cc +46 -0
  160. data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
  161. data/src/core/lib/event_engine/event_engine.cc +50 -0
  162. data/src/core/lib/event_engine/slice_allocator.cc +89 -0
  163. data/src/core/lib/event_engine/sockaddr.cc +40 -0
  164. data/src/core/lib/event_engine/sockaddr.h +44 -0
  165. data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
  166. data/src/core/lib/gprpp/ref_counted.h +28 -14
  167. data/src/core/lib/gprpp/status_helper.cc +407 -0
  168. data/src/core/lib/gprpp/status_helper.h +183 -0
  169. data/src/core/lib/http/httpcli.cc +11 -11
  170. data/src/core/lib/http/httpcli_security_connector.cc +11 -7
  171. data/src/core/lib/http/parser.cc +16 -16
  172. data/src/core/lib/http/parser.h +4 -4
  173. data/src/core/lib/iomgr/buffer_list.cc +7 -9
  174. data/src/core/lib/iomgr/buffer_list.h +4 -5
  175. data/src/core/lib/iomgr/call_combiner.cc +15 -12
  176. data/src/core/lib/iomgr/call_combiner.h +12 -14
  177. data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
  178. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  179. data/src/core/lib/iomgr/closure.h +7 -6
  180. data/src/core/lib/iomgr/combiner.cc +14 -12
  181. data/src/core/lib/iomgr/combiner.h +2 -2
  182. data/src/core/lib/iomgr/endpoint.cc +1 -1
  183. data/src/core/lib/iomgr/endpoint.h +2 -2
  184. data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
  185. data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
  186. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  187. data/src/core/lib/iomgr/error.cc +168 -61
  188. data/src/core/lib/iomgr/error.h +217 -106
  189. data/src/core/lib/iomgr/error_cfstream.cc +3 -2
  190. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  191. data/src/core/lib/iomgr/error_internal.h +5 -1
  192. data/src/core/lib/iomgr/ev_apple.cc +5 -5
  193. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  194. data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
  195. data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
  196. data/src/core/lib/iomgr/ev_posix.cc +9 -8
  197. data/src/core/lib/iomgr/ev_posix.h +9 -9
  198. data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
  199. data/src/core/lib/iomgr/event_engine/closure.h +33 -0
  200. data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
  201. data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
  202. data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
  203. data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
  204. data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
  205. data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
  206. data/src/core/lib/iomgr/event_engine/promise.h +51 -0
  207. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
  208. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
  209. data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
  210. data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
  211. data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
  212. data/src/core/lib/iomgr/exec_ctx.cc +12 -4
  213. data/src/core/lib/iomgr/exec_ctx.h +4 -5
  214. data/src/core/lib/iomgr/executor.cc +8 -8
  215. data/src/core/lib/iomgr/executor.h +2 -2
  216. data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
  217. data/src/core/lib/iomgr/executor/threadpool.h +2 -2
  218. data/src/core/lib/iomgr/iomgr.cc +2 -2
  219. data/src/core/lib/iomgr/iomgr.h +1 -1
  220. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  221. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  222. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  223. data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
  224. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
  225. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  226. data/src/core/lib/iomgr/load_file.cc +4 -4
  227. data/src/core/lib/iomgr/load_file.h +2 -2
  228. data/src/core/lib/iomgr/lockfree_event.cc +5 -5
  229. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  230. data/src/core/lib/iomgr/pollset.cc +5 -5
  231. data/src/core/lib/iomgr/pollset.h +9 -9
  232. data/src/core/lib/iomgr/pollset_custom.cc +7 -7
  233. data/src/core/lib/iomgr/pollset_custom.h +3 -1
  234. data/src/core/lib/iomgr/pollset_uv.cc +3 -1
  235. data/src/core/lib/iomgr/pollset_uv.h +5 -1
  236. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  237. data/src/core/lib/iomgr/port.h +7 -5
  238. data/src/core/lib/iomgr/python_util.h +1 -1
  239. data/src/core/lib/iomgr/resolve_address.cc +8 -4
  240. data/src/core/lib/iomgr/resolve_address.h +12 -6
  241. data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
  242. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  243. data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
  244. data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
  245. data/src/core/lib/iomgr/resource_quota.cc +11 -10
  246. data/src/core/lib/iomgr/sockaddr.h +1 -0
  247. data/src/core/lib/iomgr/socket_mutator.cc +15 -2
  248. data/src/core/lib/iomgr/socket_mutator.h +26 -2
  249. data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
  250. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  251. data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
  252. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
  253. data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
  254. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  255. data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
  256. data/src/core/lib/iomgr/tcp_custom.cc +14 -16
  257. data/src/core/lib/iomgr/tcp_custom.h +13 -12
  258. data/src/core/lib/iomgr/tcp_posix.cc +78 -73
  259. data/src/core/lib/iomgr/tcp_posix.h +8 -0
  260. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  261. data/src/core/lib/iomgr/tcp_server.h +12 -11
  262. data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
  263. data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
  264. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
  265. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
  266. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
  267. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  268. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
  269. data/src/core/lib/iomgr/tcp_uv.cc +25 -23
  270. data/src/core/lib/iomgr/tcp_windows.cc +13 -13
  271. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  272. data/src/core/lib/iomgr/timer.h +6 -1
  273. data/src/core/lib/iomgr/timer_custom.cc +2 -1
  274. data/src/core/lib/iomgr/timer_custom.h +1 -1
  275. data/src/core/lib/iomgr/timer_generic.cc +6 -6
  276. data/src/core/lib/iomgr/udp_server.cc +21 -20
  277. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  278. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
  279. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  280. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  281. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
  282. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  283. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  284. data/src/core/lib/iomgr/work_serializer.h +17 -1
  285. data/src/core/lib/json/json.h +1 -1
  286. data/src/core/lib/json/json_reader.cc +4 -4
  287. data/src/core/lib/matchers/matchers.cc +39 -39
  288. data/src/core/lib/matchers/matchers.h +28 -28
  289. data/src/core/lib/security/authorization/authorization_engine.h +44 -0
  290. data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
  291. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
  292. data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
  293. data/src/core/lib/security/authorization/evaluate_args.h +91 -0
  294. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  295. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  296. data/src/core/lib/security/credentials/credentials.h +2 -2
  297. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
  298. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
  299. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
  300. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  301. data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
  302. data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
  303. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
  304. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  305. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
  306. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
  307. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  308. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  309. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
  310. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  311. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  312. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
  313. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
  314. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  315. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
  316. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  317. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
  318. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
  319. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  320. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
  321. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
  322. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
  323. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
  324. data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
  325. data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
  326. data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
  327. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
  328. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
  329. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  330. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
  331. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  332. data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
  333. data/src/core/lib/security/security_connector/security_connector.h +9 -4
  334. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
  335. data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
  336. data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
  337. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
  338. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
  339. data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
  340. data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
  341. data/src/core/lib/security/transport/security_handshaker.cc +33 -32
  342. data/src/core/lib/security/transport/server_auth_filter.cc +24 -11
  343. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  344. data/src/core/lib/security/transport/tsi_error.h +2 -1
  345. data/src/core/lib/security/util/json_util.cc +2 -2
  346. data/src/core/lib/security/util/json_util.h +1 -1
  347. data/src/core/lib/surface/call.cc +67 -46
  348. data/src/core/lib/surface/call.h +13 -2
  349. data/src/core/lib/surface/channel.cc +6 -6
  350. data/src/core/lib/surface/channel.h +3 -2
  351. data/src/core/lib/surface/channel_ping.cc +1 -1
  352. data/src/core/lib/surface/completion_queue.cc +68 -69
  353. data/src/core/lib/surface/completion_queue.h +3 -2
  354. data/src/core/lib/surface/completion_queue_factory.cc +1 -2
  355. data/src/core/lib/surface/init.cc +1 -3
  356. data/src/core/lib/surface/init.h +10 -1
  357. data/src/core/lib/surface/lame_client.cc +11 -11
  358. data/src/core/lib/surface/lame_client.h +1 -1
  359. data/src/core/lib/surface/server.cc +28 -22
  360. data/src/core/lib/surface/server.h +16 -15
  361. data/src/core/lib/surface/validate_metadata.cc +7 -7
  362. data/src/core/lib/surface/validate_metadata.h +3 -2
  363. data/src/core/lib/surface/version.cc +4 -2
  364. data/src/core/lib/transport/byte_stream.cc +5 -5
  365. data/src/core/lib/transport/byte_stream.h +8 -8
  366. data/src/core/lib/transport/connectivity_state.cc +1 -1
  367. data/src/core/lib/transport/error_utils.cc +21 -10
  368. data/src/core/lib/transport/error_utils.h +11 -5
  369. data/src/core/lib/transport/metadata_batch.cc +37 -37
  370. data/src/core/lib/transport/metadata_batch.h +19 -18
  371. data/src/core/lib/transport/transport.cc +4 -3
  372. data/src/core/lib/transport/transport.h +6 -4
  373. data/src/core/lib/transport/transport_op_string.cc +6 -6
  374. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
  375. data/src/core/tsi/alts/crypt/gsec.h +6 -0
  376. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
  377. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
  378. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  379. data/src/core/tsi/ssl_transport_security.cc +32 -14
  380. data/src/core/tsi/ssl_transport_security.h +3 -4
  381. data/src/ruby/bin/math_services_pb.rb +1 -1
  382. data/src/ruby/ext/grpc/extconf.rb +2 -0
  383. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
  384. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
  385. data/src/ruby/lib/grpc/version.rb +1 -1
  386. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  387. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  388. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  389. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  390. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  391. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  392. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  393. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  394. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  395. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  396. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  397. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  398. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  399. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  400. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  401. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  402. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  403. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  404. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  405. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  406. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  407. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  408. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  409. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  410. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  411. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  412. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  413. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  414. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  415. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  416. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  417. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  418. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  419. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  420. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  421. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  422. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  423. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  424. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  425. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  426. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  427. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  428. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  429. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  430. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  431. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  432. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  433. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  434. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  435. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  436. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  437. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  438. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  439. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  440. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  441. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  442. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  443. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  444. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  445. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  446. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  447. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  448. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  449. data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
  450. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  451. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  452. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  453. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  454. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  455. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  456. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  457. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  458. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  459. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  460. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  461. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  462. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  463. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  464. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  465. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  466. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  467. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  468. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  469. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  470. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  471. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  472. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  473. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  474. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  475. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  476. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  477. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  478. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  479. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  480. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  481. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  482. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  483. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  484. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  485. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  486. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  487. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  488. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  489. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  490. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  491. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  492. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  493. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  494. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  495. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  496. data/third_party/boringssl-with-bazel/err_data.c +483 -461
  497. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  498. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
  499. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
  500. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
  501. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
  502. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
  503. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
  504. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
  505. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  506. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
  507. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  508. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
  509. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  510. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  511. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
  512. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
  513. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
  514. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
  515. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
  516. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
  517. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
  518. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  519. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
  520. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
  521. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
  522. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  523. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  524. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  525. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
  526. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
  527. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  528. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  529. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  530. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  531. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  532. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  533. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
  534. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
  535. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
  536. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
  537. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
  538. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  539. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
  540. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
  541. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
  542. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
  543. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
  544. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  545. data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
  546. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  547. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
  548. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  549. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
  550. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
  551. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
  552. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  553. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
  554. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  555. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
  556. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  557. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
  558. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
  559. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
  560. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
  561. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
  562. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
  563. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
  564. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
  565. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  566. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
  567. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
  568. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
  569. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  570. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
  571. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
  572. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  573. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
  574. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
  575. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
  576. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  577. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
  578. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
  579. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
  580. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
  581. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
  582. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
  583. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
  584. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  585. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
  586. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  587. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
  588. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
  589. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
  590. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  591. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
  592. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  593. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
  594. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  595. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
  596. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  597. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  598. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
  599. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
  600. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
  601. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
  602. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
  603. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
  604. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
  605. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
  606. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
  607. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
  608. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
  609. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
  610. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
  611. data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
  612. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
  613. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  614. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
  615. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  616. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  617. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
  618. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
  619. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
  620. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
  621. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
  622. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
  623. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
  624. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
  625. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
  626. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
  627. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
  628. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  629. metadata +93 -45
  630. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  631. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  632. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  633. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  634. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
  635. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
  636. data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -28,31 +28,33 @@ namespace grpc_core {
28
28
  class AwsExternalAccountCredentials final : public ExternalAccountCredentials {
29
29
  public:
30
30
  static RefCountedPtr<AwsExternalAccountCredentials> Create(
31
- Options options, std::vector<std::string> scopes, grpc_error** error);
31
+ Options options, std::vector<std::string> scopes,
32
+ grpc_error_handle* error);
32
33
 
33
34
  AwsExternalAccountCredentials(Options options,
34
35
  std::vector<std::string> scopes,
35
- grpc_error** error);
36
+ grpc_error_handle* error);
36
37
 
37
38
  private:
38
39
  void RetrieveSubjectToken(
39
40
  HTTPRequestContext* ctx, const Options& options,
40
- std::function<void(std::string, grpc_error*)> cb) override;
41
+ std::function<void(std::string, grpc_error_handle)> cb) override;
41
42
 
42
43
  void RetrieveRegion();
43
- static void OnRetrieveRegion(void* arg, grpc_error* error);
44
- void OnRetrieveRegionInternal(grpc_error* error);
44
+ static void OnRetrieveRegion(void* arg, grpc_error_handle error);
45
+ void OnRetrieveRegionInternal(grpc_error_handle error);
45
46
 
46
47
  void RetrieveRoleName();
47
- static void OnRetrieveRoleName(void* arg, grpc_error* error);
48
- void OnRetrieveRoleNameInternal(grpc_error* error);
48
+ static void OnRetrieveRoleName(void* arg, grpc_error_handle error);
49
+ void OnRetrieveRoleNameInternal(grpc_error_handle error);
49
50
 
50
51
  void RetrieveSigningKeys();
51
- static void OnRetrieveSigningKeys(void* arg, grpc_error* error);
52
- void OnRetrieveSigningKeysInternal(grpc_error* error);
52
+ static void OnRetrieveSigningKeys(void* arg, grpc_error_handle error);
53
+ void OnRetrieveSigningKeysInternal(grpc_error_handle error);
53
54
 
54
55
  void BuildSubjectToken();
55
- void FinishRetrieveSubjectToken(std::string subject_token, grpc_error* error);
56
+ void FinishRetrieveSubjectToken(std::string subject_token,
57
+ grpc_error_handle error);
56
58
 
57
59
  std::string audience_;
58
60
 
@@ -72,7 +74,7 @@ class AwsExternalAccountCredentials final : public ExternalAccountCredentials {
72
74
  std::string cred_verification_url_;
73
75
 
74
76
  HTTPRequestContext* ctx_ = nullptr;
75
- std::function<void(std::string, grpc_error*)> cb_ = nullptr;
77
+ std::function<void(std::string, grpc_error_handle)> cb_ = nullptr;
76
78
  };
77
79
 
78
80
  } // namespace grpc_core
@@ -66,7 +66,8 @@ AwsRequestSigner::AwsRequestSigner(
66
66
  std::string access_key_id, std::string secret_access_key, std::string token,
67
67
  std::string method, std::string url, std::string region,
68
68
  std::string request_payload,
69
- std::map<std::string, std::string> additional_headers, grpc_error** error)
69
+ std::map<std::string, std::string> additional_headers,
70
+ grpc_error_handle* error)
70
71
  : access_key_id_(std::move(access_key_id)),
71
72
  secret_access_key_(std::move(secret_access_key)),
72
73
  token_(std::move(token)),
@@ -45,7 +45,7 @@ class AwsRequestSigner {
45
45
  std::string token, std::string method, std::string url,
46
46
  std::string region, std::string request_payload,
47
47
  std::map<std::string, std::string> additional_headers,
48
- grpc_error** error);
48
+ grpc_error_handle* error);
49
49
 
50
50
  // This method triggers the signing process then returns the headers of the
51
51
  // signed request as a map. In case there is an error, the input `error`
@@ -63,7 +63,8 @@ std::string UrlEncode(const absl::string_view& s) {
63
63
  } // namespace
64
64
 
65
65
  RefCountedPtr<ExternalAccountCredentials> ExternalAccountCredentials::Create(
66
- const Json& json, std::vector<std::string> scopes, grpc_error** error) {
66
+ const Json& json, std::vector<std::string> scopes,
67
+ grpc_error_handle* error) {
67
68
  GPR_ASSERT(*error == GRPC_ERROR_NONE);
68
69
  Options options;
69
70
  options.type = GRPC_AUTH_JSON_TYPE_INVALID;
@@ -213,14 +214,14 @@ void ExternalAccountCredentials::fetch_oauth2(
213
214
  ctx_ = new HTTPRequestContext(httpcli_context, pollent, deadline);
214
215
  metadata_req_ = metadata_req;
215
216
  response_cb_ = response_cb;
216
- auto cb = [this](std::string token, grpc_error* error) {
217
+ auto cb = [this](std::string token, grpc_error_handle error) {
217
218
  OnRetrieveSubjectTokenInternal(token, error);
218
219
  };
219
220
  RetrieveSubjectToken(ctx_, options_, cb);
220
221
  }
221
222
 
222
223
  void ExternalAccountCredentials::OnRetrieveSubjectTokenInternal(
223
- absl::string_view subject_token, grpc_error* error) {
224
+ absl::string_view subject_token, grpc_error_handle error) {
224
225
  if (error != GRPC_ERROR_NONE) {
225
226
  FinishTokenFetch(error);
226
227
  } else {
@@ -300,13 +301,15 @@ void ExternalAccountCredentials::ExchangeToken(
300
301
  grpc_http_request_destroy(&request.http);
301
302
  }
302
303
 
303
- void ExternalAccountCredentials::OnExchangeToken(void* arg, grpc_error* error) {
304
+ void ExternalAccountCredentials::OnExchangeToken(void* arg,
305
+ grpc_error_handle error) {
304
306
  ExternalAccountCredentials* self =
305
307
  static_cast<ExternalAccountCredentials*>(arg);
306
308
  self->OnExchangeTokenInternal(GRPC_ERROR_REF(error));
307
309
  }
308
310
 
309
- void ExternalAccountCredentials::OnExchangeTokenInternal(grpc_error* error) {
311
+ void ExternalAccountCredentials::OnExchangeTokenInternal(
312
+ grpc_error_handle error) {
310
313
  if (error != GRPC_ERROR_NONE) {
311
314
  FinishTokenFetch(error);
312
315
  } else {
@@ -330,7 +333,7 @@ void ExternalAccountCredentials::OnExchangeTokenInternal(grpc_error* error) {
330
333
  }
331
334
 
332
335
  void ExternalAccountCredentials::ImpersenateServiceAccount() {
333
- grpc_error* error = GRPC_ERROR_NONE;
336
+ grpc_error_handle error = GRPC_ERROR_NONE;
334
337
  absl::string_view response_body(ctx_->response.body,
335
338
  ctx_->response.body_length);
336
339
  Json json = Json::Parse(response_body, &error);
@@ -389,14 +392,14 @@ void ExternalAccountCredentials::ImpersenateServiceAccount() {
389
392
  }
390
393
 
391
394
  void ExternalAccountCredentials::OnImpersenateServiceAccount(
392
- void* arg, grpc_error* error) {
395
+ void* arg, grpc_error_handle error) {
393
396
  ExternalAccountCredentials* self =
394
397
  static_cast<ExternalAccountCredentials*>(arg);
395
398
  self->OnImpersenateServiceAccountInternal(GRPC_ERROR_REF(error));
396
399
  }
397
400
 
398
401
  void ExternalAccountCredentials::OnImpersenateServiceAccountInternal(
399
- grpc_error* error) {
402
+ grpc_error_handle error) {
400
403
  if (error != GRPC_ERROR_NONE) {
401
404
  FinishTokenFetch(error);
402
405
  return;
@@ -452,7 +455,7 @@ void ExternalAccountCredentials::OnImpersenateServiceAccountInternal(
452
455
  FinishTokenFetch(GRPC_ERROR_NONE);
453
456
  }
454
457
 
455
- void ExternalAccountCredentials::FinishTokenFetch(grpc_error* error) {
458
+ void ExternalAccountCredentials::FinishTokenFetch(grpc_error_handle error) {
456
459
  GRPC_LOG_IF_ERROR("Fetch external account credentials access token",
457
460
  GRPC_ERROR_REF(error));
458
461
  // Move object state into local variables.
@@ -473,12 +476,12 @@ void ExternalAccountCredentials::FinishTokenFetch(grpc_error* error) {
473
476
 
474
477
  grpc_call_credentials* grpc_external_account_credentials_create(
475
478
  const char* json_string, const char* scopes_string) {
476
- grpc_error* error = GRPC_ERROR_NONE;
479
+ grpc_error_handle error = GRPC_ERROR_NONE;
477
480
  grpc_core::Json json = grpc_core::Json::Parse(json_string, &error);
478
481
  if (error != GRPC_ERROR_NONE) {
479
482
  gpr_log(GPR_ERROR,
480
483
  "External account credentials creation failed. Error: %s.",
481
- grpc_error_string(error));
484
+ grpc_error_std_string(error).c_str());
482
485
  GRPC_ERROR_UNREF(error);
483
486
  return nullptr;
484
487
  }
@@ -489,7 +492,7 @@ grpc_call_credentials* grpc_external_account_credentials_create(
489
492
  if (error != GRPC_ERROR_NONE) {
490
493
  gpr_log(GPR_ERROR,
491
494
  "External account credentials creation failed. Error: %s.",
492
- grpc_error_string(error));
495
+ grpc_error_std_string(error).c_str());
493
496
  GRPC_ERROR_UNREF(error);
494
497
  return nullptr;
495
498
  }
@@ -49,7 +49,8 @@ class ExternalAccountCredentials
49
49
  };
50
50
 
51
51
  static RefCountedPtr<ExternalAccountCredentials> Create(
52
- const Json& json, std::vector<std::string> scopes, grpc_error** error);
52
+ const Json& json, std::vector<std::string> scopes,
53
+ grpc_error_handle* error);
53
54
 
54
55
  ExternalAccountCredentials(Options options, std::vector<std::string> scopes);
55
56
  ~ExternalAccountCredentials() override;
@@ -84,7 +85,7 @@ class ExternalAccountCredentials
84
85
  // back.
85
86
  virtual void RetrieveSubjectToken(
86
87
  HTTPRequestContext* ctx, const Options& options,
87
- std::function<void(std::string, grpc_error*)> cb) = 0;
88
+ std::function<void(std::string, grpc_error_handle)> cb) = 0;
88
89
 
89
90
  private:
90
91
  // This method implements the common token fetch logic and it will be called
@@ -95,17 +96,17 @@ class ExternalAccountCredentials
95
96
  grpc_millis deadline) override;
96
97
 
97
98
  void OnRetrieveSubjectTokenInternal(absl::string_view subject_token,
98
- grpc_error* error);
99
+ grpc_error_handle error);
99
100
 
100
101
  void ExchangeToken(absl::string_view subject_token);
101
- static void OnExchangeToken(void* arg, grpc_error* error);
102
- void OnExchangeTokenInternal(grpc_error* error);
102
+ static void OnExchangeToken(void* arg, grpc_error_handle error);
103
+ void OnExchangeTokenInternal(grpc_error_handle error);
103
104
 
104
105
  void ImpersenateServiceAccount();
105
- static void OnImpersenateServiceAccount(void* arg, grpc_error* error);
106
- void OnImpersenateServiceAccountInternal(grpc_error* error);
106
+ static void OnImpersenateServiceAccount(void* arg, grpc_error_handle error);
107
+ void OnImpersenateServiceAccountInternal(grpc_error_handle error);
107
108
 
108
- void FinishTokenFetch(grpc_error* error);
109
+ void FinishTokenFetch(grpc_error_handle error);
109
110
 
110
111
  Options options_;
111
112
  std::vector<std::string> scopes_;
@@ -28,7 +28,7 @@ namespace grpc_core {
28
28
  RefCountedPtr<FileExternalAccountCredentials>
29
29
  FileExternalAccountCredentials::Create(Options options,
30
30
  std::vector<std::string> scopes,
31
- grpc_error** error) {
31
+ grpc_error_handle* error) {
32
32
  auto creds = MakeRefCounted<FileExternalAccountCredentials>(
33
33
  std::move(options), std::move(scopes), error);
34
34
  if (*error == GRPC_ERROR_NONE) {
@@ -39,7 +39,7 @@ FileExternalAccountCredentials::Create(Options options,
39
39
  }
40
40
 
41
41
  FileExternalAccountCredentials::FileExternalAccountCredentials(
42
- Options options, std::vector<std::string> scopes, grpc_error** error)
42
+ Options options, std::vector<std::string> scopes, grpc_error_handle* error)
43
43
  : ExternalAccountCredentials(options, std::move(scopes)) {
44
44
  auto it = options.credential_source.object_value().find("file");
45
45
  if (it == options.credential_source.object_value().end()) {
@@ -92,7 +92,7 @@ FileExternalAccountCredentials::FileExternalAccountCredentials(
92
92
 
93
93
  void FileExternalAccountCredentials::RetrieveSubjectToken(
94
94
  HTTPRequestContext* /*ctx*/, const Options& /*options*/,
95
- std::function<void(std::string, grpc_error*)> cb) {
95
+ std::function<void(std::string, grpc_error_handle)> cb) {
96
96
  struct SliceWrapper {
97
97
  ~SliceWrapper() { grpc_slice_unref_internal(slice); }
98
98
  grpc_slice slice = grpc_empty_slice();
@@ -100,7 +100,8 @@ void FileExternalAccountCredentials::RetrieveSubjectToken(
100
100
  SliceWrapper content_slice;
101
101
  // To retrieve the subject token, we read the file every time we make a
102
102
  // request because it may have changed since the last request.
103
- grpc_error* error = grpc_load_file(file_.c_str(), 0, &content_slice.slice);
103
+ grpc_error_handle error =
104
+ grpc_load_file(file_.c_str(), 0, &content_slice.slice);
104
105
  if (error != GRPC_ERROR_NONE) {
105
106
  cb("", error);
106
107
  return;
@@ -26,16 +26,17 @@ namespace grpc_core {
26
26
  class FileExternalAccountCredentials final : public ExternalAccountCredentials {
27
27
  public:
28
28
  static RefCountedPtr<FileExternalAccountCredentials> Create(
29
- Options options, std::vector<std::string> scopes, grpc_error** error);
29
+ Options options, std::vector<std::string> scopes,
30
+ grpc_error_handle* error);
30
31
 
31
32
  FileExternalAccountCredentials(Options options,
32
33
  std::vector<std::string> scopes,
33
- grpc_error** error);
34
+ grpc_error_handle* error);
34
35
 
35
36
  private:
36
37
  void RetrieveSubjectToken(
37
38
  HTTPRequestContext* ctx, const Options& options,
38
- std::function<void(std::string, grpc_error*)> cb) override;
39
+ std::function<void(std::string, grpc_error_handle)> cb) override;
39
40
 
40
41
  // Fields of credential source
41
42
  std::string file_;
@@ -26,7 +26,7 @@ namespace grpc_core {
26
26
  RefCountedPtr<UrlExternalAccountCredentials>
27
27
  UrlExternalAccountCredentials::Create(Options options,
28
28
  std::vector<std::string> scopes,
29
- grpc_error** error) {
29
+ grpc_error_handle* error) {
30
30
  auto creds = MakeRefCounted<UrlExternalAccountCredentials>(
31
31
  std::move(options), std::move(scopes), error);
32
32
  if (*error == GRPC_ERROR_NONE) {
@@ -37,7 +37,7 @@ UrlExternalAccountCredentials::Create(Options options,
37
37
  }
38
38
 
39
39
  UrlExternalAccountCredentials::UrlExternalAccountCredentials(
40
- Options options, std::vector<std::string> scopes, grpc_error** error)
40
+ Options options, std::vector<std::string> scopes, grpc_error_handle* error)
41
41
  : ExternalAccountCredentials(options, std::move(scopes)) {
42
42
  auto it = options.credential_source.object_value().find("url");
43
43
  if (it == options.credential_source.object_value().end()) {
@@ -113,7 +113,7 @@ UrlExternalAccountCredentials::UrlExternalAccountCredentials(
113
113
 
114
114
  void UrlExternalAccountCredentials::RetrieveSubjectToken(
115
115
  HTTPRequestContext* ctx, const Options& /*options*/,
116
- std::function<void(std::string, grpc_error*)> cb) {
116
+ std::function<void(std::string, grpc_error_handle)> cb) {
117
117
  if (ctx == nullptr) {
118
118
  FinishRetrieveSubjectToken(
119
119
  "",
@@ -151,15 +151,15 @@ void UrlExternalAccountCredentials::RetrieveSubjectToken(
151
151
  grpc_http_request_destroy(&request.http);
152
152
  }
153
153
 
154
- void UrlExternalAccountCredentials::OnRetrieveSubjectToken(void* arg,
155
- grpc_error* error) {
154
+ void UrlExternalAccountCredentials::OnRetrieveSubjectToken(
155
+ void* arg, grpc_error_handle error) {
156
156
  UrlExternalAccountCredentials* self =
157
157
  static_cast<UrlExternalAccountCredentials*>(arg);
158
158
  self->OnRetrieveSubjectTokenInternal(GRPC_ERROR_REF(error));
159
159
  }
160
160
 
161
161
  void UrlExternalAccountCredentials::OnRetrieveSubjectTokenInternal(
162
- grpc_error* error) {
162
+ grpc_error_handle error) {
163
163
  if (error != GRPC_ERROR_NONE) {
164
164
  FinishRetrieveSubjectToken("", error);
165
165
  return;
@@ -167,7 +167,7 @@ void UrlExternalAccountCredentials::OnRetrieveSubjectTokenInternal(
167
167
  absl::string_view response_body(ctx_->response.body,
168
168
  ctx_->response.body_length);
169
169
  if (format_type_ == "json") {
170
- grpc_error* error = GRPC_ERROR_NONE;
170
+ grpc_error_handle error = GRPC_ERROR_NONE;
171
171
  Json response_json = Json::Parse(response_body, &error);
172
172
  if (error != GRPC_ERROR_NONE ||
173
173
  response_json.type() != Json::Type::OBJECT) {
@@ -196,7 +196,7 @@ void UrlExternalAccountCredentials::OnRetrieveSubjectTokenInternal(
196
196
  }
197
197
 
198
198
  void UrlExternalAccountCredentials::FinishRetrieveSubjectToken(
199
- std::string subject_token, grpc_error* error) {
199
+ std::string subject_token, grpc_error_handle error) {
200
200
  // Reset context
201
201
  ctx_ = nullptr;
202
202
  // Move object state into local variables.
@@ -26,21 +26,23 @@ namespace grpc_core {
26
26
  class UrlExternalAccountCredentials final : public ExternalAccountCredentials {
27
27
  public:
28
28
  static RefCountedPtr<UrlExternalAccountCredentials> Create(
29
- Options options, std::vector<std::string> scopes, grpc_error** error);
29
+ Options options, std::vector<std::string> scopes,
30
+ grpc_error_handle* error);
30
31
 
31
32
  UrlExternalAccountCredentials(Options options,
32
33
  std::vector<std::string> scopes,
33
- grpc_error** error);
34
+ grpc_error_handle* error);
34
35
 
35
36
  private:
36
37
  void RetrieveSubjectToken(
37
38
  HTTPRequestContext* ctx, const Options& options,
38
- std::function<void(std::string, grpc_error*)> cb) override;
39
+ std::function<void(std::string, grpc_error_handle)> cb) override;
39
40
 
40
- static void OnRetrieveSubjectToken(void* arg, grpc_error* error);
41
- void OnRetrieveSubjectTokenInternal(grpc_error* error);
41
+ static void OnRetrieveSubjectToken(void* arg, grpc_error_handle error);
42
+ void OnRetrieveSubjectTokenInternal(grpc_error_handle error);
42
43
 
43
- void FinishRetrieveSubjectToken(std::string subject_token, grpc_error* error);
44
+ void FinishRetrieveSubjectToken(std::string subject_token,
45
+ grpc_error_handle error);
44
46
 
45
47
  // Fields of credential source
46
48
  URI url_;
@@ -50,7 +52,7 @@ class UrlExternalAccountCredentials final : public ExternalAccountCredentials {
50
52
  std::string format_subject_token_field_name_;
51
53
 
52
54
  HTTPRequestContext* ctx_ = nullptr;
53
- std::function<void(std::string, grpc_error*)> cb_ = nullptr;
55
+ std::function<void(std::string, grpc_error_handle)> cb_ = nullptr;
54
56
  };
55
57
 
56
58
  } // namespace grpc_core
@@ -92,7 +92,7 @@ const char* grpc_fake_transport_get_expected_targets(
92
92
  bool grpc_md_only_test_credentials::get_request_metadata(
93
93
  grpc_polling_entity* /*pollent*/, grpc_auth_metadata_context /*context*/,
94
94
  grpc_credentials_mdelem_array* md_array, grpc_closure* on_request_metadata,
95
- grpc_error** /*error*/) {
95
+ grpc_error_handle* /*error*/) {
96
96
  grpc_credentials_mdelem_array_add(md_array, md_);
97
97
  if (is_async_) {
98
98
  grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_request_metadata,
@@ -103,7 +103,7 @@ bool grpc_md_only_test_credentials::get_request_metadata(
103
103
  }
104
104
 
105
105
  void grpc_md_only_test_credentials::cancel_get_request_metadata(
106
- grpc_credentials_mdelem_array* /*md_array*/, grpc_error* error) {
106
+ grpc_credentials_mdelem_array* /*md_array*/, grpc_error_handle error) {
107
107
  GRPC_ERROR_UNREF(error);
108
108
  }
109
109
 
@@ -72,10 +72,10 @@ class grpc_md_only_test_credentials : public grpc_call_credentials {
72
72
  grpc_auth_metadata_context context,
73
73
  grpc_credentials_mdelem_array* md_array,
74
74
  grpc_closure* on_request_metadata,
75
- grpc_error** error) override;
75
+ grpc_error_handle* error) override;
76
76
 
77
77
  void cancel_get_request_metadata(grpc_credentials_mdelem_array* md_array,
78
- grpc_error* error) override;
78
+ grpc_error_handle error) override;
79
79
 
80
80
  std::string debug_string() override { return "MD only Test Credentials"; };
81
81
 
@@ -22,6 +22,8 @@
22
22
 
23
23
  #include <string.h>
24
24
 
25
+ #include "absl/strings/match.h"
26
+
25
27
  #include <grpc/support/alloc.h>
26
28
  #include <grpc/support/log.h>
27
29
  #include <grpc/support/sync.h>
@@ -91,7 +93,7 @@ grpc_google_default_channel_credentials::create_security_connector(
91
93
  const char* xds_cluster =
92
94
  grpc_channel_args_find_string(args, GRPC_ARG_XDS_CLUSTER_NAME);
93
95
  const bool is_xds_non_cfe_cluster =
94
- xds_cluster != nullptr && strcmp(xds_cluster, "google_cfe") != 0;
96
+ xds_cluster != nullptr && !absl::StartsWith(xds_cluster, "google_cfe_");
95
97
  const bool use_alts = is_grpclb_load_balancer ||
96
98
  is_backend_from_grpclb_load_balancer ||
97
99
  is_xds_non_cfe_cluster;
@@ -134,8 +136,8 @@ grpc_channel_args* grpc_google_default_channel_credentials::update_arguments(
134
136
  return updated;
135
137
  }
136
138
 
137
- static void on_metadata_server_detection_http_response(void* user_data,
138
- grpc_error* error) {
139
+ static void on_metadata_server_detection_http_response(
140
+ void* user_data, grpc_error_handle error) {
139
141
  metadata_server_detector* detector =
140
142
  static_cast<metadata_server_detector*>(user_data);
141
143
  if (error == GRPC_ERROR_NONE && detector->response.status == 200 &&
@@ -161,7 +163,7 @@ static void on_metadata_server_detection_http_response(void* user_data,
161
163
  gpr_mu_unlock(g_polling_mu);
162
164
  }
163
165
 
164
- static void destroy_pollset(void* p, grpc_error* /*e*/) {
166
+ static void destroy_pollset(void* p, grpc_error_handle /*e*/) {
165
167
  grpc_pollset_destroy(static_cast<grpc_pollset*>(p));
166
168
  }
167
169
 
@@ -221,14 +223,14 @@ static int is_metadata_server_reachable() {
221
223
  }
222
224
 
223
225
  /* Takes ownership of creds_path if not NULL. */
224
- static grpc_error* create_default_creds_from_path(
226
+ static grpc_error_handle create_default_creds_from_path(
225
227
  const std::string& creds_path,
226
228
  grpc_core::RefCountedPtr<grpc_call_credentials>* creds) {
227
229
  grpc_auth_json_key key;
228
230
  grpc_auth_refresh_token token;
229
231
  grpc_core::RefCountedPtr<grpc_call_credentials> result;
230
232
  grpc_slice creds_data = grpc_empty_slice();
231
- grpc_error* error = GRPC_ERROR_NONE;
233
+ grpc_error_handle error = GRPC_ERROR_NONE;
232
234
  Json json;
233
235
  if (creds_path.empty()) {
234
236
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("creds_path unset");
@@ -304,9 +306,9 @@ static bool metadata_server_available() {
304
306
  }
305
307
 
306
308
  static grpc_core::RefCountedPtr<grpc_call_credentials> make_default_call_creds(
307
- grpc_error** error) {
309
+ grpc_error_handle* error) {
308
310
  grpc_core::RefCountedPtr<grpc_call_credentials> call_creds;
309
- grpc_error* err;
311
+ grpc_error_handle err;
310
312
 
311
313
  /* First, try the environment variable. */
312
314
  char* path_from_env = gpr_getenv(GRPC_GOOGLE_CREDENTIALS_ENV_VAR);
@@ -344,7 +346,7 @@ grpc_channel_credentials* grpc_google_default_credentials_create(
344
346
  grpc_call_credentials* call_credentials) {
345
347
  grpc_channel_credentials* result = nullptr;
346
348
  grpc_core::RefCountedPtr<grpc_call_credentials> call_creds(call_credentials);
347
- grpc_error* error = nullptr;
349
+ grpc_error_handle error = GRPC_ERROR_NONE;
348
350
  grpc_core::ExecCtx exec_ctx;
349
351
 
350
352
  GRPC_API_TRACE("grpc_google_default_credentials_create(%p)", 1,
@@ -373,7 +375,7 @@ grpc_channel_credentials* grpc_google_default_credentials_create(
373
375
  GPR_ASSERT(result != nullptr);
374
376
  } else {
375
377
  gpr_log(GPR_ERROR, "Could not create google default credentials: %s",
376
- grpc_error_string(error));
378
+ grpc_error_std_string(error).c_str());
377
379
  }
378
380
  GRPC_ERROR_UNREF(error);
379
381
  return result;