grpc 1.48.0-x86_64-linux → 1.49.1-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 +125 -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 +102 -131
  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 +63 -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 +38 -17
  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 +101 -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 +42 -8
  520. data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
  521. data/src/core/lib/iomgr/resolve_address_windows.cc +44 -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.6/grpc_c.so +0 -0
  659. data/src/ruby/lib/grpc/2.7/grpc_c.so +0 -0
  660. data/src/ruby/lib/grpc/3.0/grpc_c.so +0 -0
  661. data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
  662. data/src/ruby/lib/grpc/grpc_c.so +0 -0
  663. data/src/ruby/lib/grpc/version.rb +1 -1
  664. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
  665. data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
  666. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
  667. data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
  668. data/third_party/upb/upb/arena.c +277 -0
  669. data/third_party/upb/upb/arena.h +225 -0
  670. data/third_party/upb/upb/array.c +114 -0
  671. data/third_party/upb/upb/array.h +83 -0
  672. data/third_party/upb/upb/collections.h +36 -0
  673. data/third_party/upb/upb/decode.c +161 -65
  674. data/third_party/upb/upb/decode.h +1 -0
  675. data/third_party/upb/upb/decode_fast.c +1 -1
  676. data/third_party/upb/upb/def.c +10 -2
  677. data/third_party/upb/upb/def.h +8 -1
  678. data/third_party/upb/upb/def.hpp +7 -4
  679. data/third_party/upb/upb/encode.c +29 -20
  680. data/third_party/upb/upb/encode.h +16 -6
  681. data/third_party/upb/upb/extension_registry.c +93 -0
  682. data/third_party/upb/upb/extension_registry.h +84 -0
  683. data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
  684. data/third_party/upb/upb/internal/table.h +385 -0
  685. data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
  686. data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
  687. data/third_party/upb/upb/json_decode.c +1512 -0
  688. data/third_party/upb/upb/json_decode.h +47 -0
  689. data/third_party/upb/upb/json_encode.c +7 -3
  690. data/third_party/upb/upb/json_encode.h +6 -3
  691. data/third_party/upb/upb/map.c +108 -0
  692. data/third_party/upb/upb/map.h +117 -0
  693. data/third_party/upb/upb/message_value.h +66 -0
  694. data/third_party/upb/upb/mini_table.c +1147 -0
  695. data/third_party/upb/upb/mini_table.h +189 -0
  696. data/third_party/upb/upb/mini_table.hpp +112 -0
  697. data/third_party/upb/upb/msg.c +2 -62
  698. data/third_party/upb/upb/msg.h +2 -45
  699. data/third_party/upb/upb/msg_internal.h +28 -22
  700. data/third_party/upb/upb/port_def.inc +2 -1
  701. data/third_party/upb/upb/port_undef.inc +1 -0
  702. data/third_party/upb/upb/reflection.c +2 -159
  703. data/third_party/upb/upb/reflection.h +2 -112
  704. data/third_party/upb/upb/status.c +86 -0
  705. data/third_party/upb/upb/status.h +66 -0
  706. data/third_party/upb/upb/table.c +2 -2
  707. data/third_party/upb/upb/table_internal.h +3 -352
  708. data/third_party/upb/upb/text_encode.c +3 -2
  709. data/third_party/upb/upb/upb.c +4 -290
  710. data/third_party/upb/upb/upb.h +7 -196
  711. metadata +89 -38
  712. data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
  713. data/src/core/lib/iomgr/error_internal.h +0 -66
  714. data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
  715. data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
  716. data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
  717. data/src/core/lib/iomgr/executor/threadpool.h +0 -150
  718. data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
  719. data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
  720. data/src/core/lib/promise/detail/switch.h +0 -1455
  721. data/src/ruby/lib/grpc/2.5/grpc_c.so +0 -0
@@ -413,16 +413,23 @@ void AwsExternalAccountCredentials::OnRetrieveSigningKeysInternal(
413
413
  }
414
414
  absl::string_view response_body(ctx_->response.body,
415
415
  ctx_->response.body_length);
416
- Json json = Json::Parse(response_body, &error);
417
- if (!GRPC_ERROR_IS_NONE(error) || json.type() != Json::Type::OBJECT) {
416
+ auto json = Json::Parse(response_body);
417
+ if (!json.ok()) {
418
418
  FinishRetrieveSubjectToken(
419
- "", GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
420
- "Invalid retrieve signing keys response.", &error, 1));
421
- GRPC_ERROR_UNREF(error);
419
+ "", GRPC_ERROR_CREATE_FROM_CPP_STRING(
420
+ absl::StrCat("Invalid retrieve signing keys response: ",
421
+ json.status().ToString())));
422
+ return;
423
+ }
424
+ if (json->type() != Json::Type::OBJECT) {
425
+ FinishRetrieveSubjectToken("",
426
+ GRPC_ERROR_CREATE_FROM_STATIC_STRING(
427
+ "Invalid retrieve signing keys response: "
428
+ "JSON type is not object"));
422
429
  return;
423
430
  }
424
- auto it = json.object_value().find("AccessKeyId");
425
- if (it != json.object_value().end() &&
431
+ auto it = json->object_value().find("AccessKeyId");
432
+ if (it != json->object_value().end() &&
426
433
  it->second.type() == Json::Type::STRING) {
427
434
  access_key_id_ = it->second.string_value();
428
435
  } else {
@@ -431,8 +438,8 @@ void AwsExternalAccountCredentials::OnRetrieveSigningKeysInternal(
431
438
  "Missing or invalid AccessKeyId in %s.", response_body)));
432
439
  return;
433
440
  }
434
- it = json.object_value().find("SecretAccessKey");
435
- if (it != json.object_value().end() &&
441
+ it = json->object_value().find("SecretAccessKey");
442
+ if (it != json->object_value().end() &&
436
443
  it->second.type() == Json::Type::STRING) {
437
444
  secret_access_key_ = it->second.string_value();
438
445
  } else {
@@ -441,8 +448,8 @@ void AwsExternalAccountCredentials::OnRetrieveSigningKeysInternal(
441
448
  "Missing or invalid SecretAccessKey in %s.", response_body)));
442
449
  return;
443
450
  }
444
- it = json.object_value().find("Token");
445
- if (it != json.object_value().end() &&
451
+ it = json->object_value().find("Token");
452
+ if (it != json->object_value().end() &&
446
453
  it->second.type() == Json::Type::STRING) {
447
454
  token_ = it->second.string_value();
448
455
  } else {
@@ -28,6 +28,7 @@
28
28
  #include "absl/status/status.h"
29
29
  #include "absl/status/statusor.h"
30
30
  #include "absl/strings/match.h"
31
+ #include "absl/strings/str_cat.h"
31
32
  #include "absl/strings/str_format.h"
32
33
  #include "absl/strings/str_join.h"
33
34
  #include "absl/strings/str_split.h"
@@ -393,18 +394,21 @@ void ExternalAccountCredentials::OnExchangeTokenInternal(
393
394
  }
394
395
 
395
396
  void ExternalAccountCredentials::ImpersenateServiceAccount() {
396
- grpc_error_handle error = GRPC_ERROR_NONE;
397
397
  absl::string_view response_body(ctx_->response.body,
398
398
  ctx_->response.body_length);
399
- Json json = Json::Parse(response_body, &error);
400
- if (!GRPC_ERROR_IS_NONE(error) || json.type() != Json::Type::OBJECT) {
401
- FinishTokenFetch(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
402
- "Invalid token exchange response.", &error, 1));
403
- GRPC_ERROR_UNREF(error);
399
+ auto json = Json::Parse(response_body);
400
+ if (!json.ok()) {
401
+ FinishTokenFetch(GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrCat(
402
+ "Invalid token exchange response: ", json.status().ToString())));
403
+ return;
404
+ }
405
+ if (json->type() != Json::Type::OBJECT) {
406
+ FinishTokenFetch(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
407
+ "Invalid token exchange response: JSON type is not object"));
404
408
  return;
405
409
  }
406
- auto it = json.object_value().find("access_token");
407
- if (it == json.object_value().end() ||
410
+ auto it = json->object_value().find("access_token");
411
+ if (it == json->object_value().end() ||
408
412
  it->second.type() != Json::Type::STRING) {
409
413
  FinishTokenFetch(GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrFormat(
410
414
  "Missing or invalid access_token in %s.", response_body)));
@@ -470,23 +474,29 @@ void ExternalAccountCredentials::OnImpersenateServiceAccountInternal(
470
474
  }
471
475
  absl::string_view response_body(ctx_->response.body,
472
476
  ctx_->response.body_length);
473
- Json json = Json::Parse(response_body, &error);
474
- if (!GRPC_ERROR_IS_NONE(error) || json.type() != Json::Type::OBJECT) {
475
- FinishTokenFetch(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
476
- "Invalid service account impersonation response.", &error, 1));
477
- GRPC_ERROR_UNREF(error);
477
+ auto json = Json::Parse(response_body);
478
+ if (!json.ok()) {
479
+ FinishTokenFetch(GRPC_ERROR_CREATE_FROM_CPP_STRING(
480
+ absl::StrCat("Invalid service account impersonation response: ",
481
+ json.status().ToString())));
478
482
  return;
479
483
  }
480
- auto it = json.object_value().find("accessToken");
481
- if (it == json.object_value().end() ||
484
+ if (json->type() != Json::Type::OBJECT) {
485
+ FinishTokenFetch(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
486
+ "Invalid service account impersonation response: "
487
+ "JSON type is not object"));
488
+ return;
489
+ }
490
+ auto it = json->object_value().find("accessToken");
491
+ if (it == json->object_value().end() ||
482
492
  it->second.type() != Json::Type::STRING) {
483
493
  FinishTokenFetch(GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrFormat(
484
494
  "Missing or invalid accessToken in %s.", response_body)));
485
495
  return;
486
496
  }
487
497
  std::string access_token = it->second.string_value();
488
- it = json.object_value().find("expireTime");
489
- if (it == json.object_value().end() ||
498
+ it = json->object_value().find("expireTime");
499
+ if (it == json->object_value().end() ||
490
500
  it->second.type() != Json::Type::STRING) {
491
501
  FinishTokenFetch(GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrFormat(
492
502
  "Missing or invalid expireTime in %s.", response_body)));
@@ -538,18 +548,17 @@ void ExternalAccountCredentials::FinishTokenFetch(grpc_error_handle error) {
538
548
 
539
549
  grpc_call_credentials* grpc_external_account_credentials_create(
540
550
  const char* json_string, const char* scopes_string) {
541
- grpc_error_handle error = GRPC_ERROR_NONE;
542
- grpc_core::Json json = grpc_core::Json::Parse(json_string, &error);
543
- if (!GRPC_ERROR_IS_NONE(error)) {
551
+ auto json = grpc_core::Json::Parse(json_string);
552
+ if (!json.ok()) {
544
553
  gpr_log(GPR_ERROR,
545
554
  "External account credentials creation failed. Error: %s.",
546
- grpc_error_std_string(error).c_str());
547
- GRPC_ERROR_UNREF(error);
555
+ json.status().ToString().c_str());
548
556
  return nullptr;
549
557
  }
550
558
  std::vector<std::string> scopes = absl::StrSplit(scopes_string, ',');
559
+ grpc_error_handle error = GRPC_ERROR_NONE;
551
560
  auto creds = grpc_core::ExternalAccountCredentials::Create(
552
- json, std::move(scopes), &error)
561
+ *json, std::move(scopes), &error)
553
562
  .release();
554
563
  if (!GRPC_ERROR_IS_NONE(error)) {
555
564
  gpr_log(GPR_ERROR,
@@ -20,6 +20,7 @@
20
20
  #include <map>
21
21
  #include <utility>
22
22
 
23
+ #include "absl/status/statusor.h"
23
24
  #include "absl/strings/string_view.h"
24
25
 
25
26
  #include <grpc/slice.h>
@@ -114,17 +115,15 @@ void FileExternalAccountCredentials::RetrieveSubjectToken(
114
115
  }
115
116
  absl::string_view content = StringViewFromSlice(content_slice.slice);
116
117
  if (format_type_ == "json") {
117
- Json content_json = Json::Parse(content, &error);
118
- if (!GRPC_ERROR_IS_NONE(error) ||
119
- content_json.type() != Json::Type::OBJECT) {
118
+ auto content_json = Json::Parse(content);
119
+ if (!content_json.ok() || content_json->type() != Json::Type::OBJECT) {
120
120
  cb("", GRPC_ERROR_CREATE_FROM_STATIC_STRING(
121
121
  "The content of the file is not a valid json object."));
122
- GRPC_ERROR_UNREF(error);
123
122
  return;
124
123
  }
125
124
  auto content_it =
126
- content_json.object_value().find(format_subject_token_field_name_);
127
- if (content_it == content_json.object_value().end()) {
125
+ content_json->object_value().find(format_subject_token_field_name_);
126
+ if (content_it == content_json->object_value().end()) {
128
127
  cb("", GRPC_ERROR_CREATE_FROM_STATIC_STRING(
129
128
  "Subject token field not present."));
130
129
  return;
@@ -202,18 +202,16 @@ void UrlExternalAccountCredentials::OnRetrieveSubjectTokenInternal(
202
202
  absl::string_view response_body(ctx_->response.body,
203
203
  ctx_->response.body_length);
204
204
  if (format_type_ == "json") {
205
- grpc_error_handle error = GRPC_ERROR_NONE;
206
- Json response_json = Json::Parse(response_body, &error);
207
- if (!GRPC_ERROR_IS_NONE(error) ||
208
- response_json.type() != Json::Type::OBJECT) {
205
+ auto response_json = Json::Parse(response_body);
206
+ if (!response_json.ok() || response_json->type() != Json::Type::OBJECT) {
209
207
  FinishRetrieveSubjectToken(
210
208
  "", GRPC_ERROR_CREATE_FROM_STATIC_STRING(
211
209
  "The format of response is not a valid json object."));
212
210
  return;
213
211
  }
214
212
  auto response_it =
215
- response_json.object_value().find(format_subject_token_field_name_);
216
- if (response_it == response_json.object_value().end()) {
213
+ response_json->object_value().find(format_subject_token_field_name_);
214
+ if (response_it == response_json->object_value().end()) {
217
215
  FinishRetrieveSubjectToken("", GRPC_ERROR_CREATE_FROM_STATIC_STRING(
218
216
  "Subject token field not present."));
219
217
  return;
@@ -28,7 +28,6 @@
28
28
 
29
29
  #include "src/core/lib/channel/channel_args.h"
30
30
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
31
- #include "src/core/lib/promise/poll.h"
32
31
  #include "src/core/lib/promise/promise.h"
33
32
  #include "src/core/lib/security/security_connector/fake/fake_security_connector.h"
34
33
  #include "src/core/lib/security/security_connector/security_connector.h"
@@ -43,10 +42,9 @@ class grpc_fake_channel_credentials final : public grpc_channel_credentials {
43
42
  grpc_core::RefCountedPtr<grpc_channel_security_connector>
44
43
  create_security_connector(
45
44
  grpc_core::RefCountedPtr<grpc_call_credentials> call_creds,
46
- const char* target, const grpc_channel_args* args,
47
- grpc_channel_args** /*new_args*/) override {
45
+ const char* target, grpc_core::ChannelArgs* args) override {
48
46
  return grpc_fake_channel_security_connector_create(
49
- this->Ref(), std::move(call_creds), target, args);
47
+ this->Ref(), std::move(call_creds), target, *args);
50
48
  }
51
49
 
52
50
  grpc_core::UniqueTypeName type() const override {
@@ -65,7 +63,7 @@ class grpc_fake_channel_credentials final : public grpc_channel_credentials {
65
63
  class grpc_fake_server_credentials final : public grpc_server_credentials {
66
64
  public:
67
65
  grpc_core::RefCountedPtr<grpc_server_security_connector>
68
- create_security_connector(const grpc_channel_args* /*args*/) override {
66
+ create_security_connector(const grpc_core::ChannelArgs& /*args*/) override {
69
67
  return grpc_fake_server_security_connector_create(this->Ref());
70
68
  }
71
69
 
@@ -91,13 +89,6 @@ grpc_arg grpc_fake_transport_expected_targets_arg(char* expected_targets) {
91
89
  expected_targets);
92
90
  }
93
91
 
94
- const char* grpc_fake_transport_get_expected_targets(
95
- const grpc_channel_args* args) {
96
- const grpc_arg* expected_target_arg =
97
- grpc_channel_args_find(args, GRPC_ARG_FAKE_SECURITY_EXPECTED_TARGETS);
98
- return grpc_channel_arg_get_string(expected_target_arg);
99
- }
100
-
101
92
  /* -- Metadata-only test credentials. -- */
102
93
 
103
94
  grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
@@ -63,10 +63,6 @@ grpc_server_credentials* grpc_fake_transport_security_server_credentials_create(
63
63
  * latter is present. */
64
64
  grpc_arg grpc_fake_transport_expected_targets_arg(char* expected_targets);
65
65
 
66
- /* Return the value associated with the expected targets channel arg or NULL */
67
- const char* grpc_fake_transport_get_expected_targets(
68
- const grpc_channel_args* args);
69
-
70
66
  /* -- Metadata-only Test credentials. -- */
71
67
 
72
68
  class grpc_md_only_test_credentials : public grpc_call_credentials {
@@ -30,9 +30,11 @@
30
30
  #include "absl/strings/match.h"
31
31
  #include "absl/strings/string_view.h"
32
32
  #include "absl/strings/strip.h"
33
+ #include "absl/types/optional.h"
33
34
 
34
35
  #include <grpc/grpc_security.h> // IWYU pragma: keep
35
36
  #include <grpc/grpc_security_constants.h>
37
+ #include <grpc/impl/codegen/grpc_types.h>
36
38
  #include <grpc/slice.h>
37
39
  #include <grpc/support/alloc.h>
38
40
  #include <grpc/support/log.h>
@@ -65,6 +67,7 @@
65
67
  #include "src/core/lib/slice/slice_internal.h"
66
68
  #include "src/core/lib/slice/slice_refcount.h"
67
69
  #include "src/core/lib/surface/api_trace.h"
70
+ #include "src/core/lib/transport/error_utils.h"
68
71
  #include "src/core/lib/uri/uri_parser.h"
69
72
 
70
73
  using grpc_core::Json;
@@ -103,11 +106,11 @@ struct metadata_server_detector {
103
106
 
104
107
  namespace {
105
108
 
106
- bool IsXdsNonCfeCluster(const char* xds_cluster) {
107
- if (xds_cluster == nullptr) return false;
108
- if (absl::StartsWith(xds_cluster, "google_cfe_")) return false;
109
- if (!absl::StartsWith(xds_cluster, "xdstp:")) return true;
110
- auto uri = grpc_core::URI::Parse(xds_cluster);
109
+ bool IsXdsNonCfeCluster(absl::optional<absl::string_view> xds_cluster) {
110
+ if (!xds_cluster.has_value()) return false;
111
+ if (absl::StartsWith(*xds_cluster, "google_cfe_")) return false;
112
+ if (!absl::StartsWith(*xds_cluster, "xdstp:")) return true;
113
+ auto uri = grpc_core::URI::Parse(*xds_cluster);
111
114
  if (!uri.ok()) return true; // Shouldn't happen, but assume ALTS.
112
115
  return uri->authority() != "traffic-director-c2p.xds.googleapis.com" ||
113
116
  !absl::StartsWith(uri->path(),
@@ -119,15 +122,14 @@ bool IsXdsNonCfeCluster(const char* xds_cluster) {
119
122
  grpc_core::RefCountedPtr<grpc_channel_security_connector>
120
123
  grpc_google_default_channel_credentials::create_security_connector(
121
124
  grpc_core::RefCountedPtr<grpc_call_credentials> call_creds,
122
- const char* target, const grpc_channel_args* args,
123
- grpc_channel_args** new_args) {
124
- const bool is_grpclb_load_balancer = grpc_channel_args_find_bool(
125
- args, GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER, false);
126
- const bool is_backend_from_grpclb_load_balancer = grpc_channel_args_find_bool(
127
- args, GRPC_ARG_ADDRESS_IS_BACKEND_FROM_GRPCLB_LOAD_BALANCER, false);
128
- const char* xds_cluster =
129
- grpc_channel_args_find_string(args, GRPC_ARG_XDS_CLUSTER_NAME);
130
- const bool is_xds_non_cfe_cluster = IsXdsNonCfeCluster(xds_cluster);
125
+ const char* target, grpc_core::ChannelArgs* args) {
126
+ const bool is_grpclb_load_balancer =
127
+ args->GetBool(GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER).value_or(false);
128
+ const bool is_backend_from_grpclb_load_balancer =
129
+ args->GetBool(GRPC_ARG_ADDRESS_IS_BACKEND_FROM_GRPCLB_LOAD_BALANCER)
130
+ .value_or(false);
131
+ const bool is_xds_non_cfe_cluster =
132
+ IsXdsNonCfeCluster(args->GetString(GRPC_ARG_XDS_CLUSTER_NAME));
131
133
  const bool use_alts = is_grpclb_load_balancer ||
132
134
  is_backend_from_grpclb_load_balancer ||
133
135
  is_xds_non_cfe_cluster;
@@ -137,22 +139,17 @@ grpc_google_default_channel_credentials::create_security_connector(
137
139
  return nullptr;
138
140
  }
139
141
  grpc_core::RefCountedPtr<grpc_channel_security_connector> sc =
140
- use_alts ? alts_creds_->create_security_connector(call_creds, target,
141
- args, new_args)
142
- : ssl_creds_->create_security_connector(call_creds, target, args,
143
- new_args);
142
+ use_alts
143
+ ? alts_creds_->create_security_connector(call_creds, target, args)
144
+ : ssl_creds_->create_security_connector(call_creds, target, args);
144
145
  /* grpclb-specific channel args are removed from the channel args set
145
146
  * to ensure backends and fallback adresses will have the same set of channel
146
147
  * args. By doing that, it guarantees the connections to backends will not be
147
148
  * torn down and re-connected when switching in and out of fallback mode.
148
149
  */
149
150
  if (use_alts) {
150
- static const char* args_to_remove[] = {
151
- GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER,
152
- GRPC_ARG_ADDRESS_IS_BACKEND_FROM_GRPCLB_LOAD_BALANCER,
153
- };
154
- *new_args = grpc_channel_args_copy_and_add_and_remove(
155
- args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove), nullptr, 0);
151
+ *args = args->Remove(GRPC_ARG_ADDRESS_IS_GRPCLB_LOAD_BALANCER)
152
+ .Remove(GRPC_ARG_ADDRESS_IS_BACKEND_FROM_GRPCLB_LOAD_BALANCER);
156
153
  }
157
154
  return sc;
158
155
  }
@@ -317,8 +314,14 @@ static grpc_error_handle create_default_creds_from_path(
317
314
  }
318
315
  error = grpc_load_file(creds_path.c_str(), 0, &creds_data);
319
316
  if (!GRPC_ERROR_IS_NONE(error)) goto end;
320
- json = Json::Parse(grpc_core::StringViewFromSlice(creds_data), &error);
321
- if (!GRPC_ERROR_IS_NONE(error)) goto end;
317
+ {
318
+ auto json_or = Json::Parse(grpc_core::StringViewFromSlice(creds_data));
319
+ if (!json_or.ok()) {
320
+ error = absl_status_to_grpc_error(json_or.status());
321
+ goto end;
322
+ }
323
+ json = std::move(*json_or);
324
+ }
322
325
  if (json.type() != Json::Type::OBJECT) {
323
326
  error = grpc_error_set_str(
324
327
  GRPC_ERROR_CREATE_FROM_STATIC_STRING("Failed to parse JSON"),
@@ -24,7 +24,6 @@
24
24
 
25
25
  #include <grpc/grpc.h>
26
26
  #include <grpc/grpc_security.h>
27
- #include <grpc/impl/codegen/grpc_types.h>
28
27
 
29
28
  #include "src/core/lib/channel/channel_args.h"
30
29
  #include "src/core/lib/gpr/useful.h"
@@ -62,8 +61,7 @@ class grpc_google_default_channel_credentials
62
61
  grpc_core::RefCountedPtr<grpc_channel_security_connector>
63
62
  create_security_connector(
64
63
  grpc_core::RefCountedPtr<grpc_call_credentials> call_creds,
65
- const char* target, const grpc_channel_args* args,
66
- grpc_channel_args** new_args) override;
64
+ const char* target, grpc_core::ChannelArgs* args) override;
67
65
 
68
66
  grpc_core::ChannelArgs update_arguments(grpc_core::ChannelArgs args) override;
69
67
 
@@ -32,7 +32,6 @@
32
32
  #include "src/core/lib/debug/trace.h"
33
33
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
34
34
  #include "src/core/lib/iomgr/exec_ctx.h"
35
- #include "src/core/lib/promise/poll.h"
36
35
  #include "src/core/lib/promise/promise.h"
37
36
  #include "src/core/lib/surface/api_trace.h"
38
37
  #include "src/core/lib/transport/metadata_batch.h"
@@ -24,6 +24,7 @@
24
24
 
25
25
  #include "absl/strings/string_view.h"
26
26
 
27
+ #include "src/core/lib/channel/channel_args.h"
27
28
  #include "src/core/lib/security/security_connector/insecure/insecure_security_connector.h"
28
29
 
29
30
  namespace grpc_core {
@@ -31,8 +32,7 @@ namespace grpc_core {
31
32
  RefCountedPtr<grpc_channel_security_connector>
32
33
  InsecureCredentials::create_security_connector(
33
34
  RefCountedPtr<grpc_call_credentials> request_metadata_creds,
34
- const char* /* target_name */, const grpc_channel_args* /* args */,
35
- grpc_channel_args** /* new_args */) {
35
+ const char* /* target_name */, ChannelArgs* /* args */) {
36
36
  return MakeRefCounted<InsecureChannelSecurityConnector>(
37
37
  Ref(), std::move(request_metadata_creds));
38
38
  }
@@ -50,7 +50,7 @@ int InsecureCredentials::cmp_impl(
50
50
 
51
51
  RefCountedPtr<grpc_server_security_connector>
52
52
  InsecureServerCredentials::create_security_connector(
53
- const grpc_channel_args* /* args */) {
53
+ const ChannelArgs& /* args */) {
54
54
  return MakeRefCounted<InsecureServerSecurityConnector>(Ref());
55
55
  }
56
56
 
@@ -23,8 +23,8 @@
23
23
 
24
24
  #include <grpc/grpc.h>
25
25
  #include <grpc/grpc_security.h>
26
- #include <grpc/impl/codegen/grpc_types.h>
27
26
 
27
+ #include "src/core/lib/channel/channel_args.h"
28
28
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
29
29
  #include "src/core/lib/gprpp/unique_type_name.h"
30
30
  #include "src/core/lib/security/credentials/credentials.h"
@@ -36,8 +36,7 @@ class InsecureCredentials final : public grpc_channel_credentials {
36
36
  public:
37
37
  RefCountedPtr<grpc_channel_security_connector> create_security_connector(
38
38
  RefCountedPtr<grpc_call_credentials> request_metadata_creds,
39
- const char* /* target_name */, const grpc_channel_args* /* args */,
40
- grpc_channel_args** /* new_args */) override;
39
+ const char* /* target_name */, ChannelArgs* /* args */) override;
41
40
 
42
41
  static UniqueTypeName Type();
43
42
 
@@ -50,7 +49,7 @@ class InsecureCredentials final : public grpc_channel_credentials {
50
49
  class InsecureServerCredentials final : public grpc_server_credentials {
51
50
  public:
52
51
  RefCountedPtr<grpc_server_security_connector> create_security_connector(
53
- const grpc_channel_args* /* args */) override;
52
+ const ChannelArgs& /* args */) override;
54
53
 
55
54
  static UniqueTypeName Type();
56
55
 
@@ -25,12 +25,16 @@
25
25
 
26
26
  #include <map>
27
27
  #include <string>
28
+ #include <utility>
28
29
 
29
30
  #include <openssl/bio.h>
30
31
  #include <openssl/evp.h>
31
32
  #include <openssl/pem.h>
32
33
  #include <openssl/rsa.h>
33
34
 
35
+ #include "absl/status/status.h"
36
+ #include "absl/status/statusor.h"
37
+
34
38
  #include <grpc/grpc_security.h>
35
39
  #include <grpc/support/alloc.h>
36
40
  #include <grpc/support/log.h>
@@ -125,9 +129,14 @@ end:
125
129
 
126
130
  grpc_auth_json_key grpc_auth_json_key_create_from_string(
127
131
  const char* json_string) {
128
- grpc_error_handle error = GRPC_ERROR_NONE;
129
- Json json = Json::Parse(json_string, &error);
130
- GRPC_LOG_IF_ERROR("JSON key parsing", error);
132
+ Json json;
133
+ auto json_or = Json::Parse(json_string);
134
+ if (!json_or.ok()) {
135
+ gpr_log(GPR_ERROR, "JSON key parsing error: %s",
136
+ json_or.status().ToString().c_str());
137
+ } else {
138
+ json = std::move(*json_or);
139
+ }
131
140
  return grpc_auth_json_key_create_from_json(json);
132
141
  }
133
142
 
@@ -37,10 +37,8 @@
37
37
 
38
38
  #include "src/core/lib/debug/trace.h"
39
39
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
40
- #include "src/core/lib/iomgr/error.h"
41
40
  #include "src/core/lib/iomgr/exec_ctx.h"
42
41
  #include "src/core/lib/json/json.h"
43
- #include "src/core/lib/promise/poll.h"
44
42
  #include "src/core/lib/promise/promise.h"
45
43
  #include "src/core/lib/security/credentials/call_creds_util.h"
46
44
  #include "src/core/lib/surface/api_trace.h"
@@ -141,14 +139,12 @@ grpc_service_account_jwt_access_credentials_create_from_auth_json_key(
141
139
  }
142
140
 
143
141
  static char* redact_private_key(const char* json_key) {
144
- grpc_error_handle error = GRPC_ERROR_NONE;
145
- Json json = Json::Parse(json_key, &error);
146
- if (!GRPC_ERROR_IS_NONE(error) || json.type() != Json::Type::OBJECT) {
147
- GRPC_ERROR_UNREF(error);
142
+ auto json = Json::Parse(json_key);
143
+ if (!json.ok() || json->type() != Json::Type::OBJECT) {
148
144
  return gpr_strdup("<Json failed to parse.>");
149
145
  }
150
- (*json.mutable_object())["private_key"] = "<redacted>";
151
- return gpr_strdup(json.Dump(/*indent=*/2).c_str());
146
+ (*json->mutable_object())["private_key"] = "<redacted>";
147
+ return gpr_strdup(json->Dump(/*indent=*/2).c_str());
152
148
  }
153
149
 
154
150
  grpc_call_credentials* grpc_service_account_jwt_access_credentials_create(
@@ -38,6 +38,7 @@
38
38
  #include <openssl/rsa.h>
39
39
  #include <openssl/x509.h>
40
40
 
41
+ #include "absl/status/status.h"
41
42
  #include "absl/status/statusor.h"
42
43
  #include "absl/strings/string_view.h"
43
44
 
@@ -111,16 +112,14 @@ static Json parse_json_part_from_jwt(const char* str, size_t len) {
111
112
  return Json(); // JSON null
112
113
  }
113
114
  absl::string_view string = grpc_core::StringViewFromSlice(slice);
114
- grpc_error_handle error = GRPC_ERROR_NONE;
115
- Json json = Json::Parse(string, &error);
116
- if (!GRPC_ERROR_IS_NONE(error)) {
115
+ auto json = Json::Parse(string);
116
+ grpc_slice_unref_internal(slice);
117
+ if (!json.ok()) {
117
118
  gpr_log(GPR_ERROR, "JSON parse error: %s",
118
- grpc_error_std_string(error).c_str());
119
- GRPC_ERROR_UNREF(error);
120
- json = Json(); // JSON null
119
+ json.status().ToString().c_str());
120
+ return Json(); // JSON null
121
121
  }
122
- grpc_slice_unref_internal(slice);
123
- return json;
122
+ return std::move(*json);
124
123
  }
125
124
 
126
125
  static const char* validate_string_field(const Json& json, const char* key) {
@@ -435,14 +434,13 @@ static Json json_from_http(const grpc_http_response* response) {
435
434
  response->status);
436
435
  return Json(); // JSON null
437
436
  }
438
- grpc_error_handle error = GRPC_ERROR_NONE;
439
- Json json = Json::Parse(
440
- absl::string_view(response->body, response->body_length), &error);
441
- if (!GRPC_ERROR_IS_NONE(error)) {
437
+ auto json =
438
+ Json::Parse(absl::string_view(response->body, response->body_length));
439
+ if (!json.ok()) {
442
440
  gpr_log(GPR_ERROR, "Invalid JSON found in response.");
443
441
  return Json(); // JSON null
444
442
  }
445
- return json;
443
+ return std::move(*json);
446
444
  }
447
445
 
448
446
  static const Json* find_property_by_name(const Json& json, const char* name) {
@@ -31,10 +31,9 @@
31
31
  grpc_core::RefCountedPtr<grpc_channel_security_connector>
32
32
  grpc_local_credentials::create_security_connector(
33
33
  grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
34
- const char* target_name, const grpc_channel_args* args,
35
- grpc_channel_args** /*new_args*/) {
34
+ const char* target_name, grpc_core::ChannelArgs* args) {
36
35
  return grpc_local_channel_security_connector_create(
37
- this->Ref(), std::move(request_metadata_creds), args, target_name);
36
+ this->Ref(), std::move(request_metadata_creds), *args, target_name);
38
37
  }
39
38
 
40
39
  grpc_core::UniqueTypeName grpc_local_credentials::type() const {
@@ -44,7 +43,7 @@ grpc_core::UniqueTypeName grpc_local_credentials::type() const {
44
43
 
45
44
  grpc_core::RefCountedPtr<grpc_server_security_connector>
46
45
  grpc_local_server_credentials::create_security_connector(
47
- const grpc_channel_args* /* args */) {
46
+ const grpc_core::ChannelArgs& /* args */) {
48
47
  return grpc_local_server_security_connector_create(this->Ref());
49
48
  }
50
49
 
@@ -24,8 +24,8 @@
24
24
  #include <grpc/grpc.h>
25
25
  #include <grpc/grpc_security.h>
26
26
  #include <grpc/grpc_security_constants.h>
27
- #include <grpc/impl/codegen/grpc_types.h>
28
27
 
28
+ #include "src/core/lib/channel/channel_args.h"
29
29
  #include "src/core/lib/gpr/useful.h"
30
30
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
31
31
  #include "src/core/lib/gprpp/unique_type_name.h"
@@ -41,8 +41,7 @@ class grpc_local_credentials final : public grpc_channel_credentials {
41
41
  grpc_core::RefCountedPtr<grpc_channel_security_connector>
42
42
  create_security_connector(
43
43
  grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds,
44
- const char* target_name, const grpc_channel_args* args,
45
- grpc_channel_args** new_args) override;
44
+ const char* target_name, grpc_core::ChannelArgs* args) override;
46
45
 
47
46
  grpc_core::UniqueTypeName type() const override;
48
47
 
@@ -65,7 +64,7 @@ class grpc_local_server_credentials final : public grpc_server_credentials {
65
64
  ~grpc_local_server_credentials() override = default;
66
65
 
67
66
  grpc_core::RefCountedPtr<grpc_server_security_connector>
68
- create_security_connector(const grpc_channel_args* /* args */) override;
67
+ create_security_connector(const grpc_core::ChannelArgs& /* args */) override;
69
68
 
70
69
  grpc_core::UniqueTypeName type() const override;
71
70