grpc 1.37.1 → 1.39.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (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/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/ring_hash/ring_hash.cc +755 -0
  35. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
  36. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
  37. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
  38. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -54
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
  41. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +146 -155
  43. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  44. data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
  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/dns/c_ares/dns_resolver_ares.cc +24 -18
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  59. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
  60. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
  61. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  62. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
  63. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
  64. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -32
  65. data/src/core/ext/filters/client_channel/resolver.h +2 -2
  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 +25 -18
  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 +348 -199
  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/threadpool.cc +2 -3
  215. data/src/core/lib/iomgr/executor/threadpool.h +2 -2
  216. data/src/core/lib/iomgr/executor.cc +8 -8
  217. data/src/core/lib/iomgr/executor.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 +19 -13
  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 +94 -46
  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
@@ -27,8 +27,9 @@
27
27
 
28
28
  #include "src/core/lib/iomgr/error.h"
29
29
 
30
- grpc_error* grpc_validate_header_key_is_legal(const grpc_slice& slice);
31
- grpc_error* grpc_validate_header_nonbin_value_is_legal(const grpc_slice& slice);
30
+ grpc_error_handle grpc_validate_header_key_is_legal(const grpc_slice& slice);
31
+ grpc_error_handle grpc_validate_header_nonbin_value_is_legal(
32
+ const grpc_slice& slice);
32
33
 
33
34
  int grpc_is_binary_header_internal(const grpc_slice& slice);
34
35
  inline int grpc_key_is_binary_header(const uint8_t* buf, size_t length) {
@@ -23,6 +23,8 @@
23
23
 
24
24
  #include <grpc/grpc.h>
25
25
 
26
- const char* grpc_version_string(void) { return "15.0.0"; }
26
+ const char* grpc_version_string(void) { return "18.0.0"; }
27
27
 
28
- const char* grpc_g_stands_for(void) { return "gilded"; }
28
+ const char* grpc_g_stands_for(void) {
29
+ return "guadalupe_river_park_conservancy";
30
+ }
@@ -59,7 +59,7 @@ bool SliceBufferByteStream::Next(size_t /*max_size_hint*/,
59
59
  return true;
60
60
  }
61
61
 
62
- grpc_error* SliceBufferByteStream::Pull(grpc_slice* slice) {
62
+ grpc_error_handle SliceBufferByteStream::Pull(grpc_slice* slice) {
63
63
  if (GPR_UNLIKELY(shutdown_error_ != GRPC_ERROR_NONE)) {
64
64
  return GRPC_ERROR_REF(shutdown_error_);
65
65
  }
@@ -67,7 +67,7 @@ grpc_error* SliceBufferByteStream::Pull(grpc_slice* slice) {
67
67
  return GRPC_ERROR_NONE;
68
68
  }
69
69
 
70
- void SliceBufferByteStream::Shutdown(grpc_error* error) {
70
+ void SliceBufferByteStream::Shutdown(grpc_error_handle error) {
71
71
  GRPC_ERROR_UNREF(shutdown_error_);
72
72
  shutdown_error_ = error;
73
73
  }
@@ -117,7 +117,7 @@ bool ByteStreamCache::CachingByteStream::Next(size_t max_size_hint,
117
117
  return cache_->underlying_stream_->Next(max_size_hint, on_complete);
118
118
  }
119
119
 
120
- grpc_error* ByteStreamCache::CachingByteStream::Pull(grpc_slice* slice) {
120
+ grpc_error_handle ByteStreamCache::CachingByteStream::Pull(grpc_slice* slice) {
121
121
  if (shutdown_error_ != GRPC_ERROR_NONE) {
122
122
  return GRPC_ERROR_REF(shutdown_error_);
123
123
  }
@@ -128,7 +128,7 @@ grpc_error* ByteStreamCache::CachingByteStream::Pull(grpc_slice* slice) {
128
128
  return GRPC_ERROR_NONE;
129
129
  }
130
130
  GPR_ASSERT(cache_->underlying_stream_ != nullptr);
131
- grpc_error* error = cache_->underlying_stream_->Pull(slice);
131
+ grpc_error_handle error = cache_->underlying_stream_->Pull(slice);
132
132
  if (error == GRPC_ERROR_NONE) {
133
133
  grpc_slice_buffer_add(&cache_->cache_buffer_,
134
134
  grpc_slice_ref_internal(*slice));
@@ -142,7 +142,7 @@ grpc_error* ByteStreamCache::CachingByteStream::Pull(grpc_slice* slice) {
142
142
  return error;
143
143
  }
144
144
 
145
- void ByteStreamCache::CachingByteStream::Shutdown(grpc_error* error) {
145
+ void ByteStreamCache::CachingByteStream::Shutdown(grpc_error_handle error) {
146
146
  GRPC_ERROR_UNREF(shutdown_error_);
147
147
  shutdown_error_ = GRPC_ERROR_REF(error);
148
148
  if (cache_->underlying_stream_ != nullptr) {
@@ -56,7 +56,7 @@ class ByteStream : public Orphanable {
56
56
  // indicated by Next().
57
57
  //
58
58
  // Once a slice is returned into *slice, it is owned by the caller.
59
- virtual grpc_error* Pull(grpc_slice* slice) = 0;
59
+ virtual grpc_error_handle Pull(grpc_slice* slice) = 0;
60
60
 
61
61
  // Shuts down the byte stream.
62
62
  //
@@ -65,7 +65,7 @@ class ByteStream : public Orphanable {
65
65
  //
66
66
  // The next call to Pull() (if any) will return the error passed to
67
67
  // Shutdown().
68
- virtual void Shutdown(grpc_error* error) = 0;
68
+ virtual void Shutdown(grpc_error_handle error) = 0;
69
69
 
70
70
  uint32_t length() const { return length_; }
71
71
  uint32_t flags() const { return flags_; }
@@ -97,11 +97,11 @@ class SliceBufferByteStream : public ByteStream {
97
97
  void Orphan() override;
98
98
 
99
99
  bool Next(size_t max_size_hint, grpc_closure* on_complete) override;
100
- grpc_error* Pull(grpc_slice* slice) override;
101
- void Shutdown(grpc_error* error) override;
100
+ grpc_error_handle Pull(grpc_slice* slice) override;
101
+ void Shutdown(grpc_error_handle error) override;
102
102
 
103
103
  private:
104
- grpc_error* shutdown_error_ = GRPC_ERROR_NONE;
104
+ grpc_error_handle shutdown_error_ = GRPC_ERROR_NONE;
105
105
  grpc_slice_buffer backing_buffer_;
106
106
  };
107
107
 
@@ -131,8 +131,8 @@ class ByteStreamCache {
131
131
  void Orphan() override;
132
132
 
133
133
  bool Next(size_t max_size_hint, grpc_closure* on_complete) override;
134
- grpc_error* Pull(grpc_slice* slice) override;
135
- void Shutdown(grpc_error* error) override;
134
+ grpc_error_handle Pull(grpc_slice* slice) override;
135
+ void Shutdown(grpc_error_handle error) override;
136
136
 
137
137
  // Resets the byte stream to the start of the underlying stream.
138
138
  void Reset();
@@ -141,7 +141,7 @@ class ByteStreamCache {
141
141
  ByteStreamCache* cache_;
142
142
  size_t cursor_ = 0;
143
143
  size_t offset_ = 0;
144
- grpc_error* shutdown_error_ = GRPC_ERROR_NONE;
144
+ grpc_error_handle shutdown_error_ = GRPC_ERROR_NONE;
145
145
  };
146
146
 
147
147
  explicit ByteStreamCache(OrphanablePtr<ByteStream> underlying_stream);
@@ -73,7 +73,7 @@ class AsyncConnectivityStateWatcherInterface::Notifier {
73
73
  }
74
74
 
75
75
  private:
76
- static void SendNotification(void* arg, grpc_error* /*ignored*/) {
76
+ static void SendNotification(void* arg, grpc_error_handle /*ignored*/) {
77
77
  Notifier* self = static_cast<Notifier*>(arg);
78
78
  if (GRPC_TRACE_FLAG_ENABLED(grpc_connectivity_state_trace)) {
79
79
  gpr_log(GPR_INFO, "watcher %p: delivering async notification for %s (%s)",
@@ -25,8 +25,8 @@
25
25
  #include "src/core/lib/slice/slice_internal.h"
26
26
  #include "src/core/lib/transport/status_conversion.h"
27
27
 
28
- static grpc_error* recursively_find_error_with_field(grpc_error* error,
29
- grpc_error_ints which) {
28
+ static grpc_error_handle recursively_find_error_with_field(
29
+ grpc_error_handle error, grpc_error_ints which) {
30
30
  intptr_t unused;
31
31
  // If the error itself has a status code, return it.
32
32
  if (grpc_error_get_int(error, which, &unused)) {
@@ -38,14 +38,15 @@ static grpc_error* recursively_find_error_with_field(grpc_error* error,
38
38
  while (slot != UINT8_MAX) {
39
39
  grpc_linked_error* lerr =
40
40
  reinterpret_cast<grpc_linked_error*>(error->arena + slot);
41
- grpc_error* result = recursively_find_error_with_field(lerr->err, which);
41
+ grpc_error_handle result =
42
+ recursively_find_error_with_field(lerr->err, which);
42
43
  if (result) return result;
43
44
  slot = lerr->next;
44
45
  }
45
46
  return nullptr;
46
47
  }
47
48
 
48
- void grpc_error_get_status(grpc_error* error, grpc_millis deadline,
49
+ void grpc_error_get_status(grpc_error_handle error, grpc_millis deadline,
49
50
  grpc_status_code* code, grpc_slice* slice,
50
51
  grpc_http2_error_code* http_error,
51
52
  const char** error_string) {
@@ -71,9 +72,9 @@ void grpc_error_get_status(grpc_error* error, grpc_millis deadline,
71
72
 
72
73
  // Start with the parent error and recurse through the tree of children
73
74
  // until we find the first one that has a status code.
74
- grpc_error* found_error =
75
+ grpc_error_handle found_error =
75
76
  recursively_find_error_with_field(error, GRPC_ERROR_INT_GRPC_STATUS);
76
- if (found_error == nullptr) {
77
+ if (found_error == GRPC_ERROR_NONE) {
77
78
  /// If no grpc-status exists, retry through the tree to find a http2 error
78
79
  /// code
79
80
  found_error =
@@ -82,7 +83,7 @@ void grpc_error_get_status(grpc_error* error, grpc_millis deadline,
82
83
 
83
84
  // If we found an error with a status code above, use that; otherwise,
84
85
  // fall back to using the parent error.
85
- if (found_error == nullptr) found_error = error;
86
+ if (found_error == GRPC_ERROR_NONE) found_error = error;
86
87
 
87
88
  grpc_status_code status = GRPC_STATUS_UNKNOWN;
88
89
  intptr_t integer;
@@ -96,7 +97,7 @@ void grpc_error_get_status(grpc_error* error, grpc_millis deadline,
96
97
  if (code != nullptr) *code = status;
97
98
 
98
99
  if (error_string != nullptr && status != GRPC_STATUS_OK) {
99
- *error_string = gpr_strdup(grpc_error_string(error));
100
+ *error_string = gpr_strdup(grpc_error_std_string(error).c_str());
100
101
  }
101
102
 
102
103
  if (http_error != nullptr) {
@@ -123,7 +124,7 @@ void grpc_error_get_status(grpc_error* error, grpc_millis deadline,
123
124
  }
124
125
  }
125
126
 
126
- absl::Status grpc_error_to_absl_status(grpc_error* error) {
127
+ absl::Status grpc_error_to_absl_status(grpc_error_handle error) {
127
128
  grpc_status_code status;
128
129
  // TODO(yashykt): This should be updated once we decide on how to use the
129
130
  // absl::Status payload to capture all the contents of grpc_error.
@@ -136,7 +137,17 @@ absl::Status grpc_error_to_absl_status(grpc_error* error) {
136
137
  GRPC_SLICE_LENGTH(message)));
137
138
  }
138
139
 
139
- bool grpc_error_has_clear_grpc_status(grpc_error* error) {
140
+ grpc_error_handle absl_status_to_grpc_error(absl::Status status) {
141
+ // Special error checks
142
+ if (status.ok()) {
143
+ return GRPC_ERROR_NONE;
144
+ }
145
+ return grpc_error_set_int(
146
+ GRPC_ERROR_CREATE_FROM_STRING_VIEW(status.message()),
147
+ GRPC_ERROR_INT_GRPC_STATUS, static_cast<grpc_status_code>(status.code()));
148
+ }
149
+
150
+ bool grpc_error_has_clear_grpc_status(grpc_error_handle error) {
140
151
  intptr_t unused;
141
152
  if (grpc_error_get_int(error, GRPC_ERROR_INT_GRPC_STATUS, &unused)) {
142
153
  return true;
@@ -34,19 +34,25 @@
34
34
  /// be populated with the entire error string. If any of the attributes (code,
35
35
  /// msg, http_status, error_string) are unneeded, they can be passed as
36
36
  /// NULL.
37
- void grpc_error_get_status(grpc_error* error, grpc_millis deadline,
37
+ void grpc_error_get_status(grpc_error_handle error, grpc_millis deadline,
38
38
  grpc_status_code* code, grpc_slice* slice,
39
39
  grpc_http2_error_code* http_error,
40
40
  const char** error_string);
41
41
 
42
- /// Utility Function to convert a grpc_error * \a error to an absl::Status.
43
- /// Does NOT consume a ref to grpc_error.
44
- absl::Status grpc_error_to_absl_status(grpc_error* error);
42
+ /// Utility Function to convert a grpc_error_handle \a error to an
43
+ /// absl::Status. Does NOT consume a ref to grpc_error.
44
+ absl::Status grpc_error_to_absl_status(grpc_error_handle error);
45
+
46
+ /// Utility function to convert an absl::Status \a status to grpc_error. Note
47
+ /// that this method does not return "special case" errors such as
48
+ /// GRPC_ERROR_CANCELLED, with the exception of GRPC_ERROR_NONE returned for
49
+ /// \a absl::OkStatus().
50
+ grpc_error_handle absl_status_to_grpc_error(absl::Status status);
45
51
 
46
52
  /// A utility function to check whether there is a clear status code that
47
53
  /// doesn't need to be guessed in \a error. This means that \a error or some
48
54
  /// child has GRPC_ERROR_INT_GRPC_STATUS set, or that it is GRPC_ERROR_NONE or
49
55
  /// GRPC_ERROR_CANCELLED
50
- bool grpc_error_has_clear_grpc_status(grpc_error* error);
56
+ bool grpc_error_has_clear_grpc_status(grpc_error_handle error);
51
57
 
52
58
  #endif /* GRPC_CORE_LIB_TRANSPORT_ERROR_UTILS_H */
@@ -94,22 +94,23 @@ void grpc_metadata_batch_destroy(grpc_metadata_batch* batch) {
94
94
  }
95
95
  }
96
96
 
97
- grpc_error* grpc_attach_md_to_error(grpc_error* src, grpc_mdelem md) {
98
- grpc_error* out = grpc_error_set_str(
97
+ grpc_error_handle grpc_attach_md_to_error(grpc_error_handle src,
98
+ grpc_mdelem md) {
99
+ grpc_error_handle out = grpc_error_set_str(
99
100
  grpc_error_set_str(src, GRPC_ERROR_STR_KEY,
100
101
  grpc_slice_ref_internal(GRPC_MDKEY(md))),
101
102
  GRPC_ERROR_STR_VALUE, grpc_slice_ref_internal(GRPC_MDVALUE(md)));
102
103
  return out;
103
104
  }
104
105
 
105
- static grpc_error* GPR_ATTRIBUTE_NOINLINE error_with_md(grpc_mdelem md) {
106
+ static grpc_error_handle GPR_ATTRIBUTE_NOINLINE error_with_md(grpc_mdelem md) {
106
107
  return grpc_attach_md_to_error(
107
108
  GRPC_ERROR_CREATE_FROM_STATIC_STRING("Unallowed duplicate metadata"), md);
108
109
  }
109
110
 
110
- static grpc_error* link_callout(grpc_metadata_batch* batch,
111
- grpc_linked_mdelem* storage,
112
- grpc_metadata_batch_callouts_index idx) {
111
+ static grpc_error_handle link_callout(grpc_metadata_batch* batch,
112
+ grpc_linked_mdelem* storage,
113
+ grpc_metadata_batch_callouts_index idx) {
113
114
  GPR_DEBUG_ASSERT(idx >= 0 && idx < GRPC_BATCH_CALLOUTS_COUNT);
114
115
  if (GPR_LIKELY(batch->idx.array[idx] == nullptr)) {
115
116
  ++batch->list.default_count;
@@ -119,12 +120,12 @@ static grpc_error* link_callout(grpc_metadata_batch* batch,
119
120
  return error_with_md(storage->md);
120
121
  }
121
122
 
122
- static grpc_error* maybe_link_callout(grpc_metadata_batch* batch,
123
- grpc_linked_mdelem* storage)
123
+ static grpc_error_handle maybe_link_callout(grpc_metadata_batch* batch,
124
+ grpc_linked_mdelem* storage)
124
125
  GRPC_MUST_USE_RESULT;
125
126
 
126
- static grpc_error* maybe_link_callout(grpc_metadata_batch* batch,
127
- grpc_linked_mdelem* storage) {
127
+ static grpc_error_handle maybe_link_callout(grpc_metadata_batch* batch,
128
+ grpc_linked_mdelem* storage) {
128
129
  grpc_metadata_batch_callouts_index idx =
129
130
  GRPC_BATCH_INDEX_OF(GRPC_MDKEY(storage->md));
130
131
  if (idx == GRPC_BATCH_CALLOUTS_COUNT) {
@@ -145,9 +146,9 @@ static void maybe_unlink_callout(grpc_metadata_batch* batch,
145
146
  batch->idx.array[idx] = nullptr;
146
147
  }
147
148
 
148
- grpc_error* grpc_metadata_batch_add_head(grpc_metadata_batch* batch,
149
- grpc_linked_mdelem* storage,
150
- grpc_mdelem elem_to_add) {
149
+ grpc_error_handle grpc_metadata_batch_add_head(grpc_metadata_batch* batch,
150
+ grpc_linked_mdelem* storage,
151
+ grpc_mdelem elem_to_add) {
151
152
  GPR_DEBUG_ASSERT(!GRPC_MDISNULL(elem_to_add));
152
153
  storage->md = elem_to_add;
153
154
  return grpc_metadata_batch_link_head(batch, storage);
@@ -169,10 +170,10 @@ static void link_head(grpc_mdelem_list* list, grpc_linked_mdelem* storage) {
169
170
  assert_valid_list(list);
170
171
  }
171
172
 
172
- grpc_error* grpc_metadata_batch_link_head(grpc_metadata_batch* batch,
173
- grpc_linked_mdelem* storage) {
173
+ grpc_error_handle grpc_metadata_batch_link_head(grpc_metadata_batch* batch,
174
+ grpc_linked_mdelem* storage) {
174
175
  assert_valid_callouts(batch);
175
- grpc_error* err = maybe_link_callout(batch, storage);
176
+ grpc_error_handle err = maybe_link_callout(batch, storage);
176
177
  if (err != GRPC_ERROR_NONE) {
177
178
  assert_valid_callouts(batch);
178
179
  return err;
@@ -185,12 +186,12 @@ grpc_error* grpc_metadata_batch_link_head(grpc_metadata_batch* batch,
185
186
  // TODO(arjunroy): Need to revisit this and see what guarantees exist between
186
187
  // C-core and the internal-metadata subsystem. E.g. can we ensure a particular
187
188
  // metadata is never added twice, even in the presence of user supplied data?
188
- grpc_error* grpc_metadata_batch_link_head(
189
+ grpc_error_handle grpc_metadata_batch_link_head(
189
190
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
190
191
  grpc_metadata_batch_callouts_index idx) {
191
192
  GPR_DEBUG_ASSERT(GRPC_BATCH_INDEX_OF(GRPC_MDKEY(storage->md)) == idx);
192
193
  assert_valid_callouts(batch);
193
- grpc_error* err = link_callout(batch, storage, idx);
194
+ grpc_error_handle err = link_callout(batch, storage, idx);
194
195
  if (GPR_UNLIKELY(err != GRPC_ERROR_NONE)) {
195
196
  assert_valid_callouts(batch);
196
197
  return err;
@@ -200,9 +201,9 @@ grpc_error* grpc_metadata_batch_link_head(
200
201
  return GRPC_ERROR_NONE;
201
202
  }
202
203
 
203
- grpc_error* grpc_metadata_batch_add_tail(grpc_metadata_batch* batch,
204
- grpc_linked_mdelem* storage,
205
- grpc_mdelem elem_to_add) {
204
+ grpc_error_handle grpc_metadata_batch_add_tail(grpc_metadata_batch* batch,
205
+ grpc_linked_mdelem* storage,
206
+ grpc_mdelem elem_to_add) {
206
207
  GPR_DEBUG_ASSERT(!GRPC_MDISNULL(elem_to_add));
207
208
  storage->md = elem_to_add;
208
209
  return grpc_metadata_batch_link_tail(batch, storage);
@@ -224,10 +225,10 @@ static void link_tail(grpc_mdelem_list* list, grpc_linked_mdelem* storage) {
224
225
  assert_valid_list(list);
225
226
  }
226
227
 
227
- grpc_error* grpc_metadata_batch_link_tail(grpc_metadata_batch* batch,
228
- grpc_linked_mdelem* storage) {
228
+ grpc_error_handle grpc_metadata_batch_link_tail(grpc_metadata_batch* batch,
229
+ grpc_linked_mdelem* storage) {
229
230
  assert_valid_callouts(batch);
230
- grpc_error* err = maybe_link_callout(batch, storage);
231
+ grpc_error_handle err = maybe_link_callout(batch, storage);
231
232
  if (err != GRPC_ERROR_NONE) {
232
233
  assert_valid_callouts(batch);
233
234
  return err;
@@ -237,12 +238,12 @@ grpc_error* grpc_metadata_batch_link_tail(grpc_metadata_batch* batch,
237
238
  return GRPC_ERROR_NONE;
238
239
  }
239
240
 
240
- grpc_error* grpc_metadata_batch_link_tail(
241
+ grpc_error_handle grpc_metadata_batch_link_tail(
241
242
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
242
243
  grpc_metadata_batch_callouts_index idx) {
243
244
  GPR_DEBUG_ASSERT(GRPC_BATCH_INDEX_OF(GRPC_MDKEY(storage->md)) == idx);
244
245
  assert_valid_callouts(batch);
245
- grpc_error* err = link_callout(batch, storage, idx);
246
+ grpc_error_handle err = link_callout(batch, storage, idx);
246
247
  if (GPR_UNLIKELY(err != GRPC_ERROR_NONE)) {
247
248
  assert_valid_callouts(batch);
248
249
  return err;
@@ -323,11 +324,11 @@ absl::optional<absl::string_view> grpc_metadata_batch_get_value(
323
324
  return *concatenated_value;
324
325
  }
325
326
 
326
- grpc_error* grpc_metadata_batch_substitute(grpc_metadata_batch* batch,
327
- grpc_linked_mdelem* storage,
328
- grpc_mdelem new_mdelem) {
327
+ grpc_error_handle grpc_metadata_batch_substitute(grpc_metadata_batch* batch,
328
+ grpc_linked_mdelem* storage,
329
+ grpc_mdelem new_mdelem) {
329
330
  assert_valid_callouts(batch);
330
- grpc_error* error = GRPC_ERROR_NONE;
331
+ grpc_error_handle error = GRPC_ERROR_NONE;
331
332
  grpc_mdelem old_mdelem = storage->md;
332
333
  if (!grpc_slice_eq(GRPC_MDKEY(new_mdelem), GRPC_MDKEY(old_mdelem))) {
333
334
  maybe_unlink_callout(batch, storage);
@@ -364,7 +365,7 @@ size_t grpc_metadata_batch_size(grpc_metadata_batch* batch) {
364
365
  return size;
365
366
  }
366
367
 
367
- static void add_error(grpc_error** composite, grpc_error* error,
368
+ static void add_error(grpc_error_handle* composite, grpc_error_handle error,
368
369
  const char* composite_error_string) {
369
370
  if (error == GRPC_ERROR_NONE) return;
370
371
  if (*composite == GRPC_ERROR_NONE) {
@@ -373,12 +374,11 @@ static void add_error(grpc_error** composite, grpc_error* error,
373
374
  *composite = grpc_error_add_child(*composite, error);
374
375
  }
375
376
 
376
- grpc_error* grpc_metadata_batch_filter(grpc_metadata_batch* batch,
377
- grpc_metadata_batch_filter_func func,
378
- void* user_data,
379
- const char* composite_error_string) {
377
+ grpc_error_handle grpc_metadata_batch_filter(
378
+ grpc_metadata_batch* batch, grpc_metadata_batch_filter_func func,
379
+ void* user_data, const char* composite_error_string) {
380
380
  grpc_linked_mdelem* l = batch->list.head;
381
- grpc_error* error = GRPC_ERROR_NONE;
381
+ grpc_error_handle error = GRPC_ERROR_NONE;
382
382
  while (l) {
383
383
  grpc_linked_mdelem* next = l->next;
384
384
  grpc_filtered_mdelem new_mdelem = func(user_data, l->md);
@@ -402,7 +402,7 @@ void grpc_metadata_batch_copy(grpc_metadata_batch* src,
402
402
  for (grpc_linked_mdelem* elem = src->list.head; elem != nullptr;
403
403
  elem = elem->next) {
404
404
  // Error unused in non-debug builds.
405
- grpc_error* GRPC_UNUSED error = grpc_metadata_batch_add_tail(
405
+ grpc_error_handle GRPC_UNUSED error = grpc_metadata_batch_add_tail(
406
406
  dst, &storage[i++], GRPC_MDELEM_REF(elem->md));
407
407
  // The only way that grpc_metadata_batch_add_tail() can fail is if
408
408
  // there's a duplicate entry for a callout. However, that can't be
@@ -74,9 +74,9 @@ void grpc_metadata_batch_remove(grpc_metadata_batch* batch,
74
74
  grpc_metadata_batch_callouts_index idx);
75
75
 
76
76
  /** Substitute a new mdelem for an old value */
77
- grpc_error* grpc_metadata_batch_substitute(grpc_metadata_batch* batch,
78
- grpc_linked_mdelem* storage,
79
- grpc_mdelem new_mdelem);
77
+ grpc_error_handle grpc_metadata_batch_substitute(grpc_metadata_batch* batch,
78
+ grpc_linked_mdelem* storage,
79
+ grpc_mdelem new_mdelem);
80
80
 
81
81
  void grpc_metadata_batch_set_value(grpc_linked_mdelem* storage,
82
82
  const grpc_slice& value);
@@ -97,10 +97,10 @@ absl::optional<absl::string_view> grpc_metadata_batch_get_value(
97
97
  \a storage is owned by the caller and must survive for the
98
98
  lifetime of batch. This usually means it should be around
99
99
  for the lifetime of the call. */
100
- grpc_error* grpc_metadata_batch_link_head(grpc_metadata_batch* batch,
101
- grpc_linked_mdelem* storage)
100
+ grpc_error_handle grpc_metadata_batch_link_head(grpc_metadata_batch* batch,
101
+ grpc_linked_mdelem* storage)
102
102
  GRPC_MUST_USE_RESULT;
103
- grpc_error* grpc_metadata_batch_link_head(
103
+ grpc_error_handle grpc_metadata_batch_link_head(
104
104
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
105
105
  grpc_metadata_batch_callouts_index idx) GRPC_MUST_USE_RESULT;
106
106
 
@@ -109,10 +109,10 @@ grpc_error* grpc_metadata_batch_link_head(
109
109
  \a storage is owned by the caller and must survive for the
110
110
  lifetime of batch. This usually means it should be around
111
111
  for the lifetime of the call. */
112
- grpc_error* grpc_metadata_batch_link_tail(grpc_metadata_batch* batch,
113
- grpc_linked_mdelem* storage)
112
+ grpc_error_handle grpc_metadata_batch_link_tail(grpc_metadata_batch* batch,
113
+ grpc_linked_mdelem* storage)
114
114
  GRPC_MUST_USE_RESULT;
115
- grpc_error* grpc_metadata_batch_link_tail(
115
+ grpc_error_handle grpc_metadata_batch_link_tail(
116
116
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
117
117
  grpc_metadata_batch_callouts_index idx) GRPC_MUST_USE_RESULT;
118
118
 
@@ -122,19 +122,19 @@ grpc_error* grpc_metadata_batch_link_tail(
122
122
  lifetime of batch. This usually means it should be around
123
123
  for the lifetime of the call.
124
124
  Takes ownership of \a elem_to_add */
125
- grpc_error* grpc_metadata_batch_add_head(
125
+ grpc_error_handle grpc_metadata_batch_add_head(
126
126
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
127
127
  grpc_mdelem elem_to_add) GRPC_MUST_USE_RESULT;
128
128
 
129
129
  // TODO(arjunroy, roth): Remove redundant methods.
130
130
  // add/link_head/tail are almost identical.
131
- inline grpc_error* GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
131
+ inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
132
132
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
133
133
  grpc_metadata_batch_callouts_index idx) {
134
134
  return grpc_metadata_batch_link_head(batch, storage, idx);
135
135
  }
136
136
 
137
- inline grpc_error* GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
137
+ inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
138
138
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
139
139
  grpc_mdelem elem_to_add, grpc_metadata_batch_callouts_index idx) {
140
140
  GPR_DEBUG_ASSERT(!GRPC_MDISNULL(elem_to_add));
@@ -148,17 +148,17 @@ inline grpc_error* GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
148
148
  lifetime of batch. This usually means it should be around
149
149
  for the lifetime of the call.
150
150
  Takes ownership of \a elem_to_add */
151
- grpc_error* grpc_metadata_batch_add_tail(
151
+ grpc_error_handle grpc_metadata_batch_add_tail(
152
152
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
153
153
  grpc_mdelem elem_to_add) GRPC_MUST_USE_RESULT;
154
154
 
155
- inline grpc_error* GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
155
+ inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
156
156
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
157
157
  grpc_metadata_batch_callouts_index idx) {
158
158
  return grpc_metadata_batch_link_tail(batch, storage, idx);
159
159
  }
160
160
 
161
- inline grpc_error* GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
161
+ inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
162
162
  grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
163
163
  grpc_mdelem elem_to_add, grpc_metadata_batch_callouts_index idx) {
164
164
  GPR_DEBUG_ASSERT(!GRPC_MDISNULL(elem_to_add));
@@ -166,10 +166,11 @@ inline grpc_error* GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
166
166
  return grpc_metadata_batch_add_tail(batch, storage, idx);
167
167
  }
168
168
 
169
- grpc_error* grpc_attach_md_to_error(grpc_error* src, grpc_mdelem md);
169
+ grpc_error_handle grpc_attach_md_to_error(grpc_error_handle src,
170
+ grpc_mdelem md);
170
171
 
171
172
  struct grpc_filtered_mdelem {
172
- grpc_error* error;
173
+ grpc_error_handle error;
173
174
  grpc_mdelem md;
174
175
  };
175
176
  #define GRPC_FILTERED_ERROR(error) \
@@ -181,7 +182,7 @@ struct grpc_filtered_mdelem {
181
182
 
182
183
  typedef grpc_filtered_mdelem (*grpc_metadata_batch_filter_func)(
183
184
  void* user_data, grpc_mdelem elem);
184
- grpc_error* grpc_metadata_batch_filter(
185
+ grpc_error_handle grpc_metadata_batch_filter(
185
186
  grpc_metadata_batch* batch, grpc_metadata_batch_filter_func func,
186
187
  void* user_data, const char* composite_error_string) GRPC_MUST_USE_RESULT;
187
188