grpc 1.83.1 → 1.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +21 -17
  3. data/include/grpc/credentials.h +10 -0
  4. data/include/grpc/grpc_security_constants.h +2 -0
  5. data/include/grpc/impl/channel_arg_names.h +9 -0
  6. data/src/core/call/call_filters.h +4 -2
  7. data/src/core/call/client_call.cc +20 -8
  8. data/src/core/call/client_call.h +4 -0
  9. data/src/core/call/interception_chain.cc +2 -0
  10. data/src/core/call/interception_chain.h +14 -1
  11. data/src/core/call/metadata.cc +1 -3
  12. data/src/core/call/metadata_batch.h +13 -5
  13. data/src/core/call/server_call.cc +31 -14
  14. data/src/core/call/server_call.h +4 -0
  15. data/src/core/channelz/text_encode.cc +9 -4
  16. data/src/core/channelz/v2tov1/convert.cc +2 -2
  17. data/src/core/client_channel/backup_poller.cc +1 -2
  18. data/src/core/client_channel/client_channel.cc +6 -33
  19. data/src/core/client_channel/client_channel_filter.cc +22 -55
  20. data/src/core/client_channel/client_channel_filter.h +2 -2
  21. data/src/core/client_channel/client_channel_service_config.cc +3 -19
  22. data/src/core/client_channel/direct_channel.cc +7 -1
  23. data/src/core/client_channel/direct_channel.h +2 -2
  24. data/src/core/client_channel/load_balanced_call_destination.cc +5 -3
  25. data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -12
  26. data/src/core/client_channel/subchannel.cc +310 -1058
  27. data/src/core/client_channel/subchannel.h +44 -329
  28. data/src/core/client_channel/subchannel_metrics.cc +48 -0
  29. data/src/core/client_channel/subchannel_metrics.h +60 -0
  30. data/src/core/credentials/call/external/file_external_account_credentials.cc +1 -1
  31. data/src/core/credentials/call/external/url_external_account_credentials.cc +2 -3
  32. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +8 -24
  33. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h +3 -6
  34. data/src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.cc +525 -0
  35. data/src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.h +138 -0
  36. data/src/core/credentials/call/json_util.h +1 -0
  37. data/src/core/credentials/call/jwt/json_token.cc +10 -2
  38. data/src/core/credentials/call/jwt/jwt_verifier.cc +15 -1
  39. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +1 -1
  40. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +42 -79
  41. data/src/core/credentials/call/oauth2/oauth2_credentials.h +2 -5
  42. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +52 -31
  43. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +21 -8
  44. data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -4
  45. data/src/core/credentials/transport/ssl/ssl_credentials.cc +59 -72
  46. data/src/core/credentials/transport/ssl/ssl_credentials.h +9 -8
  47. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +12 -6
  48. data/src/core/credentials/transport/ssl/ssl_security_connector.h +4 -4
  49. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +29 -18
  50. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +9 -6
  51. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +45 -56
  52. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +5 -4
  53. data/src/core/credentials/transport/tls/grpc_tls_certificate_selector.h +26 -0
  54. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +1 -1
  55. data/src/core/credentials/transport/tls/load_system_roots.h +2 -6
  56. data/src/core/credentials/transport/tls/load_system_roots_fallback.cc +2 -4
  57. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +13 -15
  58. data/src/core/credentials/transport/tls/load_system_roots_supported.h +3 -2
  59. data/src/core/credentials/transport/tls/load_system_roots_windows.cc +5 -8
  60. data/src/core/credentials/transport/tls/spiffe_utils.cc +1 -1
  61. data/src/core/credentials/transport/tls/ssl_utils.cc +39 -28
  62. data/src/core/credentials/transport/tls/ssl_utils.h +12 -49
  63. data/src/core/credentials/transport/tls/tls_security_connector.cc +48 -33
  64. data/src/core/credentials/transport/tls/tls_security_connector.h +31 -10
  65. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +15 -11
  66. data/src/core/ext/filters/http/http_filters_plugin.cc +20 -9
  67. data/src/core/ext/filters/rbac/rbac_filter.cc +43 -21
  68. data/src/core/ext/filters/rbac/rbac_filter.h +21 -3
  69. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
  70. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
  71. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -20
  72. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +32 -67
  73. data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -0
  74. data/src/core/ext/transport/chttp2/transport/flow_control.h +78 -4
  75. data/src/core/ext/transport/chttp2/transport/frame.h +2 -0
  76. data/src/core/ext/transport/chttp2/transport/frame_data.cc +3 -4
  77. data/src/core/ext/transport/chttp2/transport/goaway.h +7 -0
  78. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +5 -3
  79. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -1
  80. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +141 -130
  81. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +22 -22
  82. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +402 -269
  83. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +80 -49
  84. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +1 -2
  85. data/src/core/ext/transport/chttp2/transport/http2_status.h +38 -37
  86. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +178 -5
  87. data/src/core/ext/transport/chttp2/transport/http2_transport.h +345 -5
  88. data/src/core/ext/transport/chttp2/transport/parsing.cc +5 -5
  89. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +3 -2
  90. data/src/core/ext/transport/chttp2/transport/ping_promise.h +25 -5
  91. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +3 -4
  92. data/src/core/ext/transport/chttp2/transport/read_context.h +30 -3
  93. data/src/core/ext/transport/chttp2/transport/stream.h +65 -23
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +0 -3
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +1 -5
  96. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +4 -17
  97. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb.h +1912 -0
  98. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.c +300 -0
  99. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.h +37 -0
  100. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb.h +187 -0
  101. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.c +64 -0
  102. data/src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.h +31 -0
  103. data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb.h +2362 -0
  104. data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.c +556 -0
  105. data/src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.h +47 -0
  106. data/src/core/ext/upb-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upb.h +5 -5
  107. data/src/core/ext/upb-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upb_minitable.c +3 -3
  108. data/src/core/ext/upb-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upb_minitable.h +5 -5
  109. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.c +453 -0
  110. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.h +67 -0
  111. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.c +142 -0
  112. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.h +37 -0
  113. data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +715 -0
  114. data/src/core/ext/upbdefs-gen/{src/proto/grpc/channelz → grpc/channelz/v1}/channelz.upbdefs.h +44 -44
  115. data/src/core/filter/auth/server_auth_filter.cc +2 -3
  116. data/src/core/filter/composite/composite_filter.cc +45 -33
  117. data/src/core/filter/composite/composite_filter.h +5 -4
  118. data/src/core/filter/ext_proc/ext_proc_filter.cc +224 -0
  119. data/src/core/filter/ext_proc/ext_proc_filter.h +155 -0
  120. data/src/core/filter/ext_proc/ext_proc_messages.cc +701 -0
  121. data/src/core/filter/ext_proc/ext_proc_messages.h +297 -0
  122. data/src/core/filter/filter_args.h +13 -2
  123. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +30 -3
  124. data/src/core/handshaker/security/security_handshaker.cc +9 -6
  125. data/src/core/lib/channel/channel_stack.cc +3 -0
  126. data/src/core/lib/channel/channel_stack.h +2 -0
  127. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -2
  128. data/src/core/lib/channel/promise_based_filter.cc +132 -20
  129. data/src/core/lib/channel/promise_based_filter.h +42 -12
  130. data/src/core/lib/compression/compression_internal.cc +4 -5
  131. data/src/core/lib/debug/trace_flags.cc +8 -0
  132. data/src/core/lib/debug/trace_flags.h +3 -0
  133. data/src/core/lib/event_engine/ares_resolver.cc +54 -50
  134. data/src/core/lib/event_engine/ares_resolver.h +3 -2
  135. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +3 -3
  136. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +4 -10
  137. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +74 -33
  138. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +4 -4
  139. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -2
  140. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -0
  141. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -0
  142. data/src/core/lib/event_engine/windows/windows_endpoint.cc +1 -3
  143. data/src/core/lib/experiments/experiments.cc +60 -96
  144. data/src/core/lib/experiments/experiments.h +34 -50
  145. data/src/core/lib/iomgr/cfstream_handle.cc +2 -6
  146. data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -10
  147. data/src/core/lib/iomgr/error.cc +2 -6
  148. data/src/core/lib/iomgr/error_cfstream.cc +1 -1
  149. data/src/core/lib/iomgr/ev_poll_posix.cc +5 -9
  150. data/src/core/lib/iomgr/event_engine_shims/closure.cc +1 -1
  151. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +1 -2
  152. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +1 -2
  153. data/src/core/lib/iomgr/iomgr_posix.cc +0 -4
  154. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -4
  155. data/src/core/lib/iomgr/iomgr_windows.cc +0 -4
  156. data/src/core/lib/iomgr/socket_factory_posix.h +1 -1
  157. data/src/core/lib/iomgr/socket_utils_posix.cc +3 -0
  158. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  159. data/src/core/lib/iomgr/systemd_utils.cc +0 -1
  160. data/src/core/lib/iomgr/tcp_client.h +1 -1
  161. data/src/core/lib/iomgr/tcp_posix.cc +23 -15
  162. data/src/core/lib/iomgr/tcp_server.h +1 -1
  163. data/src/core/lib/iomgr/tcp_server_posix.cc +2 -3
  164. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -1
  165. data/src/core/lib/iomgr/tcp_server_windows.cc +0 -1
  166. data/src/core/lib/iomgr/tcp_windows.cc +5 -10
  167. data/src/core/lib/iomgr/unix_sockets_posix.cc +2 -4
  168. data/src/core/lib/iomgr/unix_sockets_posix.h +3 -1
  169. data/src/core/lib/iomgr/vsock.h +3 -1
  170. data/src/core/lib/resource_quota/memory_quota.cc +1 -1
  171. data/src/core/lib/security/authorization/rbac_policy.cc +139 -56
  172. data/src/core/lib/security/authorization/rbac_policy.h +21 -3
  173. data/src/core/lib/surface/call.cc +3 -9
  174. data/src/core/lib/surface/call_utils.h +113 -0
  175. data/src/core/lib/surface/channel_create.cc +1 -1
  176. data/src/core/lib/surface/channel_create.h +0 -2
  177. data/src/core/lib/surface/channel_init.cc +77 -38
  178. data/src/core/lib/surface/channel_init.h +30 -16
  179. data/src/core/lib/surface/filter_stack_call.cc +5 -10
  180. data/src/core/lib/surface/init.cc +13 -27
  181. data/src/core/lib/surface/version.cc +1 -1
  182. data/src/core/lib/transport/error_utils.cc +0 -27
  183. data/src/core/lib/transport/error_utils.h +0 -16
  184. data/src/core/lib/transport/transport.h +7 -5
  185. data/src/core/load_balancing/pick_first/pick_first.cc +2 -0
  186. data/src/core/load_balancing/rls/rls.cc +28 -11
  187. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +33 -42
  188. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.h +0 -2
  189. data/src/core/load_balancing/xds/cds.cc +3 -1
  190. data/src/core/load_balancing/xds/xds_cluster_impl.cc +0 -1
  191. data/src/core/mitigation_engine/mitigation.h +14 -5
  192. data/src/core/mitigation_engine/mitigation_engine.h +7 -3
  193. data/src/core/mitigation_engine/mitigation_provider.h +2 -1
  194. data/src/core/plugin_registry/grpc_plugin_registry.cc +39 -8
  195. data/src/core/resolver/dns/{event_engine/event_engine_client_channel_resolver.cc → dns_resolver.cc} +42 -41
  196. data/src/core/resolver/dns/{event_engine/event_engine_client_channel_resolver.h → dns_resolver.h} +8 -5
  197. data/src/core/resolver/dns/{event_engine/service_config_helper.cc → service_config_helper.cc} +1 -1
  198. data/src/core/resolver/dns/{event_engine/service_config_helper.h → service_config_helper.h} +3 -3
  199. data/src/core/resolver/endpoint_addresses.h +3 -0
  200. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +2 -1
  201. data/src/core/resolver/xds/xds_resolver.cc +35 -9
  202. data/src/core/server/server.cc +2 -6
  203. data/src/core/server/server_config_selector.h +18 -3
  204. data/src/core/server/server_config_selector_filter.cc +178 -91
  205. data/src/core/server/server_config_selector_filter.h +58 -3
  206. data/src/core/server/xds_server_config_fetcher.cc +196 -129
  207. data/src/core/server/xds_server_config_fetcher.h +49 -0
  208. data/src/core/server/xds_server_config_fetcher_legacy.cc +41 -37
  209. data/src/core/telemetry/histogram.h +94 -14
  210. data/src/core/telemetry/instrument.cc +179 -74
  211. data/src/core/telemetry/instrument.h +78 -30
  212. data/src/core/telemetry/metrics.h +5 -0
  213. data/src/core/{resolver/dns/dns_resolver_plugin.h → telemetry/telemetry_label.h} +12 -8
  214. data/src/core/tsi/alts/crypt/aes_gcm.cc +10 -13
  215. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -2
  216. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +3 -1
  217. data/src/core/tsi/ssl_telemetry_utils.cc +216 -259
  218. data/src/core/tsi/ssl_telemetry_utils.h +12 -2
  219. data/src/core/tsi/ssl_transport_security.cc +238 -80
  220. data/src/core/tsi/ssl_transport_security.h +63 -33
  221. data/src/core/tsi/tls_telemetry.cc +31 -0
  222. data/src/core/tsi/tls_telemetry.h +47 -0
  223. data/src/core/tsi/transport_security.cc +2 -2
  224. data/src/core/tsi/transport_security.h +1 -1
  225. data/src/core/tsi/transport_security_interface.h +1 -1
  226. data/src/core/{resolver/dns/native/dns_resolver.h → util/address_sorting_init.cc} +21 -8
  227. data/src/core/{resolver/dns/c_ares/grpc_ares_wrapper_posix.cc → util/address_sorting_init.h} +7 -8
  228. data/src/core/util/http_client/httpcli.cc +16 -53
  229. data/src/core/util/http_client/httpcli.h +0 -7
  230. data/src/core/util/http_client/httpcli_security_connector.cc +13 -8
  231. data/src/core/util/linux/cpu.cc +1 -1
  232. data/src/core/util/load_file.cc +3 -9
  233. data/src/core/util/load_file.h +3 -4
  234. data/src/core/util/matchers.h +8 -0
  235. data/src/core/util/posix/cpu.cc +1 -1
  236. data/src/core/util/status_helper.cc +0 -20
  237. data/src/core/util/status_helper.h +3 -14
  238. data/src/core/xds/grpc/xds_audit_logger_registry.cc +51 -31
  239. data/src/core/xds/grpc/xds_audit_logger_registry.h +17 -3
  240. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -10
  241. data/src/core/xds/grpc/xds_bootstrap_grpc.h +8 -6
  242. data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +488 -0
  243. data/src/core/xds/grpc/xds_bootstrap_grpc_builder.h +97 -0
  244. data/src/core/xds/grpc/xds_certificate_provider.cc +7 -7
  245. data/src/core/xds/grpc/xds_client_grpc.cc +4 -8
  246. data/src/core/xds/grpc/xds_client_grpc.h +0 -4
  247. data/src/core/xds/grpc/xds_cluster.h +1 -0
  248. data/src/core/xds/grpc/xds_cluster_parser.cc +1 -5
  249. data/src/core/xds/grpc/xds_cluster_parser.h +0 -2
  250. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +0 -2
  251. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +0 -2
  252. data/src/core/xds/grpc/xds_common_types.cc +0 -91
  253. data/src/core/xds/grpc/xds_common_types.h +1 -47
  254. data/src/core/xds/grpc/xds_common_types_parser.cc +84 -378
  255. data/src/core/xds/grpc/xds_common_types_parser.h +9 -11
  256. data/src/core/xds/grpc/xds_endpoint_parser.cc +0 -2
  257. data/src/core/xds/grpc/xds_grpc_service_parser.cc +177 -0
  258. data/src/core/{resolver/dns/c_ares/dns_resolver_ares.h → xds/grpc/xds_grpc_service_parser.h} +14 -9
  259. data/src/core/xds/grpc/xds_http_composite_filter.cc +26 -21
  260. data/src/core/xds/grpc/xds_http_composite_filter.h +4 -3
  261. data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +418 -0
  262. data/src/core/xds/grpc/xds_http_ext_proc_filter.h +89 -0
  263. data/src/core/xds/grpc/xds_http_fault_filter.cc +9 -12
  264. data/src/core/xds/grpc/xds_http_fault_filter.h +1 -4
  265. data/src/core/xds/grpc/xds_http_filter.cc +2 -1
  266. data/src/core/xds/grpc/xds_http_filter.h +6 -5
  267. data/src/core/xds/grpc/xds_http_filter_registry.cc +10 -127
  268. data/src/core/xds/grpc/xds_http_filter_registry.h +7 -59
  269. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +13 -14
  270. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -2
  271. data/src/core/xds/grpc/xds_http_rbac_filter.cc +403 -25
  272. data/src/core/xds/grpc/xds_http_rbac_filter.h +1 -3
  273. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +8 -13
  274. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +1 -4
  275. data/src/core/xds/grpc/xds_lb_policy_registry.cc +0 -292
  276. data/src/core/xds/grpc/xds_lb_policy_registry.h +7 -3
  277. data/src/core/xds/grpc/xds_listener.cc +2 -0
  278. data/src/core/xds/grpc/xds_listener.h +5 -0
  279. data/src/core/xds/grpc/xds_listener_parser.cc +16 -11
  280. data/src/core/xds/grpc/xds_matcher_parse.h +3 -1
  281. data/src/core/xds/grpc/xds_metadata_parser.cc +6 -1
  282. data/src/core/xds/grpc/xds_metadata_parser.h +2 -0
  283. data/src/core/xds/grpc/xds_route_config.cc +2 -0
  284. data/src/core/xds/grpc/xds_route_config.h +3 -1
  285. data/src/core/xds/grpc/xds_route_config_parser.cc +13 -79
  286. data/src/core/xds/grpc/xds_route_config_parser.h +0 -3
  287. data/src/core/xds/grpc/xds_routing.cc +116 -69
  288. data/src/core/xds/grpc/xds_routing.h +19 -8
  289. data/src/core/xds/grpc/xds_tls_context.cc +117 -0
  290. data/src/core/xds/grpc/xds_tls_context.h +76 -0
  291. data/src/core/xds/grpc/xds_tls_context_parser.cc +275 -0
  292. data/src/core/xds/grpc/xds_tls_context_parser.h +35 -0
  293. data/src/core/xds/grpc/xds_transport_grpc.cc +41 -38
  294. data/src/core/xds/grpc/xds_transport_grpc.h +4 -2
  295. data/src/ruby/ext/grpc/rb_call.c +26 -15
  296. data/src/ruby/ext/grpc/rb_completion_queue.c +6 -5
  297. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  298. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
  299. data/src/ruby/lib/grpc/version.rb +1 -1
  300. data/src/ruby/pb/test/client.rb +5 -4
  301. data/src/ruby/spec/call_spec.rb +14 -0
  302. data/src/ruby/spec/generic/server_interceptors_spec.rb +3 -6
  303. metadata +50 -35
  304. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c +0 -716
  305. data/src/core/lib/iomgr/resolve_address.cc +0 -59
  306. data/src/core/lib/iomgr/resolve_address.h +0 -125
  307. data/src/core/lib/iomgr/resolve_address_impl.h +0 -58
  308. data/src/core/lib/iomgr/resolve_address_posix.cc +0 -184
  309. data/src/core/lib/iomgr/resolve_address_posix.h +0 -78
  310. data/src/core/lib/iomgr/resolve_address_windows.cc +0 -169
  311. data/src/core/lib/iomgr/resolve_address_windows.h +0 -76
  312. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +0 -781
  313. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +0 -93
  314. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +0 -203
  315. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +0 -838
  316. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +0 -1237
  317. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +0 -130
  318. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +0 -35
  319. data/src/core/resolver/dns/dns_resolver_plugin.cc +0 -64
  320. data/src/core/resolver/dns/native/dns_resolver.cc +0 -173
  321. data/src/core/util/json/json_util.cc +0 -101
  322. data/src/core/util/json/json_util.h +0 -163
@@ -38,6 +38,7 @@
38
38
  #include "src/core/util/sync.h"
39
39
  #include "src/core/util/time.h"
40
40
  #include "src/core/xds/grpc/certificate_provider_store_interface.h"
41
+ #include "src/core/xds/grpc/xds_server_grpc_interface.h"
41
42
  #include "src/core/xds/xds_client/xds_bootstrap.h"
42
43
  #include "src/core/xds/xds_client/xds_transport.h"
43
44
  #include "absl/container/flat_hash_map.h"
@@ -83,8 +84,7 @@ class GrpcXdsTransportFactory::GrpcXdsTransport final
83
84
 
84
85
  GrpcXdsTransport(WeakRefCountedPtr<GrpcXdsTransportFactory> factory,
85
86
  RefCountedPtr<SharedChannel> channel,
86
- const XdsBootstrap::XdsServerTarget& server,
87
- absl::Status* status);
87
+ const GrpcXdsServerInterface& server, absl::Status* status);
88
88
  ~GrpcXdsTransport() override;
89
89
 
90
90
  void Orphaned() override;
@@ -108,6 +108,7 @@ class GrpcXdsTransportFactory::GrpcXdsTransport final
108
108
  WeakRefCountedPtr<GrpcXdsTransportFactory> factory_;
