grpc 1.37.1 → 1.40.0.pre1

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

Potentially problematic release.


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

Files changed (738) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +112 -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 +330 -0
  6. data/include/grpc/event_engine/port.h +41 -0
  7. data/include/grpc/event_engine/slice_allocator.h +66 -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 +44 -19
  12. data/include/grpc/impl/codegen/port_platform.h +46 -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 +975 -3282
  17. data/src/core/ext/filters/client_channel/client_channel.h +513 -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 +20 -7
  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 +53 -51
  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 +14 -23
  33. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +16 -16
  34. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +734 -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 +10 -17
  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 +17 -20
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +53 -65
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +36 -44
  41. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +33 -55
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +151 -163
  43. data/src/core/ext/filters/client_channel/lb_policy.cc +2 -16
  44. data/src/core/ext/filters/client_channel/lb_policy.h +70 -46
  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 +158 -102
  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 +2598 -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 +316 -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_call_data.h +45 -5
  76. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
  77. data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
  78. data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
  79. data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
  80. data/src/core/ext/filters/client_channel/subchannel.h +7 -6
  81. data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
  82. data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
  83. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
  84. data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
  85. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  86. data/src/core/ext/filters/http/client/http_client_filter.cc +33 -23
  87. data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
  88. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  89. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
  90. data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
  91. data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
  92. data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
  93. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  94. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
  95. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
  96. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  97. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
  98. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
  99. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
  100. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +49 -46
  101. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
  102. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
  103. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
  104. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
  105. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +1 -1
  106. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
  107. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
  108. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +141 -126
  109. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  110. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  111. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  112. data/src/core/ext/transport/chttp2/transport/flow_control.h +9 -9
  113. data/src/core/ext/transport/chttp2/transport/frame_data.cc +12 -12
  114. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  115. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -16
  116. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  117. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
  118. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  119. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  120. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  121. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +11 -10
  122. data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
  123. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
  124. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  125. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +652 -736
  126. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
  127. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
  128. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  129. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  130. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  131. data/src/core/ext/transport/chttp2/transport/internal.h +33 -28
  132. data/src/core/ext/transport/chttp2/transport/parsing.cc +129 -106
  133. data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
  134. data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
  135. data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
  136. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +56 -35
  137. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -76
  138. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -27
  139. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +97 -48
  140. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -9
  141. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +67 -7
  142. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +66 -9
  143. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +227 -0
  144. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
  145. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -0
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
  149. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +32 -24
  150. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -73
  151. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +4 -2
  152. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +15 -0
  153. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
  154. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
  155. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +8 -6
  156. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +27 -19
  157. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +1 -0
  158. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -7
  159. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +57 -0
  160. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +29 -17
  161. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +72 -0
  162. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +3 -2
  163. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
  164. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -5
  165. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +15 -11
  166. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +85 -43
  167. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +274 -91
  168. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +11 -8
  169. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +30 -13
  170. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +33 -5
  171. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +115 -0
  172. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
  173. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
  174. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +1 -0
  175. data/src/core/ext/upb-generated/validate/validate.upb.c +82 -66
  176. data/src/core/ext/upb-generated/validate/validate.upb.h +220 -124
  177. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
  178. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
  179. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
  180. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
  181. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +437 -410
  182. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
  183. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
  184. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
  185. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
  186. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
  187. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
  188. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
  189. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
  190. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
  191. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
  192. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
  193. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
  194. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
  195. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
  196. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
  197. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
  198. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
  199. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
  200. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +684 -664
  201. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
  202. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
  203. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
  204. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +441 -375
  205. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
  206. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +122 -114
  207. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
  208. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
  209. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
  210. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
  211. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
  212. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
  213. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
  214. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
  215. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  216. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  217. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
  218. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  219. data/src/core/ext/xds/xds_api.cc +665 -317
  220. data/src/core/ext/xds/xds_api.h +52 -14
  221. data/src/core/ext/xds/xds_bootstrap.cc +101 -160
  222. data/src/core/ext/xds/xds_bootstrap.h +19 -24
  223. data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
  224. data/src/core/ext/xds/xds_certificate_provider.h +4 -4
  225. data/src/core/ext/xds/xds_channel_args.h +5 -2
  226. data/src/core/ext/xds/xds_client.cc +370 -215
  227. data/src/core/ext/xds/xds_client.h +38 -28
  228. data/src/core/ext/xds/xds_client_stats.h +3 -2
  229. data/src/core/ext/xds/xds_http_filters.cc +3 -2
  230. data/src/core/ext/xds/xds_http_filters.h +3 -0
  231. data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
  232. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
  233. data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
  234. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
  235. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
  236. data/src/core/lib/channel/call_tracer.h +85 -0
  237. data/src/core/lib/channel/channel_stack.cc +10 -9
  238. data/src/core/lib/channel/channel_stack.h +11 -10
  239. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  240. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  241. data/src/core/lib/channel/channelz.cc +21 -13
  242. data/src/core/lib/channel/channelz.h +3 -0
  243. data/src/core/lib/channel/connected_channel.cc +4 -4
  244. data/src/core/lib/channel/context.h +3 -0
  245. data/src/core/lib/channel/handshaker.cc +7 -6
  246. data/src/core/lib/channel/handshaker.h +5 -5
  247. data/src/core/lib/channel/status_util.h +4 -0
  248. data/src/core/lib/compression/stream_compression.h +1 -1
  249. data/src/core/lib/compression/stream_compression_gzip.h +1 -1
  250. data/src/core/lib/compression/stream_compression_identity.h +1 -1
  251. data/src/core/lib/debug/stats.h +1 -1
  252. data/src/core/lib/event_engine/endpoint_config.cc +46 -0
  253. data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
  254. data/src/core/lib/event_engine/event_engine.cc +50 -0
  255. data/src/core/lib/event_engine/sockaddr.cc +40 -0
  256. data/src/core/lib/event_engine/sockaddr.h +44 -0
  257. data/src/core/lib/gpr/murmur_hash.cc +4 -2
  258. data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
  259. data/src/core/lib/gprpp/manual_constructor.h +1 -1
  260. data/src/core/lib/gprpp/orphanable.h +3 -3
  261. data/src/core/lib/gprpp/ref_counted.h +28 -14
  262. data/src/core/lib/gprpp/status_helper.cc +407 -0
  263. data/src/core/lib/gprpp/status_helper.h +183 -0
  264. data/src/core/lib/gprpp/sync.h +2 -30
  265. data/src/core/lib/http/httpcli.cc +11 -11
  266. data/src/core/lib/http/httpcli_security_connector.cc +11 -7
  267. data/src/core/lib/http/parser.cc +16 -16
  268. data/src/core/lib/http/parser.h +4 -4
  269. data/src/core/lib/iomgr/buffer_list.cc +8 -10
  270. data/src/core/lib/iomgr/buffer_list.h +4 -5
  271. data/src/core/lib/iomgr/call_combiner.cc +15 -12
  272. data/src/core/lib/iomgr/call_combiner.h +12 -14
  273. data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
  274. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  275. data/src/core/lib/iomgr/closure.h +7 -6
  276. data/src/core/lib/iomgr/combiner.cc +14 -12
  277. data/src/core/lib/iomgr/combiner.h +2 -2
  278. data/src/core/lib/iomgr/endpoint.cc +1 -1
  279. data/src/core/lib/iomgr/endpoint.h +2 -2
  280. data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
  281. data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
  282. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  283. data/src/core/lib/iomgr/error.cc +168 -61
  284. data/src/core/lib/iomgr/error.h +217 -106
  285. data/src/core/lib/iomgr/error_cfstream.cc +3 -2
  286. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  287. data/src/core/lib/iomgr/error_internal.h +5 -1
  288. data/src/core/lib/iomgr/ev_apple.cc +5 -5
  289. data/src/core/lib/iomgr/ev_apple.h +1 -1
  290. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  291. data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
  292. data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
  293. data/src/core/lib/iomgr/ev_posix.cc +9 -8
  294. data/src/core/lib/iomgr/ev_posix.h +9 -9
  295. data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
  296. data/src/core/lib/iomgr/event_engine/closure.h +33 -0
  297. data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
  298. data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
  299. data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
  300. data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
  301. data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
  302. data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
  303. data/src/core/lib/iomgr/event_engine/promise.h +51 -0
  304. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
  305. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
  306. data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
  307. data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
  308. data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
  309. data/src/core/lib/iomgr/exec_ctx.cc +12 -4
  310. data/src/core/lib/iomgr/exec_ctx.h +4 -5
  311. data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
  312. data/src/core/lib/iomgr/executor/threadpool.h +2 -2
  313. data/src/core/lib/iomgr/executor.cc +8 -8
  314. data/src/core/lib/iomgr/executor.h +2 -2
  315. data/src/core/lib/iomgr/iomgr.cc +2 -2
  316. data/src/core/lib/iomgr/iomgr.h +1 -1
  317. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  318. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  319. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  320. data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
  321. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
  322. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  323. data/src/core/lib/iomgr/load_file.cc +4 -4
  324. data/src/core/lib/iomgr/load_file.h +2 -2
  325. data/src/core/lib/iomgr/lockfree_event.cc +5 -5
  326. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  327. data/src/core/lib/iomgr/pollset.cc +5 -5
  328. data/src/core/lib/iomgr/pollset.h +9 -9
  329. data/src/core/lib/iomgr/pollset_custom.cc +7 -7
  330. data/src/core/lib/iomgr/pollset_custom.h +3 -1
  331. data/src/core/lib/iomgr/pollset_uv.cc +3 -1
  332. data/src/core/lib/iomgr/pollset_uv.h +5 -1
  333. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  334. data/src/core/lib/iomgr/port.h +7 -5
  335. data/src/core/lib/iomgr/python_util.h +2 -2
  336. data/src/core/lib/iomgr/resolve_address.cc +8 -4
  337. data/src/core/lib/iomgr/resolve_address.h +12 -6
  338. data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
  339. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  340. data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
  341. data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
  342. data/src/core/lib/iomgr/resource_quota.cc +13 -10
  343. data/src/core/lib/iomgr/sockaddr.h +1 -0
  344. data/src/core/lib/iomgr/socket_mutator.cc +15 -2
  345. data/src/core/lib/iomgr/socket_mutator.h +26 -2
  346. data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
  347. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  348. data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
  349. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
  350. data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
  351. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  352. data/src/core/lib/iomgr/tcp_client_windows.cc +7 -5
  353. data/src/core/lib/iomgr/tcp_custom.cc +14 -16
  354. data/src/core/lib/iomgr/tcp_custom.h +13 -12
  355. data/src/core/lib/iomgr/tcp_posix.cc +78 -73
  356. data/src/core/lib/iomgr/tcp_posix.h +8 -0
  357. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  358. data/src/core/lib/iomgr/tcp_server.h +12 -11
  359. data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
  360. data/src/core/lib/iomgr/tcp_server_posix.cc +29 -21
  361. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
  362. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
  363. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
  364. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  365. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
  366. data/src/core/lib/iomgr/tcp_uv.cc +25 -23
  367. data/src/core/lib/iomgr/tcp_windows.cc +13 -13
  368. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  369. data/src/core/lib/iomgr/timer.h +6 -1
  370. data/src/core/lib/iomgr/timer_custom.cc +2 -1
  371. data/src/core/lib/iomgr/timer_custom.h +1 -1
  372. data/src/core/lib/iomgr/timer_generic.cc +6 -6
  373. data/src/core/lib/iomgr/timer_manager.cc +1 -1
  374. data/src/core/lib/iomgr/udp_server.cc +21 -20
  375. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  376. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
  377. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  378. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  379. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
  380. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  381. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  382. data/src/core/lib/iomgr/work_serializer.h +17 -1
  383. data/src/core/lib/json/json.h +1 -1
  384. data/src/core/lib/json/json_reader.cc +5 -6
  385. data/src/core/lib/matchers/matchers.cc +46 -58
  386. data/src/core/lib/matchers/matchers.h +30 -29
  387. data/src/core/lib/security/authorization/authorization_engine.h +44 -0
  388. data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
  389. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
  390. data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
  391. data/src/core/lib/security/authorization/evaluate_args.h +91 -0
  392. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  393. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  394. data/src/core/lib/security/credentials/credentials.h +2 -2
  395. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
  396. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
  397. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
  398. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  399. data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
  400. data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
  401. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
  402. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  403. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
  404. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
  405. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  406. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  407. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
  408. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  409. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  410. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
  411. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
  412. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  413. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
  414. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  415. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
  416. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
  417. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  418. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
  419. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
  420. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +68 -13
  421. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -0
  422. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
  423. data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
  424. data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
  425. data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
  426. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
  427. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
  428. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  429. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
  430. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  431. data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
  432. data/src/core/lib/security/security_connector/security_connector.h +9 -4
  433. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
  434. data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
  435. data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
  436. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +60 -76
  437. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
  438. data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
  439. data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
  440. data/src/core/lib/security/transport/security_handshaker.cc +45 -36
  441. data/src/core/lib/security/transport/server_auth_filter.cc +17 -18
  442. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  443. data/src/core/lib/security/transport/tsi_error.h +2 -1
  444. data/src/core/lib/security/util/json_util.cc +2 -2
  445. data/src/core/lib/security/util/json_util.h +1 -1
  446. data/src/core/lib/slice/slice_internal.h +1 -0
  447. data/src/core/lib/surface/call.cc +72 -52
  448. data/src/core/lib/surface/call.h +13 -2
  449. data/src/core/lib/surface/channel.cc +6 -6
  450. data/src/core/lib/surface/channel.h +3 -2
  451. data/src/core/lib/surface/channel_ping.cc +1 -1
  452. data/src/core/lib/surface/completion_queue.cc +68 -69
  453. data/src/core/lib/surface/completion_queue.h +3 -2
  454. data/src/core/lib/surface/completion_queue_factory.cc +1 -2
  455. data/src/core/lib/surface/init.cc +1 -3
  456. data/src/core/lib/surface/init.h +10 -1
  457. data/src/core/lib/surface/lame_client.cc +11 -11
  458. data/src/core/lib/surface/lame_client.h +1 -1
  459. data/src/core/lib/surface/server.cc +31 -23
  460. data/src/core/lib/surface/server.h +19 -18
  461. data/src/core/lib/surface/validate_metadata.cc +7 -7
  462. data/src/core/lib/surface/validate_metadata.h +3 -2
  463. data/src/core/lib/surface/version.cc +2 -2
  464. data/src/core/lib/transport/byte_stream.cc +5 -5
  465. data/src/core/lib/transport/byte_stream.h +8 -8
  466. data/src/core/lib/transport/connectivity_state.cc +1 -1
  467. data/src/core/lib/transport/error_utils.cc +21 -10
  468. data/src/core/lib/transport/error_utils.h +11 -5
  469. data/src/core/lib/transport/metadata_batch.cc +37 -37
  470. data/src/core/lib/transport/metadata_batch.h +19 -18
  471. data/src/core/lib/transport/transport.cc +4 -3
  472. data/src/core/lib/transport/transport.h +6 -4
  473. data/src/core/lib/transport/transport_op_string.cc +6 -6
  474. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
  475. data/src/core/tsi/alts/crypt/gsec.h +6 -0
  476. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
  477. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
  478. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  479. data/src/core/tsi/ssl_transport_security.cc +32 -14
  480. data/src/core/tsi/ssl_transport_security.h +3 -4
  481. data/src/ruby/bin/math_services_pb.rb +1 -1
  482. data/src/ruby/ext/grpc/extconf.rb +2 -0
  483. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
  484. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
  485. data/src/ruby/lib/grpc/version.rb +1 -1
  486. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  487. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  488. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  489. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  490. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  491. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  492. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  493. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  494. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  495. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  496. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  497. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  498. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  499. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  500. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  501. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  502. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  503. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  504. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  505. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  506. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  507. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  508. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  509. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  510. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  511. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  512. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  513. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  514. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  515. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  516. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  517. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  518. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  519. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  520. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  521. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  522. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  523. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  524. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  525. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  526. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  527. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  528. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  529. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  530. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  531. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  532. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  533. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  534. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  535. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  536. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  537. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  538. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  539. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  540. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  541. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  542. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  543. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  544. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  545. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  546. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  547. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  548. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  549. data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
  550. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  551. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  552. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  553. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  554. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  555. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  556. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  557. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  558. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  559. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  560. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  561. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  562. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  563. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  564. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  565. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  566. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  567. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  568. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  569. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  570. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  571. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  572. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  573. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  574. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  575. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  576. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  577. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  578. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  579. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  580. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  581. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  582. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  583. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  584. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  585. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  586. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  587. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  588. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  589. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  590. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  591. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  592. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  593. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  594. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  595. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  596. data/third_party/boringssl-with-bazel/err_data.c +483 -461
  597. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  598. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
  599. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
  600. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
  601. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
  602. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
  603. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
  604. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
  605. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  606. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
  607. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  608. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
  609. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  610. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  611. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
  612. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
  613. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
  614. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
  615. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
  616. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
  617. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
  618. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  619. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
  620. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
  621. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
  622. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  623. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  624. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  625. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
  626. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
  627. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  628. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  629. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  630. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  631. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  632. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  633. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
  634. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
  635. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
  636. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
  637. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
  638. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  639. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
  640. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
  641. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
  642. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
  643. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
  644. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  645. data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
  646. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  647. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
  648. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  649. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
  650. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
  651. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
  652. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  653. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
  654. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  655. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
  656. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  657. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
  658. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
  659. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
  660. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
  661. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
  662. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
  663. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
  664. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
  665. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  666. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
  667. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
  668. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
  669. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  670. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
  671. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
  672. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  673. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
  674. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
  675. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
  676. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  677. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
  678. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
  679. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
  680. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
  681. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
  682. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
  683. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
  684. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  685. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
  686. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  687. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
  688. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
  689. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
  690. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  691. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
  692. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  693. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
  694. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  695. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
  696. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  697. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  698. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
  699. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
  700. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
  701. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
  702. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
  703. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
  704. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
  705. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
  706. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
  707. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
  708. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
  709. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
  710. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
  711. data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
  712. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
  713. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  714. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
  715. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  716. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  717. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
  718. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
  719. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
  720. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
  721. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
  722. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
  723. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
  724. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
  725. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
  726. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
  727. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
  728. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  729. data/third_party/xxhash/xxhash.h +77 -195
  730. metadata +116 -51
  731. data/src/core/lib/gpr/arena.h +0 -47
  732. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  733. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  734. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  735. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  736. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
  737. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
  738. data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -37,8 +37,9 @@
37
37
  #include "src/core/lib/surface/call.h"
38
38
  #include "src/core/lib/surface/channel_init.h"
39
39
 
40
- static void recv_message_ready(void* user_data, grpc_error* error);
41
- static void recv_trailing_metadata_ready(void* user_data, grpc_error* error);
40
+ static void recv_message_ready(void* user_data, grpc_error_handle error);
41
+ static void recv_trailing_metadata_ready(void* user_data,
42
+ grpc_error_handle error);
42
43
 
43
44
  namespace grpc_core {
44
45
 
@@ -67,9 +68,10 @@ const MessageSizeParsedConfig* MessageSizeParsedConfig::GetFromCallContext(
67
68
 
68
69
  std::unique_ptr<ServiceConfigParser::ParsedConfig>
69
70
  MessageSizeParser::ParsePerMethodParams(const grpc_channel_args* /*args*/,
70
- const Json& json, grpc_error** error) {
71
+ const Json& json,
72
+ grpc_error_handle* error) {
71
73
  GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
72
- std::vector<grpc_error*> error_list;
74
+ std::vector<grpc_error_handle> error_list;
73
75
  // Max request size.
74
76
  int max_request_message_bytes = -1;
75
77
  auto it = json.object_value().find("maxRequestMessageBytes");
@@ -179,7 +181,7 @@ struct call_data {
179
181
  grpc_closure recv_message_ready;
180
182
  grpc_closure recv_trailing_metadata_ready;
181
183
  // The error caused by a message that is too large, or GRPC_ERROR_NONE
182
- grpc_error* error = GRPC_ERROR_NONE;
184
+ grpc_error_handle error = GRPC_ERROR_NONE;
183
185
  // Used by recv_message_ready.
184
186
  grpc_core::OrphanablePtr<grpc_core::ByteStream>* recv_message = nullptr;
185
187
  // Original recv_message_ready callback, invoked after our own.
@@ -187,20 +189,20 @@ struct call_data {
187
189
  // Original recv_trailing_metadata callback, invoked after our own.
188
190
  grpc_closure* original_recv_trailing_metadata_ready;
189
191
  bool seen_recv_trailing_metadata = false;
190
- grpc_error* recv_trailing_metadata_error;
192
+ grpc_error_handle recv_trailing_metadata_error;
191
193
  };
192
194
 
193
195
  } // namespace
194
196
 
195
197
  // Callback invoked when we receive a message. Here we check the max
196
198
  // receive message size.
197
- static void recv_message_ready(void* user_data, grpc_error* error) {
199
+ static void recv_message_ready(void* user_data, grpc_error_handle error) {
198
200
  grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
199
201
  call_data* calld = static_cast<call_data*>(elem->call_data);
200
202
  if (*calld->recv_message != nullptr && calld->limits.max_recv_size >= 0 &&
201
203
  (*calld->recv_message)->length() >
202
204
  static_cast<size_t>(calld->limits.max_recv_size)) {
203
- grpc_error* new_error = grpc_error_set_int(
205
+ grpc_error_handle new_error = grpc_error_set_int(
204
206
  GRPC_ERROR_CREATE_FROM_COPIED_STRING(
205
207
  absl::StrFormat("Received message larger than max (%u vs. %d)",
206
208
  (*calld->recv_message)->length(),
@@ -233,7 +235,8 @@ static void recv_message_ready(void* user_data, grpc_error* error) {
233
235
 
234
236
  // Callback invoked on completion of recv_trailing_metadata
235
237
  // Notifies the recv_trailing_metadata batch of any message size failures
236
- static void recv_trailing_metadata_ready(void* user_data, grpc_error* error) {
238
+ static void recv_trailing_metadata_ready(void* user_data,
239
+ grpc_error_handle error) {
237
240
  grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
238
241
  call_data* calld = static_cast<call_data*>(elem->call_data);
239
242
  if (calld->next_recv_message_ready != nullptr) {
@@ -291,7 +294,7 @@ static void message_size_start_transport_stream_op_batch(
291
294
  }
292
295
 
293
296
  // Constructor for call_data.
294
- static grpc_error* message_size_init_call_elem(
297
+ static grpc_error_handle message_size_init_call_elem(
295
298
  grpc_call_element* elem, const grpc_call_element_args* args) {
296
299
  channel_data* chand = static_cast<channel_data*>(elem->channel_data);
297
300
  new (elem->call_data) call_data(elem, *chand, *args);
@@ -315,7 +318,7 @@ grpc_core::MessageSizeParsedConfig::message_size_limits get_message_size_limits(
315
318
  }
316
319
 
317
320
  // Constructor for channel_data.
318
- static grpc_error* message_size_init_channel_elem(
321
+ static grpc_error_handle message_size_init_channel_elem(
319
322
  grpc_channel_element* elem, grpc_channel_element_args* args) {
320
323
  GPR_ASSERT(!args->is_last);
321
324
  channel_data* chand = static_cast<channel_data*>(elem->channel_data);
@@ -51,7 +51,7 @@ class MessageSizeParser : public ServiceConfigParser::Parser {
51
51
  public:
52
52
  std::unique_ptr<ServiceConfigParser::ParsedConfig> ParsePerMethodParams(
53
53
  const grpc_channel_args* /*args*/, const Json& json,
54
- grpc_error** error) override;
54
+ grpc_error_handle* error) override;
55
55
 
56
56
  static void Register();
57
57
 
@@ -54,7 +54,8 @@ static bool get_user_agent_mdelem(const grpc_metadata_batch* batch,
54
54
  }
55
55
 
56
56
  // Callback invoked when we receive an initial metadata.
57
- static void recv_initial_metadata_ready(void* user_data, grpc_error* error) {
57
+ static void recv_initial_metadata_ready(void* user_data,
58
+ grpc_error_handle error) {
58
59
  grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
59
60
  call_data* calld = static_cast<call_data*>(elem->call_data);
60
61
 
@@ -105,7 +106,7 @@ static void cronet_compression_start_transport_stream_op_batch(
105
106
  }
106
107
 
107
108
  // Constructor for call_data.
108
- static grpc_error* cronet_compression_init_call_elem(
109
+ static grpc_error_handle cronet_compression_init_call_elem(
109
110
  grpc_call_element* elem, const grpc_call_element_args* /*args*/) {
110
111
  call_data* calld = static_cast<call_data*>(elem->call_data);
111
112
  calld->next_recv_initial_metadata_ready = nullptr;
@@ -122,7 +123,7 @@ static void cronet_compression_destroy_call_elem(
122
123
  grpc_closure* /*ignored*/) {}
123
124
 
124
125
  // Constructor for channel_data.
125
- static grpc_error* cronet_compression_init_channel_elem(
126
+ static grpc_error_handle cronet_compression_init_channel_elem(
126
127
  grpc_channel_element* /*elem*/, grpc_channel_element_args* /*args*/) {
127
128
  return GRPC_ERROR_NONE;
128
129
  }
@@ -75,7 +75,7 @@ void Chttp2Connector::Connect(const Args& args, Result* result,
75
75
  args.channel_args, &addr, args.deadline);
76
76
  }
77
77
 
78
- void Chttp2Connector::Shutdown(grpc_error* error) {
78
+ void Chttp2Connector::Shutdown(grpc_error_handle error) {
79
79
  MutexLock lock(&mu_);
80
80
  shutdown_ = true;
81
81
  if (handshake_mgr_ != nullptr) {
@@ -89,7 +89,7 @@ void Chttp2Connector::Shutdown(grpc_error* error) {
89
89
  GRPC_ERROR_UNREF(error);
90
90
  }
91
91
 
92
- void Chttp2Connector::Connected(void* arg, grpc_error* error) {
92
+ void Chttp2Connector::Connected(void* arg, grpc_error_handle error) {
93
93
  Chttp2Connector* self = static_cast<Chttp2Connector*>(arg);
94
94
  bool unref = false;
95
95
  {
@@ -131,14 +131,14 @@ void Chttp2Connector::StartHandshakeLocked() {
131
131
 
132
132
  namespace {
133
133
  void NullThenSchedClosure(const DebugLocation& location, grpc_closure** closure,
134
- grpc_error* error) {
134
+ grpc_error_handle error) {
135
135
  grpc_closure* c = *closure;
136
136
  *closure = nullptr;
137
137
  ExecCtx::Run(location, c, error);
138
138
  }
139
139
  } // namespace
140
140
 
141
- void Chttp2Connector::OnHandshakeDone(void* arg, grpc_error* error) {
141
+ void Chttp2Connector::OnHandshakeDone(void* arg, grpc_error_handle error) {
142
142
  auto* args = static_cast<HandshakerArgs*>(arg);
143
143
  Chttp2Connector* self = static_cast<Chttp2Connector*>(args->user_data);
144
144
  {
@@ -194,7 +194,7 @@ void Chttp2Connector::OnHandshakeDone(void* arg, grpc_error* error) {
194
194
  self->Unref();
195
195
  }
196
196
 
197
- void Chttp2Connector::OnReceiveSettings(void* arg, grpc_error* error) {
197
+ void Chttp2Connector::OnReceiveSettings(void* arg, grpc_error_handle error) {
198
198
  Chttp2Connector* self = static_cast<Chttp2Connector*>(arg);
199
199
  {
200
200
  MutexLock lock(&self->mu_);
@@ -220,7 +220,7 @@ void Chttp2Connector::OnReceiveSettings(void* arg, grpc_error* error) {
220
220
  self->Unref();
221
221
  }
222
222
 
223
- void Chttp2Connector::OnTimeout(void* arg, grpc_error* /*error*/) {
223
+ void Chttp2Connector::OnTimeout(void* arg, grpc_error_handle /*error*/) {
224
224
  Chttp2Connector* self = static_cast<Chttp2Connector*>(arg);
225
225
  {
226
226
  MutexLock lock(&self->mu_);
@@ -245,7 +245,7 @@ void Chttp2Connector::OnTimeout(void* arg, grpc_error* /*error*/) {
245
245
  self->Unref();
246
246
  }
247
247
 
248
- void Chttp2Connector::MaybeNotify(grpc_error* error) {
248
+ void Chttp2Connector::MaybeNotify(grpc_error_handle error) {
249
249
  if (notify_error_.has_value()) {
250
250
  GRPC_ERROR_UNREF(error);
251
251
  NullThenSchedClosure(DEBUG_LOCATION, &notify_, notify_error_.value());
@@ -33,14 +33,14 @@ class Chttp2Connector : public SubchannelConnector {
33
33
  ~Chttp2Connector() override;
34
34
 
35
35
  void Connect(const Args& args, Result* result, grpc_closure* notify) override;
36
- void Shutdown(grpc_error* error) override;
36
+ void Shutdown(grpc_error_handle error) override;
37
37
 
38
38
  private:
39
- static void Connected(void* arg, grpc_error* error);
39
+ static void Connected(void* arg, grpc_error_handle error);
40
40
  void StartHandshakeLocked();
41
- static void OnHandshakeDone(void* arg, grpc_error* error);
42
- static void OnReceiveSettings(void* arg, grpc_error* error);
43
- static void OnTimeout(void* arg, grpc_error* error);
41
+ static void OnHandshakeDone(void* arg, grpc_error_handle error);
42
+ static void OnReceiveSettings(void* arg, grpc_error_handle error);
43
+ static void OnTimeout(void* arg, grpc_error_handle error);
44
44
 
45
45
  // We cannot invoke notify_ until both OnTimeout() and OnReceiveSettings()
46
46
  // have been called since that is an indicator to the upper layer that we are
@@ -51,7 +51,7 @@ class Chttp2Connector : public SubchannelConnector {
51
51
  // invoked, we call MaybeNotify() again to actually invoke the notify_
52
52
  // callback. Note that this only happens if the handshake is done and the
53
53
  // connector is waiting on the SETTINGS frame.
54
- void MaybeNotify(grpc_error* error);
54
+ void MaybeNotify(grpc_error_handle error);
55
55
 
56
56
  Mutex mu_;
57
57
  Args args_;
@@ -66,7 +66,7 @@ class Chttp2Connector : public SubchannelConnector {
66
66
  grpc_closure on_receive_settings_;
67
67
  grpc_timer timer_;
68
68
  grpc_closure on_timeout_;
69
- absl::optional<grpc_error*> notify_error_;
69
+ absl::optional<grpc_error_handle> notify_error_;
70
70
  RefCountedPtr<HandshakeManager> handshake_mgr_;
71
71
  };
72
72
 
@@ -51,7 +51,7 @@ class Chttp2InsecureClientChannelFactory : public ClientChannelFactory {
51
51
  namespace {
52
52
 
53
53
  grpc_channel* CreateChannel(const char* target, const grpc_channel_args* args,
54
- grpc_error** error) {
54
+ grpc_error_handle* error) {
55
55
  if (target == nullptr) {
56
56
  gpr_log(GPR_ERROR, "cannot create channel with NULL target name");
57
57
  if (error != nullptr) {
@@ -106,7 +106,7 @@ grpc_channel* grpc_insecure_channel_create(const char* target,
106
106
  const char* arg_to_remove = arg.key;
107
107
  grpc_channel_args* new_args = grpc_channel_args_copy_and_add_and_remove(
108
108
  args, &arg_to_remove, 1, &arg, 1);
109
- grpc_error* error = GRPC_ERROR_NONE;
109
+ grpc_error_handle error = GRPC_ERROR_NONE;
110
110
  // Create channel.
111
111
  grpc_channel* channel = grpc_core::CreateChannel(target, new_args, &error);
112
112
  // Clean up.
@@ -56,7 +56,7 @@ grpc_channel* grpc_insecure_channel_create_from_fd(
56
56
  grpc_transport* transport =
57
57
  grpc_create_chttp2_transport(final_args, client, true);
58
58
  GPR_ASSERT(transport);
59
- grpc_error* error = nullptr;
59
+ grpc_error_handle error = GRPC_ERROR_NONE;
60
60
  grpc_channel* channel =
61
61
  grpc_channel_create(target, final_args, GRPC_CLIENT_DIRECT_CHANNEL,
62
62
  transport, nullptr, &error);
@@ -82,7 +82,8 @@ grpc_channel* grpc_insecure_channel_create_from_fd(
82
82
  #else // !GPR_SUPPORT_CHANNELS_FROM_FD
83
83
 
84
84
  grpc_channel* grpc_insecure_channel_create_from_fd(
85
- const char* target, int fd, const grpc_channel_args* args) {
85
+ const char* /* target */, int /* fd */,
86
+ const grpc_channel_args* /* args */) {
86
87
  GPR_ASSERT(0);
87
88
  return nullptr;
88
89
  }
@@ -28,9 +28,9 @@
28
28
  #include "src/core/ext/filters/client_channel/client_channel.h"
29
29
  #include "src/core/ext/filters/client_channel/resolver_registry.h"
30
30
  #include "src/core/ext/transport/chttp2/client/chttp2_connector.h"
31
+ #include "src/core/lib/address_utils/sockaddr_utils.h"
31
32
  #include "src/core/lib/channel/channel_args.h"
32
33
  #include "src/core/lib/gprpp/memory.h"
33
- #include "src/core/lib/iomgr/sockaddr_utils.h"
34
34
  #include "src/core/lib/security/credentials/credentials.h"
35
35
  #include "src/core/lib/security/security_connector/security_connector.h"
36
36
  #include "src/core/lib/slice/slice_internal.h"
@@ -129,7 +129,7 @@ class Chttp2SecureClientChannelFactory : public ClientChannelFactory {
129
129
  namespace {
130
130
 
131
131
  grpc_channel* CreateChannel(const char* target, const grpc_channel_args* args,
132
- grpc_error** error) {
132
+ grpc_error_handle* error) {
133
133
  if (target == nullptr) {
134
134
  gpr_log(GPR_ERROR, "cannot create channel with NULL target name");
135
135
  if (error != nullptr) {
@@ -181,7 +181,7 @@ grpc_channel* grpc_secure_channel_create(grpc_channel_credentials* creds,
181
181
  4, ((void*)creds, target, (void*)args, (void*)reserved));
182
182
  GPR_ASSERT(reserved == nullptr);
183
183
  grpc_channel* channel = nullptr;
184
- grpc_error* error = GRPC_ERROR_NONE;
184
+ grpc_error_handle error = GRPC_ERROR_NONE;
185
185
  if (creds != nullptr) {
186
186
  // Add channel args containing the client channel factory and channel
187
187
  // credentials.
@@ -38,6 +38,7 @@
38
38
  #include "src/core/ext/filters/http/server/http_server_filter.h"
39
39
  #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
40
40
  #include "src/core/ext/transport/chttp2/transport/internal.h"
41
+ #include "src/core/lib/address_utils/sockaddr_utils.h"
41
42
  #include "src/core/lib/channel/channel_args.h"
42
43
  #include "src/core/lib/channel/handshaker.h"
43
44
  #include "src/core/lib/channel/handshaker_registry.h"
@@ -46,7 +47,6 @@
46
47
  #include "src/core/lib/iomgr/endpoint.h"
47
48
  #include "src/core/lib/iomgr/resolve_address.h"
48
49
  #include "src/core/lib/iomgr/resource_quota.h"
49
- #include "src/core/lib/iomgr/sockaddr_utils.h"
50
50
  #include "src/core/lib/iomgr/tcp_server.h"
51
51
  #include "src/core/lib/iomgr/unix_sockets_posix.h"
52
52
  #include "src/core/lib/slice/slice_internal.h"
@@ -61,14 +61,14 @@ const char kUnixAbstractUriPrefix[] = "unix-abstract:";
61
61
 
62
62
  class Chttp2ServerListener : public Server::ListenerInterface {
63
63
  public:
64
- static grpc_error* Create(Server* server, grpc_resolved_address* addr,
65
- grpc_channel_args* args,
66
- Chttp2ServerArgsModifier args_modifier,
67
- int* port_num);
64
+ static grpc_error_handle Create(Server* server, grpc_resolved_address* addr,
65
+ grpc_channel_args* args,
66
+ Chttp2ServerArgsModifier args_modifier,
67
+ int* port_num);
68
68
 
69
- static grpc_error* CreateWithAcceptor(Server* server, const char* name,
70
- grpc_channel_args* args,
71
- Chttp2ServerArgsModifier args_modifier);
69
+ static grpc_error_handle CreateWithAcceptor(
70
+ Server* server, const char* name, grpc_channel_args* args,
71
+ Chttp2ServerArgsModifier args_modifier);
72
72
 
73
73
  // Do not instantiate directly. Use one of the factory methods above.
74
74
  Chttp2ServerListener(Server* server, grpc_channel_args* args,
@@ -122,12 +122,12 @@ class Chttp2ServerListener : public Server::ListenerInterface {
122
122
  using InternallyRefCounted<HandshakingState>::Ref;
123
123
 
124
124
  private:
125
- static void OnTimeout(void* arg, grpc_error* error);
126
- static void OnReceiveSettings(void* arg, grpc_error* /* error */);
127
- static void OnHandshakeDone(void* arg, grpc_error* error);
125
+ static void OnTimeout(void* arg, grpc_error_handle error);
126
+ static void OnReceiveSettings(void* arg, grpc_error_handle /* error */);
127
+ static void OnHandshakeDone(void* arg, grpc_error_handle error);
128
128
  RefCountedPtr<ActiveConnection> const connection_;
129
129
  grpc_pollset* const accepting_pollset_;
130
- grpc_tcp_server_acceptor* const acceptor_;
130
+ grpc_tcp_server_acceptor* acceptor_;
131
131
  RefCountedPtr<HandshakeManager> handshake_mgr_
132
132
  ABSL_GUARDED_BY(&connection_->mu_);
133
133
  // State for enforcing handshake timeout on receiving HTTP/2 settings.
@@ -155,7 +155,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
155
155
  using InternallyRefCounted<ActiveConnection>::Ref;
156
156
 
157
157
  private:
158
- static void OnClose(void* arg, grpc_error* error);
158
+ static void OnClose(void* arg, grpc_error_handle error);
159
159
 
160
160
  RefCountedPtr<Chttp2ServerListener> listener_;
161
161
  Mutex mu_ ABSL_ACQUIRED_AFTER(&listener_->mu_);
@@ -179,7 +179,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
179
179
  grpc_pollset* accepting_pollset,
180
180
  grpc_tcp_server_acceptor* acceptor);
181
181
 
182
- static void TcpServerShutdownComplete(void* arg, grpc_error* error);
182
+ static void TcpServerShutdownComplete(void* arg, grpc_error_handle error);
183
183
 
184
184
  static void DestroyListener(Server* /*server*/, void* arg,
185
185
  grpc_closure* destroy_done);
@@ -259,12 +259,12 @@ void Chttp2ServerListener::ConfigFetcherWatcher::UpdateConnectionManager(
259
259
  if (listener_->started_) return;
260
260
  }
261
261
  int port_temp;
262
- grpc_error* error = grpc_tcp_server_add_port(
262
+ grpc_error_handle error = grpc_tcp_server_add_port(
263
263
  listener_->tcp_server_, &listener_->resolved_address_, &port_temp);
264
264
  if (error != GRPC_ERROR_NONE) {
265
265
  GRPC_ERROR_UNREF(error);
266
266
  gpr_log(GPR_ERROR, "Error adding port to server: %s",
267
- grpc_error_string(error));
267
+ grpc_error_std_string(error).c_str());
268
268
  // TODO(yashykt): We wouldn't need to assert here if we bound to the
269
269
  // port earlier during AddPort.
270
270
  GPR_ASSERT(0);
@@ -320,6 +320,7 @@ Chttp2ServerListener::ActiveConnection::HandshakingState::HandshakingState(
320
320
  Chttp2ServerListener::ActiveConnection::HandshakingState::~HandshakingState() {
321
321
  grpc_pollset_set_del_pollset(interested_parties_, accepting_pollset_);
322
322
  grpc_pollset_set_destroy(interested_parties_);
323
+ gpr_free(acceptor_);
323
324
  }
324
325
 
325
326
  void Chttp2ServerListener::ActiveConnection::HandshakingState::Orphan() {
@@ -347,7 +348,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::Start(
347
348
  }
348
349
 
349
350
  void Chttp2ServerListener::ActiveConnection::HandshakingState::OnTimeout(
350
- void* arg, grpc_error* error) {
351
+ void* arg, grpc_error_handle error) {
351
352
  HandshakingState* self = static_cast<HandshakingState*>(arg);
352
353
  // Note that we may be called with GRPC_ERROR_NONE when the timer fires
353
354
  // or with an error indicating that the timer system is being shut down.
@@ -366,14 +367,14 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnTimeout(
366
367
  }
367
368
 
368
369
  void Chttp2ServerListener::ActiveConnection::HandshakingState::
369
- OnReceiveSettings(void* arg, grpc_error* /* error */) {
370
+ OnReceiveSettings(void* arg, grpc_error_handle /* error */) {
370
371
  HandshakingState* self = static_cast<HandshakingState*>(arg);
371
372
  grpc_timer_cancel(&self->timer_);
372
373
  self->Unref();
373
374
  }
374
375
 
375
376
  void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
376
- void* arg, grpc_error* error) {
377
+ void* arg, grpc_error_handle error) {
377
378
  auto* args = static_cast<HandshakerArgs*>(arg);
378
379
  HandshakingState* self = static_cast<HandshakingState*>(args->user_data);
379
380
  OrphanablePtr<HandshakingState> handshaking_state_ref;
@@ -385,8 +386,8 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
385
386
  {
386
387
  MutexLock connection_lock(&self->connection_->mu_);
387
388
  if (error != GRPC_ERROR_NONE || self->connection_->shutdown_) {
388
- const char* error_str = grpc_error_string(error);
389
- gpr_log(GPR_DEBUG, "Handshaking failed: %s", error_str);
389
+ std::string error_str = grpc_error_std_string(error);
390
+ gpr_log(GPR_DEBUG, "Handshaking failed: %s", error_str.c_str());
390
391
  cleanup_connection = true;
391
392
  free_resource_quota = true;
392
393
  if (error == GRPC_ERROR_NONE && args->endpoint != nullptr) {
@@ -409,7 +410,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
409
410
  if (args->endpoint != nullptr) {
410
411
  grpc_transport* transport = grpc_create_chttp2_transport(
411
412
  args->args, args->endpoint, false, resource_user);
412
- grpc_error* channel_init_err =
413
+ grpc_error_handle channel_init_err =
413
414
  self->connection_->listener_->server_->SetupTransport(
414
415
  transport, self->accepting_pollset_, args->args,
415
416
  grpc_chttp2_transport_get_socket_node(transport),
@@ -455,7 +456,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
455
456
  } else {
456
457
  // Failed to create channel from transport. Clean up.
457
458
  gpr_log(GPR_ERROR, "Failed to create channel: %s",
458
- grpc_error_string(channel_init_err));
459
+ grpc_error_std_string(channel_init_err).c_str());
459
460
  GRPC_ERROR_UNREF(channel_init_err);
460
461
  grpc_transport_destroy(transport);
461
462
  grpc_slice_buffer_destroy_internal(args->read_buffer);
@@ -477,6 +478,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
477
478
  handshaking_state_ref = std::move(self->connection_->handshaking_state_);
478
479
  }
479
480
  gpr_free(self->acceptor_);
481
+ self->acceptor_ = nullptr;
480
482
  OrphanablePtr<ActiveConnection> connection;
481
483
  if (free_resource_quota && resource_user != nullptr) {
482
484
  grpc_resource_user_free(resource_user, GRPC_RESOURCE_QUOTA_CHANNEL_SIZE);
@@ -553,8 +555,8 @@ void Chttp2ServerListener::ActiveConnection::Start(
553
555
  handshaking_state_ref->Start(endpoint, args);
554
556
  }
555
557
 
556
- void Chttp2ServerListener::ActiveConnection::OnClose(void* arg,
557
- grpc_error* /* error */) {
558
+ void Chttp2ServerListener::ActiveConnection::OnClose(
559
+ void* arg, grpc_error_handle /* error */) {
558
560
  ActiveConnection* self = static_cast<ActiveConnection*>(arg);
559
561
  OrphanablePtr<ActiveConnection> connection;
560
562
  {
@@ -577,15 +579,13 @@ void Chttp2ServerListener::ActiveConnection::OnClose(void* arg,
577
579
  // Chttp2ServerListener
578
580
  //
579
581
 
580
- grpc_error* Chttp2ServerListener::Create(Server* server,
581
- grpc_resolved_address* addr,
582
- grpc_channel_args* args,
583
- Chttp2ServerArgsModifier args_modifier,
584
- int* port_num) {
582
+ grpc_error_handle Chttp2ServerListener::Create(
583
+ Server* server, grpc_resolved_address* addr, grpc_channel_args* args,
584
+ Chttp2ServerArgsModifier args_modifier, int* port_num) {
585
585
  Chttp2ServerListener* listener = nullptr;
586
586
  // The bulk of this method is inside of a lambda to make cleanup
587
587
  // easier without using goto.
588
- grpc_error* error = [&]() {
588
+ grpc_error_handle error = [&]() {
589
589
  // Create Chttp2ServerListener.
590
590
  listener = new Chttp2ServerListener(server, args, args_modifier);
591
591
  error = grpc_tcp_server_create(&listener->tcp_server_shutdown_complete_,
@@ -627,12 +627,12 @@ grpc_error* Chttp2ServerListener::Create(Server* server,
627
627
  return error;
628
628
  }
629
629
 
630
- grpc_error* Chttp2ServerListener::CreateWithAcceptor(
630
+ grpc_error_handle Chttp2ServerListener::CreateWithAcceptor(
631
631
  Server* server, const char* name, grpc_channel_args* args,
632
632
  Chttp2ServerArgsModifier args_modifier) {
633
633
  Chttp2ServerListener* listener =
634
634
  new Chttp2ServerListener(server, args, args_modifier);
635
- grpc_error* error = grpc_tcp_server_create(
635
+ grpc_error_handle error = grpc_tcp_server_create(
636
636
  &listener->tcp_server_shutdown_complete_, args, &listener->tcp_server_);
637
637
  if (error != GRPC_ERROR_NONE) {
638
638
  delete listener;
@@ -710,14 +710,14 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
710
710
  args = grpc_channel_args_copy(self->args_);
711
711
  connection_manager = self->connection_manager_;
712
712
  }
713
- auto endpoint_cleanup = [&](grpc_error* error) {
713
+ auto endpoint_cleanup = [&](grpc_error_handle error) {
714
714
  grpc_endpoint_shutdown(tcp, error);
715
715
  grpc_endpoint_destroy(tcp);
716
716
  gpr_free(acceptor);
717
717
  };
718
718
  if (self->server_->config_fetcher() != nullptr) {
719
719
  if (connection_manager == nullptr) {
720
- grpc_error* error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
720
+ grpc_error_handle error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
721
721
  "No ConnectionManager configured. Closing connection.");
722
722
  endpoint_cleanup(error);
723
723
  grpc_channel_args_destroy(args);
@@ -734,10 +734,11 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
734
734
  args_result.status().ToString().c_str()));
735
735
  return;
736
736
  }
737
- grpc_error* error = GRPC_ERROR_NONE;
737
+ grpc_error_handle error = GRPC_ERROR_NONE;
738
738
  args = self->args_modifier_(*args_result, &error);
739
739
  if (error != GRPC_ERROR_NONE) {
740
- gpr_log(GPR_DEBUG, "Closing connection: %s", grpc_error_string(error));
740
+ gpr_log(GPR_DEBUG, "Closing connection: %s",
741
+ grpc_error_std_string(error).c_str());
741
742
  endpoint_cleanup(error);
742
743
  grpc_channel_args_destroy(args);
743
744
  return;
@@ -745,6 +746,8 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
745
746
  }
746
747
  auto connection =
747
748
  MakeOrphanable<ActiveConnection>(accepting_pollset, acceptor, args);
749
+ // We no longer own acceptor
750
+ acceptor = nullptr;
748
751
  // Hold a ref to connection to allow starting handshake outside the
749
752
  // critical region
750
753
  RefCountedPtr<ActiveConnection> connection_ref = connection->Ref();
@@ -781,7 +784,7 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
781
784
  }
782
785
 
783
786
  void Chttp2ServerListener::TcpServerShutdownComplete(void* arg,
784
- grpc_error* error) {
787
+ grpc_error_handle error) {
785
788
  Chttp2ServerListener* self = static_cast<Chttp2ServerListener*>(arg);
786
789
  self->channelz_listen_socket_.reset();
787
790
  GRPC_ERROR_UNREF(error);
@@ -822,19 +825,19 @@ void Chttp2ServerListener::Orphan() {
822
825
  // Chttp2ServerAddPort()
823
826
  //
824
827
 
825
- grpc_error* Chttp2ServerAddPort(Server* server, const char* addr,
826
- grpc_channel_args* args,
827
- Chttp2ServerArgsModifier args_modifier,
828
- int* port_num) {
828
+ grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
829
+ grpc_channel_args* args,
830
+ Chttp2ServerArgsModifier args_modifier,
831
+ int* port_num) {
829
832
  if (strncmp(addr, "external:", 9) == 0) {
830
833
  return grpc_core::Chttp2ServerListener::CreateWithAcceptor(
831
834
  server, addr, args, args_modifier);
832
835
  }
833
836
  *port_num = -1;
834
837
  grpc_resolved_addresses* resolved = nullptr;
835
- std::vector<grpc_error*> error_list;
838
+ std::vector<grpc_error_handle> error_list;
836
839
  // Using lambda to avoid use of goto.
837
- grpc_error* error = [&]() {
840
+ grpc_error_handle error = [&]() {
838
841
  if (absl::StartsWith(addr, kUnixUriPrefix)) {
839
842
  error = grpc_resolve_unix_domain_address(
840
843
  addr + sizeof(kUnixUriPrefix) - 1, &resolved);
@@ -879,13 +882,13 @@ grpc_error* Chttp2ServerAddPort(Server* server, const char* addr,
879
882
  resolved->naddrs - error_list.size(), resolved->naddrs);
880
883
  error = GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(
881
884
  msg.c_str(), error_list.data(), error_list.size());
882
- gpr_log(GPR_INFO, "WARNING: %s", grpc_error_string(error));
885
+ gpr_log(GPR_INFO, "WARNING: %s", grpc_error_std_string(error).c_str());
883
886
  GRPC_ERROR_UNREF(error);
884
887
  // we managed to bind some addresses: continue without error
885
888
  }
886
889
  return GRPC_ERROR_NONE;
887
890
  }(); // lambda end
888
- for (grpc_error* error : error_list) {
891
+ for (grpc_error_handle error : error_list) {
889
892
  GRPC_ERROR_UNREF(error);
890
893
  }
891
894
  grpc_channel_args_destroy(args);