grpc 1.47.0 → 1.48.0.pre1

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

Potentially problematic release.


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

Files changed (574) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +105 -47
  3. data/include/grpc/compression.h +1 -1
  4. data/include/grpc/event_engine/event_engine.h +20 -11
  5. data/include/grpc/event_engine/slice_buffer.h +8 -2
  6. data/include/grpc/grpc.h +3 -3
  7. data/include/grpc/impl/codegen/compression_types.h +2 -1
  8. data/include/grpc/impl/codegen/connectivity_state.h +2 -1
  9. data/include/grpc/impl/codegen/gpr_types.h +2 -1
  10. data/include/grpc/impl/codegen/grpc_types.h +2 -1
  11. data/include/grpc/impl/codegen/port_platform.h +6 -3
  12. data/src/core/ext/filters/census/grpc_context.cc +3 -0
  13. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +17 -5
  14. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +16 -0
  15. data/src/core/ext/filters/channel_idle/idle_filter_state.h +2 -0
  16. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -1
  17. data/src/core/ext/filters/client_channel/channel_connectivity.cc +2 -2
  18. data/src/core/ext/filters/client_channel/client_channel.cc +51 -65
  19. data/src/core/ext/filters/client_channel/client_channel.h +19 -4
  20. data/src/core/ext/filters/client_channel/config_selector.h +1 -1
  21. data/src/core/ext/filters/client_channel/connector.h +1 -1
  22. data/src/core/ext/filters/client_channel/dynamic_filters.cc +6 -4
  23. data/src/core/ext/filters/client_channel/dynamic_filters.h +1 -1
  24. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +1 -1
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +2 -2
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +1 -0
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +73 -43
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
  29. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +0 -1
  30. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +33 -35
  31. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +106 -112
  32. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +91 -42
  33. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +177 -138
  34. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +4 -1
  35. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +47 -44
  36. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +118 -103
  37. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +83 -78
  38. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +57 -67
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +2 -2
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -7
  41. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +13 -17
  42. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +3 -3
  43. data/src/core/ext/filters/client_channel/lb_policy.h +0 -7
  44. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -5
  45. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -1
  46. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +3 -1
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +6 -6
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +5 -5
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +10 -5
  50. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +12 -3
  51. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +5 -5
  52. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +3 -4
  53. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -1
  54. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -0
  55. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +24 -15
  56. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +3 -1
  57. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -7
  58. data/src/core/ext/filters/client_channel/retry_filter.cc +35 -36
  59. data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
  60. data/src/core/ext/filters/client_channel/retry_service_config.cc +4 -4
  61. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -1
  62. data/src/core/ext/filters/client_channel/subchannel.cc +53 -50
  63. data/src/core/ext/filters/client_channel/subchannel.h +6 -22
  64. data/src/core/ext/filters/client_channel/subchannel_interface.h +10 -18
  65. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +12 -97
  66. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +5 -9
  67. data/src/core/ext/filters/deadline/deadline_filter.cc +12 -7
  68. data/src/core/ext/filters/deadline/deadline_filter.h +8 -1
  69. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +21 -2
  70. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +8 -3
  71. data/src/core/ext/filters/fault_injection/service_config_parser.cc +7 -4
  72. data/src/core/ext/filters/fault_injection/service_config_parser.h +17 -3
  73. data/src/core/ext/filters/http/client/http_client_filter.cc +16 -5
  74. data/src/core/ext/filters/http/client/http_client_filter.h +8 -1
  75. data/src/core/ext/filters/http/client_authority_filter.cc +11 -10
  76. data/src/core/ext/filters/http/client_authority_filter.h +5 -2
  77. data/src/core/ext/filters/http/http_filters_plugin.cc +9 -1
  78. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +64 -187
  79. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +1 -2
  80. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +42 -106
  81. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +1 -0
  82. data/src/core/ext/filters/http/server/http_server_filter.cc +16 -9
  83. data/src/core/ext/filters/http/server/http_server_filter.h +6 -1
  84. data/src/core/ext/filters/message_size/message_size_filter.cc +25 -15
  85. data/src/core/ext/filters/message_size/message_size_filter.h +13 -0
  86. data/src/core/ext/filters/rbac/rbac_filter.cc +14 -3
  87. data/src/core/ext/filters/rbac/rbac_filter.h +8 -0
  88. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +13 -2
  89. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +14 -2
  90. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +1 -0
  91. data/src/core/ext/filters/server_config_selector/server_config_selector.h +9 -0
  92. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +22 -2
  93. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +1 -0
  94. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -4
  95. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +15 -15
  96. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +196 -476
  97. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -1
  98. data/src/core/ext/transport/chttp2/transport/flow_control.cc +141 -261
  99. data/src/core/ext/transport/chttp2/transport/flow_control.h +176 -289
  100. data/src/core/ext/transport/chttp2/transport/frame_data.cc +57 -215
  101. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -36
  102. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +0 -41
  103. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +7 -12
  104. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +7 -6
  105. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +0 -2
  106. data/src/core/ext/transport/chttp2/transport/internal.h +9 -111
  107. data/src/core/ext/transport/chttp2/transport/parsing.cc +51 -38
  108. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +0 -4
  109. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -21
  110. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -1
  111. data/src/core/ext/transport/inproc/inproc_transport.cc +85 -81
  112. data/src/core/ext/transport/inproc/inproc_transport.h +3 -1
  113. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
  114. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +164 -0
  115. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
  116. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +94 -0
  117. data/src/core/ext/xds/certificate_provider_factory.h +6 -1
  118. data/src/core/ext/xds/certificate_provider_registry.cc +8 -8
  119. data/src/core/ext/xds/certificate_provider_registry.h +3 -1
  120. data/src/core/ext/xds/certificate_provider_store.cc +2 -0
  121. data/src/core/ext/xds/certificate_provider_store.h +9 -0
  122. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +9 -0
  123. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +8 -0
  124. data/src/core/ext/xds/upb_utils.h +1 -2
  125. data/src/core/ext/xds/xds_api.cc +16 -18
  126. data/src/core/ext/xds/xds_api.h +12 -5
  127. data/src/core/ext/xds/xds_bootstrap.cc +37 -24
  128. data/src/core/ext/xds/xds_bootstrap.h +9 -11
  129. data/src/core/ext/xds/xds_certificate_provider.cc +12 -3
  130. data/src/core/ext/xds/xds_certificate_provider.h +16 -1
  131. data/src/core/ext/xds/xds_channel_stack_modifier.cc +9 -0
  132. data/src/core/ext/xds/xds_channel_stack_modifier.h +5 -1
  133. data/src/core/ext/xds/xds_client.cc +71 -22
  134. data/src/core/ext/xds/xds_client.h +17 -3
  135. data/src/core/ext/xds/xds_client_stats.cc +3 -4
  136. data/src/core/ext/xds/xds_client_stats.h +4 -3
  137. data/src/core/ext/xds/xds_cluster.cc +21 -10
  138. data/src/core/ext/xds/xds_cluster.h +9 -1
  139. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +16 -7
  140. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -8
  141. data/src/core/ext/xds/xds_common_types.cc +36 -22
  142. data/src/core/ext/xds/xds_common_types.h +12 -4
  143. data/src/core/ext/xds/xds_endpoint.cc +25 -15
  144. data/src/core/ext/xds/xds_endpoint.h +13 -5
  145. data/src/core/ext/xds/xds_http_fault_filter.cc +7 -5
  146. data/src/core/ext/xds/xds_http_fault_filter.h +3 -1
  147. data/src/core/ext/xds/xds_http_filters.cc +7 -0
  148. data/src/core/ext/xds/xds_http_filters.h +3 -3
  149. data/src/core/ext/xds/xds_http_rbac_filter.cc +16 -0
  150. data/src/core/ext/xds/xds_http_rbac_filter.h +7 -0
  151. data/src/core/ext/xds/xds_lb_policy_registry.cc +291 -0
  152. data/src/core/ext/xds/xds_lb_policy_registry.h +72 -0
  153. data/src/core/ext/xds/xds_listener.cc +51 -33
  154. data/src/core/ext/xds/xds_listener.h +10 -1
  155. data/src/core/ext/xds/xds_resource_type.h +3 -3
  156. data/src/core/ext/xds/xds_resource_type_impl.h +7 -3
  157. data/src/core/ext/xds/xds_route_config.cc +56 -28
  158. data/src/core/ext/xds/xds_route_config.h +11 -2
  159. data/src/core/ext/xds/xds_routing.cc +16 -0
  160. data/src/core/ext/xds/xds_routing.h +7 -2
  161. data/src/core/ext/xds/xds_server_config_fetcher.cc +54 -6
  162. data/src/core/lib/address_utils/parse_address.cc +5 -8
  163. data/src/core/lib/address_utils/parse_address.h +3 -2
  164. data/src/core/lib/address_utils/sockaddr_utils.cc +8 -7
  165. data/src/core/lib/address_utils/sockaddr_utils.h +2 -0
  166. data/src/core/lib/avl/avl.h +3 -3
  167. data/src/core/lib/backoff/backoff.cc +1 -1
  168. data/src/core/lib/backoff/backoff.h +1 -1
  169. data/src/core/lib/channel/call_tracer.h +3 -3
  170. data/src/core/lib/channel/channel_args.h +1 -0
  171. data/src/core/lib/channel/channel_args_preconditioning.cc +1 -0
  172. data/src/core/lib/channel/channel_fwd.h +26 -0
  173. data/src/core/lib/channel/channel_stack.cc +4 -4
  174. data/src/core/lib/channel/channel_stack.h +1 -11
  175. data/src/core/lib/channel/channel_stack_builder.h +2 -5
  176. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  177. data/src/core/lib/channel/channel_stack_builder_impl.h +1 -0
  178. data/src/core/lib/channel/channelz.cc +2 -1
  179. data/src/core/lib/channel/channelz.h +2 -3
  180. data/src/core/lib/channel/channelz_registry.cc +4 -5
  181. data/src/core/lib/channel/connected_channel.cc +1 -0
  182. data/src/core/lib/channel/connected_channel.h +1 -0
  183. data/src/core/lib/channel/promise_based_filter.cc +11 -5
  184. data/src/core/lib/channel/promise_based_filter.h +2 -0
  185. data/src/core/lib/compression/compression.cc +6 -1
  186. data/src/core/lib/compression/compression_internal.cc +3 -6
  187. data/src/core/lib/compression/compression_internal.h +3 -2
  188. data/src/core/lib/compression/message_compress.cc +3 -1
  189. data/src/core/lib/compression/message_compress.h +2 -3
  190. data/src/core/lib/debug/stats.cc +9 -9
  191. data/src/core/lib/debug/stats.h +2 -1
  192. data/src/core/lib/debug/stats_data.cc +2 -1
  193. data/src/core/lib/debug/stats_data.h +0 -4
  194. data/src/core/lib/debug/trace.h +13 -12
  195. data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -1
  196. data/src/core/lib/event_engine/event_engine.cc +24 -19
  197. data/src/core/lib/event_engine/event_engine_factory.h +2 -2
  198. data/src/core/lib/event_engine/{iomgr_engine.cc → iomgr_engine/iomgr_engine.cc} +44 -91
  199. data/src/core/lib/event_engine/{iomgr_engine.h → iomgr_engine/iomgr_engine.h} +20 -16
  200. data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +123 -0
  201. data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +70 -0
  202. data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.cc +62 -0
  203. data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.h +81 -0
  204. data/src/core/lib/event_engine/iomgr_engine/timer.cc +312 -0
  205. data/src/core/lib/event_engine/iomgr_engine/timer.h +193 -0
  206. data/src/core/lib/event_engine/iomgr_engine/timer_heap.cc +107 -0
  207. data/src/core/lib/event_engine/iomgr_engine/timer_heap.h +56 -0
  208. data/src/core/lib/event_engine/iomgr_engine/timer_manager.cc +254 -0
  209. data/src/core/lib/event_engine/iomgr_engine/timer_manager.h +111 -0
  210. data/src/core/lib/event_engine/promise.h +69 -0
  211. data/src/core/lib/gpr/time_posix.cc +6 -9
  212. data/src/core/lib/gpr/time_windows.cc +10 -7
  213. data/src/core/lib/gprpp/manual_constructor.h +0 -67
  214. data/src/core/lib/gprpp/status_helper.cc +44 -30
  215. data/src/core/lib/gprpp/time.cc +8 -0
  216. data/src/core/lib/gprpp/time.h +4 -0
  217. data/src/core/lib/http/format_request.cc +5 -4
  218. data/src/core/lib/http/format_request.h +1 -1
  219. data/src/core/lib/http/httpcli.cc +18 -12
  220. data/src/core/lib/http/httpcli.h +19 -3
  221. data/src/core/lib/http/httpcli_security_connector.cc +16 -4
  222. data/src/core/lib/http/httpcli_ssl_credentials.h +3 -1
  223. data/src/core/lib/http/parser.cc +6 -7
  224. data/src/core/lib/http/parser.h +3 -0
  225. data/src/core/lib/iomgr/call_combiner.cc +2 -2
  226. data/src/core/lib/iomgr/endpoint.h +1 -1
  227. data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -2
  228. data/src/core/lib/iomgr/error.cc +11 -9
  229. data/src/core/lib/iomgr/error.h +9 -5
  230. data/src/core/lib/iomgr/ev_epoll1_linux.cc +57 -18
  231. data/src/core/lib/iomgr/ev_epoll1_linux.h +1 -1
  232. data/src/core/lib/iomgr/ev_poll_posix.cc +77 -52
  233. data/src/core/lib/iomgr/ev_poll_posix.h +2 -2
  234. data/src/core/lib/iomgr/ev_posix.cc +54 -92
  235. data/src/core/lib/iomgr/ev_posix.h +5 -3
  236. data/src/core/lib/iomgr/fork_posix.cc +1 -1
  237. data/src/core/lib/iomgr/iomgr.cc +7 -0
  238. data/src/core/lib/iomgr/iomgr_posix.cc +1 -0
  239. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -0
  240. data/src/core/lib/iomgr/load_file.cc +1 -1
  241. data/src/core/lib/iomgr/resolve_address_posix.cc +1 -1
  242. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  243. data/src/core/lib/iomgr/tcp_client.cc +12 -7
  244. data/src/core/lib/iomgr/tcp_client.h +24 -13
  245. data/src/core/lib/iomgr/tcp_client_cfstream.cc +15 -9
  246. data/src/core/lib/iomgr/tcp_client_posix.cc +143 -25
  247. data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
  248. data/src/core/lib/iomgr/tcp_client_windows.cc +14 -10
  249. data/src/core/lib/iomgr/tcp_posix.cc +91 -29
  250. data/src/core/lib/iomgr/tcp_server_posix.cc +7 -7
  251. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +12 -12
  252. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +2 -2
  253. data/src/core/lib/iomgr/tcp_server_windows.cc +7 -7
  254. data/src/core/lib/iomgr/tcp_windows.cc +5 -5
  255. data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -2
  256. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
  257. data/src/core/lib/iomgr/wakeup_fd_posix.cc +15 -12
  258. data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -2
  259. data/src/core/lib/iomgr/work_serializer.h +2 -3
  260. data/src/core/lib/matchers/matchers.cc +6 -3
  261. data/src/core/lib/matchers/matchers.h +2 -0
  262. data/src/core/lib/promise/activity.cc +0 -1
  263. data/src/core/lib/promise/activity.h +7 -13
  264. data/src/core/lib/promise/loop.h +1 -0
  265. data/src/core/lib/promise/promise.h +1 -0
  266. data/src/core/lib/promise/sleep.cc +36 -31
  267. data/src/core/lib/promise/sleep.h +25 -25
  268. data/src/core/lib/resolver/resolver.cc +5 -0
  269. data/src/core/lib/resolver/resolver.h +3 -0
  270. data/src/core/lib/resolver/resolver_factory.h +5 -2
  271. data/src/core/lib/resolver/resolver_registry.cc +2 -9
  272. data/src/core/lib/resolver/resolver_registry.h +12 -1
  273. data/src/core/lib/resolver/server_address.cc +8 -0
  274. data/src/core/lib/resolver/server_address.h +9 -2
  275. data/src/core/lib/resource_quota/memory_quota.cc +18 -60
  276. data/src/core/lib/resource_quota/memory_quota.h +11 -25
  277. data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
  278. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +4 -0
  279. data/src/core/lib/security/authorization/evaluate_args.cc +9 -3
  280. data/src/core/lib/security/authorization/evaluate_args.h +6 -3
  281. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +6 -0
  282. data/src/core/lib/security/authorization/grpc_authorization_engine.h +7 -0
  283. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +12 -0
  284. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +12 -1
  285. data/src/core/lib/security/authorization/matchers.cc +9 -1
  286. data/src/core/lib/security/authorization/matchers.h +7 -0
  287. data/src/core/lib/security/authorization/rbac_policy.cc +5 -0
  288. data/src/core/lib/security/authorization/rbac_policy.h +7 -0
  289. data/src/core/lib/security/context/security_context.cc +5 -2
  290. data/src/core/lib/security/context/security_context.h +14 -2
  291. data/src/core/lib/security/credentials/alts/alts_credentials.cc +4 -2
  292. data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -1
  293. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +1 -3
  294. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -4
  295. data/src/core/lib/security/credentials/call_creds_util.cc +8 -0
  296. data/src/core/lib/security/credentials/call_creds_util.h +1 -0
  297. data/src/core/lib/security/credentials/channel_creds_registry.h +6 -1
  298. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +10 -0
  299. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  300. data/src/core/lib/security/credentials/composite/composite_credentials.h +16 -2
  301. data/src/core/lib/security/credentials/credentials.cc +4 -8
  302. data/src/core/lib/security/credentials/credentials.h +10 -8
  303. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +28 -10
  304. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +10 -0
  305. data/src/core/lib/security/credentials/external/aws_request_signer.cc +9 -0
  306. data/src/core/lib/security/credentials/external/external_account_credentials.cc +24 -9
  307. data/src/core/lib/security/credentials/external/external_account_credentials.h +11 -0
  308. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +12 -4
  309. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -0
  310. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +20 -4
  311. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -0
  312. data/src/core/lib/security/credentials/fake/fake_credentials.cc +8 -6
  313. data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -1
  314. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -0
  315. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -10
  316. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +10 -1
  317. data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -3
  318. data/src/core/lib/security/credentials/iam/iam_credentials.h +10 -0
  319. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +4 -0
  320. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +5 -0
  321. data/src/core/lib/security/credentials/jwt/json_token.cc +5 -2
  322. data/src/core/lib/security/credentials/jwt/json_token.h +2 -2
  323. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +11 -5
  324. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +14 -0
  325. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +28 -3
  326. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -2
  327. data/src/core/lib/security/credentials/local/local_credentials.cc +4 -3
  328. data/src/core/lib/security/credentials/local/local_credentials.h +7 -0
  329. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +26 -13
  330. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +20 -0
  331. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +8 -7
  332. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +24 -0
  333. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -0
  334. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +13 -0
  335. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +6 -6
  336. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -3
  337. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +29 -10
  338. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +9 -4
  339. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +9 -2
  340. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +6 -7
  341. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -5
  342. data/src/core/lib/security/credentials/tls/tls_credentials.cc +7 -2
  343. data/src/core/lib/security/credentials/tls/tls_credentials.h +5 -1
  344. data/src/core/lib/security/credentials/tls/tls_utils.cc +2 -0
  345. data/src/core/lib/security/credentials/tls/tls_utils.h +1 -1
  346. data/src/core/lib/security/credentials/xds/xds_credentials.cc +8 -1
  347. data/src/core/lib/security/credentials/xds/xds_credentials.h +14 -0
  348. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +22 -2
  349. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +6 -3
  350. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +17 -1
  351. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
  352. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +9 -0
  353. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +17 -2
  354. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +5 -3
  355. data/src/core/lib/security/security_connector/{load_system_roots_linux.cc → load_system_roots_supported.cc} +27 -19
  356. data/src/core/lib/security/security_connector/{load_system_roots_linux.h → load_system_roots_supported.h} +5 -5
  357. data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -3
  358. data/src/core/lib/security/security_connector/local/local_security_connector.h +6 -2
  359. data/src/core/lib/security/security_connector/security_connector.cc +20 -18
  360. data/src/core/lib/security/security_connector/security_connector.h +18 -6
  361. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +18 -6
  362. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -2
  363. data/src/core/lib/security/security_connector/ssl_utils.cc +12 -2
  364. data/src/core/lib/security/security_connector/ssl_utils.h +10 -7
  365. data/src/core/lib/security/security_connector/ssl_utils_config.h +1 -1
  366. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +21 -13
  367. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +23 -3
  368. data/src/core/lib/security/transport/auth_filters.h +7 -0
  369. data/src/core/lib/security/transport/client_auth_filter.cc +18 -9
  370. data/src/core/lib/security/transport/secure_endpoint.cc +63 -13
  371. data/src/core/lib/security/transport/secure_endpoint.h +4 -3
  372. data/src/core/lib/security/transport/security_handshaker.cc +44 -11
  373. data/src/core/lib/security/transport/security_handshaker.h +4 -0
  374. data/src/core/lib/security/transport/server_auth_filter.cc +26 -4
  375. data/src/core/lib/security/util/json_util.cc +3 -2
  376. data/src/core/lib/security/util/json_util.h +0 -2
  377. data/src/core/lib/service_config/service_config_call_data.h +2 -1
  378. data/src/core/lib/service_config/service_config_impl.cc +6 -6
  379. data/src/core/lib/service_config/service_config_impl.h +1 -3
  380. data/src/core/lib/service_config/service_config_parser.cc +2 -4
  381. data/src/core/lib/slice/slice_buffer.cc +30 -1
  382. data/src/core/lib/slice/slice_buffer.h +37 -6
  383. data/src/core/lib/slice/slice_string_helpers.cc +0 -20
  384. data/src/core/lib/slice/slice_string_helpers.h +0 -4
  385. data/src/core/lib/surface/call.cc +53 -115
  386. data/src/core/lib/surface/call.h +5 -1
  387. data/src/core/lib/surface/channel.h +2 -0
  388. data/src/core/lib/surface/channel_ping.cc +1 -1
  389. data/src/core/lib/surface/completion_queue.cc +15 -14
  390. data/src/core/lib/surface/completion_queue.h +2 -1
  391. data/src/core/lib/surface/init.cc +0 -1
  392. data/src/core/lib/surface/lame_client.cc +1 -1
  393. data/src/core/lib/surface/lame_client.h +1 -1
  394. data/src/core/lib/surface/server.cc +14 -8
  395. data/src/core/lib/surface/server.h +4 -1
  396. data/src/core/lib/surface/validate_metadata.cc +1 -1
  397. data/src/core/lib/surface/version.cc +2 -2
  398. data/src/core/lib/transport/error_utils.cc +13 -7
  399. data/src/core/lib/transport/handshaker.cc +3 -3
  400. data/src/core/lib/transport/http_connect_handshaker.cc +4 -4
  401. data/src/core/lib/transport/tcp_connect_handshaker.cc +2 -2
  402. data/src/core/lib/transport/transport.cc +0 -3
  403. data/src/core/lib/transport/transport.h +20 -14
  404. data/src/core/lib/transport/transport_fwd.h +20 -0
  405. data/src/core/lib/transport/transport_impl.h +1 -0
  406. data/src/core/lib/transport/transport_op_string.cc +9 -9
  407. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
  408. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +9 -1
  409. data/src/core/tsi/fake_transport_security.cc +13 -1
  410. data/src/core/tsi/fake_transport_security.h +6 -0
  411. data/src/core/tsi/ssl_transport_security.cc +1 -1
  412. data/src/core/tsi/transport_security_grpc.cc +3 -2
  413. data/src/core/tsi/transport_security_grpc.h +5 -2
  414. data/src/ruby/ext/grpc/ext-export-truffleruby.clang +2 -0
  415. data/src/ruby/ext/grpc/ext-export-truffleruby.gcc +7 -0
  416. data/src/ruby/ext/grpc/ext-export.clang +1 -0
  417. data/src/ruby/ext/grpc/ext-export.gcc +1 -0
  418. data/src/ruby/ext/grpc/extconf.rb +49 -18
  419. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  420. data/src/ruby/lib/grpc/errors.rb +1 -1
  421. data/src/ruby/lib/grpc/version.rb +1 -1
  422. data/src/ruby/spec/generic/client_stub_spec.rb +23 -23
  423. data/third_party/abseil-cpp/absl/algorithm/container.h +1 -1
  424. data/third_party/abseil-cpp/absl/base/attributes.h +49 -22
  425. data/third_party/abseil-cpp/absl/base/casts.h +61 -68
  426. data/third_party/abseil-cpp/absl/base/config.h +182 -41
  427. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
  428. data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
  429. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +3 -3
  430. data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
  431. data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +2 -0
  432. data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
  433. data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
  434. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +29 -22
  435. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +13 -12
  436. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -0
  437. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +8 -0
  438. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
  439. data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
  440. data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
  441. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +0 -1
  442. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
  443. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
  444. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -3
  445. data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
  446. data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
  447. data/third_party/abseil-cpp/absl/base/optimization.h +19 -11
  448. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  449. data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
  450. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -0
  451. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
  452. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +15 -9
  453. data/third_party/abseil-cpp/absl/container/inlined_vector.h +20 -9
  454. data/third_party/abseil-cpp/absl/container/internal/common.h +6 -5
  455. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -28
  456. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +68 -20
  457. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +29 -11
  458. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +59 -38
  459. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +4 -0
  460. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +515 -184
  461. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
  462. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +4 -0
  463. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
  464. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +8 -3
  465. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
  466. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +2 -1
  467. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
  468. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +20 -18
  469. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
  470. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +15 -2
  471. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
  472. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +46 -7
  473. data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
  474. data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
  475. data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
  476. data/third_party/abseil-cpp/absl/hash/internal/hash.h +218 -23
  477. data/third_party/abseil-cpp/absl/numeric/bits.h +2 -1
  478. data/third_party/abseil-cpp/absl/numeric/int128.cc +4 -2
  479. data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
  480. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +21 -6
  481. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +4 -4
  482. data/third_party/abseil-cpp/absl/random/distributions.h +3 -3
  483. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -0
  484. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
  485. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +2 -2
  486. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +59 -48
  487. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +1 -1
  488. data/third_party/abseil-cpp/absl/random/internal/randen.h +5 -11
  489. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -2
  490. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +48 -23
  491. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +24 -26
  492. data/third_party/abseil-cpp/absl/random/internal/traits.h +53 -5
  493. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +5 -5
  494. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +33 -48
  495. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +9 -10
  496. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +7 -4
  497. data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -0
  498. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -2
  499. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
  500. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +4 -3
  501. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +17 -0
  502. data/third_party/abseil-cpp/absl/status/status.cc +174 -2
  503. data/third_party/abseil-cpp/absl/status/status.h +22 -12
  504. data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
  505. data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
  506. data/third_party/abseil-cpp/absl/strings/cord.cc +194 -913
  507. data/third_party/abseil-cpp/absl/strings/cord.h +202 -81
  508. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
  509. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
  510. data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
  511. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
  512. data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
  513. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +20 -32
  514. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +123 -88
  515. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +149 -49
  516. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +44 -59
  517. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +3 -1
  518. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
  519. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
  520. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
  521. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
  522. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
  523. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
  524. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
  525. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
  526. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +11 -38
  527. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +1 -0
  528. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
  529. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
  530. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
  531. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +1 -1
  532. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -1
  533. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +38 -7
  534. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -2
  535. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +4 -5
  536. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +5 -2
  537. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
  538. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
  539. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
  540. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
  541. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
  542. data/third_party/abseil-cpp/absl/strings/numbers.cc +8 -8
  543. data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
  544. data/third_party/abseil-cpp/absl/strings/str_cat.h +20 -13
  545. data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
  546. data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
  547. data/third_party/abseil-cpp/absl/strings/string_view.cc +2 -13
  548. data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
  549. data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
  550. data/third_party/abseil-cpp/absl/strings/substitute.h +10 -2
  551. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
  552. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
  553. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
  554. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
  555. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -25
  556. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
  557. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -40
  558. data/third_party/abseil-cpp/absl/synchronization/mutex.h +17 -9
  559. data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
  560. data/third_party/abseil-cpp/absl/time/duration.cc +5 -4
  561. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
  562. data/third_party/abseil-cpp/absl/time/time.h +16 -12
  563. data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
  564. data/third_party/abseil-cpp/absl/types/internal/variant.h +3 -3
  565. data/third_party/abseil-cpp/absl/types/optional.h +17 -14
  566. data/third_party/abseil-cpp/absl/types/span.h +2 -1
  567. metadata +39 -15
  568. data/src/core/lib/slice/slice_split.cc +0 -103
  569. data/src/core/lib/slice/slice_split.h +0 -36
  570. data/src/core/lib/transport/byte_stream.cc +0 -165
  571. data/src/core/lib/transport/byte_stream.h +0 -170
  572. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +0 -140
  573. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +0 -100
  574. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
@@ -0,0 +1,94 @@
1
+ /* This file was generated by upbc (the upb compiler) from the input
2
+ * file:
3
+ *
4
+ * envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.proto
5
+ *
6
+ * Do not edit -- your changes will be discarded when the file is
7
+ * regenerated. */
8
+
9
+ #ifndef ENVOY_EXTENSIONS_LOAD_BALANCING_POLICIES_WRR_LOCALITY_V3_WRR_LOCALITY_PROTO_UPB_H_
10
+ #define ENVOY_EXTENSIONS_LOAD_BALANCING_POLICIES_WRR_LOCALITY_V3_WRR_LOCALITY_PROTO_UPB_H_
11
+
12
+ #include "upb/msg_internal.h"
13
+ #include "upb/decode.h"
14
+ #include "upb/decode_fast.h"
15
+ #include "upb/encode.h"
16
+
17
+ #include "upb/port_def.inc"
18
+
19
+ #ifdef __cplusplus
20
+ extern "C" {
21
+ #endif
22
+
23
+ struct envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality;
24
+ typedef struct envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality;
25
+ extern const upb_MiniTable envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_msginit;
26
+ struct envoy_config_cluster_v3_LoadBalancingPolicy;
27
+ extern const upb_MiniTable envoy_config_cluster_v3_LoadBalancingPolicy_msginit;
28
+
29
+
30
+
31
+ /* envoy.extensions.load_balancing_policies.wrr_locality.v3.WrrLocality */
32
+
33
+ UPB_INLINE envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_new(upb_Arena* arena) {
34
+ return (envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality*)_upb_Message_New(&envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_msginit, arena);
35
+ }
36
+ UPB_INLINE envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_parse(const char* buf, size_t size, upb_Arena* arena) {
37
+ envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* ret = envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_new(arena);
38
+ if (!ret) return NULL;
39
+ if (upb_Decode(buf, size, ret, &envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_msginit, NULL, 0, arena) != kUpb_DecodeStatus_Ok) {
40
+ return NULL;
41
+ }
42
+ return ret;
43
+ }
44
+ UPB_INLINE envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_parse_ex(const char* buf, size_t size,
45
+ const upb_ExtensionRegistry* extreg,
46
+ int options, upb_Arena* arena) {
47
+ envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* ret = envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_new(arena);
48
+ if (!ret) return NULL;
49
+ if (upb_Decode(buf, size, ret, &envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_msginit, extreg, options, arena) !=
50
+ kUpb_DecodeStatus_Ok) {
51
+ return NULL;
52
+ }
53
+ return ret;
54
+ }
55
+ UPB_INLINE char* envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_serialize(const envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* msg, upb_Arena* arena, size_t* len) {
56
+ return upb_Encode(msg, &envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_msginit, 0, arena, len);
57
+ }
58
+ UPB_INLINE char* envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_serialize_ex(const envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* msg, int options,
59
+ upb_Arena* arena, size_t* len) {
60
+ return upb_Encode(msg, &envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_msginit, options, arena, len);
61
+ }
62
+ UPB_INLINE bool envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_has_endpoint_picking_policy(const envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* msg) {
63
+ return _upb_hasbit(msg, 1);
64
+ }
65
+ UPB_INLINE void envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_clear_endpoint_picking_policy(const envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* msg) {
66
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const upb_Message*) = NULL;
67
+ }
68
+ UPB_INLINE const struct envoy_config_cluster_v3_LoadBalancingPolicy* envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_endpoint_picking_policy(const envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* msg) {
69
+ return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct envoy_config_cluster_v3_LoadBalancingPolicy*);
70
+ }
71
+
72
+ UPB_INLINE void envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_set_endpoint_picking_policy(envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality *msg, struct envoy_config_cluster_v3_LoadBalancingPolicy* value) {
73
+ _upb_sethas(msg, 1);
74
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct envoy_config_cluster_v3_LoadBalancingPolicy*) = value;
75
+ }
76
+ UPB_INLINE struct envoy_config_cluster_v3_LoadBalancingPolicy* envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_mutable_endpoint_picking_policy(envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality* msg, upb_Arena* arena) {
77
+ struct envoy_config_cluster_v3_LoadBalancingPolicy* sub = (struct envoy_config_cluster_v3_LoadBalancingPolicy*)envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_endpoint_picking_policy(msg);
78
+ if (sub == NULL) {
79
+ sub = (struct envoy_config_cluster_v3_LoadBalancingPolicy*)_upb_Message_New(&envoy_config_cluster_v3_LoadBalancingPolicy_msginit, arena);
80
+ if (!sub) return NULL;
81
+ envoy_extensions_load_balancing_policies_wrr_locality_v3_WrrLocality_set_endpoint_picking_policy(msg, sub);
82
+ }
83
+ return sub;
84
+ }
85
+
86
+ extern const upb_MiniTable_File envoy_extensions_load_balancing_policies_wrr_locality_v3_wrr_locality_proto_upb_file_layout;
87
+
88
+ #ifdef __cplusplus
89
+ } /* extern "C" */
90
+ #endif
91
+
92
+ #include "upb/port_undef.inc"
93
+
94
+ #endif /* ENVOY_EXTENSIONS_LOAD_BALANCING_POLICIES_WRR_LOCALITY_V3_WRR_LOCALITY_PROTO_UPB_H_ */
@@ -21,9 +21,14 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include <string>
25
+
26
+ #include <grpc/grpc_security.h>
27
+
28
+ #include "src/core/lib/gprpp/ref_counted.h"
29
+ #include "src/core/lib/gprpp/ref_counted_ptr.h"
24
30
  #include "src/core/lib/iomgr/error.h"
25
31
  #include "src/core/lib/json/json.h"
26
- #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h"
27
32
 
28
33
  namespace grpc_core {
29
34
 
@@ -20,7 +20,13 @@
20
20
 
21
21
  #include "src/core/ext/xds/certificate_provider_registry.h"
22
22
 
23
- #include "absl/container/inlined_vector.h"
23
+ #include <string.h>
24
+
25
+ #include <algorithm>
26
+ #include <utility>
27
+ #include <vector>
28
+
29
+ #include <grpc/support/log.h>
24
30
 
25
31
  namespace grpc_core {
26
32
 
@@ -49,13 +55,7 @@ class RegistryState {
49
55
  }
50
56
 
51
57
  private:
52
- // We currently support 3 factories without doing additional
53
- // allocation. This number could be raised if there is a case where
54
- // more factories are needed and the additional allocations are
55
- // hurting performance (which is unlikely, since these allocations
56
- // only occur at gRPC initialization time).
57
- absl::InlinedVector<std::unique_ptr<CertificateProviderFactory>, 3>
58
- factories_;
58
+ std::vector<std::unique_ptr<CertificateProviderFactory>> factories_;
59
59
  };
60
60
 
61
61
  RegistryState* g_state = nullptr;
@@ -21,7 +21,9 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include <string>
24
+ #include <memory>
25
+
26
+ #include "absl/strings/string_view.h"
25
27
 
26
28
  #include "src/core/ext/xds/certificate_provider_factory.h"
27
29
 
@@ -20,6 +20,8 @@
20
20
 
21
21
  #include "src/core/ext/xds/certificate_provider_store.h"
22
22
 
23
+ #include <grpc/support/log.h>
24
+
23
25
  #include "src/core/ext/xds/certificate_provider_registry.h"
24
26
 
25
27
  namespace grpc_core {
@@ -22,13 +22,22 @@
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
24
  #include <map>
25
+ #include <string>
26
+ #include <utility>
25
27
 
28
+ #include "absl/base/thread_annotations.h"
26
29
  #include "absl/strings/string_view.h"
27
30
 
31
+ #include <grpc/grpc_security.h>
32
+
28
33
  #include "src/core/ext/xds/certificate_provider_factory.h"
34
+ #include "src/core/lib/gpr/useful.h"
29
35
  #include "src/core/lib/gprpp/orphanable.h"
30
36
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
31
37
  #include "src/core/lib/gprpp/sync.h"
38
+ #include "src/core/lib/gprpp/unique_type_name.h"
39
+ #include "src/core/lib/iomgr/iomgr_fwd.h"
40
+ #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h"
32
41
  #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h"
33
42
 
34
43
  namespace grpc_core {
@@ -20,11 +20,20 @@
20
20
 
21
21
  #include "src/core/ext/xds/file_watcher_certificate_provider_factory.h"
22
22
 
23
+ #include <algorithm>
24
+ #include <memory>
25
+ #include <vector>
26
+
27
+ #include "absl/memory/memory.h"
23
28
  #include "absl/strings/str_format.h"
24
29
  #include "absl/strings/str_join.h"
25
30
 
31
+ #include <grpc/support/log.h>
32
+ #include <grpc/support/time.h>
33
+
26
34
  #include "src/core/ext/xds/certificate_provider_registry.h"
27
35
  #include "src/core/lib/json/json_util.h"
36
+ #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h"
28
37
 
29
38
  namespace grpc_core {
30
39
 
@@ -21,7 +21,15 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include <string>
25
+
26
+ #include <grpc/grpc_security.h>
27
+
24
28
  #include "src/core/ext/xds/certificate_provider_factory.h"
29
+ #include "src/core/lib/gprpp/ref_counted_ptr.h"
30
+ #include "src/core/lib/gprpp/time.h"
31
+ #include "src/core/lib/iomgr/error.h"
32
+ #include "src/core/lib/json/json.h"
25
33
 
26
34
  namespace grpc_core {
27
35
 
@@ -22,9 +22,8 @@
22
22
  #include <string>
23
23
 
24
24
  #include "absl/strings/string_view.h"
25
- #include "upb/text_encode.h"
25
+ #include "upb/def.h"
26
26
  #include "upb/upb.h"
27
- #include "upb/upb.hpp"
28
27
 
29
28
  #include "src/core/ext/xds/certificate_provider_store.h"
30
29
  #include "src/core/ext/xds/xds_bootstrap.h"
@@ -18,11 +18,16 @@
18
18
 
19
19
  #include "src/core/ext/xds/xds_api.h"
20
20
 
21
+ #include <stdint.h>
22
+ #include <stdlib.h>
23
+
24
+ #include <algorithm>
21
25
  #include <set>
22
26
  #include <string>
23
27
  #include <vector>
24
28
 
25
29
  #include "absl/strings/str_cat.h"
30
+ #include "absl/strings/strip.h"
26
31
  #include "envoy/admin/v3/config_dump.upb.h"
27
32
  #include "envoy/config/core/v3/base.upb.h"
28
33
  #include "envoy/config/endpoint/v3/load_report.upb.h"
@@ -31,34 +36,27 @@
31
36
  #include "envoy/service/load_stats/v3/lrs.upb.h"
32
37
  #include "envoy/service/load_stats/v3/lrs.upbdefs.h"
33
38
  #include "envoy/service/status/v3/csds.upb.h"
34
- #include "envoy/service/status/v3/csds.upbdefs.h"
35
39
  #include "google/protobuf/any.upb.h"
40
+ #include "google/protobuf/duration.upb.h"
36
41
  #include "google/protobuf/struct.upb.h"
37
42
  #include "google/protobuf/timestamp.upb.h"
38
- #include "google/protobuf/wrappers.upb.h"
39
43
  #include "google/rpc/status.upb.h"
44
+ #include "upb/def.h"
40
45
  #include "upb/text_encode.h"
41
46
  #include "upb/upb.h"
42
47
  #include "upb/upb.hpp"
43
48
 
44
- #include <grpc/impl/codegen/log.h>
45
- #include <grpc/support/alloc.h>
46
- #include <grpc/support/string_util.h>
49
+ #include <grpc/grpc.h>
50
+ #include <grpc/impl/codegen/gpr_types.h>
51
+ #include <grpc/status.h>
52
+ #include <grpc/support/log.h>
47
53
 
48
54
  #include "src/core/ext/xds/upb_utils.h"
49
- #include "src/core/ext/xds/xds_common_types.h"
50
- #include "src/core/ext/xds/xds_resource_type.h"
51
- #include "src/core/ext/xds/xds_routing.h"
52
- #include "src/core/lib/address_utils/parse_address.h"
53
- #include "src/core/lib/address_utils/sockaddr_utils.h"
54
- #include "src/core/lib/gpr/env.h"
55
- #include "src/core/lib/gpr/string.h"
56
- #include "src/core/lib/gprpp/host_port.h"
55
+ #include "src/core/ext/xds/xds_client.h"
57
56
  #include "src/core/lib/iomgr/error.h"
58
- #include "src/core/lib/iomgr/sockaddr.h"
59
- #include "src/core/lib/iomgr/socket_utils.h"
60
- #include "src/core/lib/slice/slice_internal.h"
61
- #include "src/core/lib/uri/uri_parser.h"
57
+ #include "src/core/lib/json/json.h"
58
+
59
+ // IWYU pragma: no_include "upb/msg_internal.h"
62
60
 
63
61
  namespace grpc_core {
64
62
 
@@ -303,7 +301,7 @@ grpc_slice XdsApi::CreateAdsRequest(
303
301
  }
304
302
  // Set error_detail if it's a NACK.
305
303
  std::string error_string_storage;
306
- if (error != GRPC_ERROR_NONE) {
304
+ if (!GRPC_ERROR_IS_NONE(error)) {
307
305
  google_rpc_Status* error_detail =
308
306
  envoy_service_discovery_v3_DiscoveryRequest_mutable_error_detail(
309
307
  request, arena.ptr());
@@ -19,22 +19,29 @@
19
19
 
20
20
  #include <grpc/support/port_platform.h>
21
21
 
22
- #include <stdint.h>
22
+ #include <stddef.h>
23
23
 
24
+ #include <map>
24
25
  #include <set>
26
+ #include <string>
27
+ #include <utility>
28
+ #include <vector>
25
29
 
30
+ #include "absl/status/status.h"
31
+ #include "absl/strings/string_view.h"
26
32
  #include "envoy/admin/v3/config_dump.upb.h"
27
33
  #include "upb/def.hpp"
28
34
 
29
35
  #include <grpc/slice.h>
30
36
 
37
+ #include "src/core/ext/xds/certificate_provider_store.h"
31
38
  #include "src/core/ext/xds/upb_utils.h"
32
39
  #include "src/core/ext/xds/xds_bootstrap.h"
33
40
  #include "src/core/ext/xds/xds_client_stats.h"
34
- #include "src/core/ext/xds/xds_http_filters.h"
35
- #include "src/core/lib/channel/status_util.h"
36
- #include "src/core/lib/matchers/matchers.h"
37
- #include "src/core/lib/resolver/server_address.h"
41
+ #include "src/core/lib/debug/trace.h"
42
+ #include "src/core/lib/gprpp/ref_counted_ptr.h"
43
+ #include "src/core/lib/gprpp/time.h"
44
+ #include "src/core/lib/iomgr/error.h"
38
45
 
39
46
  namespace grpc_core {
40
47
 
@@ -18,29 +18,28 @@
18
18
 
19
19
  #include "src/core/ext/xds/xds_bootstrap.h"
20
20
 
21
- #include <errno.h>
22
21
  #include <stdlib.h>
23
22
 
23
+ #include <utility>
24
24
  #include <vector>
25
25
 
26
+ #include "absl/memory/memory.h"
27
+ #include "absl/strings/match.h"
26
28
  #include "absl/strings/str_cat.h"
27
29
  #include "absl/strings/str_format.h"
28
30
  #include "absl/strings/str_join.h"
29
31
  #include "absl/strings/string_view.h"
30
32
 
31
- #include <grpc/grpc_security.h>
33
+ #include <grpc/support/alloc.h>
32
34
 
35
+ #include "src/core/ext/xds/certificate_provider_factory.h"
33
36
  #include "src/core/ext/xds/certificate_provider_registry.h"
34
- #include "src/core/ext/xds/xds_api.h"
35
37
  #include "src/core/lib/config/core_configuration.h"
36
38
  #include "src/core/lib/gpr/env.h"
37
39
  #include "src/core/lib/gpr/string.h"
38
- #include "src/core/lib/iomgr/load_file.h"
40
+ #include "src/core/lib/gprpp/ref_counted_ptr.h"
39
41
  #include "src/core/lib/json/json_util.h"
40
42
  #include "src/core/lib/security/credentials/channel_creds_registry.h"
41
- #include "src/core/lib/security/credentials/credentials.h"
42
- #include "src/core/lib/security/credentials/fake/fake_credentials.h"
43
- #include "src/core/lib/slice/slice_internal.h"
44
43
 
45
44
  namespace grpc_core {
46
45
 
@@ -56,6 +55,10 @@ bool XdsFederationEnabled() {
56
55
 
57
56
  namespace {
58
57
 
58
+ const absl::string_view kServerFeatureXdsV3 = "xds_v3";
59
+ const absl::string_view kServerFeatureIgnoreResourceDeletion =
60
+ "ignore_resource_deletion";
61
+
59
62
  grpc_error_handle ParseChannelCreds(const Json::Object& json, size_t idx,
60
63
  XdsBootstrap::XdsServer* server) {
61
64
  std::vector<grpc_error_handle> error_list;
@@ -92,7 +95,7 @@ grpc_error_handle ParseChannelCredsArray(const Json::Array& json,
92
95
  } else {
93
96
  grpc_error_handle parse_error =
94
97
  ParseChannelCreds(child.object_value(), i, server);
95
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
98
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
96
99
  }
97
100
  }
98
101
  if (server->channel_creds_type.empty()) {
@@ -121,7 +124,7 @@ XdsBootstrap::XdsServer XdsBootstrap::XdsServer::Parse(
121
124
  if (creds_array != nullptr) {
122
125
  grpc_error_handle parse_error =
123
126
  ParseChannelCredsArray(*creds_array, &server);
124
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
127
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
125
128
  }
126
129
  const Json::Array* server_features_array = nullptr;
127
130
  ParseJsonObjectField(json.object_value(), "server_features",
@@ -129,7 +132,9 @@ XdsBootstrap::XdsServer XdsBootstrap::XdsServer::Parse(
129
132
  if (server_features_array != nullptr) {
130
133
  for (const Json& feature_json : *server_features_array) {
131
134
  if (feature_json.type() == Json::Type::STRING &&
132
- feature_json.string_value() == "xds_v3") {
135
+ (feature_json.string_value() == kServerFeatureXdsV3 ||
136
+ feature_json.string_value() ==
137
+ kServerFeatureIgnoreResourceDeletion)) {
133
138
  server.server_features.insert(feature_json.string_value());
134
139
  }
135
140
  }
@@ -159,7 +164,13 @@ Json::Object XdsBootstrap::XdsServer::ToJson() const {
159
164
  }
160
165
 
161
166
  bool XdsBootstrap::XdsServer::ShouldUseV3() const {
162
- return server_features.find("xds_v3") != server_features.end();
167
+ return server_features.find(std::string(kServerFeatureXdsV3)) !=
168
+ server_features.end();
169
+ }
170
+
171
+ bool XdsBootstrap::XdsServer::IgnoreResourceDeletion() const {
172
+ return server_features.find(std::string(
173
+ kServerFeatureIgnoreResourceDeletion)) != server_features.end();
163
174
  }
164
175
 
165
176
  //
@@ -169,7 +180,7 @@ bool XdsBootstrap::XdsServer::ShouldUseV3() const {
169
180
  std::unique_ptr<XdsBootstrap> XdsBootstrap::Create(
170
181
  absl::string_view json_string, grpc_error_handle* error) {
171
182
  Json json = Json::Parse(json_string, error);
172
- if (*error != GRPC_ERROR_NONE) {
183
+ if (!GRPC_ERROR_IS_NONE(*error)) {
173
184
  grpc_error_handle error_out =
174
185
  GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
175
186
  "Failed to parse bootstrap JSON string", error, 1);
@@ -196,7 +207,7 @@ XdsBootstrap::XdsBootstrap(Json json, grpc_error_handle* error) {
196
207
  "\"xds_servers\" field is not an array"));
197
208
  } else {
198
209
  grpc_error_handle parse_error = ParseXdsServerList(&it->second, &servers_);
199
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
210
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
200
211
  }
201
212
  it = json.mutable_object()->find("node");
202
213
  if (it != json.mutable_object()->end()) {
@@ -205,7 +216,7 @@ XdsBootstrap::XdsBootstrap(Json json, grpc_error_handle* error) {
205
216
  "\"node\" field is not an object"));
206
217
  } else {
207
218
  grpc_error_handle parse_error = ParseNode(&it->second);
208
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
219
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
209
220
  }
210
221
  }
211
222
  if (XdsFederationEnabled()) {
@@ -216,7 +227,7 @@ XdsBootstrap::XdsBootstrap(Json json, grpc_error_handle* error) {
216
227
  "\"authorities\" field is not an object"));
217
228
  } else {
218
229
  grpc_error_handle parse_error = ParseAuthorities(&it->second);
219
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
230
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
220
231
  }
221
232
  }
222
233
  it = json.mutable_object()->find(
@@ -249,7 +260,7 @@ XdsBootstrap::XdsBootstrap(Json json, grpc_error_handle* error) {
249
260
  "\"certificate_providers\" field is not an object"));
250
261
  } else {
251
262
  grpc_error_handle parse_error = ParseCertificateProviders(&it->second);
252
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
263
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
253
264
  }
254
265
  }
255
266
  *error = GRPC_ERROR_CREATE_FROM_VECTOR("errors parsing xds bootstrap file",
@@ -277,7 +288,7 @@ bool XdsBootstrap::XdsServerExists(
277
288
  }
278
289
 
279
290
  grpc_error_handle XdsBootstrap::ParseXdsServerList(
280
- Json* json, absl::InlinedVector<XdsServer, 1>* servers) {
291
+ Json* json, std::vector<XdsServer>* servers) {
281
292
  std::vector<grpc_error_handle> error_list;
282
293
  for (size_t i = 0; i < json->mutable_array()->size(); ++i) {
283
294
  Json& child = json->mutable_array()->at(i);
@@ -287,7 +298,7 @@ grpc_error_handle XdsBootstrap::ParseXdsServerList(
287
298
  } else {
288
299
  grpc_error_handle parse_error;
289
300
  servers->emplace_back(XdsServer::Parse(child, &parse_error));
290
- if (parse_error != GRPC_ERROR_NONE) {
301
+ if (!GRPC_ERROR_IS_NONE(parse_error)) {
291
302
  error_list.push_back(GRPC_ERROR_CREATE_FROM_CPP_STRING(
292
303
  absl::StrCat("errors parsing index ", i)));
293
304
  error_list.push_back(parse_error);
@@ -307,7 +318,7 @@ grpc_error_handle XdsBootstrap::ParseAuthorities(Json* json) {
307
318
  continue;
308
319
  }
309
320
  grpc_error_handle parse_error = ParseAuthority(&p.second, p.first);
310
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
321
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
311
322
  }
312
323
  return GRPC_ERROR_CREATE_FROM_VECTOR("errors parsing \"authorities\"",
313
324
  &error_list);
@@ -344,7 +355,7 @@ grpc_error_handle XdsBootstrap::ParseAuthority(Json* json,
344
355
  } else {
345
356
  grpc_error_handle parse_error =
346
357
  ParseXdsServerList(&it->second, &authority.xds_servers);
347
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
358
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
348
359
  }
349
360
  }
350
361
  if (error_list.empty()) {
@@ -382,7 +393,7 @@ grpc_error_handle XdsBootstrap::ParseNode(Json* json) {
382
393
  "\"locality\" field is not an object"));
383
394
  } else {
384
395
  grpc_error_handle parse_error = ParseLocality(&it->second);
385
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
396
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
386
397
  }
387
398
  }
388
399
  it = json->mutable_object()->find("metadata");
@@ -440,7 +451,7 @@ grpc_error_handle XdsBootstrap::ParseCertificateProviders(Json* json) {
440
451
  } else {
441
452
  grpc_error_handle parse_error = ParseCertificateProvider(
442
453
  certificate_provider.first, &certificate_provider.second);
443
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
454
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
444
455
  }
445
456
  }
446
457
  return GRPC_ERROR_CREATE_FROM_VECTOR(
@@ -476,14 +487,16 @@ grpc_error_handle XdsBootstrap::ParseCertificateProvider(
476
487
  grpc_error_handle parse_error = GRPC_ERROR_NONE;
477
488
  config = factory->CreateCertificateProviderConfig(it->second,
478
489
  &parse_error);
479
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
490
+ if (!GRPC_ERROR_IS_NONE(parse_error)) {
491
+ error_list.push_back(parse_error);
492
+ }
480
493
  }
481
494
  } else {
482
495
  // "config" is an optional field, so create an empty JSON object.
483
496
  grpc_error_handle parse_error = GRPC_ERROR_NONE;
484
497
  config = factory->CreateCertificateProviderConfig(Json::Object(),
485
498
  &parse_error);
486
- if (parse_error != GRPC_ERROR_NONE) error_list.push_back(parse_error);
499
+ if (!GRPC_ERROR_IS_NONE(parse_error)) error_list.push_back(parse_error);
487
500
  }
488
501
  certificate_providers_.insert(
489
502
  {instance_name, {std::move(plugin_name), std::move(config)}});
@@ -19,21 +19,18 @@
19
19
 
20
20
  #include <grpc/support/port_platform.h>
21
21
 
22
+ #include <algorithm>
23
+ #include <map>
22
24
  #include <memory>
23
25
  #include <set>
24
26
  #include <string>
25
27
  #include <vector>
26
28
 
27
- #include "absl/container/inlined_vector.h"
28
-
29
- #include <grpc/slice.h>
29
+ #include "absl/strings/string_view.h"
30
30
 
31
31
  #include "src/core/ext/xds/certificate_provider_store.h"
32
- #include "src/core/lib/gprpp/memory.h"
33
- #include "src/core/lib/gprpp/ref_counted_ptr.h"
34
32
  #include "src/core/lib/iomgr/error.h"
35
33
  #include "src/core/lib/json/json.h"
36
- #include "src/core/lib/security/credentials/credentials.h"
37
34
 
38
35
  namespace grpc_core {
39
36
 
@@ -80,11 +77,12 @@ class XdsBootstrap {
80
77
  Json::Object ToJson() const;
81
78
 
82
79
  bool ShouldUseV3() const;
80
+ bool IgnoreResourceDeletion() const;
83
81
  };
84
82
 
85
83
  struct Authority {
86
84
  std::string client_listener_resource_name_template;
87
- absl::InlinedVector<XdsServer, 1> xds_servers;
85
+ std::vector<XdsServer> xds_servers;
88
86
  };
89
87
 
90
88
  // Creates bootstrap object from json_string.
@@ -120,8 +118,8 @@ class XdsBootstrap {
120
118
  bool XdsServerExists(const XdsServer& server) const;
121
119
 
122
120
  private:
123
- grpc_error_handle ParseXdsServerList(
124
- Json* json, absl::InlinedVector<XdsServer, 1>* servers);
121
+ grpc_error_handle ParseXdsServerList(Json* json,
122
+ std::vector<XdsServer>* servers);
125
123
  grpc_error_handle ParseAuthorities(Json* json);
126
124
  grpc_error_handle ParseAuthority(Json* json, const std::string& name);
127
125
  grpc_error_handle ParseNode(Json* json);
@@ -130,7 +128,7 @@ class XdsBootstrap {
130
128
  grpc_error_handle ParseCertificateProvider(const std::string& instance_name,
131
129
  Json* certificate_provider_json);
132
130
 
133
- absl::InlinedVector<XdsServer, 1> servers_;
131
+ std::vector<XdsServer> servers_;
134
132
  std::unique_ptr<Node> node_;
135
133
  std::string client_default_listener_resource_name_template_;
136
134
  std::string server_listener_resource_name_template_;
@@ -140,4 +138,4 @@ class XdsBootstrap {
140
138
 
141
139
  } // namespace grpc_core
142
140
 
143
- #endif /* GRPC_CORE_EXT_XDS_XDS_BOOTSTRAP_H */
141
+ #endif // GRPC_CORE_EXT_XDS_XDS_BOOTSTRAP_H
@@ -20,8 +20,17 @@
20
20
 
21
21
  #include "src/core/ext/xds/xds_certificate_provider.h"
22
22
 
23
+ #include <utility>
24
+
23
25
  #include "absl/functional/bind_front.h"
24
- #include "absl/strings/str_cat.h"
26
+ #include "absl/memory/memory.h"
27
+ #include "absl/types/optional.h"
28
+
29
+ #include <grpc/support/log.h>
30
+
31
+ #include "src/core/lib/channel/channel_args.h"
32
+ #include "src/core/lib/iomgr/error.h"
33
+ #include "src/core/lib/security/security_connector/ssl_utils.h"
25
34
 
26
35
  namespace grpc_core {
27
36
 
@@ -51,7 +60,7 @@ class RootCertificatesWatcher
51
60
 
52
61
  void OnError(grpc_error_handle root_cert_error,
53
62
  grpc_error_handle identity_cert_error) override {
54
- if (root_cert_error != GRPC_ERROR_NONE) {
63
+ if (!GRPC_ERROR_IS_NONE(root_cert_error)) {
55
64
  parent_->SetErrorForCert(cert_name_, root_cert_error /* pass the ref */,
56
65
  absl::nullopt);
57
66
  }
@@ -86,7 +95,7 @@ class IdentityCertificatesWatcher
86
95
 
87
96
  void OnError(grpc_error_handle root_cert_error,
88
97
  grpc_error_handle identity_cert_error) override {
89
- if (identity_cert_error != GRPC_ERROR_NONE) {
98
+ if (!GRPC_ERROR_IS_NONE(identity_cert_error)) {
90
99
  parent_->SetErrorForCert(cert_name_, absl::nullopt,
91
100
  identity_cert_error /* pass the ref */);
92
101
  }