grpc 1.37.1 → 1.38.0.pre1

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

Potentially problematic release.


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

Files changed (544) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +64 -58
  3. data/include/grpc/event_engine/README.md +38 -0
  4. data/include/grpc/event_engine/channel_args.h +28 -0
  5. data/include/grpc/event_engine/event_engine.h +336 -0
  6. data/include/grpc/event_engine/port.h +39 -0
  7. data/include/grpc/event_engine/slice_allocator.h +81 -0
  8. data/include/grpc/grpc.h +2 -2
  9. data/include/grpc/grpc_security_constants.h +14 -0
  10. data/include/grpc/impl/codegen/grpc_types.h +11 -0
  11. data/include/grpc/impl/codegen/port_platform.h +5 -0
  12. data/include/grpc/module.modulemap +14 -14
  13. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  14. data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
  15. data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
  16. data/src/core/ext/filters/client_channel/client_channel.h +489 -55
  17. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
  19. data/src/core/ext/filters/client_channel/config_selector.h +1 -1
  20. data/src/core/ext/filters/client_channel/connector.h +1 -1
  21. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
  22. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  23. data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
  24. data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
  26. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
  32. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
  33. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
  34. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
  35. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
  36. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
  41. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
  42. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
  43. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  44. data/src/core/ext/filters/client_channel/resolver.h +2 -2
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  54. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
  55. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
  56. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  57. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
  58. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
  59. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
  60. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
  61. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
  62. data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
  63. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  64. data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
  65. data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
  66. data/src/core/ext/filters/client_channel/server_address.cc +1 -1
  67. data/src/core/ext/filters/client_channel/service_config.cc +15 -14
  68. data/src/core/ext/filters/client_channel/service_config.h +7 -6
  69. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
  70. data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
  71. data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
  72. data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
  73. data/src/core/ext/filters/client_channel/subchannel.h +7 -6
  74. data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
  75. data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
  76. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
  77. data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
  78. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  79. data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
  80. data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
  81. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  82. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
  83. data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
  84. data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
  85. data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
  86. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  87. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
  88. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
  89. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  90. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
  91. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
  92. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
  93. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
  94. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
  95. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
  96. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
  97. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
  98. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
  99. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  100. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  101. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  102. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
  103. data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
  104. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  105. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
  106. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  107. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
  108. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  109. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  110. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  111. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
  112. data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
  113. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
  114. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  115. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
  116. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
  117. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
  118. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  119. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  120. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  121. data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
  122. data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
  123. data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
  124. data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
  125. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  126. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  127. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
  128. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  129. data/src/core/ext/xds/xds_api.cc +101 -93
  130. data/src/core/ext/xds/xds_api.h +6 -6
  131. data/src/core/ext/xds/xds_bootstrap.cc +97 -159
  132. data/src/core/ext/xds/xds_bootstrap.h +19 -24
  133. data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
  134. data/src/core/ext/xds/xds_certificate_provider.h +4 -4
  135. data/src/core/ext/xds/xds_channel_args.h +5 -2
  136. data/src/core/ext/xds/xds_client.cc +310 -178
  137. data/src/core/ext/xds/xds_client.h +41 -27
  138. data/src/core/ext/xds/xds_client_stats.h +3 -2
  139. data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
  140. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
  141. data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
  142. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
  143. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
  144. data/src/core/lib/channel/channel_stack.cc +10 -9
  145. data/src/core/lib/channel/channel_stack.h +10 -9
  146. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  147. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  148. data/src/core/lib/channel/channelz.cc +21 -13
  149. data/src/core/lib/channel/connected_channel.cc +4 -4
  150. data/src/core/lib/channel/handshaker.cc +7 -6
  151. data/src/core/lib/channel/handshaker.h +5 -5
  152. data/src/core/lib/event_engine/slice_allocator.cc +59 -0
  153. data/src/core/lib/event_engine/sockaddr.cc +38 -0
  154. data/src/core/lib/gprpp/ref_counted.h +28 -14
  155. data/src/core/lib/gprpp/status_helper.cc +407 -0
  156. data/src/core/lib/gprpp/status_helper.h +180 -0
  157. data/src/core/lib/http/httpcli.cc +11 -11
  158. data/src/core/lib/http/httpcli_security_connector.cc +11 -7
  159. data/src/core/lib/http/parser.cc +16 -16
  160. data/src/core/lib/http/parser.h +4 -4
  161. data/src/core/lib/iomgr/buffer_list.cc +7 -9
  162. data/src/core/lib/iomgr/buffer_list.h +4 -5
  163. data/src/core/lib/iomgr/call_combiner.cc +15 -12
  164. data/src/core/lib/iomgr/call_combiner.h +12 -14
  165. data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
  166. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  167. data/src/core/lib/iomgr/closure.h +7 -6
  168. data/src/core/lib/iomgr/combiner.cc +14 -12
  169. data/src/core/lib/iomgr/combiner.h +2 -2
  170. data/src/core/lib/iomgr/endpoint.cc +1 -1
  171. data/src/core/lib/iomgr/endpoint.h +2 -2
  172. data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
  173. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  174. data/src/core/lib/iomgr/error.cc +167 -61
  175. data/src/core/lib/iomgr/error.h +217 -106
  176. data/src/core/lib/iomgr/error_cfstream.cc +3 -2
  177. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  178. data/src/core/lib/iomgr/error_internal.h +5 -1
  179. data/src/core/lib/iomgr/ev_apple.cc +5 -5
  180. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  181. data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
  182. data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
  183. data/src/core/lib/iomgr/ev_posix.cc +9 -8
  184. data/src/core/lib/iomgr/ev_posix.h +9 -9
  185. data/src/core/lib/iomgr/exec_ctx.cc +4 -4
  186. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  187. data/src/core/lib/iomgr/executor.cc +8 -8
  188. data/src/core/lib/iomgr/executor.h +2 -2
  189. data/src/core/lib/iomgr/iomgr.cc +1 -1
  190. data/src/core/lib/iomgr/iomgr.h +1 -1
  191. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  192. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  193. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  194. data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
  195. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
  196. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  197. data/src/core/lib/iomgr/load_file.cc +4 -4
  198. data/src/core/lib/iomgr/load_file.h +2 -2
  199. data/src/core/lib/iomgr/lockfree_event.cc +5 -5
  200. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  201. data/src/core/lib/iomgr/pollset.cc +5 -5
  202. data/src/core/lib/iomgr/pollset.h +9 -9
  203. data/src/core/lib/iomgr/pollset_custom.cc +5 -5
  204. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  205. data/src/core/lib/iomgr/port.h +1 -1
  206. data/src/core/lib/iomgr/python_util.h +1 -1
  207. data/src/core/lib/iomgr/resolve_address.cc +3 -3
  208. data/src/core/lib/iomgr/resolve_address.h +6 -6
  209. data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
  210. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  211. data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
  212. data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
  213. data/src/core/lib/iomgr/resource_quota.cc +11 -10
  214. data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
  215. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  216. data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
  217. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
  218. data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
  219. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  220. data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
  221. data/src/core/lib/iomgr/tcp_custom.cc +14 -16
  222. data/src/core/lib/iomgr/tcp_custom.h +13 -12
  223. data/src/core/lib/iomgr/tcp_posix.cc +36 -34
  224. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  225. data/src/core/lib/iomgr/tcp_server.h +12 -11
  226. data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
  227. data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
  228. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
  229. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
  230. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
  231. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  232. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
  233. data/src/core/lib/iomgr/tcp_uv.cc +25 -23
  234. data/src/core/lib/iomgr/tcp_windows.cc +13 -13
  235. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  236. data/src/core/lib/iomgr/timer_custom.cc +2 -1
  237. data/src/core/lib/iomgr/timer_custom.h +1 -1
  238. data/src/core/lib/iomgr/timer_generic.cc +6 -6
  239. data/src/core/lib/iomgr/udp_server.cc +21 -20
  240. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  241. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
  242. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  243. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  244. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
  245. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  246. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  247. data/src/core/lib/iomgr/work_serializer.h +17 -1
  248. data/src/core/lib/json/json.h +1 -1
  249. data/src/core/lib/json/json_reader.cc +4 -4
  250. data/src/core/lib/matchers/matchers.cc +39 -39
  251. data/src/core/lib/matchers/matchers.h +28 -28
  252. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  253. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  254. data/src/core/lib/security/credentials/credentials.h +2 -2
  255. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
  256. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
  257. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
  258. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  259. data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
  260. data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
  261. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
  262. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  263. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
  264. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
  265. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  266. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  267. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
  268. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  269. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  270. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
  271. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
  272. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  273. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
  274. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  275. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
  276. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
  277. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  278. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
  279. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
  280. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
  281. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
  282. data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
  283. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
  284. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
  285. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  286. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
  287. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  288. data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
  289. data/src/core/lib/security/security_connector/security_connector.h +9 -4
  290. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
  291. data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
  292. data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
  293. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
  294. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
  295. data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
  296. data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
  297. data/src/core/lib/security/transport/security_handshaker.cc +33 -32
  298. data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
  299. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  300. data/src/core/lib/security/transport/tsi_error.h +2 -1
  301. data/src/core/lib/security/util/json_util.cc +2 -2
  302. data/src/core/lib/security/util/json_util.h +1 -1
  303. data/src/core/lib/surface/call.cc +46 -45
  304. data/src/core/lib/surface/call.h +2 -2
  305. data/src/core/lib/surface/channel.cc +6 -6
  306. data/src/core/lib/surface/channel.h +3 -2
  307. data/src/core/lib/surface/channel_ping.cc +1 -1
  308. data/src/core/lib/surface/completion_queue.cc +46 -47
  309. data/src/core/lib/surface/completion_queue.h +2 -1
  310. data/src/core/lib/surface/lame_client.cc +11 -11
  311. data/src/core/lib/surface/lame_client.h +1 -1
  312. data/src/core/lib/surface/server.cc +28 -22
  313. data/src/core/lib/surface/server.h +16 -15
  314. data/src/core/lib/surface/validate_metadata.cc +7 -7
  315. data/src/core/lib/surface/validate_metadata.h +3 -2
  316. data/src/core/lib/surface/version.cc +4 -2
  317. data/src/core/lib/transport/byte_stream.cc +5 -5
  318. data/src/core/lib/transport/byte_stream.h +8 -8
  319. data/src/core/lib/transport/connectivity_state.cc +1 -1
  320. data/src/core/lib/transport/error_utils.cc +19 -8
  321. data/src/core/lib/transport/error_utils.h +11 -5
  322. data/src/core/lib/transport/metadata_batch.cc +37 -37
  323. data/src/core/lib/transport/metadata_batch.h +19 -18
  324. data/src/core/lib/transport/transport.cc +4 -3
  325. data/src/core/lib/transport/transport.h +4 -4
  326. data/src/core/lib/transport/transport_op_string.cc +5 -5
  327. data/src/core/tsi/alts/crypt/gsec.h +4 -0
  328. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
  329. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
  330. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  331. data/src/core/tsi/ssl_transport_security.cc +32 -14
  332. data/src/core/tsi/ssl_transport_security.h +3 -4
  333. data/src/ruby/bin/math_services_pb.rb +1 -1
  334. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  335. data/src/ruby/lib/grpc/version.rb +1 -1
  336. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  337. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  338. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  339. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  340. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  341. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  342. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  343. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  344. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  345. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  346. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  347. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  348. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  349. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  350. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  351. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  352. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  353. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  354. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  355. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  356. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  357. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  358. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  359. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  360. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  361. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  362. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  363. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  364. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  365. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  366. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  367. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  368. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  369. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  370. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  371. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  372. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  373. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  374. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  375. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  376. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  377. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  378. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  379. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  380. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  381. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  382. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  383. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  384. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  385. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  386. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  387. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  388. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  389. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  390. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  391. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  392. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  393. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  394. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  395. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  396. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  397. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  398. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  399. data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
  400. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  401. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  402. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  403. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  404. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  405. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  406. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  407. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  408. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  409. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  410. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  411. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  412. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  413. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  414. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  415. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  416. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  417. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  418. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  419. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  420. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  421. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  422. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  423. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  424. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  425. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  426. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  427. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  428. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  429. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  430. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  431. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  432. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  433. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  434. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  435. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  436. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  437. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  438. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  439. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  440. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  441. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  442. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  443. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  444. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  445. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  446. data/third_party/boringssl-with-bazel/err_data.c +477 -461
  447. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  448. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
  449. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
  450. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
  451. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
  452. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
  453. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
  454. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  455. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
  456. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  457. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  458. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
  459. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
  460. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
  461. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
  462. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  463. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
  464. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
  465. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
  466. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  467. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  468. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  469. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
  470. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
  471. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  472. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  473. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  474. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  475. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  476. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  477. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
  478. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  479. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
  480. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
  481. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
  482. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
  483. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
  484. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
  485. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  486. data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
  487. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  488. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
  489. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  490. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
  491. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  504. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
  505. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  506. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
  507. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
  508. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
  509. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
  510. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
  511. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  512. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
  513. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
  514. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  515. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
  516. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  517. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  518. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
  519. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  520. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  521. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
  522. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
  523. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
  524. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
  525. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
  526. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
  527. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
  528. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
  529. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
  530. data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
  531. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
  532. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  533. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  534. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
  535. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
  536. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
  537. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
  538. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  539. metadata +68 -45
  540. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  541. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  542. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  543. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  544. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
