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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3b627752ca7c7657c61fef89ab9751073ff1a496bf33598ae91f6d12c9f73284
4
- data.tar.gz: 5f1ed79aaec29a0957859f6fd9192bb6736c88890bc82596a2d6e2339aa7b0ad
3
+ metadata.gz: 51dac13a423a983663add4094ff9c6613bfe0371036c811f9c6a4309e7a24cef
4
+ data.tar.gz: 3361cb6878d0dcdcb21cde9ab60cb7ff5e98cd7e5564e0ca8b73918f381d2054
5
5
  SHA512:
6
- metadata.gz: 3eefaee5b14ecbb4b132e15c769ca54f7367a61a4dbb9fce29014a6f7e9f56c9b4a3d5e1fb792db04034772ee0e7be1bf8eb130bf2024e929ce02a5ffab50090
7
- data.tar.gz: 5acadb28b8ec1b6742c4e48e75a87e10053ea87454662a846f0c588d1102b695098fcbc0add3c6ceac0f743198d9ffaace8684e78d9630a6bb3a4638f5de54f7
6
+ metadata.gz: c840c74174303c1fb59fcb9f657b226e49fc2c40ef7b300be2651c35e2219d82faccd6c92b9866a7b27df77f7a41df5b1c41ccad80b042f1e87b4d26b9f0abdc
7
+ data.tar.gz: 6c7232e81f311da492ace101729178db8cef271d7d077b5d805c7d1303936ae9c7ba1b1bd140deefc7ac78f928770471a0b5f499f3d7c2afb6f754f32dcb349f
data/Makefile CHANGED
@@ -454,9 +454,9 @@ E = @echo
454
454
  Q = @
455
455
  endif
456
456
 
457
- CORE_VERSION = 15.0.0
458
- CPP_VERSION = 1.37.1
459
- CSHARP_VERSION = 2.37.1
457
+ CORE_VERSION = 16.0.0
458
+ CPP_VERSION = 1.38.0-pre1
459
+ CSHARP_VERSION = 2.38.0-pre1
460
460
 
461
461
  CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
462
462
  CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
@@ -492,7 +492,7 @@ SHARED_EXT_CORE = dll
492
492
  SHARED_EXT_CPP = dll
493
493
  SHARED_EXT_CSHARP = dll
494
494
  SHARED_PREFIX =
495
- SHARED_VERSION_CORE = -15
495
+ SHARED_VERSION_CORE = -16
496
496
  SHARED_VERSION_CPP = -1
497
497
  SHARED_VERSION_CSHARP = -2
498
498
  else ifeq ($(SYSTEM),Darwin)
@@ -891,8 +891,8 @@ $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE):
891
891
  ifeq ($(SYSTEM),Darwin)
892
892
  $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)address_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBADDRESS_SORTING_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
893
893
  else
894
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libaddress_sorting.so.15 -o $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBADDRESS_SORTING_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
895
- $(Q) ln -sf $(SHARED_PREFIX)address_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).so.15
894
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libaddress_sorting.so.16 -o $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBADDRESS_SORTING_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
895
+ $(Q) ln -sf $(SHARED_PREFIX)address_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).so.16
896
896
  $(Q) ln -sf $(SHARED_PREFIX)address_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE).so
897
897
  endif
898
898
  endif
@@ -905,6 +905,17 @@ endif
905
905
 
906
906
  # start of build recipe for library "gpr" (generated by makelib(lib) template function)
907
907
  LIBGPR_SRC = \
908
+ src/core/ext/upb-generated/google/api/annotations.upb.c \
909
+ src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c \
910
+ src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c \
911
+ src/core/ext/upb-generated/google/api/http.upb.c \
912
+ src/core/ext/upb-generated/google/protobuf/any.upb.c \
913
+ src/core/ext/upb-generated/google/protobuf/duration.upb.c \
914
+ src/core/ext/upb-generated/google/protobuf/empty.upb.c \
915
+ src/core/ext/upb-generated/google/protobuf/struct.upb.c \
916
+ src/core/ext/upb-generated/google/protobuf/timestamp.upb.c \
917
+ src/core/ext/upb-generated/google/protobuf/wrappers.upb.c \
918
+ src/core/ext/upb-generated/google/rpc/status.upb.c \
908
919
  src/core/lib/gpr/alloc.cc \
909
920
  src/core/lib/gpr/atm.cc \
910
921
  src/core/lib/gpr/cpu_iphone.cc \
@@ -945,6 +956,7 @@ LIBGPR_SRC = \
945
956
  src/core/lib/gprpp/mpscq.cc \
946
957
  src/core/lib/gprpp/stat_posix.cc \
947
958
  src/core/lib/gprpp/stat_windows.cc \
959
+ src/core/lib/gprpp/status_helper.cc \
948
960
  src/core/lib/gprpp/thd_posix.cc \
949
961
  src/core/lib/gprpp/thd_windows.cc \
950
962
  src/core/lib/gprpp/time_util.cc \
@@ -1009,19 +1021,19 @@ endif
1009
1021
 
1010
1022
 
1011
1023
  ifeq ($(SYSTEM),MINGW32)
1012
- $(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGPR_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP)
1024
+ $(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGPR_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libupb.a
1013
1025
  $(E) "[LD] Linking $@"
1014
1026
  $(Q) mkdir -p `dirname $@`
1015
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1027
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(LIBDIR)/$(CONFIG)/libupb.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1016
1028
  else
1017
- $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGPR_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP)
1029
+ $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGPR_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libupb.a
1018
1030
  $(E) "[LD] Linking $@"
1019
1031
  $(Q) mkdir -p `dirname $@`
1020
1032
  ifeq ($(SYSTEM),Darwin)
1021
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1033
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(LIBDIR)/$(CONFIG)/libupb.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1022
1034
  else
1023
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgpr.so.15 -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1024
- $(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).so.15
1035
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgpr.so.16 -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(LIBDIR)/$(CONFIG)/libupb.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1036
+ $(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).so.16
1025
1037
  $(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE).so
1026
1038
  endif
1027
1039
  endif
@@ -1086,6 +1098,8 @@ LIBGRPC_SRC = \
1086
1098
  src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc \
1087
1099
  src/core/ext/filters/client_channel/resolver_registry.cc \
1088
1100
  src/core/ext/filters/client_channel/resolver_result_parsing.cc \
1101
+ src/core/ext/filters/client_channel/retry_filter.cc \
1102
+ src/core/ext/filters/client_channel/retry_service_config.cc \
1089
1103
  src/core/ext/filters/client_channel/retry_throttle.cc \
1090
1104
  src/core/ext/filters/client_channel/server_address.cc \
1091
1105
  src/core/ext/filters/client_channel/service_config.cc \
@@ -1210,17 +1224,6 @@ LIBGRPC_SRC = \
1210
1224
  src/core/ext/upb-generated/envoy/type/v3/percent.upb.c \
1211
1225
  src/core/ext/upb-generated/envoy/type/v3/range.upb.c \
1212
1226
  src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c \
1213
- src/core/ext/upb-generated/google/api/annotations.upb.c \
1214
- src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c \
1215
- src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c \
1216
- src/core/ext/upb-generated/google/api/http.upb.c \
1217
- src/core/ext/upb-generated/google/protobuf/any.upb.c \
1218
- src/core/ext/upb-generated/google/protobuf/duration.upb.c \
1219
- src/core/ext/upb-generated/google/protobuf/empty.upb.c \
1220
- src/core/ext/upb-generated/google/protobuf/struct.upb.c \
1221
- src/core/ext/upb-generated/google/protobuf/timestamp.upb.c \
1222
- src/core/ext/upb-generated/google/protobuf/wrappers.upb.c \
1223
- src/core/ext/upb-generated/google/rpc/status.upb.c \
1224
1227
  src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c \
1225
1228
  src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c \
1226
1229
  src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c \
@@ -1340,6 +1343,8 @@ LIBGRPC_SRC = \
1340
1343
  src/core/ext/xds/xds_http_fault_filter.cc \
1341
1344
  src/core/ext/xds/xds_http_filters.cc \
1342
1345
  src/core/ext/xds/xds_server_config_fetcher.cc \
1346
+ src/core/lib/address_utils/parse_address.cc \
1347
+ src/core/lib/address_utils/sockaddr_utils.cc \
1343
1348
  src/core/lib/avl/avl.cc \
1344
1349
  src/core/lib/backoff/backoff.cc \
1345
1350
  src/core/lib/channel/channel_args.cc \
@@ -1362,6 +1367,8 @@ LIBGRPC_SRC = \
1362
1367
  src/core/lib/debug/stats.cc \
1363
1368
  src/core/lib/debug/stats_data.cc \
1364
1369
  src/core/lib/debug/trace.cc \
1370
+ src/core/lib/event_engine/slice_allocator.cc \
1371
+ src/core/lib/event_engine/sockaddr.cc \
1365
1372
  src/core/lib/http/format_request.cc \
1366
1373
  src/core/lib/http/httpcli.cc \
1367
1374
  src/core/lib/http/httpcli_security_connector.cc \
@@ -1407,8 +1414,6 @@ LIBGRPC_SRC = \
1407
1414
  src/core/lib/iomgr/is_epollexclusive_available.cc \
1408
1415
  src/core/lib/iomgr/load_file.cc \
1409
1416
  src/core/lib/iomgr/lockfree_event.cc \
1410
- src/core/lib/iomgr/parse_address.cc \
1411
- src/core/lib/iomgr/poller/eventmanager_libuv.cc \
1412
1417
  src/core/lib/iomgr/polling_entity.cc \
1413
1418
  src/core/lib/iomgr/pollset.cc \
1414
1419
  src/core/lib/iomgr/pollset_custom.cc \
@@ -1422,7 +1427,6 @@ LIBGRPC_SRC = \
1422
1427
  src/core/lib/iomgr/resolve_address_posix.cc \
1423
1428
  src/core/lib/iomgr/resolve_address_windows.cc \
1424
1429
  src/core/lib/iomgr/resource_quota.cc \
1425
- src/core/lib/iomgr/sockaddr_utils.cc \
1426
1430
  src/core/lib/iomgr/socket_factory_posix.cc \
1427
1431
  src/core/lib/iomgr/socket_mutator.cc \
1428
1432
  src/core/lib/iomgr/socket_utils_common_posix.cc \
@@ -1593,6 +1597,10 @@ PUBLIC_HEADERS_C += \
1593
1597
  include/grpc/byte_buffer_reader.h \
1594
1598
  include/grpc/census.h \
1595
1599
  include/grpc/compression.h \
1600
+ include/grpc/event_engine/channel_args.h \
1601
+ include/grpc/event_engine/event_engine.h \
1602
+ include/grpc/event_engine/port.h \
1603
+ include/grpc/event_engine/slice_allocator.h \
1596
1604
  include/grpc/fork.h \
1597
1605
  include/grpc/grpc.h \
1598
1606
  include/grpc/grpc_posix.h \
@@ -1629,19 +1637,19 @@ endif
1629
1637
 
1630
1638
 
1631
1639
  ifeq ($(SYSTEM),MINGW32)
1632
- $(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a $(OPENSSL_DEP)
1640
+ $(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_DEP)
1633
1641
  $(E) "[LD] Linking $@"
1634
1642
  $(Q) mkdir -p `dirname $@`
1635
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1643
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1636
1644
  else
1637
- $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a $(OPENSSL_DEP)
1645
+ $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_DEP)
1638
1646
  $(E) "[LD] Linking $@"
1639
1647
  $(Q) mkdir -p `dirname $@`
1640
1648
  ifeq ($(SYSTEM),Darwin)
1641
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1649
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1642
1650
  else
1643
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.15 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1644
- $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.15
1651
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.16 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1652
+ $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.16
1645
1653
  $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so
1646
1654
  endif
1647
1655
  endif
@@ -1688,8 +1696,8 @@ $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE):
1688
1696
  ifeq ($(SYSTEM),Darwin)
1689
1697
  $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_CSHARP_EXT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1690
1698
  else
1691
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_csharp_ext.so.15 -o $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_CSHARP_EXT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1692
- $(Q) ln -sf $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).so.15
1699
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_csharp_ext.so.16 -o $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_CSHARP_EXT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
1700
+ $(Q) ln -sf $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).so.16
1693
1701
  $(Q) ln -sf $(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CORE).so
1694
1702
  endif
1695
1703
  endif
@@ -1747,6 +1755,8 @@ LIBGRPC_UNSECURE_SRC = \
1747
1755
  src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \
1748
1756
  src/core/ext/filters/client_channel/resolver_registry.cc \
1749
1757
  src/core/ext/filters/client_channel/resolver_result_parsing.cc \
1758
+ src/core/ext/filters/client_channel/retry_filter.cc \
1759
+ src/core/ext/filters/client_channel/retry_service_config.cc \
1750
1760
  src/core/ext/filters/client_channel/retry_throttle.cc \
1751
1761
  src/core/ext/filters/client_channel/server_address.cc \
1752
1762
  src/core/ext/filters/client_channel/service_config.cc \
@@ -1801,21 +1811,12 @@ LIBGRPC_UNSECURE_SRC = \
1801
1811
  src/core/ext/transport/chttp2/transport/writing.cc \
1802
1812
  src/core/ext/transport/inproc/inproc_plugin.cc \
1803
1813
  src/core/ext/transport/inproc/inproc_transport.cc \
1804
- src/core/ext/upb-generated/google/api/annotations.upb.c \
1805
- src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c \
1806
- src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c \
1807
- src/core/ext/upb-generated/google/api/http.upb.c \
1808
- src/core/ext/upb-generated/google/protobuf/any.upb.c \
1809
- src/core/ext/upb-generated/google/protobuf/duration.upb.c \
1810
- src/core/ext/upb-generated/google/protobuf/empty.upb.c \
1811
- src/core/ext/upb-generated/google/protobuf/struct.upb.c \
1812
- src/core/ext/upb-generated/google/protobuf/timestamp.upb.c \
1813
- src/core/ext/upb-generated/google/protobuf/wrappers.upb.c \
1814
- src/core/ext/upb-generated/google/rpc/status.upb.c \
1815
1814
  src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c \
1816
1815
  src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c \
1817
1816
  src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c \
1818
1817
  src/core/ext/upb-generated/validate/validate.upb.c \
1818
+ src/core/lib/address_utils/parse_address.cc \
1819
+ src/core/lib/address_utils/sockaddr_utils.cc \
1819
1820
  src/core/lib/avl/avl.cc \
1820
1821
  src/core/lib/backoff/backoff.cc \
1821
1822
  src/core/lib/channel/channel_args.cc \
@@ -1838,6 +1839,8 @@ LIBGRPC_UNSECURE_SRC = \
1838
1839
  src/core/lib/debug/stats.cc \
1839
1840
  src/core/lib/debug/stats_data.cc \
1840
1841
  src/core/lib/debug/trace.cc \
1842
+ src/core/lib/event_engine/slice_allocator.cc \
1843
+ src/core/lib/event_engine/sockaddr.cc \
1841
1844
  src/core/lib/http/format_request.cc \
1842
1845
  src/core/lib/http/httpcli.cc \
1843
1846
  src/core/lib/http/parser.cc \
@@ -1882,8 +1885,6 @@ LIBGRPC_UNSECURE_SRC = \
1882
1885
  src/core/lib/iomgr/is_epollexclusive_available.cc \
1883
1886
  src/core/lib/iomgr/load_file.cc \
1884
1887
  src/core/lib/iomgr/lockfree_event.cc \
1885
- src/core/lib/iomgr/parse_address.cc \
1886
- src/core/lib/iomgr/poller/eventmanager_libuv.cc \
1887
1888
  src/core/lib/iomgr/polling_entity.cc \
1888
1889
  src/core/lib/iomgr/pollset.cc \
1889
1890
  src/core/lib/iomgr/pollset_custom.cc \
@@ -1897,7 +1898,6 @@ LIBGRPC_UNSECURE_SRC = \
1897
1898
  src/core/lib/iomgr/resolve_address_posix.cc \
1898
1899
  src/core/lib/iomgr/resolve_address_windows.cc \
1899
1900
  src/core/lib/iomgr/resource_quota.cc \
1900
- src/core/lib/iomgr/sockaddr_utils.cc \
1901
1901
  src/core/lib/iomgr/socket_factory_posix.cc \
1902
1902
  src/core/lib/iomgr/socket_mutator.cc \
1903
1903
  src/core/lib/iomgr/socket_utils_common_posix.cc \
@@ -1988,6 +1988,10 @@ PUBLIC_HEADERS_C += \
1988
1988
  include/grpc/byte_buffer_reader.h \
1989
1989
  include/grpc/census.h \
1990
1990
  include/grpc/compression.h \
1991
+ include/grpc/event_engine/channel_args.h \
1992
+ include/grpc/event_engine/event_engine.h \
1993
+ include/grpc/event_engine/port.h \
1994
+ include/grpc/event_engine/slice_allocator.h \
1991
1995
  include/grpc/fork.h \
1992
1996
  include/grpc/grpc.h \
1993
1997
  include/grpc/grpc_posix.h \
@@ -2013,19 +2017,19 @@ endif
2013
2017
 
2014
2018
 
2015
2019
  ifeq ($(SYSTEM),MINGW32)
2016
- $(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a
2020
+ $(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
2017
2021
  $(E) "[LD] Linking $@"
2018
2022
  $(Q) mkdir -p `dirname $@`
2019
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
2023
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
2020
2024
  else
2021
- $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a
2025
+ $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(CARES_DEP) $(ADDRESS_SORTING_DEP) $(RE2_DEP) $(UPB_DEP) $(GRPC_ABSEIL_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
2022
2026
  $(E) "[LD] Linking $@"
2023
2027
  $(Q) mkdir -p `dirname $@`
2024
2028
  ifeq ($(SYSTEM),Darwin)
2025
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
2029
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
2026
2030
  else
2027
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_unsecure.so.15 -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
2028
- $(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).so.15
2031
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_unsecure.so.16 -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
2032
+ $(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).so.16
2029
2033
  $(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE).so
2030
2034
  endif
2031
2035
  endif
@@ -2145,7 +2149,6 @@ LIBBORINGSSL_SRC = \
2145
2149
  third_party/boringssl-with-bazel/src/crypto/ex_data.c \
2146
2150
  third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c \
2147
2151
  third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c \
2148
- third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c \
2149
2152
  third_party/boringssl-with-bazel/src/crypto/hkdf/hkdf.c \
2150
2153
  third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c \
2151
2154
  third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c \
@@ -2212,7 +2215,6 @@ LIBBORINGSSL_SRC = \
2212
2215
  third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c \
2213
2216
  third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c \
2214
2217
  third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c \
2215
- third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c \
2216
2218
  third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c \
2217
2219
  third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c \
2218
2220
  third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c \
@@ -2277,6 +2279,7 @@ LIBBORINGSSL_SRC = \
2277
2279
  third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc \
2278
2280
  third_party/boringssl-with-bazel/src/ssl/dtls_method.cc \
2279
2281
  third_party/boringssl-with-bazel/src/ssl/dtls_record.cc \
2282
+ third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc \
2280
2283
  third_party/boringssl-with-bazel/src/ssl/handoff.cc \
2281
2284
  third_party/boringssl-with-bazel/src/ssl/handshake.cc \
2282
2285
  third_party/boringssl-with-bazel/src/ssl/handshake_client.cc \
@@ -2421,8 +2424,8 @@ $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBUPB_OB
2421
2424
  ifeq ($(SYSTEM),Darwin)
2422
2425
  $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)upb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBUPB_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
2423
2426
  else
2424
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libupb.so.15 -o $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBUPB_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
2425
- $(Q) ln -sf $(SHARED_PREFIX)upb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).so.15
2427
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libupb.so.16 -o $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBUPB_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(RE2_MERGE_LIBS) $(UPB_MERGE_LIBS) $(GRPC_ABSEIL_MERGE_LIBS) $(LDLIBS)
2428
+ $(Q) ln -sf $(SHARED_PREFIX)upb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).so.16
2426
2429
  $(Q) ln -sf $(SHARED_PREFIX)upb$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libupb$(SHARED_VERSION_CORE).so
2427
2430
  endif
2428
2431
  endif
@@ -2579,6 +2582,7 @@ LIBGRPC_ABSEIL_SRC = \
2579
2582
  third_party/abseil-cpp/absl/debugging/symbolize.cc \
2580
2583
  third_party/abseil-cpp/absl/hash/internal/city.cc \
2581
2584
  third_party/abseil-cpp/absl/hash/internal/hash.cc \
2585
+ third_party/abseil-cpp/absl/hash/internal/wyhash.cc \
2582
2586
  third_party/abseil-cpp/absl/numeric/int128.cc \
2583
2587
  third_party/abseil-cpp/absl/status/status.cc \
2584
2588
  third_party/abseil-cpp/absl/status/status_payload_printer.cc \
@@ -2589,6 +2593,8 @@ LIBGRPC_ABSEIL_SRC = \
2589
2593
  third_party/abseil-cpp/absl/strings/escaping.cc \
2590
2594
  third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc \
2591
2595
  third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc \
2596
+ third_party/abseil-cpp/absl/strings/internal/cord_internal.cc \
2597
+ third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc \
2592
2598
  third_party/abseil-cpp/absl/strings/internal/escaping.cc \
2593
2599
  third_party/abseil-cpp/absl/strings/internal/memutil.cc \
2594
2600
  third_party/abseil-cpp/absl/strings/internal/ostringstream.cc \
@@ -0,0 +1,38 @@
1
+ # gRPC EventEngine
2
+
3
+ An EventEngine handles all cross-platform I/O, task execution, and DNS
4
+ resolution for gRPC. A default, cross-platform implementation is provided with
5
+ gRPC, but part of the intent here is to provide an interface for external
6
+ integrators to bring their own functionality. This allows for integration with
7
+ external event loops, siloing I/O and task execution between channels or
8
+ servers, and other custom integrations that were previously unsupported.
9
+
10
+ *WARNING*: This is experimental code and is subject to change.
11
+
12
+ ## High level expectations of an EventEngine implementation
13
+
14
+ ### Provide their own I/O threads
15
+ EventEngines are expected to internally create whatever threads are required to
16
+ perform I/O and execute callbacks. For example, an EventEngine implementation
17
+ may want to spawn separate thread pools for polling and callback execution.
18
+
19
+ ### Provisioning data buffers via Slice allocation
20
+ At a high level, gRPC provides a `ResourceQuota` system that allows gRPC to
21
+ reclaim memory and degrade gracefully when memory reaches application-defined
22
+ thresholds. To enable this feature, the memory allocation of read/write buffers
23
+ within an EventEngine must be acquired in the form of Slices from
24
+ SliceAllocators. This is covered more fully in the gRFC and code.
25
+
26
+ ### Documentating expectations around callback execution
27
+ Some callbacks may be expensive to run. EventEngines should decide on and
28
+ document whether callback execution might block polling operations. This way,
29
+ application developers can plan accordingly (e.g., run their expensive callbacks
30
+ on a separate thread if necessary).
31
+
32
+ ### Handling concurrent usage
33
+ Assume that gRPC may use an EventEngine concurrently across multiple threads.
34
+
35
+ ## TODO: documentation
36
+
37
+ * Example usage
38
+ * Link to gRFC
@@ -0,0 +1,28 @@
1
+ // Copyright 2021 The gRPC Authors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ #ifndef GRPC_EVENT_ENGINE_CHANNEL_ARGS_H
15
+ #define GRPC_EVENT_ENGINE_CHANNEL_ARGS_H
16
+
17
+ #include <grpc/support/port_platform.h>
18
+
19
+ namespace grpc_event_engine {
20
+ namespace experimental {
21
+
22
+ // TODO(hork): define
23
+ class ChannelArgs;
24
+
25
+ } // namespace experimental
26
+ } // namespace grpc_event_engine
27
+
28
+ #endif // GRPC_EVENT_ENGINE_CHANNEL_ARGS_H
@@ -0,0 +1,336 @@
1
+ // Copyright 2021 The gRPC Authors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ #ifndef GRPC_EVENT_ENGINE_EVENT_ENGINE_H
15
+ #define GRPC_EVENT_ENGINE_EVENT_ENGINE_H
16
+
17
+ #include <grpc/support/port_platform.h>
18
+
19
+ #include <functional>
20
+ #include <vector>
21
+
22
+ #include "absl/status/status.h"
23
+ #include "absl/status/statusor.h"
24
+ #include "absl/time/time.h"
25
+
26
+ #include "grpc/event_engine/channel_args.h"
27
+ #include "grpc/event_engine/port.h"
28
+ #include "grpc/event_engine/slice_allocator.h"
29
+
30
+ // TODO(hork): explicitly define lifetimes and ownership of all objects.
31
+ // TODO(hork): Define the Endpoint::Write metrics collection system
32
+
33
+ namespace grpc_event_engine {
34
+ namespace experimental {
35
+
36
+ ////////////////////////////////////////////////////////////////////////////////
37
+ /// The EventEngine encapsulates all platform-specific behaviors related to low
38
+ /// level network I/O, timers, asynchronous execution, and DNS resolution.
39
+ ///
40
+ /// This interface allows developers to provide their own event management and
41
+ /// network stacks. Motivating uses cases for supporting custom EventEngines
42
+ /// include the ability to hook into external event loops, and using different
43
+ /// EventEngine instances for each channel to better insulate network I/O and
44
+ /// callback processing from other channels.
45
+ ///
46
+ /// A default cross-platform EventEngine instance is provided by gRPC.
47
+ ///
48
+ /// LIFESPAN AND OWNERSHIP
49
+ ///
50
+ /// gRPC takes shared ownership of EventEngines via std::shared_ptrs to ensure
51
+ /// that the engines remain available until they are no longer needed. Depending
52
+ /// on the use case, engines may live until gRPC is shut down.
53
+ ///
54
+ /// EXAMPLE USAGE (Not yet implemented)
55
+ ///
56
+ /// Custom EventEngines can be specified per channel, and allow configuration
57
+ /// for both clients and servers. To set a custom EventEngine for a client
58
+ /// channel, you can do something like the following:
59
+ ///
60
+ /// ChannelArguments args;
61
+ /// std::shared_ptr<EventEngine> engine = std::make_shared<MyEngine>(...);
62
+ /// args.SetEventEngine(engine);
63
+ /// MyAppClient client(grpc::CreateCustomChannel(
64
+ /// "localhost:50051", grpc::InsecureChannelCredentials(), args));
65
+ ///
66
+ /// A gRPC server can use a custom EventEngine by calling the
67
+ /// ServerBuilder::SetEventEngine method:
68
+ ///
69
+ /// ServerBuilder builder;
70
+ /// std::shared_ptr<EventEngine> engine = std::make_shared<MyEngine>(...);
71
+ /// builder.SetEventEngine(engine);
72
+ /// std::unique_ptr<Server> server(builder.BuildAndStart());
73
+ /// server->Wait();
74
+ ///
75
+ ////////////////////////////////////////////////////////////////////////////////
76
+ class EventEngine {
77
+ public:
78
+ /// A basic callable function. The first argument to all callbacks is an
79
+ /// absl::Status indicating the status of the operation associated with this
80
+ /// callback. Each EventEngine method that takes a callback parameter, defines
81
+ /// the expected sets and meanings of statuses for that use case.
82
+ using Callback = std::function<void(absl::Status)>;
83
+ /// A callback handle, used to cancel a callback.
84
+ struct TaskHandle {
85
+ intptr_t key;
86
+ };
87
+ /// A thin wrapper around a platform-specific sockaddr type. A sockaddr struct
88
+ /// exists on all platforms that gRPC supports.
89
+ ///
90
+ /// Platforms are expected to provide definitions for:
91
+ /// * sockaddr
92
+ /// * sockaddr_in
93
+ /// * sockaddr_in6
94
+ class ResolvedAddress {
95
+ public:
96
+ static constexpr socklen_t MAX_SIZE_BYTES = 128;
97
+
98
+ ResolvedAddress(const sockaddr* address, socklen_t size);
99
+ const struct sockaddr* address() const;
100
+ socklen_t size() const;
101
+
102
+ private:
103
+ char address_[MAX_SIZE_BYTES];
104
+ socklen_t size_;
105
+ };
106
+
107
+ /// An Endpoint represents one end of a connection between a gRPC client and
108
+ /// server. Endpoints are created when connections are established, and
109
+ /// Endpoint operations are gRPC's primary means of communication.
110
+ ///
111
+ /// Endpoints must use the provided SliceAllocator for all data buffer memory
112
+ /// allocations. gRPC allows applications to set memory constraints per
113
+ /// Channel or Server, and the implementation depends on all dynamic memory
114
+ /// allocation being handled by the quota system.
115
+ class Endpoint {
116
+ public:
117
+ /// The Endpoint destructor is responsible for shutting down all connections
118
+ /// and invoking all pending read or write callbacks with an error status.
119
+ virtual ~Endpoint() = default;
120
+ /// Read data from the Endpoint.
121
+ ///
122
+ /// When data is available on the connection, that data is moved into the
123
+ /// \a buffer, and the \a on_read callback is called. The caller must ensure
124
+ /// that the callback has access to the buffer when executed later.
125
+ /// Ownership of the buffer is not transferred. Valid slices *may* be placed
126
+ /// into the buffer even if the callback is invoked with a non-OK Status.
127
+ ///
128
+ /// For failed read operations, implementations should pass the appropriate
129
+ /// statuses to \a on_read. For example, callbacks might expect to receive
130
+ /// DEADLINE_EXCEEDED when the deadline is exceeded, and CANCELLED on
131
+ /// endpoint shutdown.
132
+ virtual void Read(Callback on_read, SliceBuffer* buffer,
133
+ absl::Time deadline) = 0;
134
+ /// Write data out on the connection.
135
+ ///
136
+ /// \a on_writable is called when the connection is ready for more data. The
137
+ /// Slices within the \a data buffer may be mutated at will by the Endpoint
138
+ /// until \a on_writable is called. The \a data SliceBuffer will remain
139
+ /// valid after calling \a Write, but its state is otherwise undefined.
140
+ ///
141
+ /// For failed write operations, implementations should pass the appropriate
142
+ /// statuses to \a on_writable. For example, callbacks might expect to
143
+ /// receive DEADLINE_EXCEEDED when the deadline is exceeded, and CANCELLED
144
+ /// on endpoint shutdown.
145
+ virtual void Write(Callback on_writable, SliceBuffer* data,
146
+ absl::Time deadline) = 0;
147
+ // TODO(hork): define status codes for the callback
148
+ // TODO(hork): define cleanup operations, lifetimes, responsibilities.
149
+ virtual void Close(Callback on_close) = 0;
150
+ /// These methods return an address in the format described in DNSResolver.
151
+ /// The returned values are owned by the Endpoint and are expected to remain
152
+ /// valid for the life of the Endpoint.
153
+ virtual const ResolvedAddress* GetPeerAddress() const = 0;
154
+ virtual const ResolvedAddress* GetLocalAddress() const = 0;
155
+ };
156
+
157
+ /// Called when a new connection is established.
158
+ ///
159
+ /// If the connection attempt was not successful, implementations should pass
160
+ /// the appropriate statuses to this callback. For example, callbacks might
161
+ /// expect to receive DEADLINE_EXCEEDED statuses when appropriate, or
162
+ /// CANCELLED statuses on EventEngine shutdown.
163
+ using OnConnectCallback =
164
+ std::function<void(absl::StatusOr<std::unique_ptr<Endpoint>>)>;
165
+
166
+ /// An EventEngine Listener listens for incoming connection requests from gRPC
167
+ /// clients and initiates request processing once connections are established.
168
+ class Listener {
169
+ public:
170
+ /// Called when the listener has accepted a new client connection.
171
+ using AcceptCallback = std::function<void(std::unique_ptr<Endpoint>)>;
172
+ virtual ~Listener() = default;
173
+ /// Bind an address/port to this Listener.
174
+ ///
175
+ /// It is expected that multiple addresses/ports can be bound to this
176
+ /// Listener before Listener::Start has been called. Returns either the
177
+ /// bound port or an appropriate error status.
178
+ virtual absl::StatusOr<int> Bind(const ResolvedAddress& addr) = 0;
179
+ virtual absl::Status Start() = 0;
180
+ };
181
+
182
+ /// Factory method to create a network listener / server.
183
+ ///
184
+ /// Once a \a Listener is created and started, the \a on_accept callback will
185
+ /// be called once asynchronously for each established connection. Note that
186
+ /// unlike other callbacks, there is no status code parameter since the
187
+ /// callback will only be called in healthy scenarios where connections can be
188
+ /// accepted.
189
+ ///
190
+ /// This method may return a non-OK status immediately if an error was
191
+ /// encountered in any synchronous steps required to create the Listener. In
192
+ /// this case, \a on_shutdown will never be called.
193
+ ///
194
+ /// If this method returns a Listener, then \a on_shutdown will be invoked
195
+ /// exactly once, when the Listener is shut down. The status passed to it will
196
+ /// indicate if there was a problem during shutdown.
197
+ ///
198
+ /// The provided \a SliceAllocatorFactory is used to create \a SliceAllocators
199
+ /// for Endpoint construction.
200
+ virtual absl::StatusOr<std::unique_ptr<Listener>> CreateListener(
201
+ Listener::AcceptCallback on_accept, Callback on_shutdown,
202
+ const ChannelArgs& args,
203
+ SliceAllocatorFactory slice_allocator_factory) = 0;
204
+ /// Creates a client network connection to a remote network listener.
205
+ ///
206
+ /// \a Connect may return an error status immediately if there was a failure
207
+ /// in the synchronous part of establishing a connection. In that event, the
208
+ /// \a on_connect callback *will not* have been executed. Otherwise, it is
209
+ /// expected that the \a on_connect callback will be asynchronously executed
210
+ /// exactly once by the EventEngine.
211
+ ///
212
+ /// Implementation Note: it is important that the \a slice_allocator be used
213
+ /// for all read/write buffer allocations in the EventEngine implementation.
214
+ /// This allows gRPC's \a ResourceQuota system to monitor and control memory
215
+ /// usage with graceful degradation mechanisms. Please see the \a
216
+ /// SliceAllocator API for more information.
217
+ virtual absl::Status Connect(OnConnectCallback on_connect,
218
+ const ResolvedAddress& addr,
219
+ const ChannelArgs& args,
220
+ SliceAllocator slice_allocator,
221
+ absl::Time deadline) = 0;
222
+
223
+ /// The DNSResolver that provides asynchronous resolution.
224
+ class DNSResolver {
225
+ public:
226
+ /// A task handle for DNS Resolution requests.
227
+ struct LookupTaskHandle {
228
+ intptr_t key;
229
+ };
230
+ /// A DNS SRV record type.
231
+ struct SRVRecord {
232
+ std::string host;
233
+ int port = 0;
234
+ int priority = 0;
235
+ int weight = 0;
236
+ };
237
+ /// Called with the collection of sockaddrs that were resolved from a given
238
+ /// target address.
239
+ using LookupHostnameCallback =
240
+ std::function<void(absl::StatusOr<std::vector<ResolvedAddress>>)>;
241
+ /// Called with a collection of SRV records.
242
+ using LookupSRVCallback =
243
+ std::function<void(absl::StatusOr<std::vector<SRVRecord>>)>;
244
+ /// Called with the result of a TXT record lookup
245
+ using LookupTXTCallback = std::function<void(absl::StatusOr<std::string>)>;
246
+
247
+ virtual ~DNSResolver() = default;
248
+
249
+ /// Asynchronously resolve an address.
250
+ ///
251
+ /// \a default_port may be a non-numeric named service port, and will only
252
+ /// be used if \a address does not already contain a port component.
253
+ ///
254
+ /// When the lookup is complete, the \a on_resolve callback will be invoked
255
+ /// with a status indicating the success or failure of the lookup.
256
+ /// Implementations should pass the appropriate statuses to the callback.
257
+ /// For example, callbacks might expect to receive DEADLINE_EXCEEDED when
258
+ /// the deadline is exceeded or CANCELLED if the lookup was cancelled.
259
+ virtual LookupTaskHandle LookupHostname(LookupHostnameCallback on_resolve,
260
+ absl::string_view address,
261
+ absl::string_view default_port,
262
+ absl::Time deadline) = 0;
263
+ /// Asynchronously perform an SRV record lookup.
264
+ ///
265
+ /// \a on_resolve has the same meaning and expectations as \a
266
+ /// LookupHostname's \a on_resolve callback.
267
+ virtual LookupTaskHandle LookupSRV(LookupSRVCallback on_resolve,
268
+ absl::string_view name,
269
+ absl::Time deadline) = 0;
270
+ /// Asynchronously perform a TXT record lookup.
271
+ ///
272
+ /// \a on_resolve has the same meaning and expectations as \a
273
+ /// LookupHostname's \a on_resolve callback.
274
+ virtual LookupTaskHandle LookupTXT(LookupTXTCallback on_resolve,
275
+ absl::string_view name,
276
+ absl::Time deadline) = 0;
277
+ /// Cancel an asynchronous lookup operation.
278
+ virtual void TryCancelLookup(LookupTaskHandle handle) = 0;
279
+ };
280
+
281
+ virtual ~EventEngine() = default;
282
+
283
+ // TODO(hork): define return status codes
284
+ /// Retrieves an instance of a DNSResolver.
285
+ virtual absl::StatusOr<std::unique_ptr<DNSResolver>> GetDNSResolver() = 0;
286
+
287
+ /// Intended for future expansion of Task run functionality.
288
+ struct RunOptions {};
289
+ // TODO(hork): consider recommendation to make TaskHandle an output arg
290
+ /// Run a callback as soon as possible.
291
+ ///
292
+ /// The \a fn callback's \a status argument is used to indicate whether it was
293
+ /// executed normally. For example, the status may be CANCELLED if
294
+ /// \a TryCancel was called, or if the EventEngine is being shut down.
295
+ virtual TaskHandle Run(Callback fn, RunOptions opts) = 0;
296
+ /// Synonymous with scheduling an alarm to run at time \a when.
297
+ ///
298
+ /// The callback \a fn will execute when either when time \a when arrives
299
+ /// (receiving status OK), or when the \a fn is cancelled (reveiving status
300
+ /// CANCELLED). The callback is guaranteed to be called exactly once.
301
+ virtual TaskHandle RunAt(absl::Time when, Callback fn, RunOptions opts) = 0;
302
+ /// Immediately tries to cancel a callback.
303
+ /// Note that this is a "best effort" cancellation. No guarantee is made that
304
+ /// the callback will be cancelled, the call could be in any stage.
305
+ ///
306
+ /// There are three scenarios in which we may cancel a scheduled function:
307
+ /// 1. We cancel the execution before it has run.
308
+ /// 2. The callback has already run.
309
+ /// 3. We can't cancel it because it is "in flight".
310
+ ///
311
+ /// In all cases, the cancellation is still considered successful, the
312
+ /// callback will be run exactly once from either cancellation or from its
313
+ /// activation.
314
+ virtual void TryCancel(TaskHandle handle) = 0;
315
+ /// Immediately run all callbacks with status indicating the shutdown. Every
316
+ /// EventEngine is expected to shut down exactly once. No new callbacks/tasks
317
+ /// should be scheduled after shutdown has begun, no new connections should be
318
+ /// created.
319
+ ///
320
+ /// If the \a on_shutdown_complete callback is given a non-OK status, errors
321
+ /// are expected to be unrecoverable. For example, an implementation could
322
+ /// warn callers about leaks if memory cannot be freed within a certain
323
+ /// timeframe.
324
+ virtual void Shutdown(Callback on_shutdown_complete) = 0;
325
+ };
326
+
327
+ /// Lazily instantiate and return a default global EventEngine instance if no
328
+ /// custom instance is provided. If a custom EventEngine is provided for every
329
+ /// channel/server via ChannelArgs, this method should never be called, and the
330
+ /// default instance will never be instantiated.
331
+ std::shared_ptr<EventEngine> GetDefaultEventEngine();
332
+
333
+ } // namespace experimental
334
+ } // namespace grpc_event_engine
335
+
336
+ #endif // GRPC_EVENT_ENGINE_EVENT_ENGINE_H