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
@@ -29,7 +29,7 @@
29
29
 
30
30
  typedef struct grpc_chttp2_hpack_parser grpc_chttp2_hpack_parser;
31
31
 
32
- typedef grpc_error* (*grpc_chttp2_hpack_parser_state)(
32
+ typedef grpc_error_handle (*grpc_chttp2_hpack_parser_state)(
33
33
  grpc_chttp2_hpack_parser* p, const uint8_t* beg, const uint8_t* end);
34
34
 
35
35
  struct grpc_chttp2_hpack_parser_string {
@@ -45,10 +45,10 @@ struct grpc_chttp2_hpack_parser_string {
45
45
  };
46
46
  struct grpc_chttp2_hpack_parser {
47
47
  /* user specified callback for each header output */
48
- grpc_error* (*on_header)(void* user_data, grpc_mdelem md);
48
+ grpc_error_handle (*on_header)(void* user_data, grpc_mdelem md);
49
49
  void* on_header_user_data;
50
50
 
51
- grpc_error* last_error;
51
+ grpc_error_handle last_error;
52
52
 
53
53
  /* current parse state - or a function that implements it */
54
54
  grpc_chttp2_hpack_parser_state state;
@@ -103,15 +103,15 @@ void grpc_chttp2_hpack_parser_destroy(grpc_chttp2_hpack_parser* p);
103
103
 
104
104
  void grpc_chttp2_hpack_parser_set_has_priority(grpc_chttp2_hpack_parser* p);
105
105
 
106
- grpc_error* grpc_chttp2_hpack_parser_parse(grpc_chttp2_hpack_parser* p,
107
- const grpc_slice& slice);
106
+ grpc_error_handle grpc_chttp2_hpack_parser_parse(grpc_chttp2_hpack_parser* p,
107
+ const grpc_slice& slice);
108
108
 
109
109
  /* wraps grpc_chttp2_hpack_parser_parse to provide a frame level parser for
110
110
  the transport */
111
- grpc_error* grpc_chttp2_header_parser_parse(void* hpack_parser,
112
- grpc_chttp2_transport* t,
113
- grpc_chttp2_stream* s,
114
- const grpc_slice& slice,
115
- int is_last);
111
+ grpc_error_handle grpc_chttp2_header_parser_parse(void* hpack_parser,
112
+ grpc_chttp2_transport* t,
113
+ grpc_chttp2_stream* s,
114
+ const grpc_slice& slice,
115
+ int is_last);
116
116
 
117
117
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H */
@@ -114,8 +114,8 @@ void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl* tbl,
114
114
  tbl->max_bytes = max_bytes;
115
115
  }
116
116
 
117
- grpc_error* grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl* tbl,
118
- uint32_t bytes) {
117
+ grpc_error_handle grpc_chttp2_hptbl_set_current_table_size(
118
+ grpc_chttp2_hptbl* tbl, uint32_t bytes) {
119
119
  if (tbl->current_table_bytes == bytes) {
120
120
  return GRPC_ERROR_NONE;
121
121
  }
@@ -145,7 +145,8 @@ grpc_error* grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl* tbl,
145
145
  return GRPC_ERROR_NONE;
146
146
  }
147
147
 
148
- grpc_error* grpc_chttp2_hptbl_add(grpc_chttp2_hptbl* tbl, grpc_mdelem md) {
148
+ grpc_error_handle grpc_chttp2_hptbl_add(grpc_chttp2_hptbl* tbl,
149
+ grpc_mdelem md) {
149
150
  /* determine how many bytes of buffer this entry represents */
150
151
  size_t elem_bytes = GRPC_SLICE_LENGTH(GRPC_MDKEY(md)) +
151
152
  GRPC_SLICE_LENGTH(GRPC_MDVALUE(md)) +
@@ -89,8 +89,8 @@ struct grpc_chttp2_hptbl {
89
89
  void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl* tbl);
90
90
  void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl* tbl,
91
91
  uint32_t max_bytes);
92
- grpc_error* grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl* tbl,
93
- uint32_t bytes);
92
+ grpc_error_handle grpc_chttp2_hptbl_set_current_table_size(
93
+ grpc_chttp2_hptbl* tbl, uint32_t bytes);
94
94
 
95
95
  /* lookup a table entry based on its hpack index */
96
96
  grpc_mdelem grpc_chttp2_hptbl_lookup_dynamic_index(const grpc_chttp2_hptbl* tbl,
@@ -117,8 +117,8 @@ inline grpc_mdelem grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl* tbl,
117
117
  }
118
118
  }
119
119
  /* add a table entry to the index */
120
- grpc_error* grpc_chttp2_hptbl_add(grpc_chttp2_hptbl* tbl,
121
- grpc_mdelem md) GRPC_MUST_USE_RESULT;
120
+ grpc_error_handle grpc_chttp2_hptbl_add(grpc_chttp2_hptbl* tbl,
121
+ grpc_mdelem md) GRPC_MUST_USE_RESULT;
122
122
 
123
123
  size_t grpc_chttp2_get_size_in_hpack_table(grpc_mdelem elem,
124
124
  bool use_true_binary_metadata);
@@ -27,7 +27,7 @@
27
27
  #include <grpc/support/alloc.h>
28
28
  #include <grpc/support/log.h>
29
29
 
30
- grpc_error* grpc_chttp2_incoming_metadata_buffer_add(
30
+ grpc_error_handle grpc_chttp2_incoming_metadata_buffer_add(
31
31
  grpc_chttp2_incoming_metadata_buffer* buffer, grpc_mdelem elem) {
32
32
  buffer->size += GRPC_MDELEM_LENGTH(elem);
33
33
  grpc_linked_mdelem* storage;
@@ -42,7 +42,7 @@ grpc_error* grpc_chttp2_incoming_metadata_buffer_add(
42
42
  return grpc_metadata_batch_link_tail(&buffer->batch, storage);
43
43
  }
44
44
 
45
- grpc_error* grpc_chttp2_incoming_metadata_buffer_replace_or_add(
45
+ grpc_error_handle grpc_chttp2_incoming_metadata_buffer_replace_or_add(
46
46
  grpc_chttp2_incoming_metadata_buffer* buffer, grpc_mdelem elem) {
47
47
  for (grpc_linked_mdelem* l = buffer->batch.list.head; l != nullptr;
48
48
  l = l->next) {
@@ -46,10 +46,10 @@ struct grpc_chttp2_incoming_metadata_buffer {
46
46
  void grpc_chttp2_incoming_metadata_buffer_publish(
47
47
  grpc_chttp2_incoming_metadata_buffer* buffer, grpc_metadata_batch* batch);
48
48
 
49
- grpc_error* grpc_chttp2_incoming_metadata_buffer_add(
49
+ grpc_error_handle grpc_chttp2_incoming_metadata_buffer_add(
50
50
  grpc_chttp2_incoming_metadata_buffer* buffer,
51
51
  grpc_mdelem elem) GRPC_MUST_USE_RESULT;
52
- grpc_error* grpc_chttp2_incoming_metadata_buffer_replace_or_add(
52
+ grpc_error_handle grpc_chttp2_incoming_metadata_buffer_replace_or_add(
53
53
  grpc_chttp2_incoming_metadata_buffer* buffer,
54
54
  grpc_mdelem elem) GRPC_MUST_USE_RESULT;
55
55
  void grpc_chttp2_incoming_metadata_buffer_set_deadline(
@@ -217,8 +217,8 @@ class Chttp2IncomingByteStream : public ByteStream {
217
217
  void Orphan() override;
218
218
 
219
219
  bool Next(size_t max_size_hint, grpc_closure* on_complete) override;
220
- grpc_error* Pull(grpc_slice* slice) override;
221
- void Shutdown(grpc_error* error) override;
220
+ grpc_error_handle Pull(grpc_slice* slice) override;
221
+ void Shutdown(grpc_error_handle error) override;
222
222
 
223
223
  // TODO(roth): When I converted this class to C++, I wanted to make it
224
224
  // inherit from RefCounted or InternallyRefCounted instead of continuing
@@ -241,17 +241,17 @@ class Chttp2IncomingByteStream : public ByteStream {
241
241
  }
242
242
  }
243
243
 
244
- void PublishError(grpc_error* error);
244
+ void PublishError(grpc_error_handle error);
245
245
 
246
- grpc_error* Push(const grpc_slice& slice, grpc_slice* slice_out);
246
+ grpc_error_handle Push(const grpc_slice& slice, grpc_slice* slice_out);
247
247
 
248
- grpc_error* Finished(grpc_error* error, bool reset_on_error);
248
+ grpc_error_handle Finished(grpc_error_handle error, bool reset_on_error);
249
249
 
250
250
  uint32_t remaining_bytes() const { return remaining_bytes_; }
251
251
 
252
252
  private:
253
- static void NextLocked(void* arg, grpc_error* error_ignored);
254
- static void OrphanLocked(void* arg, grpc_error* error_ignored);
253
+ static void NextLocked(void* arg, grpc_error_handle error_ignored);
254
+ static void OrphanLocked(void* arg, grpc_error_handle error_ignored);
255
255
 
256
256
  void MaybeCreateStreamDecompressionCtx();
257
257
 
@@ -309,7 +309,7 @@ struct grpc_chttp2_transport {
309
309
  /** is the transport destroying itself? */
310
310
  uint8_t destroying = false;
311
311
  /** has the upper layer closed the transport? */
312
- grpc_error* closed_with_error = GRPC_ERROR_NONE;
312
+ grpc_error_handle closed_with_error = GRPC_ERROR_NONE;
313
313
 
314
314
  /** is there a read request to the endpoint outstanding? */
315
315
  uint8_t endpoint_reading = 1;
@@ -358,7 +358,7 @@ struct grpc_chttp2_transport {
358
358
 
359
359
  /** Set to a grpc_error object if a goaway frame is received. By default, set
360
360
  * to GRPC_ERROR_NONE */
361
- grpc_error* goaway_error = GRPC_ERROR_NONE;
361
+ grpc_error_handle goaway_error = GRPC_ERROR_NONE;
362
362
 
363
363
  grpc_chttp2_sent_goaway_state sent_goaway_state = GRPC_CHTTP2_NO_GOAWAY_SEND;
364
364
 
@@ -428,9 +428,9 @@ struct grpc_chttp2_transport {
428
428
  /* active parser */
429
429
  void* parser_data = nullptr;
430
430
  grpc_chttp2_stream* incoming_stream = nullptr;
431
- grpc_error* (*parser)(void* parser_user_data, grpc_chttp2_transport* t,
432
- grpc_chttp2_stream* s, const grpc_slice& slice,
433
- int is_last);
431
+ grpc_error_handle (*parser)(void* parser_user_data, grpc_chttp2_transport* t,
432
+ grpc_chttp2_stream* s, const grpc_slice& slice,
433
+ int is_last);
434
434
 
435
435
  grpc_chttp2_write_cb* write_cb_pool = nullptr;
436
436
 
@@ -443,7 +443,7 @@ struct grpc_chttp2_transport {
443
443
 
444
444
  /* if non-NULL, close the transport with this error when writes are finished
445
445
  */
446
- grpc_error* close_transport_on_writes_finished = GRPC_ERROR_NONE;
446
+ grpc_error_handle close_transport_on_writes_finished = GRPC_ERROR_NONE;
447
447
 
448
448
  /* a list of closures to run after writes are finished */
449
449
  grpc_closure_list run_after_write = GRPC_CLOSURE_LIST_INIT;
@@ -556,6 +556,7 @@ struct grpc_chttp2_stream {
556
556
  grpc_closure* recv_initial_metadata_ready = nullptr;
557
557
  bool* trailing_metadata_available = nullptr;
558
558
  grpc_core::OrphanablePtr<grpc_core::ByteStream>* recv_message;
559
+ bool* call_failed_before_recv_message = nullptr;
559
560
  grpc_closure* recv_message_ready = nullptr;
560
561
  grpc_metadata_batch* recv_trailing_metadata;
561
562
  grpc_closure* recv_trailing_metadata_finished = nullptr;
@@ -581,9 +582,9 @@ struct grpc_chttp2_stream {
581
582
  bool eos_sent = false;
582
583
 
583
584
  /** the error that resulted in this stream being read-closed */
584
- grpc_error* read_closed_error = GRPC_ERROR_NONE;
585
+ grpc_error_handle read_closed_error = GRPC_ERROR_NONE;
585
586
  /** the error that resulted in this stream being write-closed */
586
- grpc_error* write_closed_error = GRPC_ERROR_NONE;
587
+ grpc_error_handle write_closed_error = GRPC_ERROR_NONE;
587
588
 
588
589
  grpc_published_metadata_method published_metadata[2] = {};
589
590
  bool final_metadata_requested = false;
@@ -604,13 +605,14 @@ struct grpc_chttp2_stream {
604
605
  * true */
605
606
  grpc_slice_buffer unprocessed_incoming_frames_buffer;
606
607
  grpc_closure reset_byte_stream;
607
- grpc_error* byte_stream_error = GRPC_ERROR_NONE; /* protected by t combiner */
608
- bool received_last_frame = false; /* protected by t combiner */
608
+ grpc_error_handle byte_stream_error =
609
+ GRPC_ERROR_NONE; /* protected by t combiner */
610
+ bool received_last_frame = false; /* protected by t combiner */
609
611
 
610
612
  grpc_millis deadline = GRPC_MILLIS_INF_FUTURE;
611
613
 
612
614
  /** saw some stream level error */
613
- grpc_error* forced_close_error = GRPC_ERROR_NONE;
615
+ grpc_error_handle forced_close_error = GRPC_ERROR_NONE;
614
616
  /** how many header frames have we received? */
615
617
  uint8_t header_frames_received = 0;
616
618
  /** parsing state for data frames */
@@ -696,12 +698,12 @@ struct grpc_chttp2_begin_write_result {
696
698
  };
697
699
  grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
698
700
  grpc_chttp2_transport* t);
699
- void grpc_chttp2_end_write(grpc_chttp2_transport* t, grpc_error* error);
701
+ void grpc_chttp2_end_write(grpc_chttp2_transport* t, grpc_error_handle error);
700
702
 
701
703
  /** Process one slice of incoming data; return 1 if the connection is still
702
704
  viable after reading, or 0 if the connection should be torn down */
703
- grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
704
- const grpc_slice& slice);
705
+ grpc_error_handle grpc_chttp2_perform_read(grpc_chttp2_transport* t,
706
+ const grpc_slice& slice);
705
707
 
706
708
  bool grpc_chttp2_list_add_writable_stream(grpc_chttp2_transport* t,
707
709
  grpc_chttp2_stream* s);
@@ -771,7 +773,8 @@ void grpc_chttp2_parsing_become_skip_parser(grpc_chttp2_transport* t);
771
773
  void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
772
774
  grpc_chttp2_stream* s,
773
775
  grpc_closure** pclosure,
774
- grpc_error* error, const char* desc);
776
+ grpc_error_handle error,
777
+ const char* desc);
775
778
 
776
779
  #define GRPC_HEADER_SIZE_IN_BYTES 5
777
780
  #define MAX_SIZE_T (~(size_t)0)
@@ -791,10 +794,11 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
791
794
  } while (0)
792
795
 
793
796
  void grpc_chttp2_fake_status(grpc_chttp2_transport* t,
794
- grpc_chttp2_stream* stream, grpc_error* error);
797
+ grpc_chttp2_stream* stream,
798
+ grpc_error_handle error);
795
799
  void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
796
800
  grpc_chttp2_stream* s, int close_reads,
797
- int close_writes, grpc_error* error);
801
+ int close_writes, grpc_error_handle error);
798
802
  void grpc_chttp2_start_writing(grpc_chttp2_transport* t);
799
803
 
800
804
  #ifndef NDEBUG
@@ -862,7 +866,7 @@ void grpc_chttp2_mark_stream_writable(grpc_chttp2_transport* t,
862
866
  grpc_chttp2_stream* s);
863
867
 
864
868
  void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
865
- grpc_error* due_to_error);
869
+ grpc_error_handle due_to_error);
866
870
 
867
871
  void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_chttp2_transport* t,
868
872
  grpc_chttp2_stream* s);
@@ -872,14 +876,15 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
872
876
  grpc_chttp2_stream* s);
873
877
 
874
878
  void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
875
- grpc_chttp2_stream* s, grpc_error* error);
879
+ grpc_chttp2_stream* s,
880
+ grpc_error_handle error);
876
881
 
877
882
  /** Set the default keepalive configurations, must only be called at
878
883
  initialization */
879
884
  void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
880
885
  bool is_client);
881
886
 
882
- void grpc_chttp2_retry_initiate_ping(void* tp, grpc_error* error);
887
+ void grpc_chttp2_retry_initiate_ping(void* tp, grpc_error_handle error);
883
888
 
884
889
  void schedule_bdp_ping_locked(grpc_chttp2_transport* t);
885
890
 
@@ -36,27 +36,29 @@
36
36
  #include "src/core/lib/transport/status_conversion.h"
37
37
  #include "src/core/lib/transport/timeout_encoding.h"
38
38
 
39
- static grpc_error* init_frame_parser(grpc_chttp2_transport* t);
40
- static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
41
- int is_continuation);
42
- static grpc_error* init_data_frame_parser(grpc_chttp2_transport* t);
43
- static grpc_error* init_rst_stream_parser(grpc_chttp2_transport* t);
44
- static grpc_error* init_settings_frame_parser(grpc_chttp2_transport* t);
45
- static grpc_error* init_window_update_frame_parser(grpc_chttp2_transport* t);
46
- static grpc_error* init_ping_parser(grpc_chttp2_transport* t);
47
- static grpc_error* init_goaway_parser(grpc_chttp2_transport* t);
48
- static grpc_error* init_skip_frame_parser(grpc_chttp2_transport* t,
49
- int is_header);
50
-
51
- static grpc_error* parse_frame_slice(grpc_chttp2_transport* t,
52
- const grpc_slice& slice, int is_last);
53
-
54
- grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
55
- const grpc_slice& slice) {
39
+ static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t);
40
+ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
41
+ int is_continuation);
42
+ static grpc_error_handle init_data_frame_parser(grpc_chttp2_transport* t);
43
+ static grpc_error_handle init_rst_stream_parser(grpc_chttp2_transport* t);
44
+ static grpc_error_handle init_settings_frame_parser(grpc_chttp2_transport* t);
45
+ static grpc_error_handle init_window_update_frame_parser(
46
+ grpc_chttp2_transport* t);
47
+ static grpc_error_handle init_ping_parser(grpc_chttp2_transport* t);
48
+ static grpc_error_handle init_goaway_parser(grpc_chttp2_transport* t);
49
+ static grpc_error_handle init_skip_frame_parser(grpc_chttp2_transport* t,
50
+ int is_header);
51
+
52
+ static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t,
53
+ const grpc_slice& slice,
54
+ int is_last);
55
+
56
+ grpc_error_handle grpc_chttp2_perform_read(grpc_chttp2_transport* t,
57
+ const grpc_slice& slice) {
56
58
  const uint8_t* beg = GRPC_SLICE_START_PTR(slice);
57
59
  const uint8_t* end = GRPC_SLICE_END_PTR(slice);
58
60
  const uint8_t* cur = beg;
59
- grpc_error* err;
61
+ grpc_error_handle err;
60
62
 
61
63
  if (cur == end) return GRPC_ERROR_NONE;
62
64
 
@@ -244,13 +246,13 @@ grpc_error* grpc_chttp2_perform_read(grpc_chttp2_transport* t,
244
246
  t->incoming_frame_size -= static_cast<uint32_t>(end - cur);
245
247
  return GRPC_ERROR_NONE;
246
248
  }
247
- GPR_UNREACHABLE_CODE(return nullptr);
249
+ GPR_UNREACHABLE_CODE(return GRPC_ERROR_NONE);
248
250
  }
249
251
 
250
- GPR_UNREACHABLE_CODE(return nullptr);
252
+ GPR_UNREACHABLE_CODE(return GRPC_ERROR_NONE);
251
253
  }
252
254
 
253
- static grpc_error* init_frame_parser(grpc_chttp2_transport* t) {
255
+ static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t) {
254
256
  if (t->is_first_frame &&
255
257
  t->incoming_frame_type != GRPC_CHTTP2_FRAME_SETTINGS) {
256
258
  return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
@@ -303,19 +305,21 @@ static grpc_error* init_frame_parser(grpc_chttp2_transport* t) {
303
305
  }
304
306
  }
305
307
 
306
- static grpc_error* skip_parser(void* /*parser*/, grpc_chttp2_transport* /*t*/,
307
- grpc_chttp2_stream* /*s*/,
308
- const grpc_slice& /*slice*/, int /*is_last*/) {
308
+ static grpc_error_handle skip_parser(void* /*parser*/,
309
+ grpc_chttp2_transport* /*t*/,
310
+ grpc_chttp2_stream* /*s*/,
311
+ const grpc_slice& /*slice*/,
312
+ int /*is_last*/) {
309
313
  return GRPC_ERROR_NONE;
310
314
  }
311
315
 
312
- static grpc_error* skip_header(void* /*tp*/, grpc_mdelem md) {
316
+ static grpc_error_handle skip_header(void* /*tp*/, grpc_mdelem md) {
313
317
  GRPC_MDELEM_UNREF(md);
314
318
  return GRPC_ERROR_NONE;
315
319
  }
316
320
 
317
- static grpc_error* init_skip_frame_parser(grpc_chttp2_transport* t,
318
- int is_header) {
321
+ static grpc_error_handle init_skip_frame_parser(grpc_chttp2_transport* t,
322
+ int is_header) {
319
323
  if (is_header) {
320
324
  uint8_t is_eoh = t->expect_continuation_stream_id != 0;
321
325
  t->parser = grpc_chttp2_header_parser_parse;
@@ -334,7 +338,7 @@ void grpc_chttp2_parsing_become_skip_parser(grpc_chttp2_transport* t) {
334
338
  init_skip_frame_parser(t, t->parser == grpc_chttp2_header_parser_parse);
335
339
  }
336
340
 
337
- static grpc_error* init_data_frame_parser(grpc_chttp2_transport* t) {
341
+ static grpc_error_handle init_data_frame_parser(grpc_chttp2_transport* t) {
338
342
  // Update BDP accounting since we have received a data frame.
339
343
  grpc_core::BdpEstimator* bdp_est = t->flow_control->bdp_estimator();
340
344
  if (bdp_est) {
@@ -347,7 +351,7 @@ static grpc_error* init_data_frame_parser(grpc_chttp2_transport* t) {
347
351
  }
348
352
  grpc_chttp2_stream* s =
349
353
  grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
350
- grpc_error* err = GRPC_ERROR_NONE;
354
+ grpc_error_handle err = GRPC_ERROR_NONE;
351
355
  grpc_core::chttp2::FlowControlAction action;
352
356
  if (s == nullptr) {
353
357
  err = t->flow_control->RecvData(t->incoming_frame_size);
@@ -413,8 +417,8 @@ static void GPR_ATTRIBUTE_NOINLINE on_initial_header_log(
413
417
  gpr_free(value);
414
418
  }
415
419
 
416
- static grpc_error* GPR_ATTRIBUTE_NOINLINE handle_timeout(grpc_chttp2_stream* s,
417
- grpc_mdelem md) {
420
+ static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
421
+ handle_timeout(grpc_chttp2_stream* s, grpc_mdelem md) {
418
422
  grpc_millis* cached_timeout =
419
423
  static_cast<grpc_millis*>(grpc_mdelem_get_user_data(md, free_timeout));
420
424
  grpc_millis timeout;
@@ -443,9 +447,11 @@ static grpc_error* GPR_ATTRIBUTE_NOINLINE handle_timeout(grpc_chttp2_stream* s,
443
447
  return GRPC_ERROR_NONE;
444
448
  }
445
449
 
446
- static grpc_error* GPR_ATTRIBUTE_NOINLINE handle_metadata_size_limit_exceeded(
447
- grpc_chttp2_transport* t, grpc_chttp2_stream* s, grpc_mdelem md,
448
- size_t new_size, size_t metadata_size_limit) {
450
+ static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
451
+ handle_metadata_size_limit_exceeded(grpc_chttp2_transport* t,
452
+ grpc_chttp2_stream* s, grpc_mdelem md,
453
+ size_t new_size,
454
+ size_t metadata_size_limit) {
449
455
  gpr_log(GPR_DEBUG,
450
456
  "received initial metadata size exceeds limit (%" PRIuPTR
451
457
  " vs. %" PRIuPTR
@@ -463,9 +469,9 @@ static grpc_error* GPR_ATTRIBUTE_NOINLINE handle_metadata_size_limit_exceeded(
463
469
  return GRPC_ERROR_NONE;
464
470
  }
465
471
 
466
- static grpc_error* GPR_ATTRIBUTE_NOINLINE
472
+ static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
467
473
  handle_metadata_add_failure(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
468
- grpc_mdelem md, grpc_error* error) {
474
+ grpc_mdelem md, grpc_error_handle error) {
469
475
  grpc_chttp2_cancel_stream(t, s, error);
470
476
  grpc_chttp2_parsing_become_skip_parser(t);
471
477
  s->seen_error = true;
@@ -473,7 +479,7 @@ handle_metadata_add_failure(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
473
479
  return GRPC_ERROR_NONE;
474
480
  }
475
481
 
476
- static grpc_error* on_initial_header(void* tp, grpc_mdelem md) {
482
+ static grpc_error_handle on_initial_header(void* tp, grpc_mdelem md) {
477
483
  GPR_TIMER_SCOPE("on_initial_header", 0);
478
484
 
479
485
  grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
@@ -496,7 +502,7 @@ static grpc_error* on_initial_header(void* tp, grpc_mdelem md) {
496
502
  return handle_metadata_size_limit_exceeded(t, s, md, new_size,
497
503
  metadata_size_limit);
498
504
  } else {
499
- grpc_error* error =
505
+ grpc_error_handle error =
500
506
  grpc_chttp2_incoming_metadata_buffer_add(&s->metadata_buffer[0], md);
501
507
  if (GPR_UNLIKELY(error != GRPC_ERROR_NONE)) {
502
508
  return handle_metadata_add_failure(t, s, md, error);
@@ -506,7 +512,7 @@ static grpc_error* on_initial_header(void* tp, grpc_mdelem md) {
506
512
  return GRPC_ERROR_NONE;
507
513
  }
508
514
 
509
- static grpc_error* on_trailing_header(void* tp, grpc_mdelem md) {
515
+ static grpc_error_handle on_trailing_header(void* tp, grpc_mdelem md) {
510
516
  GPR_TIMER_SCOPE("on_trailing_header", 0);
511
517
 
512
518
  grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
@@ -545,7 +551,7 @@ static grpc_error* on_trailing_header(void* tp, grpc_mdelem md) {
545
551
  s->seen_error = true;
546
552
  GRPC_MDELEM_UNREF(md);
547
553
  } else {
548
- grpc_error* error =
554
+ grpc_error_handle error =
549
555
  grpc_chttp2_incoming_metadata_buffer_add(&s->metadata_buffer[1], md);
550
556
  if (error != GRPC_ERROR_NONE) {
551
557
  grpc_chttp2_cancel_stream(t, s, error);
@@ -557,8 +563,8 @@ static grpc_error* on_trailing_header(void* tp, grpc_mdelem md) {
557
563
  return GRPC_ERROR_NONE;
558
564
  }
559
565
 
560
- static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
561
- int is_continuation) {
566
+ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
567
+ int is_continuation) {
562
568
  uint8_t is_eoh =
563
569
  (t->incoming_frame_flags & GRPC_CHTTP2_DATA_FLAG_END_HEADERS) != 0;
564
570
  grpc_chttp2_stream* s;
@@ -595,7 +601,7 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
595
601
  GRPC_CHTTP2_IF_TRACING(gpr_log(
596
602
  GPR_ERROR, "ignoring new grpc_chttp2_stream creation on client"));
597
603
  }
598
- grpc_error* err = init_skip_frame_parser(t, 1);
604
+ grpc_error_handle err = init_skip_frame_parser(t, 1);
599
605
  if (t->incoming_frame_flags & GRPC_CHTTP2_FLAG_HAS_PRIORITY) {
600
606
  grpc_chttp2_hpack_parser_set_has_priority(&t->hpack_parser);
601
607
  }
@@ -678,8 +684,9 @@ static grpc_error* init_header_frame_parser(grpc_chttp2_transport* t,
678
684
  return GRPC_ERROR_NONE;
679
685
  }
680
686
 
681
- static grpc_error* init_window_update_frame_parser(grpc_chttp2_transport* t) {
682
- grpc_error* err = grpc_chttp2_window_update_parser_begin_frame(
687
+ static grpc_error_handle init_window_update_frame_parser(
688
+ grpc_chttp2_transport* t) {
689
+ grpc_error_handle err = grpc_chttp2_window_update_parser_begin_frame(
683
690
  &t->simple.window_update, t->incoming_frame_size,
684
691
  t->incoming_frame_flags);
685
692
  if (err != GRPC_ERROR_NONE) return err;
@@ -696,8 +703,8 @@ static grpc_error* init_window_update_frame_parser(grpc_chttp2_transport* t) {
696
703
  return GRPC_ERROR_NONE;
697
704
  }
698
705
 
699
- static grpc_error* init_ping_parser(grpc_chttp2_transport* t) {
700
- grpc_error* err = grpc_chttp2_ping_parser_begin_frame(
706
+ static grpc_error_handle init_ping_parser(grpc_chttp2_transport* t) {
707
+ grpc_error_handle err = grpc_chttp2_ping_parser_begin_frame(
701
708
  &t->simple.ping, t->incoming_frame_size, t->incoming_frame_flags);
702
709
  if (err != GRPC_ERROR_NONE) return err;
703
710
  t->parser = grpc_chttp2_ping_parser_parse;
@@ -705,8 +712,8 @@ static grpc_error* init_ping_parser(grpc_chttp2_transport* t) {
705
712
  return GRPC_ERROR_NONE;
706
713
  }
707
714
 
708
- static grpc_error* init_rst_stream_parser(grpc_chttp2_transport* t) {
709
- grpc_error* err = grpc_chttp2_rst_stream_parser_begin_frame(
715
+ static grpc_error_handle init_rst_stream_parser(grpc_chttp2_transport* t) {
716
+ grpc_error_handle err = grpc_chttp2_rst_stream_parser_begin_frame(
710
717
  &t->simple.rst_stream, t->incoming_frame_size, t->incoming_frame_flags);
711
718
  if (err != GRPC_ERROR_NONE) return err;
712
719
  grpc_chttp2_stream* s = t->incoming_stream =
@@ -720,8 +727,8 @@ static grpc_error* init_rst_stream_parser(grpc_chttp2_transport* t) {
720
727
  return GRPC_ERROR_NONE;
721
728
  }
722
729
 
723
- static grpc_error* init_goaway_parser(grpc_chttp2_transport* t) {
724
- grpc_error* err = grpc_chttp2_goaway_parser_begin_frame(
730
+ static grpc_error_handle init_goaway_parser(grpc_chttp2_transport* t) {
731
+ grpc_error_handle err = grpc_chttp2_goaway_parser_begin_frame(
725
732
  &t->goaway_parser, t->incoming_frame_size, t->incoming_frame_flags);
726
733
  if (err != GRPC_ERROR_NONE) return err;
727
734
  t->parser = grpc_chttp2_goaway_parser_parse;
@@ -729,13 +736,13 @@ static grpc_error* init_goaway_parser(grpc_chttp2_transport* t) {
729
736
  return GRPC_ERROR_NONE;
730
737
  }
731
738
 
732
- static grpc_error* init_settings_frame_parser(grpc_chttp2_transport* t) {
739
+ static grpc_error_handle init_settings_frame_parser(grpc_chttp2_transport* t) {
733
740
  if (t->incoming_stream_id != 0) {
734
741
  return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
735
742
  "Settings frame received for grpc_chttp2_stream");
736
743
  }
737
744
 
738
- grpc_error* err = grpc_chttp2_settings_parser_begin_frame(
745
+ grpc_error_handle err = grpc_chttp2_settings_parser_begin_frame(
739
746
  &t->simple.settings, t->incoming_frame_size, t->incoming_frame_flags,
740
747
  t->settings[GRPC_PEER_SETTINGS]);
741
748
  if (err != GRPC_ERROR_NONE) {
@@ -755,17 +762,17 @@ static grpc_error* init_settings_frame_parser(grpc_chttp2_transport* t) {
755
762
  return GRPC_ERROR_NONE;
756
763
  }
757
764
 
758
- static grpc_error* parse_frame_slice(grpc_chttp2_transport* t,
759
- const grpc_slice& slice, int is_last) {
765
+ static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t,
766
+ const grpc_slice& slice,
767
+ int is_last) {
760
768
  grpc_chttp2_stream* s = t->incoming_stream;
761
- grpc_error* err = t->parser(t->parser_data, t, s, slice, is_last);
769
+ grpc_error_handle err = t->parser(t->parser_data, t, s, slice, is_last);
762
770
  intptr_t unused;
763
771
  if (GPR_LIKELY(err == GRPC_ERROR_NONE)) {
764
772
  return err;
765
773
  } else if (grpc_error_get_int(err, GRPC_ERROR_INT_STREAM_ID, &unused)) {
766
774
  if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
767
- const char* msg = grpc_error_string(err);
768
- gpr_log(GPR_ERROR, "%s", msg);
775
+ gpr_log(GPR_ERROR, "%s", grpc_error_std_string(err).c_str());
769
776
  }
770
777
  grpc_chttp2_parsing_become_skip_parser(t);
771
778
  if (s) {