@@ -45,6 +45,7 @@
45
45
  #include <grpc/support/sync.h>
46
46
  #include <grpc/support/time.h>
47
47
 
48
+ #include "src/core/lib/address_utils/sockaddr_utils.h"
48
49
  #include "src/core/lib/channel/channel_args.h"
49
50
  #include "src/core/lib/debug/stats.h"
50
51
  #include "src/core/lib/debug/trace.h"
@@ -54,7 +55,6 @@
54
55
  #include "src/core/lib/iomgr/buffer_list.h"
55
56
  #include "src/core/lib/iomgr/ev_posix.h"
56
57
  #include "src/core/lib/iomgr/executor.h"
57
- #include "src/core/lib/iomgr/sockaddr_utils.h"
58
58
  #include "src/core/lib/iomgr/socket_utils_posix.h"
59
59
  #include "src/core/lib/profiling/timers.h"
60
60
  #include "src/core/lib/slice/slice_internal.h"
@@ -435,12 +435,12 @@ static void ZerocopyDisableAndWaitForRemaining(grpc_tcp* tcp);
435
435
  static gpr_atm g_uncovered_notifications_pending;
436
436
  static gpr_atm g_backup_poller; /* backup_poller* */
437
437
 
438
- static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error* error);
439
- static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error* error);
438
+ static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error_handle error);
439
+ static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error_handle error);
440
440
  static void tcp_drop_uncovered_then_handle_write(void* arg /* grpc_tcp */,
441
- grpc_error* error);
441
+ grpc_error_handle error);
442
442
 
443
- static void done_poller(void* bp, grpc_error* /*error_ignored*/) {
443
+ static void done_poller(void* bp, grpc_error_handle /*error_ignored*/) {
444
444
  backup_poller* p = static_cast<backup_poller*>(bp);
445
445
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
446
446
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p destroy", p);
@@ -449,7 +449,7 @@ static void done_poller(void* bp, grpc_error* /*error_ignored*/) {
449
449
  gpr_free(p);
450
450
  }
451
451
 
452
- static void run_poller(void* bp, grpc_error* /*error_ignored*/) {
452
+ static void run_poller(void* bp, grpc_error_handle /*error_ignored*/) {
453
453
  backup_poller* p = static_cast<backup_poller*>(bp);
454
454
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
455
455
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p run", p);
@@ -560,9 +560,11 @@ static void notify_on_write(grpc_tcp* tcp) {
560
560
  grpc_fd_notify_on_write(tcp->em_fd, &tcp->write_done_closure);
561
561
  }
562
562
 
563
- static void tcp_drop_uncovered_then_handle_write(void* arg, grpc_error* error) {
563
+ static void tcp_drop_uncovered_then_handle_write(void* arg,
564
+ grpc_error_handle error) {
564
565
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
565
- gpr_log(GPR_INFO, "TCP:%p got_write: %s", arg, grpc_error_string(error));
566
+ gpr_log(GPR_INFO, "TCP:%p got_write: %s", arg,
567
+ grpc_error_std_string(error).c_str());
566
568
  }
567
569
  drop_uncovered(static_cast<grpc_tcp*>(arg));
568
570
  tcp_handle_write(arg, error);
@@ -604,7 +606,8 @@ static size_t get_target_read_size(grpc_tcp* tcp) {
604
606
  return sz;
605
607
  }
606
608
 
607
- static grpc_error* tcp_annotate_error(grpc_error* src_error, grpc_tcp* tcp) {
609
+ static grpc_error_handle tcp_annotate_error(grpc_error_handle src_error,
610
+ grpc_tcp* tcp) {
608
611
  return grpc_error_set_str(
609
612
  grpc_error_set_int(
610
613
  grpc_error_set_int(src_error, GRPC_ERROR_INT_FD, tcp->fd),
@@ -615,10 +618,10 @@ static grpc_error* tcp_annotate_error(grpc_error* src_error, grpc_tcp* tcp) {
615
618
  grpc_slice_from_copied_string(tcp->peer_string.c_str()));
616
619
  }
617
620
 
618
- static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error* error);
619
- static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error* error);
621
+ static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error_handle error);
622
+ static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error_handle error);
620
623
 
621
- static void tcp_shutdown(grpc_endpoint* ep, grpc_error* why) {
624
+ static void tcp_shutdown(grpc_endpoint* ep, grpc_error_handle why) {
622
625
  grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
623
626
  ZerocopyDisableAndWaitForRemaining(tcp);
624
627
  grpc_fd_shutdown(tcp->em_fd, why);
@@ -678,16 +681,14 @@ static void tcp_destroy(grpc_endpoint* ep) {
678
681
  TCP_UNREF(tcp, "destroy");
679
682
  }
680
683
 
681
- static void call_read_cb(grpc_tcp* tcp, grpc_error* error) {
684
+ static void call_read_cb(grpc_tcp* tcp, grpc_error_handle error) {
682
685
  grpc_closure* cb = tcp->read_cb;
683
686
 
684
687
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
685
688
  gpr_log(GPR_INFO, "TCP:%p call_cb %p %p:%p", tcp, cb, cb->cb, cb->cb_arg);
686
689
  size_t i;
687
- const char* str = grpc_error_string(error);
688
690
  gpr_log(GPR_INFO, "READ %p (peer=%s) error=%s", tcp,
689
- tcp->peer_string.c_str(), str);
690
-
691
+ tcp->peer_string.c_str(), grpc_error_std_string(error).c_str());
691
692
  if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
692
693
  for (i = 0; i < tcp->incoming_buffer->count; i++) {
693
694
  char* dump = grpc_dump_slice(tcp->incoming_buffer->slices[i],
@@ -850,11 +851,11 @@ static void tcp_do_read(grpc_tcp* tcp) {
850
851
  TCP_UNREF(tcp, "read");
851
852
  }
852
853
 
853
- static void tcp_read_allocation_done(void* tcpp, grpc_error* error) {
854
+ static void tcp_read_allocation_done(void* tcpp, grpc_error_handle error) {
854
855
  grpc_tcp* tcp = static_cast<grpc_tcp*>(tcpp);
855
856
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
856
857
  gpr_log(GPR_INFO, "TCP:%p read_allocation_done: %s", tcp,
857
- grpc_error_string(error));
858
+ grpc_error_std_string(error).c_str());
858
859
  }
859
860
  if (GPR_UNLIKELY(error != GRPC_ERROR_NONE)) {
860
861
  grpc_slice_buffer_reset_and_unref_internal(tcp->incoming_buffer);
@@ -887,10 +888,11 @@ static void tcp_continue_read(grpc_tcp* tcp) {
887
888
  tcp_do_read(tcp);
888
889
  }
889
890
 
890
- static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error* error) {
891
+ static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error_handle error) {
891
892
  grpc_tcp* tcp = static_cast<grpc_tcp*>(arg);
892
893
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
893
- gpr_log(GPR_INFO, "TCP:%p got_read: %s", tcp, grpc_error_string(error));
894
+ gpr_log(GPR_INFO, "TCP:%p got_read: %s", tcp,
895
+ grpc_error_std_string(error).c_str());
894
896
  }
895
897
 
896
898
  if (GPR_UNLIKELY(error != GRPC_ERROR_NONE)) {
@@ -958,7 +960,7 @@ static bool tcp_write_with_timestamps(grpc_tcp* tcp, struct msghdr* msg,
958
960
  int additional_flags = 0);
959
961
 
960
962
  /** The callback function to be invoked when we get an error on the socket. */
961
- static void tcp_handle_error(void* arg /* grpc_tcp */, grpc_error* error);
963
+ static void tcp_handle_error(void* arg /* grpc_tcp */, grpc_error_handle error);
962
964
 
963
965
  static TcpZerocopySendRecord* tcp_get_send_zerocopy_record(
964
966
  grpc_tcp* tcp, grpc_slice_buffer* buf);
@@ -1213,10 +1215,12 @@ static bool process_errors(grpc_tcp* tcp) {
1213
1215
  }
1214
1216
  }
1215
1217
 
1216
- static void tcp_handle_error(void* arg /* grpc_tcp */, grpc_error* error) {
1218
+ static void tcp_handle_error(void* arg /* grpc_tcp */,
1219
+ grpc_error_handle error) {
1217
1220
  grpc_tcp* tcp = static_cast<grpc_tcp*>(arg);
1218
1221
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1219
- gpr_log(GPR_INFO, "TCP:%p got_error: %s", tcp, grpc_error_string(error));
1222
+ gpr_log(GPR_INFO, "TCP:%p got_error: %s", tcp,
1223
+ grpc_error_std_string(error).c_str());
1220
1224
  }
1221
1225
 
1222
1226
  if (error != GRPC_ERROR_NONE ||
@@ -1257,7 +1261,7 @@ static bool tcp_write_with_timestamps(grpc_tcp* /*tcp*/, struct msghdr* /*msg*/,
1257
1261
  }
1258
1262
 
1259
1263
  static void tcp_handle_error(void* /*arg*/ /* grpc_tcp */,
1260
- grpc_error* /*error*/) {
1264
+ grpc_error_handle /*error*/) {
1261
1265
  gpr_log(GPR_ERROR, "Error handling is not supported for this platform");
1262
1266
  GPR_ASSERT(0);
1263
1267
  }
@@ -1323,7 +1327,7 @@ void TcpZerocopySendRecord::UpdateOffsetForBytesSent(size_t sending_length,
1323
1327
 
1324
1328
  // returns true if done, false if pending; if returning true, *error is set
1325
1329
  static bool do_tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
1326
- grpc_error** error) {
1330
+ grpc_error_handle* error) {
1327
1331
  struct msghdr msg;
1328
1332
  struct iovec iov[MAX_WRITE_IOVEC];
1329
1333
  msg_iovlen_type iov_size;
@@ -1399,7 +1403,7 @@ static void UnrefMaybePutZerocopySendRecord(grpc_tcp* tcp,
1399
1403
  }
1400
1404
 
1401
1405
  static bool tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
1402
- grpc_error** error) {
1406
+ grpc_error_handle* error) {
1403
1407
  bool done = do_tcp_flush_zerocopy(tcp, record, error);
1404
1408
  if (done) {
1405
1409
  // Either we encountered an error, or we successfully sent all the bytes.
@@ -1409,7 +1413,7 @@ static bool tcp_flush_zerocopy(grpc_tcp* tcp, TcpZerocopySendRecord* record,
1409
1413
  return done;
1410
1414
  }
1411
1415
 
1412
- static bool tcp_flush(grpc_tcp* tcp, grpc_error** error) {
1416
+ static bool tcp_flush(grpc_tcp* tcp, grpc_error_handle* error) {
1413
1417
  struct msghdr msg;
1414
1418
  struct iovec iov[MAX_WRITE_IOVEC];
1415
1419
  msg_iovlen_type iov_size;
@@ -1516,7 +1520,8 @@ static bool tcp_flush(grpc_tcp* tcp, grpc_error** error) {
1516
1520
  }
1517
1521
  }
1518
1522
 
1519
- static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error* error) {
1523
+ static void tcp_handle_write(void* arg /* grpc_tcp */,
1524
+ grpc_error_handle error) {
1520
1525
  grpc_tcp* tcp = static_cast<grpc_tcp*>(arg);
1521
1526
  grpc_closure* cb;
1522
1527
 
@@ -1549,8 +1554,7 @@ static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error* error) {
1549
1554
  tcp->write_cb = nullptr;
1550
1555
  tcp->current_zerocopy_send = nullptr;
1551
1556
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1552
- const char* str = grpc_error_string(error);
1553
- gpr_log(GPR_INFO, "write: %s", str);
1557
+ gpr_log(GPR_INFO, "write: %s", grpc_error_std_string(error).c_str());
1554
1558
  }
1555
1559
  // No need to take a ref on error since tcp_flush provides a ref.
1556
1560
  grpc_core::Closure::Run(DEBUG_LOCATION, cb, error);
@@ -1562,7 +1566,7 @@ static void tcp_write(grpc_endpoint* ep, grpc_slice_buffer* buf,
1562
1566
  grpc_closure* cb, void* arg) {
1563
1567
  GPR_TIMER_SCOPE("tcp_write", 0);
1564
1568
  grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
1565
- grpc_error* error = GRPC_ERROR_NONE;
1569
+ grpc_error_handle error = GRPC_ERROR_NONE;
1566
1570
  TcpZerocopySendRecord* zerocopy_send_record = nullptr;
1567
1571
 
1568
1572
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
@@ -1618,8 +1622,7 @@ static void tcp_write(grpc_endpoint* ep, grpc_slice_buffer* buf,
1618
1622
  notify_on_write(tcp);
1619
1623
  } else {
1620
1624
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
1621
- const char* str = grpc_error_string(error);
1622
- gpr_log(GPR_INFO, "write: %s", str);
1625
+ gpr_log(GPR_INFO, "write: %s", grpc_error_std_string(error).c_str());
1623
1626
  }
1624
1627
  grpc_core::Closure::Run(DEBUG_LOCATION, cb, error);
1625
1628
  }
@@ -1639,7 +1642,6 @@ static void tcp_add_to_pollset_set(grpc_endpoint* ep,
1639
1642
  static void tcp_delete_from_pollset_set(grpc_endpoint* ep,
1640
1643
  grpc_pollset_set* pollset_set) {
1641
1644
  grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
1642
- ZerocopyDisableAndWaitForRemaining(tcp);
1643
1645
  grpc_pollset_set_del_fd(pollset_set, tcp->em_fd);
1644
1646
  }
1645
1647
 
@@ -22,9 +22,9 @@
22
22
 
23
23
  grpc_tcp_server_vtable* grpc_tcp_server_impl;
24
24
 
25
- grpc_error* grpc_tcp_server_create(grpc_closure* shutdown_complete,
26
- const grpc_channel_args* args,
27
- grpc_tcp_server** server) {
25
+ grpc_error_handle grpc_tcp_server_create(grpc_closure* shutdown_complete,
26
+ const grpc_channel_args* args,
27
+ grpc_tcp_server** server) {
28
28
  return grpc_tcp_server_impl->create(shutdown_complete, args, server);
29
29
  }
30
30
 
@@ -34,9 +34,9 @@ void grpc_tcp_server_start(grpc_tcp_server* server,
34
34
  grpc_tcp_server_impl->start(server, pollsets, on_accept_cb, cb_arg);
35
35
  }
36
36
 
37
- grpc_error* grpc_tcp_server_add_port(grpc_tcp_server* s,
38
- const grpc_resolved_address* addr,
39
- int* out_port) {
37
+ grpc_error_handle grpc_tcp_server_add_port(grpc_tcp_server* s,
38
+ const grpc_resolved_address* addr,
39
+ int* out_port) {
40
40
  return grpc_tcp_server_impl->add_port(s, addr, out_port);
41
41
  }
42
42
 
@@ -63,14 +63,15 @@ class TcpServerFdHandler {
63
63
  } // namespace grpc_core
64
64
 
65
65
  typedef struct grpc_tcp_server_vtable {
66
- grpc_error* (*create)(grpc_closure* shutdown_complete,
67
- const grpc_channel_args* args,
68
- grpc_tcp_server** server);
66
+ grpc_error_handle (*create)(grpc_closure* shutdown_complete,
67
+ const grpc_channel_args* args,
68
+ grpc_tcp_server** server);
69
69
  void (*start)(grpc_tcp_server* server,
70
70
  const std::vector<grpc_pollset*>* pollsets,
71
71
  grpc_tcp_server_cb on_accept_cb, void* cb_arg);
72
- grpc_error* (*add_port)(grpc_tcp_server* s, const grpc_resolved_address* addr,
73
- int* out_port);
72
+ grpc_error_handle (*add_port)(grpc_tcp_server* s,
73
+ const grpc_resolved_address* addr,
74
+ int* out_port);
74
75
  grpc_core::TcpServerFdHandler* (*create_fd_handler)(grpc_tcp_server* s);
75
76
  unsigned (*port_fd_count)(grpc_tcp_server* s, unsigned port_index);
76
77
  int (*port_fd)(grpc_tcp_server* s, unsigned port_index, unsigned fd_index);
@@ -84,9 +85,9 @@ typedef struct grpc_tcp_server_vtable {
84
85
  /* Create a server, initially not bound to any ports. The caller owns one ref.
85
86
  If shutdown_complete is not NULL, it will be used by
86
87
  grpc_tcp_server_unref() when the ref count reaches zero. */
87
- grpc_error* grpc_tcp_server_create(grpc_closure* shutdown_complete,
88
- const grpc_channel_args* args,
89
- grpc_tcp_server** server);
88
+ grpc_error_handle grpc_tcp_server_create(grpc_closure* shutdown_complete,
89
+ const grpc_channel_args* args,
90
+ grpc_tcp_server** server);
90
91
 
91
92
  /* Start listening to bound ports */
92
93
  void grpc_tcp_server_start(grpc_tcp_server* server,
@@ -102,9 +103,9 @@ void grpc_tcp_server_start(grpc_tcp_server* server,
102
103
  but not dualstack sockets. */
103
104
  /* TODO(ctiller): deprecate this, and make grpc_tcp_server_add_ports to handle
104
105
  all of the multiple socket port matching logic in one place */
105
- grpc_error* grpc_tcp_server_add_port(grpc_tcp_server* s,
106
- const grpc_resolved_address* addr,
107
- int* out_port);
106
+ grpc_error_handle grpc_tcp_server_add_port(grpc_tcp_server* s,
107
+ const grpc_resolved_address* addr,
108
+ int* out_port);
108
109
 
109
110
  /* Create and return a TcpServerFdHandler so that it can be used by upper layer
110
111
  to hand over an externally connected fd to the grpc server. */
@@ -28,12 +28,12 @@
28
28
  #include <grpc/support/alloc.h>
29
29
  #include <grpc/support/log.h>
30
30
 
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/iomgr/error.h"
33
34
  #include "src/core/lib/iomgr/exec_ctx.h"
34
35
  #include "src/core/lib/iomgr/iomgr_custom.h"
35
36
  #include "src/core/lib/iomgr/sockaddr.h"
36
- #include "src/core/lib/iomgr/sockaddr_utils.h"
37
37
  #include "src/core/lib/iomgr/tcp_custom.h"
38
38
  #include "src/core/lib/iomgr/tcp_server.h"
39
39
 
@@ -80,9 +80,9 @@ struct grpc_tcp_server {
80
80
  grpc_resource_quota* resource_quota;
81
81
  };
82
82
 
83
- static grpc_error* tcp_server_create(grpc_closure* shutdown_complete,
84
- const grpc_channel_args* args,
85
- grpc_tcp_server** server) {
83
+ static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
84
+ const grpc_channel_args* args,
85
+ grpc_tcp_server** server) {
86
86
  grpc_tcp_server* s =
87
87
  static_cast<grpc_tcp_server*>(gpr_malloc(sizeof(grpc_tcp_server)));
88
88
  // Let the implementation decide if so_reuseport can be enabled or not.
@@ -218,7 +218,7 @@ static void finish_accept(grpc_tcp_listener* sp, grpc_custom_socket* socket) {
218
218
  grpc_endpoint* ep = nullptr;
219
219
  grpc_resolved_address peer_name;
220
220
  std::string peer_name_string;
221
- grpc_error* err;
221
+ grpc_error_handle err;
222
222
 
223
223
  memset(&peer_name, 0, sizeof(grpc_resolved_address));
224
224
  peer_name.len = GRPC_MAX_SOCKADDR_SIZE;
@@ -246,17 +246,18 @@ static void finish_accept(grpc_tcp_listener* sp, grpc_custom_socket* socket) {
246
246
 
247
247
  static void custom_accept_callback(grpc_custom_socket* socket,
248
248
  grpc_custom_socket* client,
249
- grpc_error* error);
249
+ grpc_error_handle error);
250
250
 
251
251
  static void custom_accept_callback(grpc_custom_socket* socket,
252
252
  grpc_custom_socket* client,
253
- grpc_error* error) {
253
+ grpc_error_handle error) {
254
254
  grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
255
255
  grpc_core::ExecCtx exec_ctx;
256
256
  grpc_tcp_listener* sp = socket->listener;
257
257
  if (error != GRPC_ERROR_NONE) {
258
258
  if (!sp->closed) {
259
- gpr_log(GPR_ERROR, "Accept failed: %s", grpc_error_string(error));
259
+ gpr_log(GPR_ERROR, "Accept failed: %s",
260
+ grpc_error_std_string(error).c_str());
260
261
  }
261
262
  gpr_free(client);
262
263
  GRPC_ERROR_UNREF(error);
@@ -275,14 +276,14 @@ static void custom_accept_callback(grpc_custom_socket* socket,
275
276
  }
276
277
  }
277
278
 
278
- static grpc_error* add_socket_to_server(grpc_tcp_server* s,
279
- grpc_custom_socket* socket,
280
- const grpc_resolved_address* addr,
281
- unsigned port_index,
282
- grpc_tcp_listener** listener) {
279
+ static grpc_error_handle add_socket_to_server(grpc_tcp_server* s,
280
+ grpc_custom_socket* socket,
281
+ const grpc_resolved_address* addr,
282
+ unsigned port_index,
283
+ grpc_tcp_listener** listener) {
283
284
  grpc_tcp_listener* sp = nullptr;
284
285
  int port = -1;
285
- grpc_error* error;
286
+ grpc_error_handle error;
286
287
  grpc_resolved_address sockname_temp;
287
288
 
288
289
  // NOTE(lidiz) The last argument is "flags" which is unused by other
@@ -335,9 +336,9 @@ static grpc_error* add_socket_to_server(grpc_tcp_server* s,
335
336
  return GRPC_ERROR_NONE;
336
337
  }
337
338
 
338
- static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
339
- const grpc_resolved_address* addr,
340
- int* port) {
339
+ static grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
340
+ const grpc_resolved_address* addr,
341
+ int* port) {
341
342
  // This function is mostly copied from tcp_server_windows.c
342
343
  grpc_tcp_listener* sp = nullptr;
343
344
  grpc_custom_socket* socket;
@@ -346,7 +347,7 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
346
347
  grpc_resolved_address* allocated_addr = nullptr;
347
348
  grpc_resolved_address sockname_temp;
348
349
  unsigned port_index = 0;
349
- grpc_error* error = GRPC_ERROR_NONE;
350
+ grpc_error_handle error = GRPC_ERROR_NONE;
350
351
  int family;
351
352
 
352
353
  GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
@@ -392,7 +393,7 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
392
393
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
393
394
  gpr_log(GPR_INFO, "SERVER %p add_port %s error=%s", s,
394
395
  grpc_sockaddr_to_string(addr, false).c_str(),
395
- grpc_error_string(error));
396
+ grpc_error_std_string(error).c_str());
396
397
  }
397
398
 
398
399
  family = grpc_sockaddr_get_family(addr);
@@ -410,8 +411,9 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
410
411
  gpr_free(allocated_addr);
411
412
 
412
413
  if (error != GRPC_ERROR_NONE) {
413
- grpc_error* error_out = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
414
- "Failed to add port to server", &error, 1);
414
+ grpc_error_handle error_out =
415
+ GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
416
+ "Failed to add port to server", &error, 1);
415
417
  GRPC_ERROR_UNREF(error);
416
418
  error = error_out;
417
419
  *port = -1;
@@ -47,22 +47,22 @@
47
47
  #include <grpc/support/sync.h>
48
48
  #include <grpc/support/time.h>
49
49
 
50
+ #include "src/core/lib/address_utils/sockaddr_utils.h"
50
51
  #include "src/core/lib/channel/channel_args.h"
51
52
  #include "src/core/lib/gpr/string.h"
52
53
  #include "src/core/lib/gprpp/memory.h"
53
54
  #include "src/core/lib/iomgr/exec_ctx.h"
54
55
  #include "src/core/lib/iomgr/resolve_address.h"
55
56
  #include "src/core/lib/iomgr/sockaddr.h"
56
- #include "src/core/lib/iomgr/sockaddr_utils.h"
57
57
  #include "src/core/lib/iomgr/socket_utils_posix.h"
58
58
  #include "src/core/lib/iomgr/tcp_posix.h"
59
59
  #include "src/core/lib/iomgr/tcp_server.h"
60
60
  #include "src/core/lib/iomgr/tcp_server_utils_posix.h"
61
61
  #include "src/core/lib/iomgr/unix_sockets_posix.h"
62
62
 
63
- static grpc_error* tcp_server_create(grpc_closure* shutdown_complete,
64
- const grpc_channel_args* args,
65
- grpc_tcp_server** server) {
63
+ static grpc_error_handle tcp_server_create(grpc_closure* shutdown_complete,
64
+ const grpc_channel_args* args,
65
+ grpc_tcp_server** server) {
66
66
  grpc_tcp_server* s =
67
67
  static_cast<grpc_tcp_server*>(gpr_zalloc(sizeof(grpc_tcp_server)));
68
68
  s->so_reuseport = grpc_is_socket_reuse_port_supported();
@@ -129,7 +129,7 @@ static void finish_shutdown(grpc_tcp_server* s) {
129
129
  gpr_free(s);
130
130
  }
131
131
 
132
- static void destroyed_port(void* server, grpc_error* /*error*/) {
132
+ static void destroyed_port(void* server, grpc_error_handle /*error*/) {
133
133
  grpc_tcp_server* s = static_cast<grpc_tcp_server*>(server);
134
134
  gpr_mu_lock(&s->mu);
135
135
  s->destroyed_ports++;
@@ -188,7 +188,7 @@ static void tcp_server_destroy(grpc_tcp_server* s) {
188
188
  }
189
189
 
190
190
  /* event manager callback when reads are ready */
191
- static void on_read(void* arg, grpc_error* err) {
191
+ static void on_read(void* arg, grpc_error_handle err) {
192
192
  grpc_tcp_listener* sp = static_cast<grpc_tcp_listener*>(arg);
193
193
  grpc_pollset* read_notifier_pollset;
194
194
  if (err != GRPC_ERROR_NONE) {
@@ -281,18 +281,18 @@ error:
281
281
  }
282
282
 
283
283
  /* Treat :: or 0.0.0.0 as a family-agnostic wildcard. */
284
- static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
285
- unsigned port_index,
286
- int requested_port,
287
- int* out_port) {
284
+ static grpc_error_handle add_wildcard_addrs_to_server(grpc_tcp_server* s,
285
+ unsigned port_index,
286
+ int requested_port,
287
+ int* out_port) {
288
288
  grpc_resolved_address wild4;
289
289
  grpc_resolved_address wild6;
290
290
  unsigned fd_index = 0;
291
291
  grpc_dualstack_mode dsmode;
292
292
  grpc_tcp_listener* sp = nullptr;
293
293
  grpc_tcp_listener* sp2 = nullptr;
294
- grpc_error* v6_err = GRPC_ERROR_NONE;
295
- grpc_error* v4_err = GRPC_ERROR_NONE;
294
+ grpc_error_handle v6_err = GRPC_ERROR_NONE;
295
+ grpc_error_handle v4_err = GRPC_ERROR_NONE;
296
296
  *out_port = -1;
297
297
 
298
298
  if (grpc_tcp_server_have_ifaddrs() && s->expand_wildcard_addrs) {
@@ -325,19 +325,19 @@ static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
325
325
  gpr_log(GPR_INFO,
326
326
  "Failed to add :: listener, "
327
327
  "the environment may not support IPv6: %s",
328
- grpc_error_string(v6_err));
328
+ grpc_error_std_string(v6_err).c_str());
329
329
  GRPC_ERROR_UNREF(v6_err);
330
330
  }
331
331
  if (v4_err != GRPC_ERROR_NONE) {
332
332
  gpr_log(GPR_INFO,
333
333
  "Failed to add 0.0.0.0 listener, "
334
334
  "the environment may not support IPv4: %s",
335
- grpc_error_string(v4_err));
335
+ grpc_error_std_string(v4_err).c_str());
336
336
  GRPC_ERROR_UNREF(v4_err);
337
337
  }
338
338
  return GRPC_ERROR_NONE;
339
339
  } else {
340
- grpc_error* root_err = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
340
+ grpc_error_handle root_err = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
341
341
  "Failed to add any wildcard listeners");
342
342
  GPR_ASSERT(v6_err != GRPC_ERROR_NONE && v4_err != GRPC_ERROR_NONE);
343
343
  root_err = grpc_error_add_child(root_err, v6_err);
@@ -346,10 +346,11 @@ static grpc_error* add_wildcard_addrs_to_server(grpc_tcp_server* s,
346
346
  }
347
347
  }
348
348
 
349
- static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
349
+ static grpc_error_handle clone_port(grpc_tcp_listener* listener,
350
+ unsigned count) {
350
351
  grpc_tcp_listener* sp = nullptr;
351
352
  std::string addr_str;
352
- grpc_error* err;
353
+ grpc_error_handle err;
353
354
 
354
355
  for (grpc_tcp_listener* l = listener->next; l && l->is_sibling; l = l->next) {
355
356
  l->fd_index += count;
@@ -395,16 +396,16 @@ static grpc_error* clone_port(grpc_tcp_listener* listener, unsigned count) {
395
396
  return GRPC_ERROR_NONE;
396
397
  }
397
398
 
398
- static grpc_error* tcp_server_add_port(grpc_tcp_server* s,
399
- const grpc_resolved_address* addr,
400
- int* out_port) {
399
+ static grpc_error_handle tcp_server_add_port(grpc_tcp_server* s,
400
+ const grpc_resolved_address* addr,
401
+ int* out_port) {
401
402
  grpc_tcp_listener* sp;
402
403
  grpc_resolved_address sockname_temp;
403
404
  grpc_resolved_address addr6_v4mapped;
404
405
  int requested_port = grpc_sockaddr_get_port(addr);
405
406
  unsigned port_index = 0;
406
407
  grpc_dualstack_mode dsmode;
407
- grpc_error* err;
408
+ grpc_error_handle err;
408
409
  *out_port = -1;
409
410
  if (s->tail != nullptr) {
410
411
  port_index = s->tail->port_index + 1;