109
109
  std::string key_;
110
110
  RefCountedPtr<SharedChannel> channel_;
111
+ RefCountedPtr<grpc_call_credentials> call_creds_;
111
112
  std::vector<std::pair<std::string, std::string>> initial_metadata_;
112
113
  Duration timeout_;
113
114
 
@@ -123,6 +124,7 @@ class GrpcXdsTransportFactory::GrpcXdsTransport::GrpcStreamingCall final
123
124
  WeakRefCountedPtr<GrpcXdsTransportFactory> factory, Channel* channel,
124
125
  const char* method,
125
126
  std::unique_ptr<StreamingCall::EventHandler> event_handler,
127
+ grpc_call_credentials* call_creds,
126
128
  const std::vector<std::pair<std::string, std::string>>& initial_metadata,
127
129
  Duration timeout);
128
130
  ~GrpcStreamingCall() override;
@@ -401,7 +401,6 @@ static int grpc_rb_md_ary_fill_hash_cb(VALUE key, VALUE val, VALUE md_ary_obj) {
401
401
  long i;
402
402
  grpc_slice key_slice;
403
403
  grpc_slice value_slice;
404
- char* tmp_str = NULL;
405
404
 
406
405
  if (TYPE(key) == T_SYMBOL) {
407
406
  key_slice = grpc_slice_from_static_string(rb_id2name(SYM2ID(key)));
@@ -415,9 +414,11 @@ static int grpc_rb_md_ary_fill_hash_cb(VALUE key, VALUE val, VALUE md_ary_obj) {
415
414
  }
416
415
 
417
416
  if (!grpc_header_key_is_legal(key_slice)) {
418
- tmp_str = grpc_slice_to_c_string(key_slice);
417
+ grpc_slice_unref(key_slice);
419
418
  rb_raise(rb_eArgError,
420
- "'%s' is an invalid header key, must match [a-z0-9-_.]+", tmp_str);
419
+ "'%" PRIsVALUE
420
+ "' is an invalid header key, must match [a-z0-9-_.]+",
421
+ key);
421
422
  return ST_STOP;
422
423
  }
423
424
 
@@ -429,18 +430,25 @@ static int grpc_rb_md_ary_fill_hash_cb(VALUE key, VALUE val, VALUE md_ary_obj) {
429
430
  array_length = RARRAY_LEN(val);
430
431
  /* If the value is an array, add capacity for each value in the array */
431
432
  for (i = 0; i < array_length; i++) {
432
- value_slice = grpc_slice_from_copied_buffer(
433
- RSTRING_PTR(rb_ary_entry(val, i)), RSTRING_LEN(rb_ary_entry(val, i)));
433
+ VALUE val_entry = rb_ary_entry(val, i);
434
+ if (TYPE(val_entry) != T_STRING) {
435
+ grpc_slice_unref(key_slice);
436
+ rb_raise(rb_eTypeError, "Header values in array must be strings");
437
+ return ST_STOP;
438
+ }
439
+ value_slice = grpc_slice_from_copied_buffer(RSTRING_PTR(val_entry),
440
+ RSTRING_LEN(val_entry));
434
441
  if (!grpc_is_binary_header(key_slice) &&
435
442
  !grpc_header_nonbin_value_is_legal(value_slice)) {
436
- // The value has invalid characters
437
- tmp_str = grpc_slice_to_c_string(value_slice);
438
- rb_raise(rb_eArgError, "Header value '%s' has invalid characters",
439
- tmp_str);
443
+ grpc_slice_unref(value_slice);
444
+ grpc_slice_unref(key_slice);
445
+ rb_raise(rb_eArgError,
446
+ "Header value '%" PRIsVALUE "' has invalid characters",
447
+ val_entry);
440
448
  return ST_STOP;
441
449
  }
442
450
  GRPC_RUBY_ASSERT(md_ary->count < md_ary->capacity);
443
- md_ary->metadata[md_ary->count].key = key_slice;
451
+ md_ary->metadata[md_ary->count].key = grpc_slice_ref(key_slice);
444
452
  md_ary->metadata[md_ary->count].value = value_slice;
445
453
  md_ary->count += 1;
446
454
  }
@@ -449,20 +457,23 @@ static int grpc_rb_md_ary_fill_hash_cb(VALUE key, VALUE val, VALUE md_ary_obj) {
449
457
  grpc_slice_from_copied_buffer(RSTRING_PTR(val), RSTRING_LEN(val));
450
458
  if (!grpc_is_binary_header(key_slice) &&
451
459
  !grpc_header_nonbin_value_is_legal(value_slice)) {
452
- // The value has invalid characters
453
- tmp_str = grpc_slice_to_c_string(value_slice);
454
- rb_raise(rb_eArgError, "Header value '%s' has invalid characters",
455
- tmp_str);
460
+ grpc_slice_unref(value_slice);
461
+ grpc_slice_unref(key_slice);
462
+ rb_raise(rb_eArgError,
463
+ "Header value '%" PRIsVALUE "' has invalid characters", val);
456
464
  return ST_STOP;
457
465
  }
458
466
  GRPC_RUBY_ASSERT(md_ary->count < md_ary->capacity);
459
- md_ary->metadata[md_ary->count].key = key_slice;
467
+ md_ary->metadata[md_ary->count].key = grpc_slice_ref(key_slice);
460
468
  md_ary->metadata[md_ary->count].value = value_slice;
461
469
  md_ary->count += 1;
462
470
  } else {
471
+ grpc_slice_unref(key_slice);
463
472
  rb_raise(rb_eArgError, "Header values must be of type string or array");
464
473
  return ST_STOP;
465
474
  }
475
+ /* Release the local reference; each entry now owns its own ref. */
476
+ grpc_slice_unref(key_slice);
466
477
  return ST_CONTINUE;
467
478
  }
468
479
 
@@ -21,6 +21,7 @@
21
21
  #include "rb_completion_queue.h"
22
22
 
23
23
  #include <grpc/grpc.h>
24
+ #include <grpc/support/atm.h>
24
25
  #include <grpc/support/log.h>
25
26
  #include <grpc/support/time.h>
26
27
  #include <ruby/thread.h>
@@ -35,7 +36,7 @@ typedef struct next_call_stack {
35
36
  grpc_event event;
36
37
  gpr_timespec timeout;
37
38
  void* tag;
38
- volatile int interrupted;
39
+ gpr_atm interrupted;
39
40
  } next_call_stack;
40
41
 
41
42
  /* Calls grpc_completion_queue_pluck without holding the ruby GIL */
@@ -49,7 +50,7 @@ static void* grpc_rb_completion_queue_pluck_no_gil(void* param) {
49
50
  next_call->cq, next_call->tag, deadline, NULL);
50
51
  if (next_call->event.type != GRPC_QUEUE_TIMEOUT) break;
51
52
  if (gpr_time_cmp(deadline, next_call->timeout) > 0) break;
52
- if (next_call->interrupted) break;
53
+ if (gpr_atm_acq_load(&next_call->interrupted)) break;
53
54
  }
54
55
  return NULL;
55
56
  }
@@ -66,7 +67,7 @@ void grpc_rb_completion_queue_destroy(grpc_completion_queue* cq) {
66
67
 
67
68
  static void unblock_func(void* param) {
68
69
  next_call_stack* const next_call = (next_call_stack*)param;
69
- next_call->interrupted = 1;
70
+ gpr_atm_rel_store(&next_call->interrupted, 1);
70
71
  }
71
72
 
72
73
  /* Does the same thing as grpc_completion_queue_pluck, while properly releasing
@@ -85,12 +86,12 @@ grpc_event rb_completion_queue_pluck(grpc_completion_queue* queue, void* tag,
85
86
  * this is necessary. */
86
87
  grpc_absl_log_str(GPR_DEBUG, "CQ pluck loop begin: ", reason);
87
88
  do {
88
- next_call.interrupted = 0;
89
+ gpr_atm_rel_store(&next_call.interrupted, 0);
89
90
  rb_thread_call_without_gvl(grpc_rb_completion_queue_pluck_no_gil,
90
91
  (void*)&next_call, unblock_func,
91
92
  (void*)&next_call);
92
93
  if (next_call.event.type != GRPC_QUEUE_TIMEOUT) break;
93
- } while (next_call.interrupted);
94
+ } while (gpr_atm_acq_load(&next_call.interrupted));
94
95
  grpc_absl_log_str(GPR_DEBUG, "CQ pluck loop done: ", reason);
