grpc 1.48.0-x86_64-linux → 1.49.0.pre1-x86_64-linux

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 (721) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +104 -41
  3. data/include/grpc/event_engine/event_engine.h +19 -16
  4. data/include/grpc/impl/codegen/grpc_types.h +3 -8
  5. data/include/grpc/impl/codegen/port_platform.h +0 -8
  6. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +3 -3
  7. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
  8. data/src/core/ext/filters/client_channel/client_channel.cc +117 -200
  9. data/src/core/ext/filters/client_channel/client_channel.h +15 -8
  10. data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -29
  11. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -10
  12. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  13. data/src/core/ext/filters/client_channel/config_selector.h +12 -4
  14. data/src/core/ext/filters/client_channel/connector.h +4 -5
  15. data/src/core/ext/filters/client_channel/http_proxy.cc +53 -65
  16. data/src/core/ext/filters/client_channel/http_proxy.h +12 -9
  17. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +14 -12
  18. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +6 -6
  19. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +100 -124
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -3
  21. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +5 -1
  22. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -0
  23. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -2
  24. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
  25. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +169 -63
  26. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +25 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +15 -19
  28. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +66 -78
  29. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +44 -44
  30. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -5
  31. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +65 -77
  32. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +15 -14
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -14
  34. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +60 -67
  35. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +40 -49
  36. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +81 -97
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +53 -61
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +171 -102
  39. data/src/core/ext/filters/client_channel/proxy_mapper.h +13 -14
  40. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +19 -16
  41. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -7
  42. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +4 -8
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +431 -145
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +170 -99
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -7
  46. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -15
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +7 -17
  48. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +11 -0
  49. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -14
  50. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -4
  51. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +5 -6
  52. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -13
  53. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +162 -165
  54. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +37 -30
  55. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
  56. data/src/core/ext/filters/client_channel/retry_filter.cc +0 -7
  57. data/src/core/ext/filters/client_channel/retry_service_config.cc +30 -19
  58. data/src/core/ext/filters/client_channel/retry_service_config.h +6 -9
  59. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +6 -7
  60. data/src/core/ext/filters/client_channel/subchannel.cc +49 -89
  61. data/src/core/ext/filters/client_channel/subchannel.h +8 -8
  62. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +1 -1
  63. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
  64. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -25
  65. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +3 -4
  66. data/src/core/ext/filters/deadline/deadline_filter.cc +6 -6
  67. data/src/core/ext/filters/deadline/deadline_filter.h +2 -3
  68. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -3
  69. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -1
  70. data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -12
  71. data/src/core/ext/filters/fault_injection/service_config_parser.h +4 -5
  72. data/src/core/ext/filters/http/client/http_client_filter.cc +2 -3
  73. data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
  74. data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
  75. data/src/core/ext/filters/http/client_authority_filter.h +1 -1
  76. data/src/core/ext/filters/http/server/http_server_filter.cc +2 -3
  77. data/src/core/ext/filters/http/server/http_server_filter.h +1 -1
  78. data/src/core/ext/filters/message_size/message_size_filter.cc +13 -7
  79. data/src/core/ext/filters/message_size/message_size_filter.h +3 -6
  80. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -12
  81. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -6
  82. data/src/core/ext/filters/server_config_selector/server_config_selector.h +5 -0
  83. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -5
  84. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +35 -62
  85. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +62 -89
  86. data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
  87. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +130 -165
  88. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
  89. data/src/core/ext/transport/chttp2/transport/flow_control.cc +67 -2
  90. data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
  91. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
  92. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +25 -8
  93. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -0
  94. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
  95. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +8 -2
  96. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -10
  97. data/src/core/ext/transport/chttp2/transport/internal.h +2 -1
  98. data/src/core/ext/transport/inproc/inproc_transport.cc +40 -74
  99. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
  100. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
  101. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +4 -4
  102. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +24 -8
  103. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
  104. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
  105. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
  106. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
  107. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
  108. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
  109. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
  110. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
  111. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
  112. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
  113. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
  114. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
  115. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
  116. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
  117. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
  118. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
  119. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  120. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
  121. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
  122. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
  123. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +21 -19
  124. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +124 -34
  125. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
  126. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
  127. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +23 -22
  128. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +153 -48
  129. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
  130. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
  131. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
  132. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
  133. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
  134. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
  135. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +7 -7
  136. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +42 -14
  137. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
  138. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
  139. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
  140. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
  141. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
  142. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
  143. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
  144. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
  145. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +9 -9
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +54 -18
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +21 -20
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +117 -44
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
  159. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +6 -2
  162. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
  163. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
  164. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
  165. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
  166. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
  167. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
  168. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +5 -5
  169. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +36 -12
  170. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
  171. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
  172. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
  173. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
  174. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -13
  175. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +170 -15
  176. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
  177. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
  178. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +1 -1
  179. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +6 -2
  180. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
  181. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
  182. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
  183. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
  184. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
  185. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
  186. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
  187. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
  188. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -9
  189. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +100 -14
  190. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -22
  191. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +36 -77
  192. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +121 -76
  193. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +647 -163
  194. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
  195. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
  196. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
  197. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
  198. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +1 -1
  199. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -2
  200. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
  201. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
  202. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
  203. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
  204. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
  205. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
  206. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
  207. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
  208. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
  209. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
  210. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
  211. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
  212. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
  213. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
  214. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
  215. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
  216. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
  217. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
  218. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +1 -1
  219. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +6 -2
  220. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
  221. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
  222. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
  223. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
  224. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
  225. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
  226. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
  227. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
  228. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +1 -1
  229. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +6 -2
  230. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +35 -27
  231. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +177 -52
  232. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +6 -2
  233. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +1 -1
  234. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +6 -2
  235. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
  236. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
  237. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
  238. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
  239. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +5 -5
  240. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +42 -14
  241. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
  242. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
  243. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
  244. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
  245. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +131 -16
  246. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +632 -12
  247. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
  248. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
  249. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
  250. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
  251. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
  252. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
  253. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
  254. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
  255. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
  256. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
  257. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
  258. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
  259. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
  260. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
  261. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
  262. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
  263. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
  264. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
  265. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
  266. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
  267. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
  268. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
  269. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
  270. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
  271. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
  272. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
  273. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
  274. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
  275. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
  276. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
  277. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
  278. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
  279. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
  280. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
  281. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
  282. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
  283. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
  284. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
  285. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
  286. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
  287. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
  288. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
  289. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
  290. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
  291. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
  292. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
  293. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
  294. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  295. data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
  296. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
  297. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
  298. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  299. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
  300. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
  301. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
  302. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  303. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
  304. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  305. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
  306. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
  307. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
  308. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  309. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
  310. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
  311. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
  312. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  313. data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
  314. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
  315. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
  316. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
  317. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
  318. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
  319. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
  320. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
  321. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  322. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
  323. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
  324. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
  325. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
  326. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
  327. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
  328. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
  329. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  330. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
  331. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
  332. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
  333. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
  334. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
  335. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
  336. data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
  337. data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
  338. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
  339. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
  340. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
  341. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
  342. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
  343. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
  344. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
  345. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
  346. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
  347. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
  348. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
  349. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
  350. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
  351. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
  352. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
  353. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
  354. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
  355. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
  356. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
  357. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
  358. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
  359. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
  360. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +6 -2
  361. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +1 -1
  362. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +6 -2
  363. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
  364. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
  365. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
  366. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
  367. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
  368. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
  369. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -1
  370. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
  371. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
  372. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
  373. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
  374. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
  375. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
  376. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
  377. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
  378. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +156 -154
  379. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +186 -183
  380. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +136 -134
  381. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
  382. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +162 -139
  383. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
  384. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
  385. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +12 -8
  386. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  387. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +72 -75
  388. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -5
  389. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +713 -670
  390. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
  391. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
  392. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
  393. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
  394. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
  395. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
  396. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
  397. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +477 -466
  398. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
  399. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +153 -84
  400. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
  401. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
  402. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
  403. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
  404. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
  405. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
  406. data/src/core/ext/xds/upb_utils.h +0 -21
  407. data/src/core/ext/xds/xds_api.cc +53 -86
  408. data/src/core/ext/xds/xds_api.h +19 -28
  409. data/src/core/ext/xds/xds_bootstrap.cc +39 -52
  410. data/src/core/ext/xds/xds_bootstrap.h +28 -8
  411. data/src/core/ext/xds/xds_certificate_provider.h +9 -0
  412. data/src/core/ext/xds/xds_channel_stack_modifier.cc +6 -4
  413. data/src/core/ext/xds/xds_channel_stack_modifier.h +8 -0
  414. data/src/core/ext/xds/xds_client.cc +555 -1214
  415. data/src/core/ext/xds/xds_client.h +16 -44
  416. data/src/core/ext/xds/xds_client_grpc.cc +291 -0
  417. data/src/core/ext/xds/xds_client_grpc.h +102 -0
  418. data/src/core/ext/xds/xds_cluster.cc +92 -103
  419. data/src/core/ext/xds/xds_cluster.h +6 -5
  420. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +10 -14
  421. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
  422. data/src/core/ext/xds/xds_common_types.cc +134 -110
  423. data/src/core/ext/xds/xds_common_types.h +6 -7
  424. data/src/core/ext/xds/xds_endpoint.cc +80 -80
  425. data/src/core/ext/xds/xds_endpoint.h +4 -4
  426. data/src/core/ext/xds/xds_http_fault_filter.cc +4 -11
  427. data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
  428. data/src/core/ext/xds/xds_http_filters.h +3 -3
  429. data/src/core/ext/xds/xds_http_rbac_filter.cc +39 -58
  430. data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
  431. data/src/core/ext/xds/xds_lb_policy_registry.cc +17 -20
  432. data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
  433. data/src/core/ext/xds/xds_listener.cc +329 -299
  434. data/src/core/ext/xds/xds_listener.h +4 -4
  435. data/src/core/ext/xds/xds_resource_type.h +13 -2
  436. data/src/core/ext/xds/xds_route_config.cc +180 -177
  437. data/src/core/ext/xds/xds_route_config.h +31 -17
  438. data/src/core/ext/xds/xds_routing.cc +3 -6
  439. data/src/core/ext/xds/xds_routing.h +7 -9
  440. data/src/core/ext/xds/xds_server_config_fetcher.cc +76 -81
  441. data/src/core/ext/xds/xds_transport.h +86 -0
  442. data/src/core/ext/xds/xds_transport_grpc.cc +349 -0
  443. data/src/core/ext/xds/xds_transport_grpc.h +135 -0
  444. data/src/core/lib/address_utils/parse_address.cc +19 -17
  445. data/src/core/lib/address_utils/parse_address.h +8 -5
  446. data/src/core/lib/avl/avl.h +47 -25
  447. data/src/core/lib/channel/call_tracer.h +1 -1
  448. data/src/core/lib/channel/channel_args.cc +88 -19
  449. data/src/core/lib/channel/channel_args.h +113 -62
  450. data/src/core/lib/channel/channel_stack.cc +0 -1
  451. data/src/core/lib/channel/channel_stack_builder.cc +3 -3
  452. data/src/core/lib/channel/channel_stack_builder.h +2 -2
  453. data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -4
  454. data/src/core/lib/channel/channelz.cc +27 -37
  455. data/src/core/lib/channel/channelz.h +9 -0
  456. data/src/core/lib/channel/promise_based_filter.h +0 -1
  457. data/src/core/lib/config/core_configuration.h +48 -35
  458. data/src/core/lib/debug/stats.cc +12 -15
  459. data/src/core/lib/debug/stats.h +11 -3
  460. data/src/core/lib/event_engine/{event_engine.cc → default_event_engine.cc} +9 -5
  461. data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine.h} +4 -8
  462. data/src/core/lib/event_engine/default_event_engine_factory.cc +20 -3
  463. data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
  464. data/src/core/lib/event_engine/executor/executor.h +38 -0
  465. data/src/core/lib/event_engine/executor/threaded_executor.cc +36 -0
  466. data/src/core/lib/event_engine/executor/threaded_executor.h +44 -0
  467. data/src/core/lib/event_engine/forkable.cc +98 -0
  468. data/src/core/lib/event_engine/forkable.h +61 -0
  469. data/src/core/lib/event_engine/poller.h +54 -0
  470. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.cc → posix_engine/posix_engine.cc} +30 -47
  471. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → posix_engine/posix_engine.h} +27 -28
  472. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +4 -5
  473. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.h +8 -8
  474. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +4 -4
  475. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.h +5 -5
  476. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.cc +46 -10
  477. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +17 -8
  478. data/src/core/lib/event_engine/promise.h +11 -2
  479. data/src/core/lib/event_engine/socket_notifier.h +55 -0
  480. data/src/core/lib/event_engine/{iomgr_engine/thread_pool.cc → thread_pool.cc} +49 -14
  481. data/src/core/lib/event_engine/{iomgr_engine/thread_pool.h → thread_pool.h} +21 -10
  482. data/src/core/lib/event_engine/utils.cc +49 -0
  483. data/src/core/lib/event_engine/utils.h +40 -0
  484. data/src/core/lib/event_engine/windows/iocp.cc +149 -0
  485. data/src/core/lib/event_engine/windows/iocp.h +68 -0
  486. data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
  487. data/src/core/lib/event_engine/windows/win_socket.h +120 -0
  488. data/src/core/lib/event_engine/windows/windows_engine.cc +159 -0
  489. data/src/core/lib/event_engine/windows/windows_engine.h +120 -0
  490. data/src/core/lib/gpr/time.cc +11 -9
  491. data/src/core/lib/gpr/useful.h +29 -0
  492. data/src/core/lib/gprpp/bitset.h +3 -13
  493. data/src/core/lib/gprpp/debug_location.h +39 -7
  494. data/src/core/lib/gprpp/manual_constructor.h +0 -1
  495. data/src/core/lib/gprpp/no_destruct.h +94 -0
  496. data/src/core/lib/gprpp/ref_counted_ptr.h +0 -1
  497. data/src/core/lib/gprpp/status_helper.cc +1 -0
  498. data/src/core/lib/gprpp/table.h +0 -1
  499. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +3 -5
  500. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.h +5 -7
  501. data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
  502. data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
  503. data/src/core/lib/http/httpcli.cc +12 -24
  504. data/src/core/lib/http/httpcli_security_connector.cc +11 -11
  505. data/src/core/lib/iomgr/call_combiner.cc +0 -26
  506. data/src/core/lib/iomgr/closure.h +0 -9
  507. data/src/core/lib/iomgr/combiner.cc +0 -20
  508. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
  509. data/src/core/lib/iomgr/error.cc +0 -773
  510. data/src/core/lib/iomgr/error.h +0 -145
  511. data/src/core/lib/iomgr/error_cfstream.cc +0 -5
  512. data/src/core/lib/iomgr/ev_poll_posix.cc +17 -9
  513. data/src/core/lib/iomgr/exec_ctx.cc +0 -12
  514. data/src/core/lib/iomgr/executor.cc +0 -10
  515. data/src/core/lib/iomgr/executor.h +0 -3
  516. data/src/core/lib/iomgr/lockfree_event.cc +0 -17
  517. data/src/core/lib/iomgr/port.h +3 -0
  518. data/src/core/lib/iomgr/resolve_address.h +29 -6
  519. data/src/core/lib/iomgr/resolve_address_posix.cc +38 -8
  520. data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
  521. data/src/core/lib/iomgr/resolve_address_windows.cc +40 -10
  522. data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
  523. data/src/core/lib/iomgr/socket_windows.h +0 -2
  524. data/src/core/lib/iomgr/tcp_posix.cc +118 -6
  525. data/src/core/lib/iomgr/timer_generic.cc +6 -8
  526. data/src/core/lib/json/json.h +19 -22
  527. data/src/core/lib/json/json_args.h +34 -0
  528. data/src/core/lib/json/json_object_loader.cc +233 -0
  529. data/src/core/lib/json/json_object_loader.h +618 -0
  530. data/src/core/lib/json/json_reader.cc +86 -62
  531. data/src/core/lib/json/json_util.cc +8 -36
  532. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +3 -44
  533. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +15 -24
  534. data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
  535. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.cc +49 -72
  536. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.h +27 -27
  537. data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
  538. data/src/core/lib/promise/activity.h +56 -8
  539. data/src/core/lib/promise/arena_promise.h +84 -81
  540. data/src/core/lib/promise/context.h +0 -1
  541. data/src/core/lib/promise/detail/basic_seq.h +43 -23
  542. data/src/core/lib/promise/detail/promise_factory.h +0 -1
  543. data/src/core/lib/promise/map.h +0 -1
  544. data/src/core/lib/promise/seq.h +25 -4
  545. data/src/core/lib/promise/sleep.cc +38 -42
  546. data/src/core/lib/promise/sleep.h +27 -24
  547. data/src/core/lib/promise/try_seq.h +26 -6
  548. data/src/core/lib/resolver/resolver.cc +0 -47
  549. data/src/core/lib/resolver/resolver.h +2 -12
  550. data/src/core/lib/resolver/resolver_factory.h +2 -3
  551. data/src/core/lib/resolver/resolver_registry.cc +1 -1
  552. data/src/core/lib/resolver/resolver_registry.h +2 -3
  553. data/src/core/lib/resolver/server_address.cc +11 -15
  554. data/src/core/lib/resolver/server_address.h +4 -8
  555. data/src/core/lib/resource_quota/api.cc +1 -1
  556. data/src/core/lib/resource_quota/arena.cc +21 -1
  557. data/src/core/lib/resource_quota/arena.h +24 -2
  558. data/src/core/lib/resource_quota/memory_quota.cc +157 -17
  559. data/src/core/lib/resource_quota/memory_quota.h +98 -17
  560. data/src/core/lib/resource_quota/periodic_update.cc +79 -0
  561. data/src/core/lib/resource_quota/periodic_update.h +71 -0
  562. data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
  563. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
  564. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  565. data/src/core/lib/security/authorization/matchers.cc +13 -10
  566. data/src/core/lib/security/authorization/rbac_policy.cc +0 -1
  567. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -3
  568. data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -4
  569. data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -7
  570. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -4
  571. data/src/core/lib/security/credentials/credentials.h +16 -12
  572. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +18 -11
  573. data/src/core/lib/security/credentials/external/external_account_credentials.cc +32 -23
  574. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
  575. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -6
  576. data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -12
  577. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -4
  578. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +29 -26
  579. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -3
  580. data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
  581. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
  582. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -4
  583. data/src/core/lib/security/credentials/jwt/json_token.cc +12 -3
  584. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -8
  585. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +11 -13
  586. data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
  587. data/src/core/lib/security/credentials/local/local_credentials.h +3 -4
  588. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +17 -18
  589. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
  590. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -21
  591. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -4
  592. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +6 -0
  593. data/src/core/lib/security/credentials/tls/tls_credentials.cc +13 -25
  594. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -4
  595. data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -30
  596. data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
  597. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -18
  598. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +26 -38
  599. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
  600. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
  601. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +6 -5
  602. data/src/core/lib/security/security_connector/local/local_security_connector.cc +13 -11
  603. data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
  604. data/src/core/lib/security/security_connector/security_connector.h +5 -3
  605. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -4
  606. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +5 -5
  607. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -5
  608. data/src/core/lib/security/transport/auth_filters.h +1 -1
  609. data/src/core/lib/security/transport/client_auth_filter.cc +3 -4
  610. data/src/core/lib/security/transport/security_handshaker.cc +32 -44
  611. data/src/core/lib/security/transport/security_handshaker.h +2 -1
  612. data/src/core/lib/service_config/service_config.h +11 -0
  613. data/src/core/lib/service_config/service_config_impl.cc +98 -97
  614. data/src/core/lib/service_config/service_config_impl.h +11 -13
  615. data/src/core/lib/service_config/service_config_parser.cc +26 -27
  616. data/src/core/lib/service_config/service_config_parser.h +10 -22
  617. data/src/core/lib/slice/percent_encoding.cc +4 -13
  618. data/src/core/lib/slice/slice.cc +10 -4
  619. data/src/core/lib/surface/call.cc +8 -2
  620. data/src/core/lib/surface/channel.cc +6 -6
  621. data/src/core/lib/surface/channel.h +1 -1
  622. data/src/core/lib/surface/completion_queue.cc +0 -2
  623. data/src/core/lib/surface/completion_queue.h +0 -3
  624. data/src/core/lib/surface/init.cc +2 -6
  625. data/src/core/lib/surface/lame_client.cc +2 -3
  626. data/src/core/lib/surface/lame_client.h +1 -1
  627. data/src/core/lib/surface/server.cc +7 -12
  628. data/src/core/lib/surface/server.h +7 -7
  629. data/src/core/lib/surface/validate_metadata.cc +4 -14
  630. data/src/core/lib/surface/version.cc +2 -2
  631. data/src/core/lib/transport/connectivity_state.cc +0 -1
  632. data/src/core/lib/transport/connectivity_state.h +1 -1
  633. data/src/core/lib/transport/error_utils.cc +0 -36
  634. data/src/core/lib/transport/handshaker.cc +7 -9
  635. data/src/core/lib/transport/handshaker.h +4 -5
  636. data/src/core/lib/transport/handshaker_factory.h +2 -3
  637. data/src/core/lib/transport/handshaker_registry.cc +2 -1
  638. data/src/core/lib/transport/handshaker_registry.h +2 -4
  639. data/src/core/lib/transport/http_connect_handshaker.cc +16 -16
  640. data/src/core/lib/transport/metadata_batch.cc +5 -0
  641. data/src/core/lib/transport/metadata_batch.h +52 -7
  642. data/src/core/lib/transport/parsed_metadata.h +0 -1
  643. data/src/core/lib/transport/tcp_connect_handshaker.cc +12 -18
  644. data/src/core/lib/transport/transport.h +0 -7
  645. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +40 -21
  646. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
  647. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -7
  648. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +1 -1
  649. data/src/core/tsi/fake_transport_security.cc +53 -30
  650. data/src/core/tsi/local_transport_security.cc +9 -5
  651. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +10 -1
  652. data/src/core/tsi/ssl_transport_security.cc +47 -23
  653. data/src/core/tsi/transport_security.cc +18 -6
  654. data/src/core/tsi/transport_security.h +2 -1
  655. data/src/core/tsi/transport_security_interface.h +17 -5
  656. data/src/ruby/ext/grpc/extconf.rb +2 -0
  657. data/src/ruby/ext/grpc/rb_loader.c +6 -2
  658. data/src/ruby/lib/grpc/2.5/grpc_c.so +0 -0
  659. data/src/ruby/lib/grpc/2.6/grpc_c.so +0 -0
  660. data/src/ruby/lib/grpc/2.7/grpc_c.so +0 -0
  661. data/src/ruby/lib/grpc/3.0/grpc_c.so +0 -0
  662. data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
  663. data/src/ruby/lib/grpc/grpc_c.so +0 -0
  664. data/src/ruby/lib/grpc/version.rb +1 -1
  665. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
  666. data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
  667. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
  668. data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
  669. data/third_party/upb/upb/arena.c +277 -0
  670. data/third_party/upb/upb/arena.h +225 -0
  671. data/third_party/upb/upb/array.c +114 -0
  672. data/third_party/upb/upb/array.h +83 -0
  673. data/third_party/upb/upb/collections.h +36 -0
  674. data/third_party/upb/upb/decode.c +161 -65
  675. data/third_party/upb/upb/decode.h +1 -0
  676. data/third_party/upb/upb/decode_fast.c +1 -1
  677. data/third_party/upb/upb/def.c +10 -2
  678. data/third_party/upb/upb/def.h +8 -1
  679. data/third_party/upb/upb/def.hpp +7 -4
  680. data/third_party/upb/upb/encode.c +29 -20
  681. data/third_party/upb/upb/encode.h +16 -6
  682. data/third_party/upb/upb/extension_registry.c +93 -0
  683. data/third_party/upb/upb/extension_registry.h +84 -0
  684. data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
  685. data/third_party/upb/upb/internal/table.h +385 -0
  686. data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
  687. data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
  688. data/third_party/upb/upb/json_decode.c +1512 -0
  689. data/third_party/upb/upb/json_decode.h +47 -0
  690. data/third_party/upb/upb/json_encode.c +7 -3
  691. data/third_party/upb/upb/json_encode.h +6 -3
  692. data/third_party/upb/upb/map.c +108 -0
  693. data/third_party/upb/upb/map.h +117 -0
  694. data/third_party/upb/upb/message_value.h +66 -0
  695. data/third_party/upb/upb/mini_table.c +1147 -0
  696. data/third_party/upb/upb/mini_table.h +189 -0
  697. data/third_party/upb/upb/mini_table.hpp +112 -0
  698. data/third_party/upb/upb/msg.c +2 -62
  699. data/third_party/upb/upb/msg.h +2 -45
  700. data/third_party/upb/upb/msg_internal.h +28 -22
  701. data/third_party/upb/upb/port_def.inc +2 -1
  702. data/third_party/upb/upb/port_undef.inc +1 -0
  703. data/third_party/upb/upb/reflection.c +2 -159
  704. data/third_party/upb/upb/reflection.h +2 -112
  705. data/third_party/upb/upb/status.c +86 -0
  706. data/third_party/upb/upb/status.h +66 -0
  707. data/third_party/upb/upb/table.c +2 -2
  708. data/third_party/upb/upb/table_internal.h +3 -352
  709. data/third_party/upb/upb/text_encode.c +3 -2
  710. data/third_party/upb/upb/upb.c +4 -290
  711. data/third_party/upb/upb/upb.h +7 -196
  712. metadata +90 -38
  713. data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
  714. data/src/core/lib/iomgr/error_internal.h +0 -66
  715. data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
  716. data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
  717. data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
  718. data/src/core/lib/iomgr/executor/threadpool.h +0 -150
  719. data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
  720. data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
  721. data/src/core/lib/promise/detail/switch.h +0 -1455
@@ -26,12 +26,10 @@
26
26
  #include <utility>
27
27
  #include <vector>
28
28
 
29
+ #include "absl/status/statusor.h"
29
30
  #include "absl/strings/string_view.h"
30
31
 
31
- #include <grpc/impl/codegen/grpc_types.h>
32
- #include <grpc/support/log.h>
33
-
34
- #include "src/core/lib/iomgr/error.h"
32
+ #include "src/core/lib/channel/channel_args.h"
35
33
  #include "src/core/lib/json/json.h"
36
34
 
37
35
  namespace grpc_core {
@@ -54,21 +52,13 @@ class ServiceConfigParser {
54
52
 
55
53
  virtual absl::string_view name() const = 0;
56
54
 
57
- virtual std::unique_ptr<ParsedConfig> ParseGlobalParams(
58
- const grpc_channel_args*, const Json& /* json */,
59
- grpc_error_handle* error) {
60
- // Avoid unused parameter warning on debug-only parameter
61
- (void)error;
62
- GPR_DEBUG_ASSERT(error != nullptr);
55
+ virtual absl::StatusOr<std::unique_ptr<ParsedConfig>> ParseGlobalParams(
56
+ const ChannelArgs& /*args*/, const Json& /*json*/) {
63
57
  return nullptr;
64
58
  }
65
59
 
66
- virtual std::unique_ptr<ParsedConfig> ParsePerMethodParams(
67
- const grpc_channel_args*, const Json& /* json */,
68
- grpc_error_handle* error) {
69
- // Avoid unused parameter warning on debug-only parameter
70
- (void)error;
71
- GPR_DEBUG_ASSERT(error != nullptr);
60
+ virtual absl::StatusOr<std::unique_ptr<ParsedConfig>> ParsePerMethodParams(
61
+ const ChannelArgs& /*args*/, const Json& /*json*/) {
72
62
  return nullptr;
73
63
  }
74
64
  };
@@ -90,13 +80,11 @@ class ServiceConfigParser {
90
80
  ServiceConfigParserList registered_parsers_;
91
81
  };
92
82
 
93
- ParsedConfigVector ParseGlobalParameters(const grpc_channel_args* args,
94
- const Json& json,
95
- grpc_error_handle* error) const;
83
+ absl::StatusOr<ParsedConfigVector> ParseGlobalParameters(
84
+ const ChannelArgs& args, const Json& json) const;
96
85
 
97
- ParsedConfigVector ParsePerMethodParameters(const grpc_channel_args* args,
98
- const Json& json,
99
- grpc_error_handle* error) const;
86
+ absl::StatusOr<ParsedConfigVector> ParsePerMethodParameters(
87
+ const ChannelArgs& args, const Json& json) const;
100
88
 
101
89
  // Return the index for a given registered parser.
102
90
  // If there is an error, return -1.
@@ -23,27 +23,18 @@
23
23
  #include <stdlib.h>
24
24
 
25
25
  #include <cstdint>
26
- #include <type_traits>
27
26
  #include <utility>
28
27
 
29
28
  #include <grpc/support/log.h>
30
29
 
31
30
  #include "src/core/lib/gprpp/bitset.h"
32
31
 
33
- #if __cplusplus > 201103l
34
- #define GRPC_PCTENCODE_CONSTEXPR_FN constexpr
35
- #define GRPC_PCTENCODE_CONSTEXPR_VALUE constexpr
36
- #else
37
- #define GRPC_PCTENCODE_CONSTEXPR_FN
38
- #define GRPC_PCTENCODE_CONSTEXPR_VALUE const
39
- #endif
40
-
41
32
  namespace grpc_core {
42
33
 
43
34
  namespace {
44
35
  class UrlTable : public BitSet<256> {
45
36
  public:
46
- GRPC_PCTENCODE_CONSTEXPR_FN UrlTable() {
37
+ constexpr UrlTable() {
47
38
  for (int i = 'a'; i <= 'z'; i++) set(i);
48
39
  for (int i = 'A'; i <= 'Z'; i++) set(i);
49
40
  for (int i = '0'; i <= '9'; i++) set(i);
@@ -54,11 +45,11 @@ class UrlTable : public BitSet<256> {
54
45
  }
55
46
  };
56
47
 
57
- GRPC_PCTENCODE_CONSTEXPR_VALUE UrlTable g_url_table;
48
+ constexpr UrlTable g_url_table;
58
49
 
59
50
  class CompatibleTable : public BitSet<256> {
60
51
  public:
61
- GRPC_PCTENCODE_CONSTEXPR_FN CompatibleTable() {
52
+ constexpr CompatibleTable() {
62
53
  for (int i = 32; i <= 126; i++) {
63
54
  if (i == '%') continue;
64
55
  set(i);
@@ -66,7 +57,7 @@ class CompatibleTable : public BitSet<256> {
66
57
  }
67
58
  };
68
59
 
69
- GRPC_PCTENCODE_CONSTEXPR_VALUE CompatibleTable g_compatible_table;
60
+ constexpr CompatibleTable g_compatible_table;
70
61
 
71
62
  // Map PercentEncodingType to a lookup table of legal symbols for that encoding.
72
63
  const BitSet<256>& LookupTableForPercentEncodingType(PercentEncodingType type) {
@@ -148,6 +148,12 @@ class MovedCppStringSliceRefCount : public grpc_slice_refcount {
148
148
  explicit MovedCppStringSliceRefCount(std::string&& str)
149
149
  : grpc_slice_refcount(Destroy), str_(std::move(str)) {}
150
150
 
151
+ uint8_t* data() {
152
+ return reinterpret_cast<uint8_t*>(const_cast<char*>(str_.data()));
153
+ }
154
+
155
+ size_t size() const { return str_.size(); }
156
+
151
157
  private:
152
158
  static void Destroy(grpc_slice_refcount* arg) {
153
159
  delete static_cast<MovedCppStringSliceRefCount*>(arg);
@@ -206,10 +212,10 @@ grpc_slice grpc_slice_from_cpp_string(std::string str) {
206
212
  slice.data.inlined.length = str.size();
207
213
  memcpy(GRPC_SLICE_START_PTR(slice), str.data(), str.size());
208
214
  } else {
209
- slice.data.refcounted.bytes =
210
- reinterpret_cast<uint8_t*>(const_cast<char*>(str.data()));
211
- slice.data.refcounted.length = str.size();
212
- slice.refcount = new grpc_core::MovedCppStringSliceRefCount(std::move(str));
215
+ auto* refcount = new grpc_core::MovedCppStringSliceRefCount(std::move(str));
216
+ slice.data.refcounted.bytes = refcount->data();
217
+ slice.data.refcounted.length = refcount->size();
218
+ slice.refcount = refcount;
213
219
  }
214
220
  return slice;
215
221
  }
@@ -1415,10 +1415,16 @@ grpc_call_error FilterStackCall::StartBatch(const grpc_op* ops, size_t nops,
1415
1415
  if (is_client() && send_deadline() != Timestamp::InfFuture()) {
1416
1416
  send_initial_metadata_.Set(GrpcTimeoutMetadata(), send_deadline());
1417
1417
  }
1418
+ if (is_client()) {
1419
+ send_initial_metadata_.Set(
1420
+ WaitForReady(),
1421
+ WaitForReady::ValueType{
1422
+ (op->flags & GRPC_INITIAL_METADATA_WAIT_FOR_READY) != 0,
1423
+ (op->flags &
1424
+ GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET) != 0});
1425
+ }
1418
1426
  stream_op_payload->send_initial_metadata.send_initial_metadata =
1419
1427
  &send_initial_metadata_;
1420
- stream_op_payload->send_initial_metadata.send_initial_metadata_flags =
1421
- op->flags;
1422
1428
  if (is_client()) {
1423
1429
  stream_op_payload->send_initial_metadata.peer_string = &peer_string_;
1424
1430
  }
@@ -62,7 +62,8 @@
62
62
 
63
63
  namespace grpc_core {
64
64
 
65
- Channel::Channel(bool is_client, std::string target, ChannelArgs channel_args,
65
+ Channel::Channel(bool is_client, std::string target,
66
+ const ChannelArgs& channel_args,
66
67
  grpc_compression_options compression_options,
67
68
  RefCountedPtr<grpc_channel_stack> channel_stack)
68
69
  : is_client_(is_client),
@@ -149,8 +150,8 @@ absl::StatusOr<RefCountedPtr<Channel>> Channel::CreateWithBuilder(
149
150
 
150
151
  return RefCountedPtr<Channel>(new Channel(
151
152
  grpc_channel_stack_type_is_client(builder->channel_stack_type()),
152
- std::string(builder->target()), std::move(channel_args),
153
- compression_options, std::move(*r)));
153
+ std::string(builder->target()), channel_args, compression_options,
154
+ std::move(*r)));
154
155
  }
155
156
 
156
157
  namespace {
@@ -219,9 +220,8 @@ absl::StatusOr<RefCountedPtr<Channel>> Channel::Create(
219
220
  args = channel_args_mutator(target, args, channel_stack_type);
220
221
  }
221
222
  }
222
- builder.SetChannelArgs(std::move(args))
223
- .SetTarget(target)
224
- .SetTransport(optional_transport);
223
+ builder.SetChannelArgs(args).SetTarget(target).SetTransport(
224
+ optional_transport);
225
225
  if (!CoreConfiguration::Get().channel_init().CreateStack(&builder)) {
226
226
  return nullptr;
227
227
  }
@@ -154,7 +154,7 @@ class Channel : public RefCounted<Channel>,
154
154
  }
155
155
 
156
156
  private:
157
- Channel(bool is_client, std::string target, ChannelArgs channel_args,
157
+ Channel(bool is_client, std::string target, const ChannelArgs& channel_args,
158
158
  grpc_compression_options compression_options,
159
159
  RefCountedPtr<grpc_channel_stack> channel_stack);
160
160
 
@@ -447,8 +447,6 @@ grpc_core::TraceFlag grpc_cq_pluck_trace(false, "queue_pluck");
447
447
 
448
448
  static void on_pollset_shutdown_done(void* arg, grpc_error_handle error);
449
449
 
450
- void grpc_cq_global_init() {}
451
-
452
450
  void grpc_completion_queue_thread_local_cache_init(grpc_completion_queue* cq) {
453
451
  if (g_cached_cq == nullptr) {
454
452
  g_cached_event = nullptr;
@@ -71,9 +71,6 @@ void grpc_cq_internal_unref(grpc_completion_queue* cq);
71
71
  #define GRPC_CQ_INTERNAL_UNREF(cq, reason) grpc_cq_internal_unref(cq)
72
72
  #endif
73
73
 
74
- /* Initializes global variables used by completion queues */
75
- void grpc_cq_global_init();
76
-
77
74
  /* Flag that an operation is beginning: the completion channel will not finish
78
75
  shutdown until a corrensponding grpc_cq_end_* call is made.
79
76
  \a tag is currently used only in debug builds. Return true on success, and
@@ -36,13 +36,12 @@
36
36
  #include "src/core/lib/channel/channel_args.h"
37
37
  #include "src/core/lib/channel/channel_stack_builder.h"
38
38
  #include "src/core/lib/config/core_configuration.h"
39
- #include "src/core/lib/debug/stats.h"
40
39
  #include "src/core/lib/debug/trace.h"
40
+ #include "src/core/lib/event_engine/forkable.h"
41
41
  #include "src/core/lib/gprpp/fork.h"
42
42
  #include "src/core/lib/gprpp/sync.h"
43
43
  #include "src/core/lib/gprpp/thd.h"
44
44
  #include "src/core/lib/iomgr/exec_ctx.h"
45
- #include "src/core/lib/iomgr/executor.h"
46
45
  #include "src/core/lib/iomgr/iomgr.h"
47
46
  #include "src/core/lib/iomgr/timer_manager.h"
48
47
  #include "src/core/lib/profiling/timers.h"
@@ -53,7 +52,6 @@
53
52
  #include "src/core/lib/surface/api_trace.h"
54
53
  #include "src/core/lib/surface/channel_init.h"
55
54
  #include "src/core/lib/surface/channel_stack_type.h"
56
- #include "src/core/lib/surface/completion_queue.h"
57
55
 
58
56
  /* (generated) built in registry of plugins */
59
57
  extern void grpc_register_built_in_plugins(void);
@@ -120,8 +118,6 @@ static void do_basic_init(void) {
120
118
  g_init_mu = new grpc_core::Mutex();
121
119
  g_shutting_down_cv = new grpc_core::CondVar();
122
120
  grpc_register_built_in_plugins();
123
- grpc_cq_global_init();
124
- grpc_core::grpc_executor_global_init();
125
121
  gpr_time_init();
126
122
  }
127
123
 
@@ -152,8 +148,8 @@ void grpc_init(void) {
152
148
  g_shutting_down_cv->SignalAll();
153
149
  }
154
150
  grpc_core::Fork::GlobalInit();
151
+ grpc_event_engine::experimental::RegisterForkHandlers();
155
152
  grpc_fork_handlers_auto_register();
156
- grpc_stats_init();
157
153
  grpc_core::ApplicationCallbackExecCtx::GlobalInit();
158
154
  grpc_iomgr_init();
159
155
  gpr_timers_global_init();
@@ -42,7 +42,6 @@
42
42
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
43
43
  #include "src/core/lib/gprpp/sync.h"
44
44
  #include "src/core/lib/iomgr/exec_ctx.h"
45
- #include "src/core/lib/promise/poll.h"
46
45
  #include "src/core/lib/promise/promise.h"
47
46
  #include "src/core/lib/surface/api_trace.h"
48
47
  #include "src/core/lib/surface/channel.h"
@@ -61,8 +60,8 @@ const grpc_channel_filter LameClientFilter::kFilter =
61
60
  MakePromiseBasedFilter<LameClientFilter, FilterEndpoint::kClient,
62
61
  kFilterIsLast>("lame-client");
63
62
 
64
- absl::StatusOr<LameClientFilter> LameClientFilter::Create(ChannelArgs args,
65
- ChannelFilter::Args) {
63
+ absl::StatusOr<LameClientFilter> LameClientFilter::Create(
64
+ const ChannelArgs& args, ChannelFilter::Args) {
66
65
  return LameClientFilter(
67
66
  *args.GetPointer<absl::Status>(GRPC_ARG_LAME_FILTER_ERROR));
68
67
  }
@@ -49,7 +49,7 @@ class LameClientFilter : public ChannelFilter {
49
49
  static const grpc_channel_filter kFilter;
50
50
 
51
51
  static absl::StatusOr<LameClientFilter> Create(
52
- ChannelArgs args, ChannelFilter::Args filter_args);
52
+ const ChannelArgs& args, ChannelFilter::Args filter_args);
53
53
  ArenaPromise<ServerMetadataHandle> MakeCallPromise(
54
54
  CallArgs call_args, NextPromiseFactory next_promise_factory) override;
55
55
  bool StartTransportOp(grpc_transport_op*) override;
@@ -80,7 +80,6 @@ struct Server::RequestedCall {
80
80
  cq_bound_to_call(call_cq),
81
81
  call(call_arg),
82
82
  initial_metadata(initial_md) {
83
- details->reserved = nullptr;
84
83
  data.batch.details = details;
85
84
  }
86
85
 
@@ -520,7 +519,8 @@ const grpc_channel_filter Server::kServerTopFilter = {
520
519
 
521
520
  namespace {
522
521
 
523
- RefCountedPtr<channelz::ServerNode> CreateChannelzNode(ChannelArgs args) {
522
+ RefCountedPtr<channelz::ServerNode> CreateChannelzNode(
523
+ const ChannelArgs& args) {
524
524
  RefCountedPtr<channelz::ServerNode> channelz_node;
525
525
  if (args.GetBool(GRPC_ARG_ENABLE_CHANNELZ)
526
526
  .value_or(GRPC_ENABLE_CHANNELZ_DEFAULT)) {
@@ -538,11 +538,10 @@ RefCountedPtr<channelz::ServerNode> CreateChannelzNode(ChannelArgs args) {
538
538
 
539
539
  } // namespace
540
540
 
541
- Server::Server(ChannelArgs args)
542
- : channel_args_(args.ToC()), channelz_node_(CreateChannelzNode(args)) {}
541
+ Server::Server(const ChannelArgs& args)
542
+ : channel_args_(args), channelz_node_(CreateChannelzNode(args)) {}
543
543
 
544
544
  Server::~Server() {
545
- grpc_channel_args_destroy(channel_args_);
546
545
  // Remove the cq pollsets from the config_fetcher.
547
546
  if (started_ && config_fetcher_ != nullptr &&
548
547
  config_fetcher_->interested_parties() != nullptr) {
@@ -604,11 +603,11 @@ void Server::Start() {
604
603
 
605
604
  grpc_error_handle Server::SetupTransport(
606
605
  grpc_transport* transport, grpc_pollset* accepting_pollset,
607
- const grpc_channel_args* args,
606
+ const ChannelArgs& args,
608
607
  const RefCountedPtr<channelz::SocketNode>& socket_node) {
609
608
  // Create channel.
610
- absl::StatusOr<RefCountedPtr<Channel>> channel = Channel::Create(
611
- nullptr, ChannelArgs::FromC(args), GRPC_SERVER_CHANNEL, transport);
609
+ absl::StatusOr<RefCountedPtr<Channel>> channel =
610
+ Channel::Create(nullptr, args, GRPC_SERVER_CHANNEL, transport);
612
611
  if (!channel.ok()) {
613
612
  return absl_status_to_grpc_error(channel.status());
614
613
  }
@@ -1250,7 +1249,6 @@ void Server::CallData::Publish(size_t cq_idx, RequestedCall* rc) {
1250
1249
  grpc_slice_ref_internal(path_->c_slice());
1251
1250
  rc->data.batch.details->deadline =
1252
1251
  deadline_.as_timespec(GPR_CLOCK_MONOTONIC);
1253
- rc->data.batch.details->flags = recv_initial_metadata_flags_;
1254
1252
  break;
1255
1253
  case RequestedCall::Type::REGISTERED_CALL:
1256
1254
  *rc->data.registered.deadline =
@@ -1349,15 +1347,12 @@ void Server::CallData::RecvInitialMetadataBatchComplete(
1349
1347
  void Server::CallData::StartTransportStreamOpBatchImpl(
1350
1348
  grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
1351
1349
  if (batch->recv_initial_metadata) {
1352
- GPR_ASSERT(batch->payload->recv_initial_metadata.recv_flags == nullptr);
1353
1350
  recv_initial_metadata_ =
1354
1351
  batch->payload->recv_initial_metadata.recv_initial_metadata;
1355
1352
  original_recv_initial_metadata_ready_ =
1356
1353
  batch->payload->recv_initial_metadata.recv_initial_metadata_ready;
1357
1354
  batch->payload->recv_initial_metadata.recv_initial_metadata_ready =
1358
1355
  &recv_initial_metadata_ready_;
1359
- batch->payload->recv_initial_metadata.recv_flags =
1360
- &recv_initial_metadata_flags_;
1361
1356
  }
1362
1357
  if (batch->recv_trailing_metadata) {
1363
1358
  original_recv_trailing_metadata_ready_ =
@@ -124,12 +124,12 @@ class Server : public InternallyRefCounted<Server>,
124
124
  virtual void SetOnDestroyDone(grpc_closure* on_destroy_done) = 0;
125
125
  };
126
126
 
127
- explicit Server(ChannelArgs args);
127
+ explicit Server(const ChannelArgs& args);
128
128
  ~Server() override;
129
129
 
130
130
  void Orphan() ABSL_LOCKS_EXCLUDED(mu_global_) override;
131
131
 
132
- const grpc_channel_args* channel_args() const { return channel_args_; }
132
+ const ChannelArgs& channel_args() const { return channel_args_; }
133
133
  channelz::ServerNode* channelz_node() const { return channelz_node_.get(); }
134
134
 
135
135
  // Do not call this before Start(). Returns the pollsets. The
@@ -161,7 +161,7 @@ class Server : public InternallyRefCounted<Server>,
161
161
  // Takes ownership of a ref on resource_user from the caller.
162
162
  grpc_error_handle SetupTransport(
163
163
  grpc_transport* transport, grpc_pollset* accepting_pollset,
164
- const grpc_channel_args* args,
164
+ const ChannelArgs& args,
165
165
  const RefCountedPtr<channelz::SocketNode>& socket_node);
166
166
 
167
167
  void RegisterCompletionQueue(grpc_completion_queue* cq);
@@ -341,7 +341,6 @@ class Server : public InternallyRefCounted<Server>,
341
341
  grpc_closure recv_initial_metadata_batch_complete_;
342
342
 
343
343
  grpc_metadata_batch* recv_initial_metadata_ = nullptr;
344
- uint32_t recv_initial_metadata_flags_ = 0;
345
344
  grpc_closure recv_initial_metadata_ready_;
346
345
  grpc_closure* original_recv_initial_metadata_ready_;
347
346
  grpc_error_handle recv_initial_metadata_error_ = GRPC_ERROR_NONE;
@@ -443,7 +442,7 @@ class Server : public InternallyRefCounted<Server>,
443
442
  return shutdown_refs_.load(std::memory_order_acquire) == 0;
444
443
  }
445
444
 
446
- const grpc_channel_args* const channel_args_;
445
+ ChannelArgs const channel_args_;
447
446
  RefCountedPtr<channelz::ServerNode> channelz_node_;
448
447
  std::unique_ptr<grpc_server_config_fetcher> config_fetcher_;
449
448
 
@@ -500,8 +499,9 @@ struct grpc_server_config_fetcher {
500
499
  : public grpc_core::DualRefCounted<ConnectionManager> {
501
500
  public:
502
501
  // Ownership of \a args is transfered.
503
- virtual absl::StatusOr<grpc_channel_args*> UpdateChannelArgsForConnection(
504
- grpc_channel_args* args, grpc_endpoint* tcp) = 0;
502
+ virtual absl::StatusOr<grpc_core::ChannelArgs>
503
+ UpdateChannelArgsForConnection(const grpc_core::ChannelArgs& args,
504
+ grpc_endpoint* tcp) = 0;
505
505
  };
506
506
 
507
507
  class WatcherInterface {
@@ -29,14 +29,6 @@
29
29
  #include "src/core/lib/gprpp/memory.h"
30
30
  #include "src/core/lib/iomgr/error.h"
31
31
 
32
- #if __cplusplus > 201103l
33
- #define GRPC_VALIDATE_METADATA_CONSTEXPR_FN constexpr
34
- #define GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE constexpr
35
- #else
36
- #define GRPC_VALIDATE_METADATA_CONSTEXPR_FN
37
- #define GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE const
38
- #endif
39
-
40
32
  static grpc_error_handle conforms_to(const grpc_slice& slice,
41
33
  const grpc_core::BitSet<256>& legal_bits,
42
34
  const char* err_desc) {
@@ -68,7 +60,7 @@ static int error2int(grpc_error_handle error) {
68
60
  namespace {
69
61
  class LegalHeaderKeyBits : public grpc_core::BitSet<256> {
70
62
  public:
71
- GRPC_VALIDATE_METADATA_CONSTEXPR_FN LegalHeaderKeyBits() {
63
+ constexpr LegalHeaderKeyBits() {
72
64
  for (int i = 'a'; i <= 'z'; i++) set(i);
73
65
  for (int i = '0'; i <= '9'; i++) set(i);
74
66
  set('-');
@@ -76,8 +68,7 @@ class LegalHeaderKeyBits : public grpc_core::BitSet<256> {
76
68
  set('.');
77
69
  }
78
70
  };
79
- GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE LegalHeaderKeyBits
80
- g_legal_header_key_bits;
71
+ constexpr LegalHeaderKeyBits g_legal_header_key_bits;
81
72
  } // namespace
82
73
 
83
74
  grpc_error_handle grpc_validate_header_key_is_legal(const grpc_slice& slice) {
@@ -103,14 +94,13 @@ int grpc_header_key_is_legal(grpc_slice slice) {
103
94
  namespace {
104
95
  class LegalHeaderNonBinValueBits : public grpc_core::BitSet<256> {
105
96
  public:
106
- GRPC_VALIDATE_METADATA_CONSTEXPR_FN LegalHeaderNonBinValueBits() {
97
+ constexpr LegalHeaderNonBinValueBits() {
107
98
  for (int i = 32; i <= 126; i++) {
108
99
  set(i);
109
100
  }
110
101
  }
111
102
  };
112
- GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE LegalHeaderNonBinValueBits
113
- g_legal_header_non_bin_value_bits;
103
+ constexpr LegalHeaderNonBinValueBits g_legal_header_non_bin_value_bits;
114
104
  } // namespace
115
105
 
116
106
  grpc_error_handle grpc_validate_header_nonbin_value_is_legal(
@@ -23,6 +23,6 @@
23
23
 
24
24
  #include <grpc/grpc.h>
25
25
 
26
- const char* grpc_version_string(void) { return "26.0.0"; }
26
+ const char* grpc_version_string(void) { return "27.0.0"; }
27
27
 
28
- const char* grpc_g_stands_for(void) { return "garum"; }
28
+ const char* grpc_g_stands_for(void) { return "gamma"; }
@@ -21,7 +21,6 @@
21
21
  #include "src/core/lib/transport/connectivity_state.h"
22
22
 
23
23
  #include <string>
24
- #include <type_traits>
25
24
 
26
25
  #include <grpc/support/log.h>
27
26
 
@@ -32,7 +32,7 @@
32
32
 
33
33
  #include "src/core/lib/debug/trace.h"
34
34
  #include "src/core/lib/gprpp/orphanable.h"
35
- #include "src/core/lib/iomgr/work_serializer.h"
35
+ #include "src/core/lib/gprpp/work_serializer.h"
36
36
 
37
37
  namespace grpc_core {
38
38
 
@@ -31,10 +31,6 @@
31
31
  #include "src/core/lib/gprpp/status_helper.h"
32
32
  #include "src/core/lib/transport/status_conversion.h"
33
33
 
34
- #ifndef GRPC_ERROR_IS_ABSEIL_STATUS
35
- #include "src/core/lib/iomgr/error_internal.h"
36
- #endif
37
-
38
34
  static grpc_error_handle recursively_find_error_with_field(
39
35
  grpc_error_handle error, grpc_error_ints which) {
40
36
  intptr_t unused;
@@ -42,25 +38,11 @@ static grpc_error_handle recursively_find_error_with_field(
42
38
  if (grpc_error_get_int(error, which, &unused)) {
43
39
  return error;
44
40
  }
45
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
46
41
  std::vector<absl::Status> children = grpc_core::StatusGetChildren(error);
47
42
  for (const absl::Status& child : children) {
48
43
  grpc_error_handle result = recursively_find_error_with_field(child, which);
49
44
  if (!GRPC_ERROR_IS_NONE(result)) return result;
50
45
  }
51
- #else
52
- if (grpc_error_is_special(error)) return GRPC_ERROR_NONE;
53
- // Otherwise, search through its children.
54
- uint8_t slot = error->first_err;
55
- while (slot != UINT8_MAX) {
56
- grpc_linked_error* lerr =
57
- reinterpret_cast<grpc_linked_error*>(error->arena + slot);
58
- grpc_error_handle result =
59
- recursively_find_error_with_field(lerr->err, which);
60
- if (result) return result;
61
- slot = lerr->next;
62
- }
63
- #endif
64
46
  return GRPC_ERROR_NONE;
65
47
  }
66
48
 
@@ -113,9 +95,7 @@ void grpc_error_get_status(grpc_error_handle error,
113
95
  status = grpc_http2_error_to_grpc_status(
114
96
  static_cast<grpc_http2_error_code>(integer), deadline);
115
97
  } else {
116
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
117
98
  status = static_cast<grpc_status_code>(found_error.code());
118
- #endif
119
99
  }
120
100
  if (code != nullptr) *code = status;
121
101
 
@@ -143,11 +123,7 @@ void grpc_error_get_status(grpc_error_handle error,
143
123
  message)) {
144
124
  if (!grpc_error_get_str(found_error, GRPC_ERROR_STR_DESCRIPTION,
145
125
  message)) {
146
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
147
126
  *message = grpc_error_std_string(error);
148
- #else
149
- *message = "unknown error";
150
- #endif
151
127
  }
152
128
  }
153
129
  }
@@ -179,23 +155,11 @@ bool grpc_error_has_clear_grpc_status(grpc_error_handle error) {
179
155
  if (grpc_error_get_int(error, GRPC_ERROR_INT_GRPC_STATUS, &unused)) {
180
156
  return true;
181
157
  }
182
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
183
158
  std::vector<absl::Status> children = grpc_core::StatusGetChildren(error);
184
159
  for (const absl::Status& child : children) {
185
160
  if (grpc_error_has_clear_grpc_status(child)) {
186
161
  return true;
187
162
  }
188
163
  }
189
- #else
190
- uint8_t slot = error->first_err;
191
- while (slot != UINT8_MAX) {
192
- grpc_linked_error* lerr =
193
- reinterpret_cast<grpc_linked_error*>(error->arena + slot);
194
- if (grpc_error_has_clear_grpc_status(lerr->err)) {
195
- return true;
196
- }
197
- slot = lerr->next;
198
- }
199
- #endif
200
164
  return false;
201
165
  }
@@ -27,6 +27,7 @@
27
27
 
28
28
  #include "absl/strings/str_format.h"
29
29
 
30
+ #include <grpc/impl/codegen/grpc_types.h>
30
31
  #include <grpc/slice_buffer.h>
31
32
  #include <grpc/support/alloc.h>
32
33
  #include <grpc/support/log.h>
@@ -45,14 +46,12 @@ TraceFlag grpc_handshaker_trace(false, "handshaker");
45
46
  namespace {
46
47
 
47
48
  std::string HandshakerArgsString(HandshakerArgs* args) {
48
- size_t num_args = args->args != nullptr ? args->args->num_args : 0;
49
49
  size_t read_buffer_length =
50
50
  args->read_buffer != nullptr ? args->read_buffer->length : 0;
51
51
  return absl::StrFormat(
52
- "{endpoint=%p, args=%p {size=%" PRIuPTR
53
- ": %s}, read_buffer=%p (length=%" PRIuPTR "), exit_early=%d}",
54
- args->endpoint, args->args, num_args,
55
- grpc_channel_args_string(args->args), args->read_buffer,
52
+ "{endpoint=%p, args=%s, read_buffer=%p (length=%" PRIuPTR
53
+ "), exit_early=%d}",
54
+ args->endpoint, args->args.ToString(), args->read_buffer,
56
55
  read_buffer_length, args->exit_early);
57
56
  }
58
57
 
@@ -115,8 +114,7 @@ bool HandshakeManager::CallNextHandshakerLocked(grpc_error_handle error) {
115
114
  grpc_endpoint_shutdown(args_.endpoint, GRPC_ERROR_REF(error));
116
115
  grpc_endpoint_destroy(args_.endpoint);
117
116
  args_.endpoint = nullptr;
118
- grpc_channel_args_destroy(args_.args);
119
- args_.args = nullptr;
117
+ args_.args = ChannelArgs();
120
118
  grpc_slice_buffer_destroy_internal(args_.read_buffer);
121
119
  gpr_free(args_.read_buffer);
122
120
  args_.read_buffer = nullptr;
@@ -172,7 +170,7 @@ void HandshakeManager::OnTimeoutFn(void* arg, grpc_error_handle error) {
172
170
  }
173
171
 
174
172
  void HandshakeManager::DoHandshake(grpc_endpoint* endpoint,
175
- const grpc_channel_args* channel_args,
173
+ const ChannelArgs& channel_args,
176
174
  Timestamp deadline,
177
175
  grpc_tcp_server_acceptor* acceptor,
178
176
  grpc_iomgr_cb_func on_handshake_done,
@@ -185,7 +183,7 @@ void HandshakeManager::DoHandshake(grpc_endpoint* endpoint,
185
183
  // handshakers and eventually be freed by the on_handshake_done callback.
186
184
  args_.endpoint = endpoint;
187
185
  args_.deadline = deadline;
188
- args_.args = grpc_channel_args_copy(channel_args);
186
+ args_.args = channel_args;
189
187
  args_.user_data = user_data;
190
188
  args_.read_buffer =
191
189
  static_cast<grpc_slice_buffer*>(gpr_malloc(sizeof(*args_.read_buffer)));
@@ -25,9 +25,9 @@
25
25
 
26
26
  #include "absl/container/inlined_vector.h"
27
27
 
28
- #include <grpc/impl/codegen/grpc_types.h>
29
28
  #include <grpc/slice.h>
30
29
 
30
+ #include "src/core/lib/channel/channel_args.h"
31
31
  #include "src/core/lib/gprpp/ref_counted.h"
32
32
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
33
33
  #include "src/core/lib/gprpp/sync.h"
@@ -63,7 +63,7 @@ namespace grpc_core {
63
63
  /// which the callback takes ownership of.
64
64
  struct HandshakerArgs {
65
65
  grpc_endpoint* endpoint = nullptr;
66
- grpc_channel_args* args = nullptr;
66
+ ChannelArgs args;
67
67
  grpc_slice_buffer* read_buffer = nullptr;
68
68
  // A handshaker may set this to true before invoking on_handshake_done
69
69
  // to indicate that subsequent handshakers should be skipped.
@@ -120,9 +120,8 @@ class HandshakeManager : public RefCounted<HandshakeManager> {
120
120
  /// GRPC_ERROR_NONE, then handshaking failed and the handshaker has done
121
121
  /// the necessary clean-up. Otherwise, the callback takes ownership of
122
122
  /// the arguments.
123
- void DoHandshake(grpc_endpoint* endpoint,
124
- const grpc_channel_args* channel_args, Timestamp deadline,
125
- grpc_tcp_server_acceptor* acceptor,
123
+ void DoHandshake(grpc_endpoint* endpoint, const ChannelArgs& channel_args,
124
+ Timestamp deadline, grpc_tcp_server_acceptor* acceptor,
126
125
  grpc_iomgr_cb_func on_handshake_done, void* user_data);
127
126
 
128
127
  private: