grpc 1.46.3 → 1.47.0

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

Potentially problematic release.


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

Files changed (481) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +49 -97
  3. data/include/grpc/event_engine/event_engine.h +42 -7
  4. data/include/grpc/event_engine/memory_allocator.h +0 -15
  5. data/include/grpc/event_engine/port.h +1 -1
  6. data/include/grpc/event_engine/slice.h +286 -0
  7. data/include/grpc/event_engine/slice_buffer.h +112 -0
  8. data/include/grpc/grpc_security.h +11 -0
  9. data/include/grpc/impl/codegen/port_platform.h +100 -36
  10. data/include/grpc/impl/codegen/slice.h +1 -1
  11. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +18 -30
  12. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +4 -1
  13. data/src/core/ext/filters/client_channel/backend_metric.cc +17 -12
  14. data/src/core/ext/filters/client_channel/backend_metric.h +19 -9
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -5
  16. data/src/core/ext/filters/client_channel/backup_poller.h +2 -4
  17. data/src/core/ext/filters/client_channel/channel_connectivity.cc +42 -20
  18. data/src/core/ext/filters/client_channel/client_channel.cc +60 -17
  19. data/src/core/ext/filters/client_channel/client_channel.h +26 -6
  20. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +3 -5
  21. data/src/core/ext/filters/client_channel/client_channel_channelz.h +12 -2
  22. data/src/core/ext/filters/client_channel/client_channel_factory.cc +5 -0
  23. data/src/core/ext/filters/client_channel/client_channel_factory.h +8 -0
  24. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -13
  25. data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
  26. data/src/core/ext/filters/client_channel/config_selector.h +7 -5
  27. data/src/core/ext/filters/client_channel/connector.h +8 -2
  28. data/src/core/ext/filters/client_channel/dynamic_filters.cc +13 -2
  29. data/src/core/ext/filters/client_channel/dynamic_filters.h +11 -1
  30. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -0
  31. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -0
  32. data/src/core/ext/filters/client_channel/health/health_check_client.cc +14 -1
  33. data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -0
  34. data/src/core/ext/filters/client_channel/http_proxy.cc +10 -2
  35. data/src/core/ext/filters/client_channel/http_proxy.h +3 -0
  36. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +6 -2
  37. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +1 -0
  38. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
  39. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +12 -0
  40. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +5 -0
  41. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +9 -3
  42. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +59 -19
  43. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +4 -0
  44. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +6 -0
  45. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +10 -1
  46. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +6 -3
  47. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +408 -0
  48. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
  49. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1038 -0
  50. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +54 -0
  51. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +60 -52
  52. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +102 -60
  53. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +157 -96
  54. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +2 -0
  55. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +45 -10
  56. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -171
  57. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +39 -36
  58. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +30 -5
  59. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +99 -23
  60. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +6 -0
  61. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +30 -4
  62. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +23 -3
  63. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +75 -11
  64. data/src/core/ext/filters/client_channel/lb_policy.cc +4 -2
  65. data/src/core/ext/filters/client_channel/lb_policy.h +18 -24
  66. data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -0
  67. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
  68. data/src/core/ext/filters/client_channel/lb_policy_registry.h +6 -1
  69. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
  70. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +1 -0
  71. data/src/core/ext/filters/client_channel/proxy_mapper.h +1 -1
  72. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -0
  73. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +5 -0
  74. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +23 -5
  75. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +134 -43
  76. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -1
  77. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +10 -8
  78. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +26 -9
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +13 -4
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -1
  82. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
  83. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +2 -1
  84. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +30 -7
  85. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +13 -14
  86. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +5 -2
  87. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +59 -13
  88. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +13 -1
  89. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +8 -1
  90. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +15 -11
  91. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +89 -33
  92. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +5 -11
  93. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
  94. data/src/core/ext/filters/client_channel/retry_filter.cc +42 -2
  95. data/src/core/ext/filters/client_channel/retry_service_config.cc +8 -9
  96. data/src/core/ext/filters/client_channel/retry_service_config.h +10 -1
  97. data/src/core/ext/filters/client_channel/retry_throttle.cc +1 -8
  98. data/src/core/ext/filters/client_channel/retry_throttle.h +7 -1
  99. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +22 -5
  100. data/src/core/ext/filters/client_channel/subchannel.cc +156 -160
  101. data/src/core/ext/filters/client_channel/subchannel.h +80 -20
  102. data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -23
  103. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
  104. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +12 -2
  105. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -3
  106. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +16 -2
  107. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +12 -0
  108. data/src/core/ext/filters/deadline/deadline_filter.cc +6 -2
  109. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -4
  110. data/src/core/ext/filters/http/client/http_client_filter.cc +14 -5
  111. data/src/core/ext/filters/http/client/http_client_filter.h +7 -1
  112. data/src/core/ext/filters/http/client_authority_filter.cc +5 -10
  113. data/src/core/ext/filters/http/http_filters_plugin.cc +7 -8
  114. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +1 -0
  115. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +3 -1
  116. data/src/core/ext/filters/http/server/http_server_filter.cc +80 -247
  117. data/src/core/ext/filters/http/server/http_server_filter.h +31 -2
  118. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -26
  119. data/src/core/ext/filters/message_size/message_size_filter.h +2 -2
  120. data/src/core/ext/filters/rbac/rbac_filter.cc +1 -0
  121. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +101 -135
  122. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
  123. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -15
  124. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -0
  125. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -3
  126. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
  127. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
  128. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +69 -20
  129. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +5 -0
  130. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -0
  131. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -1
  132. data/src/core/ext/transport/chttp2/transport/flow_control.cc +6 -2
  133. data/src/core/ext/transport/chttp2/transport/flow_control.h +6 -2
  134. data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
  135. data/src/core/ext/transport/chttp2/transport/frame_data.cc +7 -1
  136. data/src/core/ext/transport/chttp2/transport/frame_data.h +4 -1
  137. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +3 -0
  138. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -1
  139. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -0
  140. data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -0
  141. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -2
  142. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -0
  143. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +12 -3
  144. data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -0
  145. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -1
  146. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -0
  147. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +14 -12
  148. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +15 -2
  149. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +3 -0
  150. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -0
  151. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -7
  152. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +8 -1
  153. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +55 -37
  154. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +38 -21
  155. data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -1
  156. data/src/core/ext/transport/chttp2/transport/internal.h +24 -3
  157. data/src/core/ext/transport/chttp2/transport/parsing.cc +27 -6
  158. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +13 -9
  159. data/src/core/ext/transport/chttp2/transport/stream_map.cc +1 -1
  160. data/src/core/ext/transport/chttp2/transport/stream_map.h +1 -0
  161. data/src/core/ext/transport/chttp2/transport/varint.h +2 -0
  162. data/src/core/ext/transport/chttp2/transport/writing.cc +38 -2
  163. data/src/core/ext/transport/inproc/inproc_transport.cc +8 -5
  164. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +47 -0
  165. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +109 -0
  166. data/src/core/ext/xds/certificate_provider_store.cc +4 -2
  167. data/src/core/ext/xds/certificate_provider_store.h +1 -1
  168. data/src/core/ext/xds/xds_certificate_provider.cc +4 -1
  169. data/src/core/ext/xds/xds_certificate_provider.h +1 -1
  170. data/src/core/ext/xds/xds_channel_stack_modifier.cc +5 -5
  171. data/src/core/ext/xds/xds_client.cc +46 -22
  172. data/src/core/ext/xds/xds_cluster.cc +106 -16
  173. data/src/core/ext/xds/xds_cluster.h +3 -0
  174. data/src/core/ext/xds/xds_http_fault_filter.cc +3 -3
  175. data/src/core/ext/xds/xds_listener.cc +19 -9
  176. data/src/core/ext/xds/xds_server_config_fetcher.cc +2 -1
  177. data/src/core/lib/address_utils/sockaddr_utils.cc +56 -23
  178. data/src/core/lib/address_utils/sockaddr_utils.h +7 -4
  179. data/src/core/lib/avl/avl.h +3 -1
  180. data/src/core/lib/channel/call_finalization.h +4 -0
  181. data/src/core/lib/channel/call_tracer.h +8 -2
  182. data/src/core/lib/channel/channel_args.cc +41 -22
  183. data/src/core/lib/channel/channel_args.h +33 -3
  184. data/src/core/lib/channel/channel_args_preconditioning.cc +3 -3
  185. data/src/core/lib/channel/channel_args_preconditioning.h +3 -2
  186. data/src/core/lib/channel/channel_stack.cc +41 -3
  187. data/src/core/lib/channel/channel_stack.h +49 -3
  188. data/src/core/lib/channel/channel_stack_builder.cc +9 -19
  189. data/src/core/lib/channel/channel_stack_builder.h +15 -27
  190. data/src/core/lib/channel/channel_stack_builder_impl.cc +36 -41
  191. data/src/core/lib/channel/channel_stack_builder_impl.h +3 -6
  192. data/src/core/lib/channel/channel_trace.cc +8 -13
  193. data/src/core/lib/channel/channel_trace.h +6 -3
  194. data/src/core/lib/channel/channelz.cc +8 -13
  195. data/src/core/lib/channel/channelz.h +13 -4
  196. data/src/core/lib/channel/channelz_registry.cc +7 -14
  197. data/src/core/lib/channel/channelz_registry.h +10 -9
  198. data/src/core/lib/channel/connected_channel.cc +21 -31
  199. data/src/core/lib/channel/connected_channel.h +1 -0
  200. data/src/core/lib/channel/promise_based_filter.cc +444 -189
  201. data/src/core/lib/channel/promise_based_filter.h +160 -27
  202. data/src/core/lib/channel/status_util.cc +2 -0
  203. data/src/core/lib/channel/status_util.h +0 -3
  204. data/src/core/lib/compression/compression_internal.cc +45 -10
  205. data/src/core/lib/compression/compression_internal.h +1 -1
  206. data/src/core/lib/config/core_configuration.cc +3 -0
  207. data/src/core/lib/config/core_configuration.h +2 -1
  208. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +4 -2
  209. data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -2
  210. data/src/core/lib/event_engine/default_event_engine_factory.cc +8 -2
  211. data/src/core/lib/event_engine/event_engine.cc +12 -2
  212. data/src/core/lib/event_engine/event_engine_factory.h +5 -0
  213. data/src/core/lib/event_engine/handle_containers.h +67 -0
  214. data/src/core/lib/event_engine/iomgr_engine.cc +206 -0
  215. data/src/core/lib/event_engine/iomgr_engine.h +118 -0
  216. data/src/core/lib/event_engine/memory_allocator.cc +12 -4
  217. data/src/core/lib/event_engine/resolved_address.cc +4 -2
  218. data/src/core/lib/event_engine/slice.cc +102 -0
  219. data/src/core/lib/event_engine/slice_buffer.cc +50 -0
  220. data/src/core/lib/{iomgr/event_engine/pollset.h → event_engine/trace.cc} +3 -10
  221. data/src/core/lib/{iomgr/endpoint_pair_event_engine.cc → event_engine/trace.h} +12 -14
  222. data/src/core/lib/gpr/log.cc +5 -0
  223. data/src/core/lib/gpr/tls.h +3 -5
  224. data/src/core/lib/gprpp/bitset.h +5 -1
  225. data/src/core/lib/gprpp/chunked_vector.h +4 -0
  226. data/src/core/lib/gprpp/construct_destruct.h +1 -0
  227. data/src/core/lib/gprpp/dual_ref_counted.h +1 -4
  228. data/src/core/lib/gprpp/examine_stack.h +0 -1
  229. data/src/core/lib/gprpp/fork.cc +3 -6
  230. data/src/core/lib/gprpp/global_config.h +2 -4
  231. data/src/core/lib/gprpp/global_config_env.cc +3 -2
  232. data/src/core/lib/gprpp/global_config_env.h +3 -1
  233. data/src/core/lib/gprpp/global_config_generic.h +0 -4
  234. data/src/core/lib/gprpp/host_port.cc +2 -0
  235. data/src/core/lib/gprpp/manual_constructor.h +0 -1
  236. data/src/core/lib/gprpp/match.h +2 -0
  237. data/src/core/lib/gprpp/memory.h +1 -5
  238. data/src/core/lib/gprpp/orphanable.h +1 -4
  239. data/src/core/lib/gprpp/ref_counted.h +1 -3
  240. data/src/core/lib/gprpp/ref_counted_ptr.h +1 -1
  241. data/src/core/lib/gprpp/stat.h +0 -2
  242. data/src/core/lib/gprpp/stat_posix.cc +7 -2
  243. data/src/core/lib/gprpp/status_helper.cc +8 -4
  244. data/src/core/lib/gprpp/status_helper.h +4 -0
  245. data/src/core/lib/gprpp/sync.h +3 -1
  246. data/src/core/lib/gprpp/table.h +10 -0
  247. data/src/core/lib/gprpp/thd.h +2 -5
  248. data/src/core/lib/gprpp/thd_posix.cc +4 -2
  249. data/src/core/lib/gprpp/thd_windows.cc +2 -0
  250. data/src/core/lib/gprpp/time.cc +8 -0
  251. data/src/core/lib/gprpp/time.h +6 -1
  252. data/src/core/lib/gprpp/time_util.cc +4 -0
  253. data/src/core/lib/gprpp/time_util.h +1 -1
  254. data/src/core/lib/gprpp/unique_type_name.h +104 -0
  255. data/src/core/lib/http/format_request.cc +29 -0
  256. data/src/core/lib/http/format_request.h +2 -0
  257. data/src/core/lib/http/httpcli.cc +88 -81
  258. data/src/core/lib/http/httpcli.h +39 -7
  259. data/src/core/lib/http/httpcli_security_connector.cc +3 -4
  260. data/src/core/lib/iomgr/endpoint.cc +4 -4
  261. data/src/core/lib/iomgr/endpoint.h +6 -4
  262. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -4
  263. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
  264. data/src/core/lib/iomgr/ev_posix.cc +1 -4
  265. data/src/core/lib/iomgr/exec_ctx.h +1 -2
  266. data/src/core/lib/iomgr/internal_errqueue.cc +38 -47
  267. data/src/core/lib/iomgr/internal_errqueue.h +1 -6
  268. data/src/core/lib/iomgr/iomgr.cc +0 -1
  269. data/src/core/{ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc → lib/iomgr/iomgr_fwd.h} +9 -12
  270. data/src/core/lib/iomgr/pollset_set.h +1 -2
  271. data/src/core/lib/iomgr/port.h +25 -6
  272. data/src/core/lib/iomgr/resolve_address.cc +8 -0
  273. data/src/core/lib/iomgr/resolve_address.h +21 -14
  274. data/src/core/lib/iomgr/resolve_address_impl.h +2 -3
  275. data/src/core/lib/iomgr/resolve_address_posix.cc +8 -14
  276. data/src/core/lib/iomgr/resolve_address_posix.h +5 -2
  277. data/src/core/lib/iomgr/resolve_address_windows.cc +7 -14
  278. data/src/core/lib/iomgr/resolve_address_windows.h +5 -2
  279. data/src/core/lib/iomgr/sockaddr.h +2 -3
  280. data/src/core/lib/iomgr/sockaddr_posix.h +2 -0
  281. data/src/core/lib/iomgr/sockaddr_windows.h +2 -0
  282. data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -2
  283. data/src/core/lib/iomgr/tcp_client_cfstream.cc +10 -2
  284. data/src/core/lib/iomgr/tcp_client_posix.cc +12 -5
  285. data/src/core/lib/iomgr/tcp_client_windows.cc +13 -6
  286. data/src/core/lib/iomgr/tcp_posix.cc +9 -27
  287. data/src/core/lib/iomgr/tcp_server_posix.cc +26 -12
  288. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +30 -27
  289. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -4
  290. data/src/core/lib/iomgr/tcp_server_windows.cc +13 -5
  291. data/src/core/lib/iomgr/tcp_windows.cc +7 -4
  292. data/src/core/lib/json/json.h +1 -2
  293. data/src/core/lib/json/json_reader.cc +9 -1
  294. data/src/core/lib/json/json_util.cc +7 -0
  295. data/src/core/lib/json/json_util.h +10 -1
  296. data/src/core/lib/json/json_writer.cc +6 -1
  297. data/src/core/lib/promise/activity.cc +1 -1
  298. data/src/core/lib/promise/activity.h +6 -6
  299. data/src/core/lib/promise/arena_promise.h +11 -1
  300. data/src/core/lib/promise/call_push_pull.h +4 -0
  301. data/src/core/lib/promise/context.h +1 -1
  302. data/src/core/lib/promise/detail/basic_seq.h +2 -2
  303. data/src/core/lib/promise/detail/promise_factory.h +0 -1
  304. data/src/core/lib/promise/latch.h +0 -1
  305. data/src/core/lib/promise/loop.h +1 -0
  306. data/src/core/lib/promise/race.h +0 -1
  307. data/src/core/lib/promise/seq.h +0 -2
  308. data/src/core/lib/promise/sleep.cc +2 -0
  309. data/src/core/lib/promise/sleep.h +10 -0
  310. data/src/core/lib/promise/try_seq.h +2 -2
  311. data/src/core/lib/resolver/resolver_factory.h +1 -2
  312. data/src/core/lib/resolver/server_address.cc +9 -3
  313. data/src/core/lib/resolver/server_address.h +4 -4
  314. data/src/core/lib/resource_quota/api.cc +14 -1
  315. data/src/core/lib/resource_quota/api.h +4 -1
  316. data/src/core/lib/resource_quota/arena.cc +0 -6
  317. data/src/core/lib/resource_quota/arena.h +1 -2
  318. data/src/core/lib/resource_quota/memory_quota.cc +47 -5
  319. data/src/core/lib/resource_quota/memory_quota.h +24 -5
  320. data/src/core/lib/resource_quota/resource_quota.h +8 -0
  321. data/src/core/lib/resource_quota/thread_quota.cc +2 -0
  322. data/src/core/lib/resource_quota/thread_quota.h +4 -0
  323. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +3 -0
  324. data/src/core/lib/security/credentials/alts/alts_credentials.cc +8 -2
  325. data/src/core/lib/security/credentials/alts/alts_credentials.h +2 -2
  326. data/src/core/lib/security/credentials/call_creds_util.cc +2 -0
  327. data/src/core/lib/security/credentials/channel_creds_registry.h +1 -0
  328. data/src/core/lib/security/credentials/composite/composite_credentials.cc +7 -3
  329. data/src/core/lib/security/credentials/composite/composite_credentials.h +5 -4
  330. data/src/core/lib/security/credentials/credentials.h +17 -10
  331. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +81 -0
  332. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +8 -0
  333. data/src/core/lib/security/credentials/external/external_account_credentials.cc +3 -0
  334. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -0
  335. data/src/core/lib/security/credentials/fake/fake_credentials.cc +13 -3
  336. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  337. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +25 -15
  338. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +2 -2
  339. data/src/core/lib/security/credentials/iam/iam_credentials.cc +4 -1
  340. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  341. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +8 -2
  342. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +4 -4
  343. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -2
  344. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  345. data/src/core/lib/security/credentials/local/local_credentials.cc +8 -2
  346. data/src/core/lib/security/credentials/local/local_credentials.h +2 -2
  347. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -6
  348. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
  349. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +4 -1
  350. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -1
  351. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -2
  352. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +4 -4
  353. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +10 -0
  354. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +5 -7
  355. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +26 -1
  356. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +28 -4
  357. data/src/core/lib/security/credentials/tls/tls_credentials.cc +10 -0
  358. data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
  359. data/src/core/lib/security/credentials/xds/xds_credentials.cc +12 -3
  360. data/src/core/lib/security/credentials/xds/xds_credentials.h +5 -5
  361. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -1
  362. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +1 -1
  363. data/src/core/lib/security/security_connector/security_connector.cc +1 -1
  364. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  365. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +1 -1
  366. data/src/core/lib/security/transport/client_auth_filter.cc +6 -8
  367. data/src/core/lib/security/transport/secure_endpoint.cc +23 -12
  368. data/src/core/lib/security/transport/security_handshaker.cc +5 -5
  369. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  370. data/src/core/lib/security/transport/server_auth_filter.cc +3 -2
  371. data/src/core/lib/service_config/service_config.h +4 -8
  372. data/src/core/lib/service_config/service_config_call_data.h +4 -1
  373. data/src/core/lib/service_config/service_config_impl.cc +7 -0
  374. data/src/core/lib/service_config/service_config_impl.h +9 -2
  375. data/src/core/lib/service_config/service_config_parser.cc +8 -0
  376. data/src/core/lib/service_config/service_config_parser.h +7 -0
  377. data/src/core/lib/slice/b64.cc +1 -1
  378. data/src/core/lib/slice/b64.h +2 -0
  379. data/src/core/lib/slice/percent_encoding.cc +4 -1
  380. data/src/core/lib/slice/percent_encoding.h +0 -6
  381. data/src/core/lib/slice/slice.cc +2 -1
  382. data/src/core/lib/slice/slice.h +10 -5
  383. data/src/core/lib/slice/slice_api.cc +1 -1
  384. data/src/core/lib/slice/slice_buffer.cc +50 -23
  385. data/src/core/lib/slice/slice_buffer.h +106 -0
  386. data/src/core/lib/slice/slice_buffer_api.cc +35 -0
  387. data/src/core/lib/slice/slice_internal.h +4 -3
  388. data/src/core/lib/slice/slice_refcount.h +2 -3
  389. data/src/core/lib/slice/slice_refcount_base.h +2 -3
  390. data/src/core/lib/slice/slice_split.cc +3 -0
  391. data/src/core/lib/slice/slice_split.h +0 -4
  392. data/src/core/lib/slice/slice_string_helpers.cc +4 -0
  393. data/src/core/lib/slice/slice_string_helpers.h +1 -4
  394. data/src/core/lib/surface/builtins.cc +7 -2
  395. data/src/core/lib/surface/byte_buffer.cc +7 -1
  396. data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
  397. data/src/core/lib/surface/call.cc +41 -26
  398. data/src/core/lib/surface/call.h +16 -2
  399. data/src/core/lib/surface/call_details.cc +4 -4
  400. data/src/core/lib/surface/call_log_batch.cc +7 -1
  401. data/src/core/lib/surface/call_test_only.h +4 -1
  402. data/src/core/lib/surface/channel.cc +179 -242
  403. data/src/core/lib/surface/channel.h +94 -57
  404. data/src/core/lib/surface/channel_init.h +2 -0
  405. data/src/core/lib/surface/channel_ping.cc +8 -2
  406. data/src/core/lib/surface/channel_stack_type.cc +0 -2
  407. data/src/core/lib/surface/channel_stack_type.h +0 -2
  408. data/src/core/lib/surface/completion_queue.cc +14 -6
  409. data/src/core/lib/surface/completion_queue.h +5 -1
  410. data/src/core/lib/surface/completion_queue_factory.cc +1 -0
  411. data/src/core/lib/surface/completion_queue_factory.h +1 -3
  412. data/src/core/lib/surface/event_string.cc +1 -7
  413. data/src/core/lib/surface/event_string.h +1 -1
  414. data/src/core/lib/surface/init.cc +17 -45
  415. data/src/core/lib/surface/init.h +0 -8
  416. data/src/core/lib/surface/lame_client.cc +64 -110
  417. data/src/core/lib/surface/lame_client.h +40 -2
  418. data/src/core/lib/surface/metadata_array.cc +2 -0
  419. data/src/core/lib/surface/server.cc +69 -56
  420. data/src/core/lib/surface/server.h +39 -9
  421. data/src/core/lib/surface/validate_metadata.cc +2 -5
  422. data/src/core/lib/surface/validate_metadata.h +3 -0
  423. data/src/core/lib/surface/version.cc +2 -2
  424. data/src/core/lib/transport/bdp_estimator.cc +3 -1
  425. data/src/core/lib/transport/bdp_estimator.h +2 -3
  426. data/src/core/lib/transport/byte_stream.cc +4 -3
  427. data/src/core/lib/transport/byte_stream.h +5 -1
  428. data/src/core/lib/transport/connectivity_state.cc +6 -4
  429. data/src/core/lib/transport/connectivity_state.h +2 -3
  430. data/src/core/lib/transport/error_utils.cc +4 -2
  431. data/src/core/lib/transport/error_utils.h +5 -1
  432. data/src/core/lib/{channel → transport}/handshaker.cc +9 -4
  433. data/src/core/lib/{channel → transport}/handshaker.h +13 -6
  434. data/src/core/lib/{channel → transport}/handshaker_factory.h +9 -10
  435. data/src/core/lib/{channel → transport}/handshaker_registry.cc +5 -1
  436. data/src/core/lib/{channel → transport}/handshaker_registry.h +5 -4
  437. data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.cc +24 -10
  438. data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.h +3 -3
  439. data/src/core/lib/transport/metadata_batch.cc +287 -0
  440. data/src/core/lib/transport/metadata_batch.h +133 -264
  441. data/src/core/lib/transport/parsed_metadata.cc +2 -0
  442. data/src/core/lib/transport/parsed_metadata.h +10 -3
  443. data/src/core/lib/transport/status_conversion.cc +2 -0
  444. data/src/core/lib/transport/status_conversion.h +2 -2
  445. data/src/core/lib/transport/tcp_connect_handshaker.cc +253 -0
  446. data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
  447. data/src/core/lib/transport/timeout_encoding.cc +2 -6
  448. data/src/core/lib/transport/timeout_encoding.h +5 -1
  449. data/src/core/lib/transport/transport.cc +18 -17
  450. data/src/core/lib/transport/transport.h +28 -2
  451. data/src/core/lib/transport/transport_impl.h +10 -0
  452. data/src/core/lib/transport/transport_op_string.cc +9 -10
  453. data/src/core/lib/uri/uri_parser.cc +11 -3
  454. data/src/core/lib/uri/uri_parser.h +0 -2
  455. data/src/core/plugin_registry/grpc_plugin_registry.cc +11 -0
  456. data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -0
  457. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +2 -0
  458. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -0
  459. data/src/ruby/ext/grpc/extconf.rb +2 -2
  460. data/src/ruby/lib/grpc/version.rb +1 -1
  461. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  462. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  463. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +504 -0
  464. metadata +36 -29
  465. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +0 -31
  466. data/src/core/lib/event_engine/sockaddr.cc +0 -40
  467. data/src/core/lib/event_engine/sockaddr.h +0 -44
  468. data/src/core/lib/gprpp/capture.h +0 -76
  469. data/src/core/lib/iomgr/event_engine/closure.cc +0 -77
  470. data/src/core/lib/iomgr/event_engine/closure.h +0 -42
  471. data/src/core/lib/iomgr/event_engine/endpoint.cc +0 -172
  472. data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
  473. data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -85
  474. data/src/core/lib/iomgr/event_engine/pollset.cc +0 -87
  475. data/src/core/lib/iomgr/event_engine/promise.h +0 -51
  476. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +0 -47
  477. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +0 -37
  478. data/src/core/lib/iomgr/event_engine/resolver.cc +0 -133
  479. data/src/core/lib/iomgr/event_engine/resolver.h +0 -56
  480. data/src/core/lib/iomgr/event_engine/tcp.cc +0 -296
  481. data/src/core/lib/iomgr/event_engine/timer.cc +0 -62