95
96
  return next_call.event;
96
97
  }
@@ -44,6 +44,7 @@ grpc_compression_options_disable_algorithm_type grpc_compression_options_disable
44
44
  grpc_compression_options_is_algorithm_enabled_type grpc_compression_options_is_algorithm_enabled_import;
45
45
  grpc_service_account_jwt_access_credentials_create_type grpc_service_account_jwt_access_credentials_create_import;
46
46
  grpc_external_account_credentials_create_type grpc_external_account_credentials_create_import;
47
+ grpc_gdch_service_account_credentials_create_type grpc_gdch_service_account_credentials_create_import;
47
48
  grpc_google_refresh_token_credentials_create_type grpc_google_refresh_token_credentials_create_import;
48
49
  grpc_access_token_credentials_create_type grpc_access_token_credentials_create_import;
49
50
  grpc_google_iam_credentials_create_type grpc_google_iam_credentials_create_import;
@@ -333,6 +334,7 @@ void grpc_rb_load_imports(HMODULE library) {
333
334
  grpc_compression_options_is_algorithm_enabled_import = (grpc_compression_options_is_algorithm_enabled_type) GetProcAddress(library, "grpc_compression_options_is_algorithm_enabled");
334
335
  grpc_service_account_jwt_access_credentials_create_import = (grpc_service_account_jwt_access_credentials_create_type) GetProcAddress(library, "grpc_service_account_jwt_access_credentials_create");
335
336
  grpc_external_account_credentials_create_import = (grpc_external_account_credentials_create_type) GetProcAddress(library, "grpc_external_account_credentials_create");
337
+ grpc_gdch_service_account_credentials_create_import = (grpc_gdch_service_account_credentials_create_type) GetProcAddress(library, "grpc_gdch_service_account_credentials_create");
336
338
  grpc_google_refresh_token_credentials_create_import = (grpc_google_refresh_token_credentials_create_type) GetProcAddress(library, "grpc_google_refresh_token_credentials_create");
337
339
  grpc_access_token_credentials_create_import = (grpc_access_token_credentials_create_type) GetProcAddress(library, "grpc_access_token_credentials_create");
338
340
  grpc_google_iam_credentials_create_import = (grpc_google_iam_credentials_create_type) GetProcAddress(library, "grpc_google_iam_credentials_create");
@@ -108,6 +108,9 @@ extern grpc_service_account_jwt_access_credentials_create_type grpc_service_acco
108
108
  typedef grpc_call_credentials*(*grpc_external_account_credentials_create_type)(const char* json_string, const char* scopes_string);
109
109
  extern grpc_external_account_credentials_create_type grpc_external_account_credentials_create_import;
110
110
  #define grpc_external_account_credentials_create grpc_external_account_credentials_create_import
111
+ typedef grpc_call_credentials*(*grpc_gdch_service_account_credentials_create_type)(const char* json_string, const char* audience_string);
112
+ extern grpc_gdch_service_account_credentials_create_type grpc_gdch_service_account_credentials_create_import;
113
+ #define grpc_gdch_service_account_credentials_create grpc_gdch_service_account_credentials_create_import
111
114
  typedef grpc_call_credentials*(*grpc_google_refresh_token_credentials_create_type)(const char* json_refresh_token, void* reserved);
112
115
  extern grpc_google_refresh_token_credentials_create_type grpc_google_refresh_token_credentials_create_import;
113
116
  #define grpc_google_refresh_token_credentials_create grpc_google_refresh_token_credentials_create_import
@@ -14,5 +14,5 @@
14
14
 
15
15
  # GRPC contains the General RPC module.
16
16
  module GRPC
17
- VERSION = '1.83.1'
17
+ VERSION = '1.84.0'
18
18
  end
@@ -31,6 +31,7 @@ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
31
31
  $LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir)
32
32
 
33
33
  require 'optparse'
34
+ require 'json'
34
35
  require 'logger'
35
36
 
36
37
  require_relative '../../lib/grpc'
@@ -319,7 +320,7 @@ class NamedTests
319
320
  return
320
321
  end
321
322
  json_key = File.read(ENV[AUTH_ENV])
322
- wanted_email = MultiJson.load(json_key)['client_email']
323
+ wanted_email = JSON.parse(json_key)['client_email']
323
324
  resp = perform_large_unary(fill_username: true,
324
325
  fill_oauth_scope: true)
325
326
  assert("#{__callee__}: bad username") { wanted_email == resp.username }
@@ -330,7 +331,7 @@ class NamedTests
330
331
 
331
332
  def jwt_token_creds
332
333
  json_key = File.read(ENV[AUTH_ENV])
333
- wanted_email = MultiJson.load(json_key)['client_email']
334
+ wanted_email = JSON.parse(json_key)['client_email']
334
335
  resp = perform_large_unary(fill_username: true)
335
336
  assert("#{__callee__}: bad username") { wanted_email == resp.username }
336
337
  end
@@ -347,7 +348,7 @@ class NamedTests
347
348
  resp = perform_large_unary(fill_username: true,
348
349
  fill_oauth_scope: true)
349
350
  json_key = File.read(ENV[AUTH_ENV])
350
- wanted_email = MultiJson.load(json_key)['client_email']
351
+ wanted_email = JSON.parse(json_key)['client_email']
351
352
  assert("#{__callee__}: bad username") { wanted_email == resp.username }
352
353
  assert("#{__callee__}: bad oauth scope") do
353
354
  @args.oauth_scope.include?(resp.oauth_scope)
@@ -366,7 +367,7 @@ class NamedTests
366
367
  fill_oauth_scope: true,
367
368
  credentials: call_creds)
368
369
  json_key = File.read(ENV[AUTH_ENV])
369
- wanted_email = MultiJson.load(json_key)['client_email']
370
+ wanted_email = JSON.parse(json_key)['client_email']
370
371
  assert("#{__callee__}: bad username") { wanted_email == resp.username }
371
372
  assert("#{__callee__}: bad oauth scope") do
372
373
  @args.oauth_scope.include?(resp.oauth_scope)
@@ -181,6 +181,20 @@ describe GRPC::Core::Call do
181
181
  end
182
182
  end
183
183
 
184
+ describe '#run_batch with array-valued metadata' do
185
+ it 'does not crash with long key and array value' do
186
+ make_test_call do |call|
187
+ long_key = 'x-grpc-test-echo-initial' # 24 bytes (> 23)
188
+ metadata = { long_key => %w[value-a value-b value-c] }
189
+ ops = {
190
+ GRPC::Core::CallOps::SEND_INITIAL_METADATA => metadata,
191
+ GRPC::Core::CallOps::SEND_CLOSE_FROM_CLIENT => nil
192
+ }
193
+ expect { call.run_batch(ops) }.to raise_error(GRPC::Core::CallError)
194
+ end
195
+ end
196
+ end
197
+
184
198
  def make_test_call
185
199
  call = @ch.create_call(nil, nil, 'phony_method', nil, deadline)
186
200
  yield call
@@ -205,12 +205,9 @@ describe 'Server Interceptors' do
205
205
  end
206
206
 
207
207
  it 'should be invoked in FIFO order', server: true do
208
- expect(interceptor).to receive(:request_response).ordered
209
- .once.and_call_original
210
- expect(interceptor2).to receive(:request_response).ordered
211
- .once.and_call_original
212
- expect(interceptor3).to receive(:request_response).ordered
213
- .once.and_call_original
208
+ expect(interceptor).to receive(:request_response).ordered.once.and_call_original
209
+ expect(interceptor2).to receive(:request_response).ordered.once.and_call_original
210
+ expect(interceptor3).to receive(:request_response).ordered.once.and_call_original
214
211
 
215
212
  run_services_on_server(@server, services: [service]) do
216
213
  stub = build_insecure_stub(EchoStub)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.83.1
4
+ version: 1.84.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - gRPC Authors
@@ -147,14 +147,14 @@ dependencies:
147
147
  requirements:
148
148
  - - "~>"
149
149
  - !ruby/object:Gem::Version
150
- version: 1.11.1
150
+ version: 1.12.0
151
151
  type: :development
152
152
  prerelease: false
153
153
  version_requirements: !ruby/object:Gem::Requirement
154
154
  requirements:
155
155
  - - "~>"
156
156
  - !ruby/object:Gem::Version
157
- version: 1.11.1
157
+ version: 1.12.0
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: rspec
160
160
  requirement: !ruby/object:Gem::Requirement
@@ -402,6 +402,8 @@ files:
402
402
  - src/core/client_channel/subchannel.cc
403
403
  - src/core/client_channel/subchannel.h
404
404
  - src/core/client_channel/subchannel_interface_internal.h
405
+ - src/core/client_channel/subchannel_metrics.cc
406
+ - src/core/client_channel/subchannel_metrics.h
405
407
  - src/core/client_channel/subchannel_pool_interface.cc
406
408
  - src/core/client_channel/subchannel_pool_interface.h
407
409
  - src/core/client_channel/subchannel_stream_client.cc
@@ -436,6 +438,8 @@ files:
436
438
  - src/core/credentials/call/external/url_external_account_credentials.h
437
439
  - src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc
438
440
  - src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h
441
+ - src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.cc
442
+ - src/core/credentials/call/gdch_service_account/gdch_service_account_credentials.h
439
443
  - src/core/credentials/call/iam/iam_credentials.cc
440
444
  - src/core/credentials/call/iam/iam_credentials.h
441
445
  - src/core/credentials/call/json_util.cc
@@ -884,6 +888,12 @@ files:
884
888
  - src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h
885
889
  - src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c
886
890
  - src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h
891
+ - src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb.h
892
+ - src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.c
893
+ - src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upb_minitable.h
894
+ - src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb.h
895
+ - src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.c
896
+ - src/core/ext/upb-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upb_minitable.h
887
897
  - src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h
888
898
  - src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c
889
899
  - src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h
@@ -956,6 +966,9 @@ files:
956
966
  - src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h
957
967
  - src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c
958
968
  - src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h
969
+ - src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb.h
970
+ - src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.c
971
+ - src/core/ext/upb-gen/envoy/service/ext_proc/v3/external_processor.upb_minitable.h
959
972
  - src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h
960
973
  - src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c
961
974
  - src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h
@@ -1076,9 +1089,9 @@ files:
1076
1089
  - src/core/ext/upb-gen/google/rpc/status.upb.h
1077
1090
  - src/core/ext/upb-gen/google/rpc/status.upb_minitable.c
1078
1091
  - src/core/ext/upb-gen/google/rpc/status.upb_minitable.h
1079
- - src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h
1080
- - src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c
1081
- - src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h
1092
+ - src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb.h
1093
+ - src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.c
1094
+ - src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.h
1082
1095
  - src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h
1083
1096
  - src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c
1084
1097
  - src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h
@@ -1356,6 +1369,10 @@ files:
1356
1369
  - src/core/ext/upbdefs-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upbdefs.h
1357
1370
  - src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.c
1358
1371
  - src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.h
1372
+ - src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.c
1373
+ - src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/ext_proc.upbdefs.h
1374
+ - src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.c
1375
+ - src/core/ext/upbdefs-gen/envoy/extensions/filters/http/ext_proc/v3/processing_mode.upbdefs.h
1359
1376
  - src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c
1360
1377
  - src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h
1361
1378
  - src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c
@@ -1468,8 +1485,8 @@ files:
1468
1485
  - src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h
1469
1486
  - src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c
1470
1487
  - src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h
1471
- - src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c
1472
- - src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.h
1488
+ - src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c
1489
+ - src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.h
1473
1490
  - src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c
1474
1491
  - src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h
1475
1492
  - src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c
@@ -1545,6 +1562,10 @@ files:
1545
1562
  - src/core/filter/auth/server_auth_filter.cc
1546
1563
  - src/core/filter/composite/composite_filter.cc
1547
1564
  - src/core/filter/composite/composite_filter.h
1565
+ - src/core/filter/ext_proc/ext_proc_filter.cc
1566
+ - src/core/filter/ext_proc/ext_proc_filter.h
1567
+ - src/core/filter/ext_proc/ext_proc_messages.cc
1568
+ - src/core/filter/ext_proc/ext_proc_messages.h
1548
1569
  - src/core/filter/filter_args.h
1549
1570
  - src/core/filter/filter_chain.h
1550
1571
  - src/core/filter/fused_filters.cc
@@ -1799,13 +1820,6 @@ files:
1799
1820
  - src/core/lib/iomgr/pollset_windows.cc
1800
1821
  - src/core/lib/iomgr/pollset_windows.h
1801
1822
  - src/core/lib/iomgr/port.h
1802
- - src/core/lib/iomgr/resolve_address.cc
1803
- - src/core/lib/iomgr/resolve_address.h
1804
- - src/core/lib/iomgr/resolve_address_impl.h
1805
- - src/core/lib/iomgr/resolve_address_posix.cc
1806
- - src/core/lib/iomgr/resolve_address_posix.h
1807
- - src/core/lib/iomgr/resolve_address_windows.cc
1808
- - src/core/lib/iomgr/resolve_address_windows.h
1809
1823
  - src/core/lib/iomgr/resolved_address.h
1810
1824
  - src/core/lib/iomgr/sockaddr.h
1811
1825
  - src/core/lib/iomgr/sockaddr_posix.h
@@ -2072,23 +2086,10 @@ files:
2072
2086
  - src/core/net/socket_mutator.h
2073
2087
  - src/core/plugin_registry/grpc_plugin_registry.cc
2074
2088
  - src/core/plugin_registry/grpc_plugin_registry_extra.cc
2075
- - src/core/resolver/dns/c_ares/dns_resolver_ares.cc
2076
- - src/core/resolver/dns/c_ares/dns_resolver_ares.h
2077
- - src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h
2078
- - src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc
2079
- - src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
2080
- - src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc
2081
- - src/core/resolver/dns/c_ares/grpc_ares_wrapper.h
2082
- - src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc
2083
- - src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc
2084
- - src/core/resolver/dns/dns_resolver_plugin.cc
2085
- - src/core/resolver/dns/dns_resolver_plugin.h
2086
- - src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc
2087
- - src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h
2088
- - src/core/resolver/dns/event_engine/service_config_helper.cc
2089
- - src/core/resolver/dns/event_engine/service_config_helper.h
2090
- - src/core/resolver/dns/native/dns_resolver.cc
2091
- - src/core/resolver/dns/native/dns_resolver.h
2089
+ - src/core/resolver/dns/dns_resolver.cc
2090
+ - src/core/resolver/dns/dns_resolver.h
2091
+ - src/core/resolver/dns/service_config_helper.cc
2092
+ - src/core/resolver/dns/service_config_helper.h
2092
2093
  - src/core/resolver/endpoint_addresses.cc
2093
2094
  - src/core/resolver/endpoint_addresses.h
2094
2095
  - src/core/resolver/fake/fake_resolver.cc
@@ -2121,6 +2122,7 @@ files:
2121
2122
  - src/core/server/xds_channel_stack_modifier.cc
2122
2123
  - src/core/server/xds_channel_stack_modifier.h
2123
2124
  - src/core/server/xds_server_config_fetcher.cc
2125
+ - src/core/server/xds_server_config_fetcher.h
2124
2126
  - src/core/server/xds_server_config_fetcher_legacy.cc
2125
2127
  - src/core/service_config/service_config.h
2126
2128
  - src/core/service_config/service_config_call_data.h
@@ -2149,6 +2151,7 @@ files:
2149
2151
  - src/core/telemetry/stats_data.h
2150
2152
  - src/core/telemetry/tcp_tracer.cc
2151
2153
  - src/core/telemetry/tcp_tracer.h
2154
+ - src/core/telemetry/telemetry_label.h
2152
2155
  - src/core/transport/auth_context.cc
2153
2156
  - src/core/transport/auth_context.h
2154
2157
  - src/core/transport/auth_context_comparator_registry.h
@@ -2214,11 +2217,15 @@ files:
2214
2217
  - src/core/tsi/ssl_transport_security_utils.cc
2215
2218
  - src/core/tsi/ssl_transport_security_utils.h
2216
2219
  - src/core/tsi/ssl_types.h
2220
+ - src/core/tsi/tls_telemetry.cc
2221
+ - src/core/tsi/tls_telemetry.h
2217
2222
  - src/core/tsi/transport_security.cc
2218
2223
  - src/core/tsi/transport_security.h
2219
2224
  - src/core/tsi/transport_security_grpc.cc
2220
2225
  - src/core/tsi/transport_security_grpc.h
2221
2226
  - src/core/tsi/transport_security_interface.h
2227
+ - src/core/util/address_sorting_init.cc
2228
+ - src/core/util/address_sorting_init.h
2222
2229
  - src/core/util/alloc.cc
2223
2230
  - src/core/util/alloc.h
2224
2231
  - src/core/util/atomic_utils.h
@@ -2279,8 +2286,6 @@ files:
2279
2286
  - src/core/util/json/json_object_loader.h
2280
2287
  - src/core/util/json/json_reader.cc
2281
2288
  - src/core/util/json/json_reader.h
2282
- - src/core/util/json/json_util.cc
2283
- - src/core/util/json/json_util.h
2284
2289
  - src/core/util/json/json_writer.cc
2285
2290
  - src/core/util/json/json_writer.h
2286
2291
  - src/core/util/latent_see.cc
@@ -2390,6 +2395,8 @@ files:
2390
2395
  - src/core/xds/grpc/xds_audit_logger_registry.h
2391
2396
  - src/core/xds/grpc/xds_bootstrap_grpc.cc
2392
2397
  - src/core/xds/grpc/xds_bootstrap_grpc.h
2398
+ - src/core/xds/grpc/xds_bootstrap_grpc_builder.cc
2399
+ - src/core/xds/grpc/xds_bootstrap_grpc_builder.h
2393
2400
  - src/core/xds/grpc/xds_certificate_provider.cc
2394
2401
  - src/core/xds/grpc/xds_certificate_provider.h
2395
2402
  - src/core/xds/grpc/xds_client_grpc.cc
@@ -2408,10 +2415,14 @@ files:
2408
2415
  - src/core/xds/grpc/xds_endpoint.h
2409
2416
  - src/core/xds/grpc/xds_endpoint_parser.cc
2410
2417
  - src/core/xds/grpc/xds_endpoint_parser.h
2418
+ - src/core/xds/grpc/xds_grpc_service_parser.cc
2419
+ - src/core/xds/grpc/xds_grpc_service_parser.h
2411
2420
  - src/core/xds/grpc/xds_health_status.cc
2412
2421
  - src/core/xds/grpc/xds_health_status.h
2413
2422
  - src/core/xds/grpc/xds_http_composite_filter.cc
2414
2423
  - src/core/xds/grpc/xds_http_composite_filter.h
2424
+ - src/core/xds/grpc/xds_http_ext_proc_filter.cc
2425
+ - src/core/xds/grpc/xds_http_ext_proc_filter.h
2415
2426
  - src/core/xds/grpc/xds_http_fault_filter.cc
2416
2427
  - src/core/xds/grpc/xds_http_fault_filter.h
2417
2428
  - src/core/xds/grpc/xds_http_filter.cc
@@ -2453,6 +2464,10 @@ files:
2453
2464
  - src/core/xds/grpc/xds_server_grpc.cc
2454
2465
  - src/core/xds/grpc/xds_server_grpc.h
2455
2466
  - src/core/xds/grpc/xds_server_grpc_interface.h
2467
+ - src/core/xds/grpc/xds_tls_context.cc
2468
+ - src/core/xds/grpc/xds_tls_context.h
2469
+ - src/core/xds/grpc/xds_tls_context_parser.cc
2470
+ - src/core/xds/grpc/xds_tls_context_parser.h
2456
2471
  - src/core/xds/grpc/xds_transport_grpc.cc
2457
2472
  - src/core/xds/grpc/xds_transport_grpc.h
2458
2473
  - src/core/xds/xds_client/lrs_client.cc
@@ -3981,7 +3996,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
3981
3996
  - !ruby/object:Gem::Version
3982
3997
  version: '0'
3983
3998
  requirements: []
3984
- rubygems_version: 4.0.19
3999
+ rubygems_version: 4.0.20
3985
4000
  specification_version: 4
3986
4001
  summary: GRPC system in Ruby
3987
4002
  test_files: