grpc 1.37.1 → 1.38.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 (544) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +64 -58
  3. data/include/grpc/event_engine/README.md +38 -0
  4. data/include/grpc/event_engine/channel_args.h +28 -0
  5. data/include/grpc/event_engine/event_engine.h +336 -0
  6. data/include/grpc/event_engine/port.h +39 -0
  7. data/include/grpc/event_engine/slice_allocator.h +81 -0
  8. data/include/grpc/grpc.h +2 -2
  9. data/include/grpc/grpc_security_constants.h +14 -0
  10. data/include/grpc/impl/codegen/grpc_types.h +11 -0
  11. data/include/grpc/impl/codegen/port_platform.h +5 -0
  12. data/include/grpc/module.modulemap +14 -14
  13. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  14. data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
  15. data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
  16. data/src/core/ext/filters/client_channel/client_channel.h +489 -55
  17. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
  19. data/src/core/ext/filters/client_channel/config_selector.h +1 -1
  20. data/src/core/ext/filters/client_channel/connector.h +1 -1
  21. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
  22. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  23. data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
  24. data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
  26. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
  32. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
  33. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
  34. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
  35. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
  36. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
  41. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
  42. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
  43. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  44. data/src/core/ext/filters/client_channel/resolver.h +2 -2
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  54. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
  55. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
  56. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  57. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
  58. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
  59. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
  60. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
  61. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
  62. data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
  63. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  64. data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
  65. data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
  66. data/src/core/ext/filters/client_channel/server_address.cc +1 -1
  67. data/src/core/ext/filters/client_channel/service_config.cc +15 -14
  68. data/src/core/ext/filters/client_channel/service_config.h +7 -6
  69. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
  70. data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
  71. data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
  72. data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
  73. data/src/core/ext/filters/client_channel/subchannel.h +7 -6
  74. data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
  75. data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
  76. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
  77. data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
  78. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  79. data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
  80. data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
  81. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  82. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
  83. data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
  84. data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
  85. data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
  86. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  87. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
  88. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
  89. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  90. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
  91. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
  92. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
  93. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
  94. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
  95. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
  96. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
  97. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
  98. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
  99. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  100. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  101. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  102. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
  103. data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
  104. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  105. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
  106. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  107. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
  108. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  109. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  110. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  111. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
  112. data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
  113. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
  114. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  115. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
  116. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
  117. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
  118. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  119. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  120. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  121. data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
  122. data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
  123. data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
  124. data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
  125. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  126. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  127. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
  128. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  129. data/src/core/ext/xds/xds_api.cc +101 -93
  130. data/src/core/ext/xds/xds_api.h +6 -6
  131. data/src/core/ext/xds/xds_bootstrap.cc +97 -159
  132. data/src/core/ext/xds/xds_bootstrap.h +19 -24
  133. data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
  134. data/src/core/ext/xds/xds_certificate_provider.h +4 -4
  135. data/src/core/ext/xds/xds_channel_args.h +5 -2
  136. data/src/core/ext/xds/xds_client.cc +310 -178
  137. data/src/core/ext/xds/xds_client.h +41 -27
  138. data/src/core/ext/xds/xds_client_stats.h +3 -2
  139. data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
  140. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
  141. data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
  142. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
  143. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
  144. data/src/core/lib/channel/channel_stack.cc +10 -9
  145. data/src/core/lib/channel/channel_stack.h +10 -9
  146. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  147. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  148. data/src/core/lib/channel/channelz.cc +21 -13
  149. data/src/core/lib/channel/connected_channel.cc +4 -4
  150. data/src/core/lib/channel/handshaker.cc +7 -6
  151. data/src/core/lib/channel/handshaker.h +5 -5
  152. data/src/core/lib/event_engine/slice_allocator.cc +59 -0
  153. data/src/core/lib/event_engine/sockaddr.cc +38 -0
  154. data/src/core/lib/gprpp/ref_counted.h +28 -14
  155. data/src/core/lib/gprpp/status_helper.cc +407 -0
  156. data/src/core/lib/gprpp/status_helper.h +180 -0
  157. data/src/core/lib/http/httpcli.cc +11 -11
  158. data/src/core/lib/http/httpcli_security_connector.cc +11 -7
  159. data/src/core/lib/http/parser.cc +16 -16
  160. data/src/core/lib/http/parser.h +4 -4
  161. data/src/core/lib/iomgr/buffer_list.cc +7 -9
  162. data/src/core/lib/iomgr/buffer_list.h +4 -5
  163. data/src/core/lib/iomgr/call_combiner.cc +15 -12
  164. data/src/core/lib/iomgr/call_combiner.h +12 -14
  165. data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
  166. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  167. data/src/core/lib/iomgr/closure.h +7 -6
  168. data/src/core/lib/iomgr/combiner.cc +14 -12
  169. data/src/core/lib/iomgr/combiner.h +2 -2
  170. data/src/core/lib/iomgr/endpoint.cc +1 -1
  171. data/src/core/lib/iomgr/endpoint.h +2 -2
  172. data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
  173. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  174. data/src/core/lib/iomgr/error.cc +167 -61
  175. data/src/core/lib/iomgr/error.h +217 -106
  176. data/src/core/lib/iomgr/error_cfstream.cc +3 -2
  177. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  178. data/src/core/lib/iomgr/error_internal.h +5 -1
  179. data/src/core/lib/iomgr/ev_apple.cc +5 -5
  180. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  181. data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
  182. data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
  183. data/src/core/lib/iomgr/ev_posix.cc +9 -8
  184. data/src/core/lib/iomgr/ev_posix.h +9 -9
  185. data/src/core/lib/iomgr/exec_ctx.cc +4 -4
  186. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  187. data/src/core/lib/iomgr/executor.cc +8 -8
  188. data/src/core/lib/iomgr/executor.h +2 -2
  189. data/src/core/lib/iomgr/iomgr.cc +1 -1
  190. data/src/core/lib/iomgr/iomgr.h +1 -1
  191. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  192. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  193. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  194. data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
  195. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
  196. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  197. data/src/core/lib/iomgr/load_file.cc +4 -4
  198. data/src/core/lib/iomgr/load_file.h +2 -2
  199. data/src/core/lib/iomgr/lockfree_event.cc +5 -5
  200. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  201. data/src/core/lib/iomgr/pollset.cc +5 -5
  202. data/src/core/lib/iomgr/pollset.h +9 -9
  203. data/src/core/lib/iomgr/pollset_custom.cc +5 -5
  204. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  205. data/src/core/lib/iomgr/port.h +1 -1
  206. data/src/core/lib/iomgr/python_util.h +1 -1
  207. data/src/core/lib/iomgr/resolve_address.cc +3 -3
  208. data/src/core/lib/iomgr/resolve_address.h +6 -6
  209. data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
  210. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  211. data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
  212. data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
  213. data/src/core/lib/iomgr/resource_quota.cc +11 -10
  214. data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
  215. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  216. data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
  217. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
  218. data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
  219. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  220. data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
  221. data/src/core/lib/iomgr/tcp_custom.cc +14 -16
  222. data/src/core/lib/iomgr/tcp_custom.h +13 -12
  223. data/src/core/lib/iomgr/tcp_posix.cc +36 -34
  224. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  225. data/src/core/lib/iomgr/tcp_server.h +12 -11
  226. data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
  227. data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
  228. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
  229. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
  230. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
  231. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  232. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
  233. data/src/core/lib/iomgr/tcp_uv.cc +25 -23
  234. data/src/core/lib/iomgr/tcp_windows.cc +13 -13
  235. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  236. data/src/core/lib/iomgr/timer_custom.cc +2 -1
  237. data/src/core/lib/iomgr/timer_custom.h +1 -1
  238. data/src/core/lib/iomgr/timer_generic.cc +6 -6
  239. data/src/core/lib/iomgr/udp_server.cc +21 -20
  240. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  241. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
  242. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  243. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  244. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
  245. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  246. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  247. data/src/core/lib/iomgr/work_serializer.h +17 -1
  248. data/src/core/lib/json/json.h +1 -1
  249. data/src/core/lib/json/json_reader.cc +4 -4
  250. data/src/core/lib/matchers/matchers.cc +39 -39
  251. data/src/core/lib/matchers/matchers.h +28 -28
  252. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  253. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  254. data/src/core/lib/security/credentials/credentials.h +2 -2
  255. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
  256. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
  257. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
  258. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  259. data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
  260. data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
  261. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
  262. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  263. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
  264. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
  265. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  266. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  267. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
  268. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  269. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  270. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
  271. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
  272. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  273. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
  274. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  275. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
  276. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
  277. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  278. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
  279. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
  280. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
  281. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
  282. data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
  283. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
  284. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
  285. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  286. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
  287. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  288. data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
  289. data/src/core/lib/security/security_connector/security_connector.h +9 -4
  290. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
  291. data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
  292. data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
  293. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
  294. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
  295. data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
  296. data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
  297. data/src/core/lib/security/transport/security_handshaker.cc +33 -32
  298. data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
  299. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  300. data/src/core/lib/security/transport/tsi_error.h +2 -1
  301. data/src/core/lib/security/util/json_util.cc +2 -2
  302. data/src/core/lib/security/util/json_util.h +1 -1
  303. data/src/core/lib/surface/call.cc +46 -45
  304. data/src/core/lib/surface/call.h +2 -2
  305. data/src/core/lib/surface/channel.cc +6 -6
  306. data/src/core/lib/surface/channel.h +3 -2
  307. data/src/core/lib/surface/channel_ping.cc +1 -1
  308. data/src/core/lib/surface/completion_queue.cc +46 -47
  309. data/src/core/lib/surface/completion_queue.h +2 -1
  310. data/src/core/lib/surface/lame_client.cc +11 -11
  311. data/src/core/lib/surface/lame_client.h +1 -1
  312. data/src/core/lib/surface/server.cc +28 -22
  313. data/src/core/lib/surface/server.h +16 -15
  314. data/src/core/lib/surface/validate_metadata.cc +7 -7
  315. data/src/core/lib/surface/validate_metadata.h +3 -2
  316. data/src/core/lib/surface/version.cc +4 -2
  317. data/src/core/lib/transport/byte_stream.cc +5 -5
  318. data/src/core/lib/transport/byte_stream.h +8 -8
  319. data/src/core/lib/transport/connectivity_state.cc +1 -1
  320. data/src/core/lib/transport/error_utils.cc +19 -8
  321. data/src/core/lib/transport/error_utils.h +11 -5
  322. data/src/core/lib/transport/metadata_batch.cc +37 -37
  323. data/src/core/lib/transport/metadata_batch.h +19 -18
  324. data/src/core/lib/transport/transport.cc +4 -3
  325. data/src/core/lib/transport/transport.h +4 -4
  326. data/src/core/lib/transport/transport_op_string.cc +5 -5
  327. data/src/core/tsi/alts/crypt/gsec.h +4 -0
  328. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
  329. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
  330. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  331. data/src/core/tsi/ssl_transport_security.cc +32 -14
  332. data/src/core/tsi/ssl_transport_security.h +3 -4
  333. data/src/ruby/bin/math_services_pb.rb +1 -1
  334. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  335. data/src/ruby/lib/grpc/version.rb +1 -1
  336. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  337. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  338. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  339. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  340. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  341. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  342. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  343. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  344. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  345. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  346. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  347. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  348. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  349. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  350. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  351. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  352. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  353. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  354. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  355. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  356. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  357. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  358. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  359. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  360. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  361. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  362. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  363. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  364. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  365. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  366. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  367. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  368. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  369. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  370. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  371. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  372. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  373. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  374. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  375. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  376. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  377. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  378. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  379. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  380. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  381. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  382. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  383. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  384. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  385. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  386. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  387. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  388. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  389. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  390. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  391. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  392. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  393. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  394. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  395. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  396. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  397. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  398. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  399. data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
  400. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  401. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  402. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  403. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  404. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  405. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  406. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  407. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  408. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  409. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  410. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  411. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  412. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  413. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  414. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  415. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  416. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  417. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  418. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  419. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  420. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  421. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  422. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  423. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  424. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  425. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  426. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  427. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  428. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  429. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  430. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  431. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  432. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  433. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  434. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  435. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  436. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  437. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  438. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  439. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  440. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  441. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  442. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  443. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  444. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  445. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  446. data/third_party/boringssl-with-bazel/err_data.c +477 -461
  447. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  448. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
  449. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
  450. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
  451. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
  452. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
  453. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
  454. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  455. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
  456. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  457. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  458. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
  459. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
  460. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
  461. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
  462. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  463. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
  464. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
  465. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
  466. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  467. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  468. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  469. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
  470. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
  471. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  472. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  473. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  474. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  475. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  476. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  477. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
  478. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  479. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
  480. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
  481. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
  482. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
  483. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
  484. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
  485. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  486. data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
  487. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  488. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
  489. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  490. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
  491. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  504. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
  505. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  506. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
  507. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
  508. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
  509. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
  510. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
  511. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  512. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
  513. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
  514. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  515. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
  516. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  517. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  518. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
  519. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  520. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  521. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
  522. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
  523. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
  524. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
  525. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
  526. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
  527. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
  528. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
  529. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
  530. data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
  531. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
  532. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  533. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  534. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
  535. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
  536. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
  537. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
  538. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  539. metadata +68 -45
  540. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  541. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  542. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  543. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  544. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
@@ -36,7 +36,7 @@
36
36
 
37
37
  /* -- Composite call credentials. -- */
38
38
 
39
- static void composite_call_metadata_cb(void* arg, grpc_error* error);
39
+ static void composite_call_metadata_cb(void* arg, grpc_error_handle error);
40
40
 
41
41
  namespace {
42
42
  struct grpc_composite_call_credentials_metadata_context {
@@ -64,7 +64,7 @@ struct grpc_composite_call_credentials_metadata_context {
64
64
  };
65
65
  } // namespace
66
66
 
67
- static void composite_call_metadata_cb(void* arg, grpc_error* error) {
67
+ static void composite_call_metadata_cb(void* arg, grpc_error_handle error) {
68
68
  grpc_composite_call_credentials_metadata_context* ctx =
69
69
  static_cast<grpc_composite_call_credentials_metadata_context*>(arg);
70
70
  if (error == GRPC_ERROR_NONE) {
@@ -91,7 +91,7 @@ static void composite_call_metadata_cb(void* arg, grpc_error* error) {
91
91
  bool grpc_composite_call_credentials::get_request_metadata(
92
92
  grpc_polling_entity* pollent, grpc_auth_metadata_context auth_md_context,
93
93
  grpc_credentials_mdelem_array* md_array, grpc_closure* on_request_metadata,
94
- grpc_error** error) {
94
+ grpc_error_handle* error) {
95
95
  grpc_composite_call_credentials_metadata_context* ctx;
96
96
  ctx = new grpc_composite_call_credentials_metadata_context(
97
97
  this, pollent, auth_md_context, md_array, on_request_metadata);
@@ -112,7 +112,7 @@ bool grpc_composite_call_credentials::get_request_metadata(
112
112
  }
113
113
 
114
114
  void grpc_composite_call_credentials::cancel_get_request_metadata(
115
- grpc_credentials_mdelem_array* md_array, grpc_error* error) {
115
+ grpc_credentials_mdelem_array* md_array, grpc_error_handle error) {
116
116
  for (size_t i = 0; i < inner_.size(); ++i) {
117
117
  inner_[i]->cancel_get_request_metadata(md_array, GRPC_ERROR_REF(error));
118
118
  }
@@ -83,10 +83,10 @@ class grpc_composite_call_credentials : public grpc_call_credentials {
83
83
  grpc_auth_metadata_context context,
84
84
  grpc_credentials_mdelem_array* md_array,
85
85
  grpc_closure* on_request_metadata,
86
- grpc_error** error) override;
86
+ grpc_error_handle* error) override;
87
87
 
88
88
  void cancel_get_request_metadata(grpc_credentials_mdelem_array* md_array,
89
- grpc_error* error) override;
89
+ grpc_error_handle error) override;
90
90
 
91
91
  grpc_security_level min_security_level() const override {
92
92
  return min_security_level_;
@@ -187,13 +187,13 @@ struct grpc_call_credentials
187
187
  grpc_auth_metadata_context context,
188
188
  grpc_credentials_mdelem_array* md_array,
189
189
  grpc_closure* on_request_metadata,
190
- grpc_error** error) = 0;
190
+ grpc_error_handle* error) = 0;
191
191
 
192
192
  // Cancels a pending asynchronous operation started by
193
193
  // grpc_call_credentials_get_request_metadata() with the corresponding
194
194
  // value of \a md_array.
195
195
  virtual void cancel_get_request_metadata(
196
- grpc_credentials_mdelem_array* md_array, grpc_error* error) = 0;
196
+ grpc_credentials_mdelem_array* md_array, grpc_error_handle error) = 0;
197
197
 
198
198
  virtual grpc_security_level min_security_level() const {
199
199
  return min_security_level_;
@@ -30,6 +30,7 @@ namespace {
30
30
  const char* kExpectedEnvironmentId = "aws1";
31
31
 
32
32
  const char* kRegionEnvVar = "AWS_REGION";
33
+ const char* kDefaultRegionEnvVar = "AWS_DEFAULT_REGION";
33
34
  const char* kAccessKeyIdEnvVar = "AWS_ACCESS_KEY_ID";
34
35
  const char* kSecretAccessKeyEnvVar = "AWS_SECRET_ACCESS_KEY";
35
36
  const char* kSessionTokenEnvVar = "AWS_SESSION_TOKEN";
@@ -57,7 +58,7 @@ std::string UrlEncode(const absl::string_view& s) {
57
58
  RefCountedPtr<AwsExternalAccountCredentials>
58
59
  AwsExternalAccountCredentials::Create(Options options,
59
60
  std::vector<std::string> scopes,
60
- grpc_error** error) {
61
+ grpc_error_handle* error) {
61
62
  auto creds = MakeRefCounted<AwsExternalAccountCredentials>(
62
63
  std::move(options), std::move(scopes), error);
63
64
  if (*error == GRPC_ERROR_NONE) {
@@ -68,7 +69,7 @@ AwsExternalAccountCredentials::Create(Options options,
68
69
  }
69
70
 
70
71
  AwsExternalAccountCredentials::AwsExternalAccountCredentials(
71
- Options options, std::vector<std::string> scopes, grpc_error** error)
72
+ Options options, std::vector<std::string> scopes, grpc_error_handle* error)
72
73
  : ExternalAccountCredentials(options, std::move(scopes)) {
73
74
  audience_ = options.audience;
74
75
  auto it = options.credential_source.object_value().find("environment_id");
@@ -121,7 +122,7 @@ AwsExternalAccountCredentials::AwsExternalAccountCredentials(
121
122
 
122
123
  void AwsExternalAccountCredentials::RetrieveSubjectToken(
123
124
  HTTPRequestContext* ctx, const Options& /*options*/,
124
- std::function<void(std::string, grpc_error*)> cb) {
125
+ std::function<void(std::string, grpc_error_handle)> cb) {
125
126
  if (ctx == nullptr) {
126
127
  FinishRetrieveSubjectToken(
127
128
  "",
@@ -140,6 +141,9 @@ void AwsExternalAccountCredentials::RetrieveSubjectToken(
140
141
 
141
142
  void AwsExternalAccountCredentials::RetrieveRegion() {
142
143
  UniquePtr<char> region_from_env(gpr_getenv(kRegionEnvVar));
144
+ if (region_from_env == nullptr) {
145
+ region_from_env = UniquePtr<char>(gpr_getenv(kDefaultRegionEnvVar));
146
+ }
143
147
  if (region_from_env != nullptr) {
144
148
  region_ = std::string(region_from_env.get());
145
149
  if (url_.empty()) {
@@ -175,14 +179,14 @@ void AwsExternalAccountCredentials::RetrieveRegion() {
175
179
  }
176
180
 
177
181
  void AwsExternalAccountCredentials::OnRetrieveRegion(void* arg,
178
- grpc_error* error) {
182
+ grpc_error_handle error) {
179
183
  AwsExternalAccountCredentials* self =
180
184
  static_cast<AwsExternalAccountCredentials*>(arg);
181
185
  self->OnRetrieveRegionInternal(GRPC_ERROR_REF(error));
182
186
  }
183
187
 
184
188
  void AwsExternalAccountCredentials::OnRetrieveRegionInternal(
185
- grpc_error* error) {
189
+ grpc_error_handle error) {
186
190
  if (error != GRPC_ERROR_NONE) {
187
191
  FinishRetrieveSubjectToken("", error);
188
192
  return;
@@ -224,15 +228,15 @@ void AwsExternalAccountCredentials::RetrieveRoleName() {
224
228
  grpc_http_request_destroy(&request.http);
225
229
  }
226
230
 
227
- void AwsExternalAccountCredentials::OnRetrieveRoleName(void* arg,
228
- grpc_error* error) {
231
+ void AwsExternalAccountCredentials::OnRetrieveRoleName(
232
+ void* arg, grpc_error_handle error) {
229
233
  AwsExternalAccountCredentials* self =
230
234
  static_cast<AwsExternalAccountCredentials*>(arg);
231
235
  self->OnRetrieveRoleNameInternal(GRPC_ERROR_REF(error));
232
236
  }
233
237
 
234
238
  void AwsExternalAccountCredentials::OnRetrieveRoleNameInternal(
235
- grpc_error* error) {
239
+ grpc_error_handle error) {
236
240
  if (error != GRPC_ERROR_NONE) {
237
241
  FinishRetrieveSubjectToken("", error);
238
242
  return;
@@ -287,15 +291,15 @@ void AwsExternalAccountCredentials::RetrieveSigningKeys() {
287
291
  grpc_http_request_destroy(&request.http);
288
292
  }
289
293
 
290
- void AwsExternalAccountCredentials::OnRetrieveSigningKeys(void* arg,
291
- grpc_error* error) {
294
+ void AwsExternalAccountCredentials::OnRetrieveSigningKeys(
295
+ void* arg, grpc_error_handle error) {
292
296
  AwsExternalAccountCredentials* self =
293
297
  static_cast<AwsExternalAccountCredentials*>(arg);
294
298
  self->OnRetrieveSigningKeysInternal(GRPC_ERROR_REF(error));
295
299
  }
296
300
 
297
301
  void AwsExternalAccountCredentials::OnRetrieveSigningKeysInternal(
298
- grpc_error* error) {
302
+ grpc_error_handle error) {
299
303
  if (error != GRPC_ERROR_NONE) {
300
304
  FinishRetrieveSubjectToken("", error);
301
305
  return;
@@ -350,7 +354,7 @@ void AwsExternalAccountCredentials::OnRetrieveSigningKeysInternal(
350
354
  }
351
355
 
352
356
  void AwsExternalAccountCredentials::BuildSubjectToken() {
353
- grpc_error* error = GRPC_ERROR_NONE;
357
+ grpc_error_handle error = GRPC_ERROR_NONE;
354
358
  if (signer_ == nullptr) {
355
359
  cred_verification_url_ = absl::StrReplaceAll(
356
360
  regional_cred_verification_url_, {{"{region}", region_}});
@@ -396,7 +400,7 @@ void AwsExternalAccountCredentials::BuildSubjectToken() {
396
400
  }
397
401
 
398
402
  void AwsExternalAccountCredentials::FinishRetrieveSubjectToken(
399
- std::string subject_token, grpc_error* error) {
403
+ std::string subject_token, grpc_error_handle error) {
400
404
  // Reset context
401
405
  ctx_ = nullptr;
402
406
  // Move object state into local variables.
@@ -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_;