@@ -19,27 +19,54 @@
19
19
 
20
20
  #include <grpc/support/port_platform.h>
21
21
 
22
+ #include <stddef.h>
23
+ #include <stdint.h>
24
+
22
25
  #include <atomic>
26
+ #include <functional>
23
27
  #include <list>
28
+ #include <memory>
29
+ #include <string>
30
+ #include <utility>
24
31
  #include <vector>
25
32
 
33
+ #include "absl/base/thread_annotations.h"
34
+ #include "absl/memory/memory.h"
26
35
  #include "absl/status/statusor.h"
27
36
  #include "absl/synchronization/notification.h"
28
37
  #include "absl/types/optional.h"
29
38
 
30
39
  #include <grpc/grpc.h>
40
+ #include <grpc/impl/codegen/gpr_types.h>
41
+ #include <grpc/impl/codegen/grpc_types.h>
42
+ #include <grpc/slice.h>
43
+ #include <grpc/support/log.h>
31
44
 
32
45
  #include "src/core/lib/channel/channel_args.h"
33
46
  #include "src/core/lib/channel/channel_stack.h"
47
+ #include "src/core/lib/channel/channel_stack_builder.h"
34
48
  #include "src/core/lib/channel/channelz.h"
35
49
  #include "src/core/lib/debug/trace.h"
36
50
  #include "src/core/lib/gprpp/cpp_impl_of.h"
37
51
  #include "src/core/lib/gprpp/dual_ref_counted.h"
38
- #include "src/core/lib/iomgr/resolve_address.h"
39
- #include "src/core/lib/resource_quota/memory_quota.h"
52
+ #include "src/core/lib/gprpp/orphanable.h"
53
+ #include "src/core/lib/gprpp/ref_counted_ptr.h"
54
+ #include "src/core/lib/gprpp/sync.h"
55
+ #include "src/core/lib/gprpp/time.h"
56
+ #include "src/core/lib/iomgr/call_combiner.h"
57
+ #include "src/core/lib/iomgr/closure.h"
58
+ #include "src/core/lib/iomgr/endpoint.h"
59
+ #include "src/core/lib/iomgr/error.h"
60
+ #include "src/core/lib/iomgr/iomgr_fwd.h"
61
+ #include "src/core/lib/iomgr/pollset.h"
62
+ #include "src/core/lib/slice/slice.h"
63
+ #include "src/core/lib/surface/channel.h"
40
64
  #include "src/core/lib/surface/completion_queue.h"
65
+ #include "src/core/lib/transport/metadata_batch.h"
41
66
  #include "src/core/lib/transport/transport.h"
42
67
 
68
+ struct grpc_server_config_fetcher;
69
+
43
70
  namespace grpc_core {
44
71
 
45
72
  extern TraceFlag grpc_server_channel_trace;
@@ -96,7 +123,7 @@ class Server : public InternallyRefCounted<Server>,
96
123
  virtual void SetOnDestroyDone(grpc_closure* on_destroy_done) = 0;
97
124
  };
98
125
 
99
- explicit Server(const grpc_channel_args* args);
126
+ explicit Server(ChannelArgs args);
100
127
  ~Server() override;
101
128
 
102
129
  void Orphan() ABSL_LOCKS_EXCLUDED(mu_global_) override;
@@ -169,6 +196,8 @@ class Server : public InternallyRefCounted<Server>,
169
196
 
170
197
  void CancelAllCalls() ABSL_LOCKS_EXCLUDED(mu_global_);
171
198
 
199
+ void SendGoaways() ABSL_LOCKS_EXCLUDED(mu_global_, mu_call_);
200
+
172
201
  private:
173
202
  struct RequestedCall;
174
203
 
@@ -191,12 +220,13 @@ class Server : public InternallyRefCounted<Server>,
191
220
  ChannelData() = default;
192
221
  ~ChannelData();
193
222
 
194
- void InitTransport(RefCountedPtr<Server> server, grpc_channel* channel,
195
- size_t cq_idx, grpc_transport* transport,
223
+ void InitTransport(RefCountedPtr<Server> server,
224
+ RefCountedPtr<Channel> channel, size_t cq_idx,
225
+ grpc_transport* transport,
196
226
  intptr_t channelz_socket_uuid);
197
227
 
198
228
  RefCountedPtr<Server> server() const { return server_; }
199
- grpc_channel* channel() const { return channel_; }
229
+ Channel* channel() const { return channel_.get(); }
200
230
  size_t cq_idx() const { return cq_idx_; }
201
231
 
202
232
  ChannelRegisteredMethod* GetRegisteredMethod(const grpc_slice& host,
@@ -218,7 +248,7 @@ class Server : public InternallyRefCounted<Server>,
218
248
  static void FinishDestroy(void* arg, grpc_error_handle error);
219
249
 
220
250
  RefCountedPtr<Server> server_;
221
- grpc_channel* channel_;
251
+ RefCountedPtr<Channel> channel_;
222
252
  // The index into Server::cqs_ of the CQ used as a starting point for
223
253
  // where to publish new incoming calls.
224
254
  size_t cq_idx_;
@@ -363,7 +393,7 @@ class Server : public InternallyRefCounted<Server>,
363
393
  size_t* cq_idx, grpc_completion_queue* cq_for_notification, void* tag,
364
394
  grpc_byte_buffer** optional_payload, RegisteredMethod* rm);
365
395
 
366
- std::vector<grpc_channel*> GetChannelsLocked() const;
396
+ std::vector<RefCountedPtr<Channel>> GetChannelsLocked() const;
367
397
 
368
398
  // Take a shutdown ref for a request (increment by 2) and return if shutdown
369
399
  // has not been called.
@@ -410,7 +440,7 @@ class Server : public InternallyRefCounted<Server>,
410
440
  return shutdown_refs_.load(std::memory_order_acquire) == 0;
411
441
  }
412
442
 
413
- grpc_channel_args* const channel_args_;
443
+ const grpc_channel_args* const channel_args_;
414
444
  RefCountedPtr<channelz::ServerNode> channelz_node_;
415
445
  std::unique_ptr<grpc_server_config_fetcher> config_fetcher_;
416
446
 
@@ -20,17 +20,14 @@
20
20
 
21
21
  #include "src/core/lib/surface/validate_metadata.h"
22
22
 
23
- #include <stdlib.h>
24
- #include <string.h>
23
+ #include "absl/strings/string_view.h"
25
24
 
26
25
  #include <grpc/grpc.h>
27
- #include <grpc/support/alloc.h>
28
26
 
27
+ #include "src/core/lib/gpr/string.h"
29
28
  #include "src/core/lib/gprpp/bitset.h"
30
29
  #include "src/core/lib/gprpp/memory.h"
31
30
  #include "src/core/lib/iomgr/error.h"
32
- #include "src/core/lib/slice/slice_internal.h"
33
- #include "src/core/lib/slice/slice_string_helpers.h"
34
31
 
35
32
  #if __cplusplus > 201103l
36
33
  #define GRPC_VALIDATE_METADATA_CONSTEXPR_FN constexpr
@@ -21,9 +21,12 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include <stdint.h>
25
+
24
26
  #include <cstring>
25
27
 
26
28
  #include <grpc/slice.h>
29
+ #include <grpc/support/log.h>
27
30
 
28
31
  #include "src/core/lib/iomgr/error.h"
29
32
 
@@ -23,6 +23,6 @@
23
23
 
24
24
  #include <grpc/grpc.h>
25
25
 
26
- const char* grpc_version_string(void) { return "24.0.0"; }
26
+ const char* grpc_version_string(void) { return "25.0.0"; }
27
27
 
28
- const char* grpc_g_stands_for(void) { return "golazo"; }
28
+ const char* grpc_g_stands_for(void) { return "gridman"; }
@@ -23,7 +23,9 @@
23
23
  #include <inttypes.h>
24
24
  #include <stdlib.h>
25
25
 
26
- #include "src/core/lib/gpr/useful.h"
26
+ #include <algorithm>
27
+
28
+ #include "src/core/lib/iomgr/exec_ctx.h"
27
29
 
28
30
  grpc_core::TraceFlag grpc_bdp_estimator_trace(false, "bdp_estimator");
29
31
 
@@ -22,14 +22,13 @@
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
24
  #include <inttypes.h>
25
- #include <stdbool.h>
26
- #include <stdint.h>
27
25
 
26
+ #include <grpc/impl/codegen/gpr_types.h>
28
27
  #include <grpc/support/log.h>
29
28
  #include <grpc/support/time.h>
30
29
 
31
30
  #include "src/core/lib/debug/trace.h"
32
- #include "src/core/lib/iomgr/exec_ctx.h"
31
+ #include "src/core/lib/gprpp/time.h"
33
32
 
34
33
  extern grpc_core::TraceFlag grpc_bdp_estimator_trace;
35
34
 
@@ -20,13 +20,14 @@
20
20
 
21
21
  #include "src/core/lib/transport/byte_stream.h"
22
22
 
23
- #include <stdlib.h>
24
- #include <string.h>
23
+ #include <memory>
24
+ #include <utility>
25
25
 
26
+ #include <grpc/slice_buffer.h>
26
27
  #include <grpc/support/log.h>
27
28
 
28
- #include "src/core/lib/gprpp/memory.h"
29
29
  #include "src/core/lib/slice/slice_internal.h"
30
+ #include "src/core/lib/slice/slice_refcount.h"
30
31
 
31
32
  namespace grpc_core {
32
33
 
@@ -21,10 +21,14 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include <grpc/slice_buffer.h>
24
+ #include <stddef.h>
25
+ #include <stdint.h>
26
+
27
+ #include <grpc/slice.h>
25
28
 
26
29
  #include "src/core/lib/gprpp/orphanable.h"
27
30
  #include "src/core/lib/iomgr/closure.h"
31
+ #include "src/core/lib/iomgr/error.h"
28
32
 
29
33
  /** Internal bit flag for grpc_begin_message's \a flags signaling the use of
30
34
  * compression for the message. (Does not apply for stream compression.) */
@@ -20,13 +20,15 @@
20
20
 
21
21
  #include "src/core/lib/transport/connectivity_state.h"
22
22
 
23
- #include <string.h>
23
+ #include <string>
24
+ #include <type_traits>
24
25
 
25
- #include <grpc/support/alloc.h>
26
26
  #include <grpc/support/log.h>
27
- #include <grpc/support/string_util.h>
28
27
 
29
- #include "src/core/lib/iomgr/combiner.h"
28
+ #include "src/core/lib/gprpp/debug_location.h"
29
+ #include "src/core/lib/gprpp/ref_counted_ptr.h"
30
+ #include "src/core/lib/iomgr/closure.h"
31
+ #include "src/core/lib/iomgr/error.h"
30
32
  #include "src/core/lib/iomgr/exec_ctx.h"
31
33
 
32
34
  namespace grpc_core {
@@ -24,15 +24,14 @@
24
24
  #include <atomic>
25
25
  #include <map>
26
26
  #include <memory>
27
+ #include <utility>
27
28
 
28
29
  #include "absl/status/status.h"
29
30
 
30
- #include <grpc/grpc.h>
31
+ #include <grpc/impl/codegen/connectivity_state.h>
31
32
 
32
33
  #include "src/core/lib/debug/trace.h"
33
34
  #include "src/core/lib/gprpp/orphanable.h"
34
- #include "src/core/lib/iomgr/closure.h"
35
- #include "src/core/lib/iomgr/exec_ctx.h"
36
35
  #include "src/core/lib/iomgr/work_serializer.h"
37
36
 
38
37
  namespace grpc_core {
@@ -20,11 +20,13 @@
20
20
 
21
21
  #include "src/core/lib/transport/error_utils.h"
22
22
 
23
+ #include <stdint.h>
24
+
25
+ #include "absl/strings/string_view.h"
26
+
23
27
  #include <grpc/support/string_util.h>
24
28
 
25
- #include "src/core/lib/gprpp/status_helper.h"
26
29
  #include "src/core/lib/iomgr/error_internal.h"
27
- #include "src/core/lib/slice/slice_internal.h"
28
30
  #include "src/core/lib/transport/status_conversion.h"
29
31
 
30
32
  static grpc_error_handle recursively_find_error_with_field(
@@ -21,10 +21,14 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include <string>
25
+
24
26
  #include "absl/status/status.h"
25
27
 
28
+ #include <grpc/status.h>
29
+
30
+ #include "src/core/lib/gprpp/time.h"
26
31
  #include "src/core/lib/iomgr/error.h"
27
- #include "src/core/lib/iomgr/exec_ctx.h"
28
32
  #include "src/core/lib/transport/http2_errors.h"
29
33
 
30
34
  /// A utility function to get the status code and message to be returned
@@ -18,19 +18,23 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include "src/core/lib/channel/handshaker.h"
21
+ #include "src/core/lib/transport/handshaker.h"
22
22
 
23
- #include <string.h>
23
+ #include <inttypes.h>
24
+
25
+ #include <string>
26
+ #include <utility>
24
27
 
25
28
  #include "absl/strings/str_format.h"
26
29
 
27
- #include <grpc/impl/codegen/slice.h>
30
+ #include <grpc/slice_buffer.h>
28
31
  #include <grpc/support/alloc.h>
29
32
  #include <grpc/support/log.h>
30
- #include <grpc/support/string_util.h>
31
33
 
32
34
  #include "src/core/lib/channel/channel_args.h"
33
35
  #include "src/core/lib/debug/trace.h"
36
+ #include "src/core/lib/gprpp/debug_location.h"
37
+ #include "src/core/lib/iomgr/exec_ctx.h"
34
38
  #include "src/core/lib/iomgr/timer.h"
35
39
  #include "src/core/lib/slice/slice_internal.h"
36
40
 
@@ -180,6 +184,7 @@ void HandshakeManager::DoHandshake(grpc_endpoint* endpoint,
180
184
  // Construct handshaker args. These will be passed through all
181
185
  // handshakers and eventually be freed by the on_handshake_done callback.
182
186
  args_.endpoint = endpoint;
187
+ args_.deadline = deadline;
183
188
  args_.args = grpc_channel_args_copy(channel_args);
184
189
  args_.user_data = user_data;
185
190
  args_.read_buffer =
@@ -16,22 +16,25 @@
16
16
  *
17
17
  */
18
18
 
19
- #ifndef GRPC_CORE_LIB_CHANNEL_HANDSHAKER_H
20
- #define GRPC_CORE_LIB_CHANNEL_HANDSHAKER_H
19
+ #ifndef GRPC_CORE_LIB_TRANSPORT_HANDSHAKER_H
20
+ #define GRPC_CORE_LIB_TRANSPORT_HANDSHAKER_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include <stddef.h>
25
+
24
26
  #include "absl/container/inlined_vector.h"
25
27
 
26
28
  #include <grpc/impl/codegen/grpc_types.h>
27
- #include <grpc/support/string_util.h>
29
+ #include <grpc/slice.h>
28
30
 
29
- #include "src/core/lib/channel/channel_args.h"
30
31
  #include "src/core/lib/gprpp/ref_counted.h"
32
+ #include "src/core/lib/gprpp/ref_counted_ptr.h"
31
33
  #include "src/core/lib/gprpp/sync.h"
34
+ #include "src/core/lib/gprpp/time.h"
32
35
  #include "src/core/lib/iomgr/closure.h"
33
36
  #include "src/core/lib/iomgr/endpoint.h"
34
- #include "src/core/lib/iomgr/exec_ctx.h"
37
+ #include "src/core/lib/iomgr/error.h"
35
38
  #include "src/core/lib/iomgr/tcp_server.h"
36
39
  #include "src/core/lib/iomgr/timer.h"
37
40
 
@@ -68,6 +71,10 @@ struct HandshakerArgs {
68
71
  // User data passed through the handshake manager. Not used by
69
72
  // individual handshakers.
70
73
  void* user_data = nullptr;
74
+ // Deadline associated with the handshake.
75
+ // TODO(anramach): Move this out of handshake args after event engine
76
+ // is the default.
77
+ Timestamp deadline;
71
78
  };
72
79
 
73
80
  ///
@@ -158,4 +165,4 @@ typedef grpc_core::Handshaker grpc_handshaker;
158
165
  void grpc_handshake_manager_add(grpc_handshake_manager* mgr,
159
166
  grpc_handshaker* handshaker);
160
167
 
161
- #endif /* GRPC_CORE_LIB_CHANNEL_HANDSHAKER_H */
168
+ #endif /* GRPC_CORE_LIB_TRANSPORT_HANDSHAKER_H */
@@ -16,22 +16,21 @@
16
16
  *
17
17
  */
18
18
 
19
- #ifndef GRPC_CORE_LIB_CHANNEL_HANDSHAKER_FACTORY_H
20
- #define GRPC_CORE_LIB_CHANNEL_HANDSHAKER_FACTORY_H
19
+ #ifndef GRPC_CORE_LIB_TRANSPORT_HANDSHAKER_FACTORY_H
20
+ #define GRPC_CORE_LIB_TRANSPORT_HANDSHAKER_FACTORY_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
24
  #include <grpc/impl/codegen/grpc_types.h>
25
25
 
26
- // A handshaker factory is used to create handshakers.
26
+ #include "src/core/lib/iomgr/iomgr_fwd.h"
27
27
 
28
- // TODO(ctiller): grpc_pollset_set and HandshakeManager are forward declared in
29
- // this file. grpc_pollset_set ought to be eliminated when EventEngine lands IO
30
- // support. At the same time, we ought to be able to include handshake_manager.h
31
- // here and eliminate the HandshakeManager dependency - we cannot right now
32
- // because HandshakeManager names too many iomgr types.
28
+ // A handshaker factory is used to create handshakers.
33
29
 
34
- typedef struct grpc_pollset_set grpc_pollset_set;
30
+ // TODO(ctiller): HandshakeManager is forward declared in this file. When
31
+ // EventEngine lands IO support we ought to be able to include
32
+ // handshake_manager.h here and eliminate the HandshakeManager dependency - we
33
+ // cannot right now because HandshakeManager names too many iomgr types.
35
34
 
36
35
  namespace grpc_core {
37
36
 
@@ -47,4 +46,4 @@ class HandshakerFactory {
47
46
 
48
47
  } // namespace grpc_core
49
48
 
50
- #endif /* GRPC_CORE_LIB_CHANNEL_HANDSHAKER_FACTORY_H */
49
+ #endif /* GRPC_CORE_LIB_TRANSPORT_HANDSHAKER_FACTORY_H */
@@ -18,7 +18,11 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include "src/core/lib/channel/handshaker_registry.h"
21
+ #include "src/core/lib/transport/handshaker_registry.h"
22
+
23
+ #include <stddef.h>
24
+
25
+ #include <utility>
22
26
 
23
27
  namespace grpc_core {
24
28
 
@@ -16,8 +16,8 @@
16
16
  *
17
17
  */
18
18
 
19
- #ifndef GRPC_CORE_LIB_CHANNEL_HANDSHAKER_REGISTRY_H
20
- #define GRPC_CORE_LIB_CHANNEL_HANDSHAKER_REGISTRY_H
19
+ #ifndef GRPC_CORE_LIB_TRANSPORT_HANDSHAKER_REGISTRY_H
20
+ #define GRPC_CORE_LIB_TRANSPORT_HANDSHAKER_REGISTRY_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
@@ -26,7 +26,8 @@
26
26
 
27
27
  #include <grpc/impl/codegen/grpc_types.h>
28
28
 
29
- #include "src/core/lib/channel/handshaker_factory.h"
29
+ #include "src/core/lib/iomgr/iomgr_fwd.h"
30
+ #include "src/core/lib/transport/handshaker_factory.h"
30
31
 
31
32
  namespace grpc_core {
32
33
 
@@ -68,4 +69,4 @@ class HandshakerRegistry {
68
69
 
69
70
  } // namespace grpc_core
70
71
 
71
- #endif /* GRPC_CORE_LIB_CHANNEL_HANDSHAKER_REGISTRY_H */
72
+ #endif /* GRPC_CORE_LIB_TRANSPORT_HANDSHAKER_REGISTRY_H */
@@ -18,29 +18,43 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include "src/core/ext/filters/client_channel/http_connect_handshaker.h"
21
+ #include "src/core/lib/transport/http_connect_handshaker.h"
22
22
 
23
+ #include <limits.h>
23
24
  #include <string.h>
24
25
 
26
+ #include <memory>
27
+ #include <string>
28
+
29
+ #include "absl/base/thread_annotations.h"
30
+ #include "absl/memory/memory.h"
25
31
  #include "absl/strings/str_cat.h"
32
+ #include "absl/strings/string_view.h"
26
33
 
34
+ #include <grpc/impl/codegen/grpc_types.h>
35
+ #include <grpc/slice.h>
27
36
  #include <grpc/slice_buffer.h>
28
37
  #include <grpc/support/alloc.h>
29
38
  #include <grpc/support/log.h>
30
- #include <grpc/support/string_util.h>
31
39
 
32
- #include "src/core/ext/filters/client_channel/client_channel.h"
33
40
  #include "src/core/lib/channel/channel_args.h"
34
- #include "src/core/lib/channel/handshaker.h"
35
- #include "src/core/lib/channel/handshaker_registry.h"
36
41
  #include "src/core/lib/config/core_configuration.h"
37
42
  #include "src/core/lib/gpr/string.h"
43
+ #include "src/core/lib/gprpp/debug_location.h"
44
+ #include "src/core/lib/gprpp/ref_counted_ptr.h"
38
45
  #include "src/core/lib/gprpp/sync.h"
39
46
  #include "src/core/lib/http/format_request.h"
40
47
  #include "src/core/lib/http/parser.h"
41
- #include "src/core/lib/resolver/resolver_registry.h"
48
+ #include "src/core/lib/iomgr/closure.h"
49
+ #include "src/core/lib/iomgr/endpoint.h"
50
+ #include "src/core/lib/iomgr/error.h"
51
+ #include "src/core/lib/iomgr/exec_ctx.h"
52
+ #include "src/core/lib/iomgr/iomgr_fwd.h"
53
+ #include "src/core/lib/iomgr/tcp_server.h"
42
54
  #include "src/core/lib/slice/slice_internal.h"
43
- #include "src/core/lib/uri/uri_parser.h"
55
+ #include "src/core/lib/transport/handshaker.h"
56
+ #include "src/core/lib/transport/handshaker_factory.h"
57
+ #include "src/core/lib/transport/handshaker_registry.h"
44
58
 
45
59
  namespace grpc_core {
46
60
 
@@ -164,7 +178,7 @@ void HttpConnectHandshaker::OnWriteDone(void* arg, grpc_error_handle error) {
164
178
  GRPC_CLOSURE_INIT(&handshaker->response_read_closure_,
165
179
  &HttpConnectHandshaker::OnReadDoneScheduler,
166
180
  handshaker, grpc_schedule_on_exec_ctx),
167
- /*urgent=*/true);
181
+ /*urgent=*/true, /*min_progress_size=*/1);
168
182
  }
169
183
  }
170
184
 
@@ -240,7 +254,7 @@ void HttpConnectHandshaker::OnReadDone(void* arg, grpc_error_handle error) {
240
254
  GRPC_CLOSURE_INIT(&handshaker->response_read_closure_,
241
255
  &HttpConnectHandshaker::OnReadDoneScheduler,
242
256
  handshaker, grpc_schedule_on_exec_ctx),
243
- /*urgent=*/true);
257
+ /*urgent=*/true, /*min_progress_size=*/1);
244
258
  return;
245
259
  }
246
260
  // Make sure we got a 2xx response.
@@ -354,7 +368,7 @@ void HttpConnectHandshaker::DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
354
368
  GRPC_CLOSURE_INIT(&request_done_closure_,
355
369
  &HttpConnectHandshaker::OnWriteDoneScheduler, this,
356
370
  grpc_schedule_on_exec_ctx),
357
- nullptr);
371
+ nullptr, /*max_frame_size=*/INT_MAX);
358
372
  }
359
373
 
360
374
  HttpConnectHandshaker::HttpConnectHandshaker() {
@@ -16,8 +16,8 @@
16
16
  *
17
17
  */
18
18
 
19
- #ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_HTTP_CONNECT_HANDSHAKER_H
20
- #define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_HTTP_CONNECT_HANDSHAKER_H
19
+ #ifndef GRPC_CORE_LIB_TRANSPORT_HTTP_CONNECT_HANDSHAKER_H
20
+ #define GRPC_CORE_LIB_TRANSPORT_HTTP_CONNECT_HANDSHAKER_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
@@ -39,4 +39,4 @@ void RegisterHttpConnectHandshaker(CoreConfiguration::Builder* builder);
39
39
 
40
40
  } // namespace grpc_core
41
41
 
42
- #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_HTTP_CONNECT_HANDSHAKER_H */
42
+ #endif /* GRPC_CORE_LIB_TRANSPORT_HTTP_CONNECT_HANDSHAKER_H */