grpc 1.66.0 → 1.67.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (547) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +19 -10
  3. data/include/grpc/credentials.h +1 -1
  4. data/include/grpc/event_engine/README.md +1 -1
  5. data/include/grpc/event_engine/internal/slice_cast.h +1 -1
  6. data/include/grpc/event_engine/slice.h +0 -1
  7. data/include/grpc/event_engine/slice_buffer.h +0 -1
  8. data/include/grpc/grpc_crl_provider.h +1 -1
  9. data/include/grpc/impl/channel_arg_names.h +1 -1
  10. data/include/grpc/support/log.h +34 -32
  11. data/include/grpc/support/sync_generic.h +2 -4
  12. data/src/core/channelz/channelz.cc +0 -1
  13. data/src/core/channelz/channelz_registry.cc +0 -1
  14. data/src/core/client_channel/client_channel.cc +10 -7
  15. data/src/core/client_channel/client_channel.h +1 -1
  16. data/src/core/client_channel/client_channel_filter.cc +21 -18
  17. data/src/core/client_channel/client_channel_filter.h +1 -1
  18. data/src/core/client_channel/client_channel_internal.h +0 -2
  19. data/src/core/client_channel/config_selector.h +0 -1
  20. data/src/core/client_channel/dynamic_filters.cc +0 -2
  21. data/src/core/client_channel/local_subchannel_pool.cc +0 -2
  22. data/src/core/client_channel/retry_filter.h +0 -1
  23. data/src/core/client_channel/retry_filter_legacy_call_data.cc +175 -257
  24. data/src/core/client_channel/subchannel.cc +21 -27
  25. data/src/core/client_channel/subchannel_stream_client.cc +1 -1
  26. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +8 -9
  27. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +0 -1
  28. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -4
  29. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +167 -0
  30. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +82 -0
  31. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +81 -0
  32. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +87 -0
  33. data/src/core/ext/filters/http/message_compress/compression_filter.cc +7 -9
  34. data/src/core/ext/filters/http/server/http_server_filter.cc +2 -4
  35. data/src/core/ext/filters/message_size/message_size_filter.cc +6 -7
  36. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +0 -2
  37. data/src/core/ext/transport/chttp2/alpn/alpn.cc +0 -1
  38. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -8
  39. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +0 -1
  40. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +288 -265
  41. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -4
  42. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -1
  43. data/src/core/ext/transport/chttp2/transport/frame.cc +0 -1
  44. data/src/core/ext/transport/chttp2/transport/frame_data.cc +0 -1
  45. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +0 -1
  46. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +6 -6
  47. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +3 -4
  48. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +5 -6
  49. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +0 -1
  50. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -3
  51. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
  52. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +0 -1
  53. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +3 -3
  54. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +37 -5
  55. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +27 -6
  56. data/src/core/ext/transport/chttp2/transport/internal.h +2 -3
  57. data/src/core/ext/transport/chttp2/transport/parsing.cc +21 -32
  58. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -1
  59. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +6 -8
  60. data/src/core/ext/transport/chttp2/transport/varint.h +0 -1
  61. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +0 -1
  62. data/src/core/ext/transport/chttp2/transport/writing.cc +22 -22
  63. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +431 -0
  64. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +129 -0
  65. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +33 -0
  66. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +16 -0
  67. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +13 -2
  68. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +397 -22
  69. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +94 -20
  70. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +2 -0
  71. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +86 -0
  72. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +47 -0
  73. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +108 -107
  74. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +101 -78
  75. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +10 -0
  76. data/src/core/handshaker/handshaker.cc +21 -29
  77. data/src/core/handshaker/security/secure_endpoint.cc +3 -3
  78. data/src/core/handshaker/security/security_handshaker.cc +60 -72
  79. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +0 -1
  80. data/src/core/lib/backoff/backoff.cc +7 -10
  81. data/src/core/lib/backoff/backoff.h +4 -6
  82. data/src/core/lib/channel/channel_stack.cc +0 -1
  83. data/src/core/lib/channel/channel_stack.h +0 -1
  84. data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -1
  85. data/src/core/lib/channel/connected_channel.cc +0 -1
  86. data/src/core/lib/channel/promise_based_filter.cc +146 -194
  87. data/src/core/lib/channel/promise_based_filter.h +1 -1
  88. data/src/core/lib/compression/compression_internal.cc +0 -1
  89. data/src/core/lib/config/config_vars.cc +11 -1
  90. data/src/core/lib/config/config_vars.h +8 -0
  91. data/src/core/lib/config/core_configuration.cc +0 -1
  92. data/src/core/lib/config/core_configuration.h +0 -1
  93. data/src/core/lib/debug/event_log.cc +0 -1
  94. data/src/core/lib/debug/trace_flags.cc +4 -18
  95. data/src/core/lib/debug/trace_flags.h +2 -5
  96. data/src/core/lib/debug/trace_impl.h +6 -0
  97. data/src/core/lib/event_engine/ares_resolver.cc +89 -56
  98. data/src/core/lib/event_engine/ares_resolver.h +0 -9
  99. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +14 -1
  100. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +1 -1
  101. data/src/core/lib/event_engine/forkable.cc +0 -1
  102. data/src/core/lib/event_engine/forkable.h +0 -1
  103. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +1 -1
  104. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +4 -4
  105. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -1
  106. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +0 -1
  107. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +9 -1
  108. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +0 -1
  109. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +2 -2
  110. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +1 -2
  111. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -9
  112. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +0 -1
  113. data/src/core/lib/event_engine/resolved_address.cc +0 -1
  114. data/src/core/lib/event_engine/slice.cc +0 -1
  115. data/src/core/lib/event_engine/thread_pool/thread_count.cc +0 -1
  116. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +3 -5
  117. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +121 -93
  118. data/src/core/lib/experiments/config.cc +12 -10
  119. data/src/core/lib/experiments/experiments.cc +45 -66
  120. data/src/core/lib/experiments/experiments.h +22 -27
  121. data/src/core/lib/gprpp/chunked_vector.h +0 -1
  122. data/src/core/lib/gprpp/down_cast.h +0 -1
  123. data/src/core/lib/gprpp/host_port.cc +0 -1
  124. data/src/core/lib/gprpp/load_file.cc +0 -1
  125. data/src/core/lib/gprpp/mpscq.h +0 -1
  126. data/src/core/lib/gprpp/single_set_ptr.h +0 -1
  127. data/src/core/lib/gprpp/status_helper.cc +0 -1
  128. data/src/core/lib/gprpp/sync.h +0 -1
  129. data/src/core/lib/gprpp/table.h +28 -0
  130. data/src/core/lib/gprpp/thd.h +0 -1
  131. data/src/core/lib/gprpp/time.h +0 -1
  132. data/src/core/lib/gprpp/time_util.cc +0 -1
  133. data/src/core/lib/gprpp/windows/directory_reader.cc +0 -2
  134. data/src/core/lib/gprpp/windows/thd.cc +0 -1
  135. data/src/core/lib/gprpp/work_serializer.cc +23 -34
  136. data/src/core/lib/iomgr/buffer_list.cc +0 -1
  137. data/src/core/lib/iomgr/call_combiner.h +6 -8
  138. data/src/core/lib/iomgr/cfstream_handle.cc +6 -8
  139. data/src/core/lib/iomgr/closure.h +5 -8
  140. data/src/core/lib/iomgr/combiner.cc +6 -8
  141. data/src/core/lib/iomgr/endpoint_cfstream.cc +17 -22
  142. data/src/core/lib/iomgr/endpoint_pair_posix.cc +0 -1
  143. data/src/core/lib/iomgr/error.h +0 -1
  144. data/src/core/lib/iomgr/ev_apple.cc +13 -18
  145. data/src/core/lib/iomgr/ev_epoll1_linux.cc +47 -85
  146. data/src/core/lib/iomgr/ev_poll_posix.cc +17 -24
  147. data/src/core/lib/iomgr/ev_posix.cc +55 -44
  148. data/src/core/lib/iomgr/ev_posix.h +0 -5
  149. data/src/core/lib/iomgr/event_engine_shims/closure.cc +7 -9
  150. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +3 -4
  151. data/src/core/lib/iomgr/exec_ctx.cc +6 -9
  152. data/src/core/lib/iomgr/exec_ctx.h +26 -16
  153. data/src/core/lib/iomgr/executor.cc +43 -33
  154. data/src/core/lib/iomgr/fork_windows.cc +0 -1
  155. data/src/core/lib/iomgr/internal_errqueue.cc +0 -1
  156. data/src/core/lib/iomgr/iocp_windows.cc +0 -1
  157. data/src/core/lib/iomgr/iomgr_windows.cc +0 -2
  158. data/src/core/lib/iomgr/lockfree_event.cc +7 -11
  159. data/src/core/lib/iomgr/polling_entity.cc +10 -3
  160. data/src/core/lib/iomgr/pollset_windows.cc +0 -2
  161. data/src/core/lib/iomgr/resolve_address.cc +0 -1
  162. data/src/core/lib/iomgr/resolve_address_posix.cc +0 -1
  163. data/src/core/lib/iomgr/resolve_address_windows.cc +0 -1
  164. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +0 -1
  165. data/src/core/lib/iomgr/socket_mutator.cc +0 -1
  166. data/src/core/lib/iomgr/socket_utils_linux.cc +0 -2
  167. data/src/core/lib/iomgr/socket_utils_posix.cc +0 -1
  168. data/src/core/lib/iomgr/socket_utils_windows.cc +0 -2
  169. data/src/core/lib/iomgr/tcp_client_cfstream.cc +7 -12
  170. data/src/core/lib/iomgr/tcp_client_posix.cc +8 -12
  171. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  172. data/src/core/lib/iomgr/tcp_posix.cc +32 -68
  173. data/src/core/lib/iomgr/tcp_server_posix.cc +7 -11
  174. data/src/core/lib/iomgr/tcp_windows.cc +4 -12
  175. data/src/core/lib/iomgr/timer_generic.cc +46 -65
  176. data/src/core/lib/iomgr/timer_manager.cc +4 -5
  177. data/src/core/lib/iomgr/unix_sockets_posix.cc +0 -1
  178. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +0 -2
  179. data/src/core/lib/iomgr/vsock.cc +0 -1
  180. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +0 -2
  181. data/src/core/lib/promise/activity.h +0 -1
  182. data/src/core/lib/promise/context.h +0 -1
  183. data/src/core/lib/promise/detail/join_state.h +44 -44
  184. data/src/core/lib/promise/detail/seq_state.h +1101 -1356
  185. data/src/core/lib/promise/for_each.h +8 -15
  186. data/src/core/lib/promise/interceptor_list.h +17 -27
  187. data/src/core/lib/promise/latch.h +16 -24
  188. data/src/core/lib/promise/map.h +1 -1
  189. data/src/core/lib/promise/party.cc +238 -114
  190. data/src/core/lib/promise/party.h +105 -308
  191. data/src/core/lib/promise/pipe.h +3 -4
  192. data/src/core/lib/promise/poll.h +0 -1
  193. data/src/core/lib/promise/status_flag.h +0 -1
  194. data/src/core/lib/resource_quota/connection_quota.cc +0 -1
  195. data/src/core/lib/resource_quota/memory_quota.cc +11 -19
  196. data/src/core/lib/resource_quota/memory_quota.h +2 -4
  197. data/src/core/lib/resource_quota/periodic_update.cc +2 -3
  198. data/src/core/lib/resource_quota/thread_quota.cc +0 -1
  199. data/src/core/lib/security/authorization/audit_logging.cc +0 -1
  200. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +0 -1
  201. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +14 -19
  202. data/src/core/lib/security/authorization/stdout_logger.cc +0 -1
  203. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +0 -1
  204. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +0 -1
  205. data/src/core/lib/security/credentials/call_creds_util.cc +0 -1
  206. data/src/core/lib/security/credentials/composite/composite_credentials.cc +0 -1
  207. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -0
  208. data/src/core/lib/security/credentials/credentials.h +1 -2
  209. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +322 -324
  210. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +53 -42
  211. data/src/core/lib/security/credentials/external/external_account_credentials.cc +391 -353
  212. data/src/core/lib/security/credentials/external/external_account_credentials.h +121 -51
  213. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +83 -44
  214. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +27 -7
  215. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +91 -116
  216. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +14 -17
  217. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -0
  218. data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +196 -0
  219. data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.h +90 -0
  220. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -41
  221. data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
  222. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -0
  223. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -0
  224. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +163 -259
  225. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +34 -56
  226. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +12 -16
  227. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
  228. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -1
  229. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +0 -1
  230. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -1
  231. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +0 -1
  232. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +0 -1
  233. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc +298 -0
  234. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.h +176 -0
  235. data/src/core/lib/security/credentials/xds/xds_credentials.cc +0 -1
  236. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +0 -1
  237. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +0 -1
  238. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +0 -1
  239. data/src/core/lib/security/transport/server_auth_filter.cc +4 -6
  240. data/src/core/lib/slice/percent_encoding.cc +0 -1
  241. data/src/core/lib/slice/slice.cc +0 -1
  242. data/src/core/lib/slice/slice.h +0 -1
  243. data/src/core/lib/slice/slice_buffer.cc +0 -1
  244. data/src/core/lib/slice/slice_internal.h +0 -1
  245. data/src/core/lib/slice/slice_refcount.h +6 -8
  246. data/src/core/lib/surface/byte_buffer_reader.cc +0 -1
  247. data/src/core/lib/surface/call.cc +3 -5
  248. data/src/core/lib/surface/call_utils.h +0 -1
  249. data/src/core/lib/surface/channel.cc +0 -1
  250. data/src/core/lib/surface/channel_create.cc +0 -1
  251. data/src/core/lib/surface/channel_init.h +0 -1
  252. data/src/core/lib/surface/client_call.cc +0 -1
  253. data/src/core/lib/surface/client_call.h +0 -1
  254. data/src/core/lib/surface/completion_queue.cc +28 -4
  255. data/src/core/lib/surface/completion_queue_factory.cc +0 -1
  256. data/src/core/lib/surface/filter_stack_call.cc +9 -9
  257. data/src/core/lib/surface/filter_stack_call.h +0 -1
  258. data/src/core/lib/surface/lame_client.cc +0 -1
  259. data/src/core/lib/surface/server_call.cc +0 -1
  260. data/src/core/lib/surface/server_call.h +0 -1
  261. data/src/core/lib/surface/validate_metadata.h +0 -1
  262. data/src/core/lib/surface/version.cc +2 -2
  263. data/src/core/lib/transport/bdp_estimator.cc +9 -12
  264. data/src/core/lib/transport/bdp_estimator.h +6 -8
  265. data/src/core/lib/transport/call_arena_allocator.cc +2 -16
  266. data/src/core/lib/transport/call_arena_allocator.h +20 -5
  267. data/src/core/lib/transport/call_filters.cc +6 -9
  268. data/src/core/lib/transport/call_spine.h +24 -13
  269. data/src/core/lib/transport/connectivity_state.cc +34 -42
  270. data/src/core/lib/transport/metadata_batch.h +41 -1
  271. data/src/core/lib/transport/timeout_encoding.cc +0 -1
  272. data/src/core/lib/transport/transport.h +6 -8
  273. data/src/core/lib/transport/transport_op_string.cc +0 -1
  274. data/src/core/lib/uri/uri_parser.cc +0 -1
  275. data/src/core/load_balancing/grpclb/grpclb.cc +55 -71
  276. data/src/core/load_balancing/health_check_client.cc +31 -42
  277. data/src/core/load_balancing/oob_backend_metric.cc +2 -4
  278. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +99 -129
  279. data/src/core/load_balancing/pick_first/pick_first.cc +168 -228
  280. data/src/core/load_balancing/priority/priority.cc +77 -106
  281. data/src/core/load_balancing/ring_hash/ring_hash.cc +32 -46
  282. data/src/core/load_balancing/rls/rls.cc +142 -187
  283. data/src/core/load_balancing/round_robin/round_robin.cc +36 -55
  284. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +0 -1
  285. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +85 -110
  286. data/src/core/load_balancing/weighted_target/weighted_target.cc +52 -75
  287. data/src/core/load_balancing/xds/cds.cc +26 -43
  288. data/src/core/load_balancing/xds/xds_cluster_impl.cc +57 -54
  289. data/src/core/load_balancing/xds/xds_cluster_manager.cc +36 -50
  290. data/src/core/load_balancing/xds/xds_override_host.cc +95 -131
  291. data/src/core/load_balancing/xds/xds_wrr_locality.cc +15 -23
  292. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +3 -0
  293. data/src/core/resolver/binder/binder_resolver.cc +0 -2
  294. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +62 -44
  295. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +0 -2
  296. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +110 -89
  297. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +132 -96
  298. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +0 -7
  299. data/src/core/resolver/dns/dns_resolver_plugin.cc +0 -1
  300. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +40 -39
  301. data/src/core/resolver/dns/native/dns_resolver.cc +8 -14
  302. data/src/core/resolver/endpoint_addresses.cc +0 -1
  303. data/src/core/resolver/fake/fake_resolver.cc +0 -1
  304. data/src/core/resolver/polling_resolver.cc +6 -15
  305. data/src/core/resolver/polling_resolver.h +1 -1
  306. data/src/core/resolver/xds/xds_config.cc +96 -0
  307. data/src/core/resolver/xds/xds_config.h +109 -0
  308. data/src/core/resolver/xds/xds_dependency_manager.cc +59 -154
  309. data/src/core/resolver/xds/xds_dependency_manager.h +1 -69
  310. data/src/core/resolver/xds/xds_resolver.cc +51 -55
  311. data/src/core/server/server.cc +2 -2
  312. data/src/core/server/server_config_selector_filter.cc +0 -1
  313. data/src/core/server/xds_server_config_fetcher.cc +4 -6
  314. data/src/core/service_config/service_config_call_data.h +2 -3
  315. data/src/core/service_config/service_config_channel_arg_filter.cc +0 -1
  316. data/src/core/service_config/service_config_impl.h +0 -1
  317. data/src/core/telemetry/call_tracer.cc +0 -1
  318. data/src/core/telemetry/metrics.h +0 -1
  319. data/src/core/telemetry/stats_data.cc +67 -0
  320. data/src/core/telemetry/stats_data.h +48 -0
  321. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +0 -1
  322. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +0 -1
  323. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +0 -1
  324. data/src/core/tsi/fake_transport_security.cc +6 -5
  325. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -1
  326. data/src/core/util/alloc.cc +0 -1
  327. data/src/core/util/gcp_metadata_query.cc +0 -1
  328. data/src/core/util/http_client/httpcli.cc +12 -15
  329. data/src/core/util/http_client/httpcli.h +16 -11
  330. data/src/core/util/http_client/parser.cc +3 -4
  331. data/src/core/util/json/json_reader.cc +0 -1
  332. data/src/core/util/latent_see.cc +29 -9
  333. data/src/core/util/latent_see.h +122 -27
  334. data/src/core/util/log.cc +36 -55
  335. data/src/core/util/lru_cache.h +104 -0
  336. data/src/core/util/msys/tmpfile.cc +0 -1
  337. data/src/core/util/posix/sync.cc +0 -1
  338. data/src/core/util/posix/time.cc +0 -1
  339. data/src/core/util/ring_buffer.h +123 -0
  340. data/src/core/util/spinlock.h +1 -2
  341. data/src/core/util/string.cc +7 -7
  342. data/src/core/util/sync.cc +0 -1
  343. data/src/core/util/sync_abseil.cc +0 -1
  344. data/src/core/util/time.cc +0 -1
  345. data/src/core/util/unique_ptr_with_bitset.h +86 -0
  346. data/src/core/util/useful.h +0 -24
  347. data/src/core/util/windows/cpu.cc +0 -1
  348. data/src/core/util/windows/sync.cc +0 -1
  349. data/src/core/util/windows/time.cc +0 -1
  350. data/src/core/util/windows/tmpfile.cc +0 -1
  351. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +0 -32
  352. data/src/core/xds/grpc/xds_bootstrap_grpc.h +0 -5
  353. data/src/core/xds/grpc/xds_certificate_provider.cc +0 -1
  354. data/src/core/xds/grpc/xds_client_grpc.cc +11 -16
  355. data/src/core/xds/grpc/xds_cluster.cc +2 -8
  356. data/src/core/xds/grpc/xds_cluster.h +4 -4
  357. data/src/core/xds/grpc/xds_cluster_parser.cc +58 -96
  358. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +0 -1
  359. data/src/core/xds/grpc/xds_common_types_parser.cc +4 -4
  360. data/src/core/xds/grpc/xds_common_types_parser.h +17 -0
  361. data/src/core/xds/grpc/xds_endpoint_parser.cc +14 -14
  362. data/src/core/xds/grpc/xds_http_fault_filter.cc +15 -6
  363. data/src/core/xds/grpc/xds_http_fault_filter.h +5 -1
  364. data/src/core/xds/grpc/xds_http_filter.h +11 -1
  365. data/src/core/xds/grpc/xds_http_filter_registry.cc +7 -1
  366. data/src/core/xds/grpc/xds_http_filter_registry.h +8 -1
  367. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +142 -0
  368. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +61 -0
  369. data/src/core/xds/grpc/xds_http_rbac_filter.cc +14 -6
  370. data/src/core/xds/grpc/xds_http_rbac_filter.h +5 -1
  371. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +9 -1
  372. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +5 -1
  373. data/src/core/xds/grpc/xds_lb_policy_registry.cc +14 -16
  374. data/src/core/xds/grpc/xds_listener_parser.cc +10 -11
  375. data/src/core/xds/grpc/xds_metadata.cc +62 -0
  376. data/src/core/xds/grpc/xds_metadata.h +127 -0
  377. data/src/core/xds/grpc/xds_metadata_parser.cc +143 -0
  378. data/src/core/xds/grpc/xds_metadata_parser.h +36 -0
  379. data/src/core/xds/grpc/xds_route_config_parser.cc +12 -17
  380. data/src/core/xds/grpc/xds_routing.cc +57 -22
  381. data/src/core/xds/grpc/xds_routing.h +10 -2
  382. data/src/core/xds/grpc/xds_transport_grpc.cc +0 -1
  383. data/src/core/xds/xds_client/xds_client.cc +124 -165
  384. data/src/core/xds/xds_client/xds_client_stats.cc +20 -27
  385. data/src/ruby/ext/grpc/rb_call.c +1 -1
  386. data/src/ruby/ext/grpc/rb_call_credentials.c +34 -27
  387. data/src/ruby/ext/grpc/rb_channel.c +22 -16
  388. data/src/ruby/ext/grpc/rb_event_thread.c +3 -2
  389. data/src/ruby/ext/grpc/rb_grpc.c +9 -8
  390. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -10
  391. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +9 -15
  392. data/src/ruby/ext/grpc/rb_server.c +10 -8
  393. data/src/ruby/lib/grpc/generic/active_call.rb +8 -5
  394. data/src/ruby/lib/grpc/version.rb +1 -1
  395. data/src/ruby/spec/call_spec.rb +53 -40
  396. data/src/ruby/spec/channel_spec.rb +4 -2
  397. data/src/ruby/spec/client_server_spec.rb +148 -507
  398. data/src/ruby/spec/generic/active_call_spec.rb +64 -86
  399. data/src/ruby/spec/support/services.rb +3 -0
  400. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand/fork_detect.h → bcm_support.h} +51 -6
  401. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +43 -0
  402. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +72 -23
  403. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +1 -1
  404. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +160 -14
  405. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +2 -0
  406. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +79 -78
  407. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +89 -0
  408. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div.c → div.c.inc} +146 -179
  409. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{random.c → random.c.inc} +6 -8
  410. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{sqrt.c → sqrt.c.inc} +1 -1
  411. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aes.c → e_aes.c.inc} +9 -8
  412. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_key.c → ec_key.c.inc} +11 -7
  413. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-nistz.c → p256-nistz.c.inc} +104 -12
  414. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +65 -8
  415. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/{ecdsa.c → ecdsa.c.inc} +52 -107
  416. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +28 -11
  417. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -80
  418. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{rand.c → rand.c.inc} +26 -40
  419. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{padding.c → padding.c.inc} +2 -5
  420. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa_impl.c → rsa_impl.c.inc} +1 -1
  421. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{self_check.c → self_check.c.inc} +9 -35
  422. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +2 -2
  423. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/{service_indicator.c → service_indicator.c.inc} +2 -2
  424. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +293 -2
  425. data/third_party/boringssl-with-bazel/src/crypto/internal.h +69 -14
  426. data/third_party/boringssl-with-bazel/src/crypto/mem.c +7 -3
  427. data/third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h +73 -0
  428. data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c +1687 -0
  429. data/third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h +90 -0
  430. data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +1097 -0
  431. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +4 -1
  432. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +4 -5
  433. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +2 -3
  434. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +1 -1
  435. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +1 -0
  436. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +9 -1
  437. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/fork_detect.c +26 -28
  438. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +9 -1
  439. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +9 -1
  440. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +19 -3
  441. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +26 -23
  442. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h +37 -0
  443. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +9 -1
  444. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/urandom.c +19 -19
  445. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +8 -1
  446. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +2 -0
  447. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +14 -1
  448. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +14 -9
  449. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +13 -15
  450. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +8 -6
  451. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +136 -0
  452. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +246 -0
  453. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +3 -0
  454. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +3 -4
  455. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +2 -2
  456. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +22 -0
  457. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +35 -5
  458. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -6
  459. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +6 -0
  460. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +6 -1
  461. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -1
  462. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +289 -55
  463. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +2 -0
  464. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +69 -38
  465. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +14 -3
  466. data/third_party/boringssl-with-bazel/src/ssl/internal.h +107 -14
  467. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +44 -16
  468. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -1
  469. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +86 -1
  470. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +7 -4
  471. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +97 -3
  472. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +31 -2
  473. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +6 -0
  474. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +18 -4
  475. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +96 -34
  476. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +15 -5
  477. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +3 -23
  478. metadata +113 -87
  479. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +0 -45
  480. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +0 -67
  481. data/src/core/util/android/log.cc +0 -48
  482. data/src/core/util/linux/log.cc +0 -69
  483. data/src/core/util/posix/log.cc +0 -69
  484. data/src/core/util/windows/log.cc +0 -73
  485. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes.c → aes.c.inc} +0 -0
  486. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes_nohw.c → aes_nohw.c.inc} +0 -0
  487. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{key_wrap.c → key_wrap.c.inc} +0 -0
  488. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{mode_wrappers.c → mode_wrappers.c.inc} +0 -0
  489. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{add.c → add.c.inc} +0 -0
  490. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/{x86_64-gcc.c → x86_64-gcc.c.inc} +0 -0
  491. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bn.c → bn.c.inc} +0 -0
  492. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bytes.c → bytes.c.inc} +0 -0
  493. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{cmp.c → cmp.c.inc} +0 -0
  494. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{ctx.c → ctx.c.inc} +0 -0
  495. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div_extra.c → div_extra.c.inc} +0 -0
  496. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{exponentiation.c → exponentiation.c.inc} +0 -0
  497. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd.c → gcd.c.inc} +0 -0
  498. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd_extra.c → gcd_extra.c.inc} +0 -0
  499. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{generic.c → generic.c.inc} +0 -0
  500. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{jacobi.c → jacobi.c.inc} +0 -0
  501. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery.c → montgomery.c.inc} +0 -0
  502. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery_inv.c → montgomery_inv.c.inc} +0 -0
  503. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{mul.c → mul.c.inc} +0 -0
  504. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{prime.c → prime.c.inc} +0 -0
  505. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{rsaz_exp.c → rsaz_exp.c.inc} +0 -0
  506. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{shift.c → shift.c.inc} +0 -0
  507. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{aead.c → aead.c.inc} +0 -0
  508. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{cipher.c → cipher.c.inc} +0 -0
  509. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aesccm.c → e_aesccm.c.inc} +0 -0
  510. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/{cmac.c → cmac.c.inc} +0 -0
  511. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{check.c → check.c.inc} +0 -0
  512. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{dh.c → dh.c.inc} +0 -0
  513. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digest.c → digest.c.inc} +0 -0
  514. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digests.c → digests.c.inc} +0 -0
  515. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/{digestsign.c → digestsign.c.inc} +0 -0
  516. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec.c → ec.c.inc} +0 -0
  517. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_montgomery.c → ec_montgomery.c.inc} +0 -0
  518. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{felem.c → felem.c.inc} +0 -0
  519. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{oct.c → oct.c.inc} +0 -0
  520. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p224-64.c → p224-64.c.inc} +0 -0
  521. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256.c → p256.c.inc} +0 -0
  522. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{scalar.c → scalar.c.inc} +0 -0
  523. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple.c → simple.c.inc} +0 -0
  524. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple_mul.c → simple_mul.c.inc} +0 -0
  525. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{util.c → util.c.inc} +0 -0
  526. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{wnaf.c → wnaf.c.inc} +0 -0
  527. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/{ecdh.c → ecdh.c.inc} +0 -0
  528. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/{hkdf.c → hkdf.c.inc} +0 -0
  529. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/{hmac.c → hmac.c.inc} +0 -0
  530. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/{md4.c → md4.c.inc} +0 -0
  531. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/{md5.c → md5.c.inc} +0 -0
  532. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cbc.c → cbc.c.inc} +0 -0
  533. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cfb.c → cfb.c.inc} +0 -0
  534. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ctr.c → ctr.c.inc} +0 -0
  535. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm.c → gcm.c.inc} +0 -0
  536. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm_nohw.c → gcm_nohw.c.inc} +0 -0
  537. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ofb.c → ofb.c.inc} +0 -0
  538. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{polyval.c → polyval.c.inc} +0 -0
  539. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{ctrdrbg.c → ctrdrbg.c.inc} +0 -0
  540. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{blinding.c → blinding.c.inc} +0 -0
  541. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa.c → rsa.c.inc} +0 -0
  542. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{fips.c → fips.c.inc} +0 -0
  543. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha1.c → sha1.c.inc} +0 -0
  544. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha256.c → sha256.c.inc} +0 -0
  545. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha512.c → sha512.c.inc} +0 -0
  546. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/{kdf.c → kdf.c.inc} +0 -0
  547. /data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/rand → rand_extra}/getrandom_fillin.h +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce7eaaad7b69540dd61b0af07af801394a945137a41d75342533bef620fe1ad9
4
- data.tar.gz: f186be6e589c40ca83cb6fdbb3d90f72b7ebb87115148a6f07f1698e3c5174e5
3
+ metadata.gz: '03287f82b7e0d3115f51cb7c52760607489c0f3cc5d5bbad58fe1bc57f1eefcb'
4
+ data.tar.gz: ce0c5ecf916b5a796378650ee14b94b03004a4663341f6f76459f3b420786100
5
5
  SHA512:
6
- metadata.gz: a931175742993f7d1c5c630ab2902313d386da09f36267bb31dd2c4fd8300dbf5b3f08caf805b3c71336028872790a79637d95be8e4714a13904c2fc1cade859
7
- data.tar.gz: bd0dcbacaeb42f15cb8a733ccf59d105702818a8496cf13d8521d294faeaeaaddad45a80ea26b651ff503d40b4de46eef89f0954977e03a4081ffb9447c33873
6
+ metadata.gz: b21a39f4cc94e54ea2fd64becee2f331f46051fad3ef4727b2061b05e651805362e4f279143aea18c192a168939d380b5f5b9eed9103b2777af08c7071564606
7
+ data.tar.gz: ba50ba9e1ea2d7249d15db7cdd8fa2437b64627ac8e2911da47a0a4a01f00c97287047b3bab12a66cc1cf545eb659c9b0996a5bc6143146e327956729feed9eb
data/Makefile CHANGED
@@ -367,8 +367,8 @@ E = @echo
367
367
  Q = @
368
368
  endif
369
369
 
370
- CORE_VERSION = 43.0.0
371
- CPP_VERSION = 1.66.0
370
+ CORE_VERSION = 44.0.0
371
+ CPP_VERSION = 1.67.0-pre1
372
372
 
373
373
  CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
374
374
  CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
@@ -404,7 +404,7 @@ SHARED_EXT_CORE = dll
404
404
  SHARED_EXT_CPP = dll
405
405
 
406
406
  SHARED_PREFIX =
407
- SHARED_VERSION_CORE = -43
407
+ SHARED_VERSION_CORE = -44
408
408
  SHARED_VERSION_CPP = -1
409
409
  else ifeq ($(SYSTEM),Darwin)
410
410
  EXECUTABLE_SUFFIX =
@@ -694,6 +694,8 @@ LIBGRPC_SRC = \
694
694
  src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc \
695
695
  src/core/ext/filters/fault_injection/fault_injection_filter.cc \
696
696
  src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc \
697
+ src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc \
698
+ src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc \
697
699
  src/core/ext/filters/http/client/http_client_filter.cc \
698
700
  src/core/ext/filters/http/client_authority_filter.cc \
699
701
  src/core/ext/filters/http/http_filters_plugin.cc \
@@ -726,7 +728,6 @@ LIBGRPC_SRC = \
726
728
  src/core/ext/transport/chttp2/transport/hpack_parser_table.cc \
727
729
  src/core/ext/transport/chttp2/transport/http2_settings.cc \
728
730
  src/core/ext/transport/chttp2/transport/huffsyms.cc \
729
- src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc \
730
731
  src/core/ext/transport/chttp2/transport/parsing.cc \
731
732
  src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc \
732
733
  src/core/ext/transport/chttp2/transport/ping_callbacks.cc \
@@ -805,6 +806,7 @@ LIBGRPC_SRC = \
805
806
  src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c \
806
807
  src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c \
807
808
  src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c \
809
+ src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c \
808
810
  src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c \
809
811
  src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c \
810
812
  src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c \
@@ -970,6 +972,7 @@ LIBGRPC_SRC = \
970
972
  src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c \
971
973
  src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c \
972
974
  src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c \
975
+ src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c \
973
976
  src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c \
974
977
  src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c \
975
978
  src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c \
@@ -1277,6 +1280,7 @@ LIBGRPC_SRC = \
1277
1280
  src/core/lib/security/credentials/external/file_external_account_credentials.cc \
1278
1281
  src/core/lib/security/credentials/external/url_external_account_credentials.cc \
1279
1282
  src/core/lib/security/credentials/fake/fake_credentials.cc \
1283
+ src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc \
1280
1284
  src/core/lib/security/credentials/google_default/credentials_generic.cc \
1281
1285
  src/core/lib/security/credentials/google_default/google_default_credentials.cc \
1282
1286
  src/core/lib/security/credentials/iam/iam_credentials.cc \
@@ -1296,6 +1300,7 @@ LIBGRPC_SRC = \
1296
1300
  src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc \
1297
1301
  src/core/lib/security/credentials/tls/tls_credentials.cc \
1298
1302
  src/core/lib/security/credentials/tls/tls_utils.cc \
1303
+ src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc \
1299
1304
  src/core/lib/security/credentials/xds/xds_credentials.cc \
1300
1305
  src/core/lib/security/security_connector/alts/alts_security_connector.cc \
1301
1306
  src/core/lib/security/security_connector/fake/fake_security_connector.cc \
@@ -1404,6 +1409,7 @@ LIBGRPC_SRC = \
1404
1409
  src/core/resolver/resolver.cc \
1405
1410
  src/core/resolver/resolver_registry.cc \
1406
1411
  src/core/resolver/sockaddr/sockaddr_resolver.cc \
1412
+ src/core/resolver/xds/xds_config.cc \
1407
1413
  src/core/resolver/xds/xds_dependency_manager.cc \
1408
1414
  src/core/resolver/xds/xds_resolver.cc \
1409
1415
  src/core/server/server.cc \
@@ -1449,7 +1455,6 @@ LIBGRPC_SRC = \
1449
1455
  src/core/tsi/transport_security.cc \
1450
1456
  src/core/tsi/transport_security_grpc.cc \
1451
1457
  src/core/util/alloc.cc \
1452
- src/core/util/android/log.cc \
1453
1458
  src/core/util/atm.cc \
1454
1459
  src/core/util/gcp_metadata_query.cc \
1455
1460
  src/core/util/http_client/format_request.cc \
@@ -1463,11 +1468,9 @@ LIBGRPC_SRC = \
1463
1468
  src/core/util/json/json_writer.cc \
1464
1469
  src/core/util/latent_see.cc \
1465
1470
  src/core/util/linux/cpu.cc \
1466
- src/core/util/linux/log.cc \
1467
1471
  src/core/util/log.cc \
1468
1472
  src/core/util/msys/tmpfile.cc \
1469
1473
  src/core/util/posix/cpu.cc \
1470
- src/core/util/posix/log.cc \
1471
1474
  src/core/util/posix/string.cc \
1472
1475
  src/core/util/posix/sync.cc \
1473
1476
  src/core/util/posix/time.cc \
@@ -1478,7 +1481,6 @@ LIBGRPC_SRC = \
1478
1481
  src/core/util/time.cc \
1479
1482
  src/core/util/time_precise.cc \
1480
1483
  src/core/util/windows/cpu.cc \
1481
- src/core/util/windows/log.cc \
1482
1484
  src/core/util/windows/string.cc \
1483
1485
  src/core/util/windows/string_util.cc \
1484
1486
  src/core/util/windows/sync.cc \
@@ -1500,11 +1502,14 @@ LIBGRPC_SRC = \
1500
1502
  src/core/xds/grpc/xds_health_status.cc \
1501
1503
  src/core/xds/grpc/xds_http_fault_filter.cc \
1502
1504
  src/core/xds/grpc/xds_http_filter_registry.cc \
1505
+ src/core/xds/grpc/xds_http_gcp_authn_filter.cc \
1503
1506
  src/core/xds/grpc/xds_http_rbac_filter.cc \
1504
1507
  src/core/xds/grpc/xds_http_stateful_session_filter.cc \
1505
1508
  src/core/xds/grpc/xds_lb_policy_registry.cc \
1506
1509
  src/core/xds/grpc/xds_listener.cc \
1507
1510
  src/core/xds/grpc/xds_listener_parser.cc \
1511
+ src/core/xds/grpc/xds_metadata.cc \
1512
+ src/core/xds/grpc/xds_metadata_parser.cc \
1508
1513
  src/core/xds/grpc/xds_route_config.cc \
1509
1514
  src/core/xds/grpc/xds_route_config_parser.cc \
1510
1515
  src/core/xds/grpc/xds_routing.cc \
@@ -1843,8 +1848,8 @@ $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE): $(LIBGRPC_
1843
1848
  ifeq ($(SYSTEM),Darwin)
1844
1849
  $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
1845
1850
  else
1846
- $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.43 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
1847
- $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.43
1851
+ $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.44 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libcares.a $(OPENSSL_MERGE_LIBS) $(ZLIB_MERGE_LIBS) $(LDLIBS_SECURE) $(LDLIBS)
1852
+ $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so.44
1848
1853
  $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE).so
1849
1854
  endif
1850
1855
  endif
@@ -1979,6 +1984,8 @@ LIBBORINGSSL_SRC = \
1979
1984
  third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c \
1980
1985
  third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c \
1981
1986
  third_party/boringssl-with-bazel/src/crypto/mem.c \
1987
+ third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c \
1988
+ third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc \
1982
1989
  third_party/boringssl-with-bazel/src/crypto/obj/obj.c \
1983
1990
  third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c \
1984
1991
  third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c \
@@ -1999,12 +2006,14 @@ LIBBORINGSSL_SRC = \
1999
2006
  third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c \
2000
2007
  third_party/boringssl-with-bazel/src/crypto/pool/pool.c \
2001
2008
  third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c \
2009
+ third_party/boringssl-with-bazel/src/crypto/rand_extra/fork_detect.c \
2002
2010
  third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c \
2003
2011
  third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c \
2004
2012
  third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c \
2005
2013
  third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c \
2006
2014
  third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c \
2007
2015
  third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c \
2016
+ third_party/boringssl-with-bazel/src/crypto/rand_extra/urandom.c \
2008
2017
  third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c \
2009
2018
  third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c \
2010
2019
  third_party/boringssl-with-bazel/src/crypto/refcount.c \
@@ -103,7 +103,7 @@ GRPCAPI grpc_call_credentials* grpc_sts_credentials_create(
103
103
  /** Context that can be used by metadata credentials plugin in order to create
104
104
  auth related metadata. */
105
105
  typedef struct {
106
- /** The fully qualifed service url. */
106
+ /** The fully qualified service url. */
107
107
  const char* service_url;
108
108
 
109
109
  /** The method name of the RPC being called (not fully qualified).
@@ -23,7 +23,7 @@ thresholds. To enable this feature, the memory allocation of read/write buffers
23
23
  within an EventEngine must be acquired in the form of Slices from
24
24
  SliceAllocators. This is covered more fully in the gRFC and code.
25
25
 
26
- ### Documentating expectations around callback execution
26
+ ### Documenting expectations around callback execution
27
27
  Some callbacks may be expensive to run. EventEngines should decide on and
28
28
  document whether callback execution might block polling operations. This way,
29
29
  application developers can plan accordingly (e.g., run their expensive callbacks
@@ -24,7 +24,7 @@ namespace internal {
24
24
  // with `SliceCast`. Both ways need to be declared (i.e. if
25
25
  // SliceCastable<A,B> exists, you should declare
26
26
  // SliceCastable<B,A> too).
27
- // The type has no members, it's just the existance of the specialization that
27
+ // The type has no members, it's just the existence of the specialization that
28
28
  // unlocks SliceCast usage for a type pair.
29
29
  template <typename Result, typename T>
30
30
  struct SliceCastable;
@@ -25,7 +25,6 @@
25
25
 
26
26
  #include <grpc/event_engine/internal/slice_cast.h>
27
27
  #include <grpc/slice.h>
28
- #include <grpc/support/log.h>
29
28
  #include <grpc/support/port_platform.h>
30
29
 
31
30
  // This public slice definition largely based of the internal grpc_core::Slice
@@ -28,7 +28,6 @@
28
28
  #include <grpc/impl/codegen/slice.h>
29
29
  #include <grpc/slice.h>
30
30
  #include <grpc/slice_buffer.h>
31
- #include <grpc/support/log.h>
32
31
  #include <grpc/support/port_platform.h>
33
32
 
34
33
  namespace grpc_event_engine {
@@ -82,7 +82,7 @@ absl::StatusOr<std::shared_ptr<CrlProvider>> CreateDirectoryReloaderCrlProvider(
82
82
  } // namespace experimental
83
83
  } // namespace grpc_core
84
84
 
85
- // TODO(gtcooke94) - Mark with api macro when all wrapped langauges support C++
85
+ // TODO(gtcooke94) - Mark with api macro when all wrapped languages support C++
86
86
  // in core APIs
87
87
  /**
88
88
  * EXPERIMENTAL API - Subject to change
@@ -259,7 +259,7 @@
259
259
  issued by the tcp_write(). By default, this is set to 4. */
260
260
  #define GRPC_ARG_TCP_TX_ZEROCOPY_MAX_SIMULT_SENDS \
261
261
  "grpc.experimental.tcp_tx_zerocopy_max_simultaneous_sends"
262
- /* Overrides the TCP socket recieve buffer size, SO_RCVBUF. */
262
+ /* Overrides the TCP socket receive buffer size, SO_RCVBUF. */
263
263
  #define GRPC_ARG_TCP_RECEIVE_BUFFER_SIZE "grpc.tcp_receive_buffer_size"
264
264
  /* Timeout in milliseconds to use for calls to the grpclb load balancer.
265
265
  If 0 or unset, the balancer calls will have no deadline. */
@@ -28,13 +28,8 @@
28
28
  extern "C" {
29
29
  #endif
30
30
 
31
- /**
32
- * Logging functions in this file are deprecated.
33
- * Please use absl ABSL_LOG instead.
34
- */
35
-
36
31
  /** The severity of a log message - use the #defines below when calling into
37
- gpr_log to additionally supply file and line data */
32
+ grpc_absl_log to additionally supply file and line data */
38
33
  typedef enum gpr_log_severity {
39
34
  GPR_LOG_SEVERITY_DEBUG,
40
35
  GPR_LOG_SEVERITY_INFO,
@@ -46,37 +41,44 @@ typedef enum gpr_log_severity {
46
41
  #define GPR_INFO __FILE__, __LINE__, GPR_LOG_SEVERITY_INFO
47
42
  #define GPR_ERROR __FILE__, __LINE__, GPR_LOG_SEVERITY_ERROR
48
43
 
49
- /** Log a message. It's advised to use GPR_xxx above to generate the context
50
- * for each message */
51
- GPRAPI void gpr_log(const char* file, int line, gpr_log_severity severity,
52
- const char* format, ...) GPR_PRINT_FORMAT_CHECK(4, 5);
53
-
54
- GPRAPI int gpr_should_log(gpr_log_severity severity);
44
+ /**
45
+ * EXPERIMENTAL. API stability not guaranteed.
46
+ * Should only be used from gRPC PHP and RUBY.
47
+ * This will be removed once Ruby and PHP can start using C++ APIs.
48
+ * We would replace this with calls to absl LOG functions.
49
+ * grpc_absl_log is equivalent to
50
+ * ABSL_LOG(severity) << message_str;
51
+ * **/
52
+ GPRAPI void grpc_absl_log(const char* file, int line, gpr_log_severity severity,
53
+ const char* message_str);
55
54
 
56
- GPRAPI void gpr_log_message(const char* file, int line,
57
- gpr_log_severity severity, const char* message);
55
+ /**
56
+ * EXPERIMENTAL. API stability not guaranteed.
57
+ * Should only be used from gRPC PHP and RUBY.
58
+ * This will be removed once Ruby and PHP can start using C++ APIs.
59
+ * We would replace this with calls to absl LOG functions.
60
+ * grpc_absl_log_int is equivalent to
61
+ * ABSL_LOG(severity) << message_str << num;
62
+ * **/
63
+ GPRAPI void grpc_absl_log_int(const char* file, int line,
64
+ gpr_log_severity severity,
65
+ const char* message_str, intptr_t num);
58
66
 
59
- /** Set global log verbosity */
60
- GPRAPI void gpr_set_log_verbosity(gpr_log_severity deprecated_setting);
67
+ /**
68
+ * EXPERIMENTAL. API stability not guaranteed.
69
+ * Should only be used from gRPC PHP and RUBY.
70
+ * This will be removed once Ruby and PHP can start using C++ APIs.
71
+ * We would replace this with calls to absl LOG functions.
72
+ * grpc_absl_log_str is equivalent to
73
+ * ABSL_LOG(severity) << message_str1 << message_str2;
74
+ * **/
75
+ GPRAPI void grpc_absl_log_str(const char* file, int line,
76
+ gpr_log_severity severity,
77
+ const char* message_str1,
78
+ const char* message_str2);
61
79
 
62
80
  GPRAPI void gpr_log_verbosity_init(void);
63
81
 
64
- /** Log overrides: applications can use this API to intercept logging calls
65
- and use their own implementations */
66
-
67
- struct gpr_log_func_args {
68
- const char* file;
69
- int line;
70
- gpr_log_severity severity;
71
- const char* message;
72
- };
73
-
74
- typedef struct gpr_log_func_args gpr_log_func_args;
75
-
76
- typedef void (*gpr_log_func)(gpr_log_func_args* args);
77
-
78
- GPRAPI void gpr_set_log_function(gpr_log_func deprecated_setting);
79
-
80
82
  #ifdef __cplusplus
81
83
  }
82
84
  #endif
@@ -29,8 +29,7 @@ typedef struct {
29
29
  gpr_atm state;
30
30
  } gpr_event;
31
31
 
32
- #define GPR_EVENT_INIT \
33
- { 0 }
32
+ #define GPR_EVENT_INIT {0}
34
33
 
35
34
  /* gpr_refcount */
36
35
  typedef struct {
@@ -42,7 +41,6 @@ typedef struct {
42
41
  gpr_atm value;
43
42
  } gpr_stats_counter;
44
43
 
45
- #define GPR_STATS_INIT \
46
- { 0 }
44
+ #define GPR_STATS_INIT {0}
47
45
 
48
46
  #endif /* GRPC_SUPPORT_SYNC_GENERIC_H */
@@ -29,7 +29,6 @@
29
29
  #include "absl/strings/strip.h"
30
30
 
31
31
  #include <grpc/support/json.h>
32
- #include <grpc/support/log.h>
33
32
  #include <grpc/support/port_platform.h>
34
33
  #include <grpc/support/time.h>
35
34
 
@@ -29,7 +29,6 @@
29
29
 
30
30
  #include <grpc/grpc.h>
31
31
  #include <grpc/support/json.h>
32
- #include <grpc/support/log.h>
33
32
  #include <grpc/support/port_platform.h>
34
33
  #include <grpc/support/string_util.h>
35
34
 
@@ -1105,6 +1105,10 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
1105
1105
  service_config = std::move(*result.service_config);
1106
1106
  config_selector = result.args.GetObjectRef<ConfigSelector>();
1107
1107
  }
1108
+ // Remove the config selector from channel args so that we're not holding
1109
+ // unnecessary refs that cause it to be destroyed somewhere other than in
1110
+ // the WorkSerializer.
1111
+ result.args = result.args.Remove(GRPC_ARG_CONFIG_SELECTOR);
1108
1112
  // Note: The only case in which service_config is null here is if the
1109
1113
  // resolver returned a service config error and we don't have a previous
1110
1114
  // service config to fall back to.
@@ -1138,6 +1142,7 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
1138
1142
  << "client_channel=" << this << ": service config not changed";
1139
1143
  }
1140
1144
  // Create or update LB policy, as needed.
1145
+ ChannelArgs new_args = result.args;
1141
1146
  resolver_result_status = CreateOrUpdateLbPolicyLocked(
1142
1147
  std::move(lb_policy_config),
1143
1148
  parsed_service_config->health_check_service_name(), std::move(result));
@@ -1146,7 +1151,7 @@ void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
1146
1151
  // the ConfigSelector may need the LB policy to know about new
1147
1152
  // destinations before it can send RPCs to those destinations.
1148
1153
  if (service_config_changed || config_selector_changed) {
1149
- UpdateServiceConfigInDataPlaneLocked();
1154
+ UpdateServiceConfigInDataPlaneLocked(new_args);
1150
1155
  }
1151
1156
  }
1152
1157
  // Invoke resolver callback if needed.
@@ -1196,10 +1201,7 @@ absl::Status ClientChannel::CreateOrUpdateLbPolicyLocked(
1196
1201
  }
1197
1202
  update_args.config = std::move(lb_policy_config);
1198
1203
  update_args.resolution_note = std::move(result.resolution_note);
1199
- // Remove the config selector from channel args so that we're not holding
1200
- // unnecessary refs that cause it to be destroyed somewhere other than in
1201
- // the WorkSerializer.
1202
- update_args.args = result.args.Remove(GRPC_ARG_CONFIG_SELECTOR);
1204
+ update_args.args = std::move(result.args);
1203
1205
  // Add health check service name to channel args.
1204
1206
  if (health_check_service_name.has_value()) {
1205
1207
  update_args.args = update_args.args.Set(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME,
@@ -1264,7 +1266,8 @@ void ClientChannel::UpdateServiceConfigInControlPlaneLocked(
1264
1266
  }
1265
1267
  }
1266
1268
 
1267
- void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
1269
+ void ClientChannel::UpdateServiceConfigInDataPlaneLocked(
1270
+ const ChannelArgs& args) {
1268
1271
  GRPC_TRACE_LOG(client_channel, INFO)
1269
1272
  << "client_channel=" << this << ": switching to ConfigSelector "
1270
1273
  << saved_config_selector_.get();
@@ -1275,7 +1278,7 @@ void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
1275
1278
  MakeRefCounted<DefaultConfigSelector>(saved_service_config_);
1276
1279
  }
1277
1280
  // Construct filter stack.
1278
- InterceptionChainBuilder builder(channel_args_.SetObject(this));
1281
+ InterceptionChainBuilder builder(args.SetObject(this));
1279
1282
  if (idle_timeout_ != Duration::Zero()) {
1280
1283
  builder.AddOnServerTrailingMetadata([this](ServerMetadata&) {
1281
1284
  if (idle_state_.DecreaseCallCount()) StartIdleTimer();
@@ -149,7 +149,7 @@ class ClientChannel : public Channel {
149
149
  RefCountedPtr<ConfigSelector> config_selector, std::string lb_policy_name)
150
150
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(*work_serializer_);
151
151
 
152
- void UpdateServiceConfigInDataPlaneLocked()
152
+ void UpdateServiceConfigInDataPlaneLocked(const ChannelArgs& args)
153
153
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(*work_serializer_);
154
154
 
155
155
  void UpdateStateLocked(grpc_connectivity_state state,
@@ -1319,6 +1319,10 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
1319
1319
  service_config = std::move(*result.service_config);
1320
1320
  config_selector = result.args.GetObjectRef<ConfigSelector>();
1321
1321
  }
1322
+ // Remove the config selector from channel args so that we're not holding
1323
+ // unnecessary refs that cause it to be destroyed somewhere other than in the
1324
+ // WorkSerializer.
1325
+ result.args = result.args.Remove(GRPC_ARG_CONFIG_SELECTOR);
1322
1326
  // Note: The only case in which service_config is null here is if the resolver
1323
1327
  // returned a service config error and we don't have a previous service
1324
1328
  // config to fall back to.
@@ -1349,6 +1353,7 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
1349
1353
  << "chand=" << this << ": service config not changed";
1350
1354
  }
1351
1355
  // Create or update LB policy, as needed.
1356
+ ChannelArgs new_args = result.args;
1352
1357
  resolver_result_status = CreateOrUpdateLbPolicyLocked(
1353
1358
  std::move(lb_policy_config),
1354
1359
  parsed_service_config->health_check_service_name(), std::move(result));
@@ -1357,7 +1362,7 @@ void ClientChannelFilter::OnResolverResultChangedLocked(
1357
1362
  // This needs to happen after the LB policy has been updated, since
1358
1363
  // the ConfigSelector may need the LB policy to know about new
1359
1364
  // destinations before it can send RPCs to those destinations.
1360
- UpdateServiceConfigInDataPlaneLocked();
1365
+ UpdateServiceConfigInDataPlaneLocked(new_args);
1361
1366
  // TODO(ncteisen): might be worth somehow including a snippet of the
1362
1367
  // config in the trace, at the risk of bloating the trace logs.
1363
1368
  trace_strings.push_back("Service config changed");
@@ -1413,10 +1418,7 @@ absl::Status ClientChannelFilter::CreateOrUpdateLbPolicyLocked(
1413
1418
  }
1414
1419
  update_args.config = std::move(lb_policy_config);
1415
1420
  update_args.resolution_note = std::move(result.resolution_note);
1416
- // Remove the config selector from channel args so that we're not holding
1417
- // unnecessary refs that cause it to be destroyed somewhere other than in the
1418
- // WorkSerializer.
1419
- update_args.args = result.args.Remove(GRPC_ARG_CONFIG_SELECTOR);
1421
+ update_args.args = std::move(result.args);
1420
1422
  // Add health check service name to channel args.
1421
1423
  if (health_check_service_name.has_value()) {
1422
1424
  update_args.args = update_args.args.Set(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME,
@@ -1480,7 +1482,8 @@ void ClientChannelFilter::UpdateServiceConfigInControlPlaneLocked(
1480
1482
  << saved_config_selector_.get();
1481
1483
  }
1482
1484
 
1483
- void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked() {
1485
+ void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked(
1486
+ const ChannelArgs& args) {
1484
1487
  // Grab ref to service config.
1485
1488
  RefCountedPtr<ServiceConfig> service_config = saved_service_config_;
1486
1489
  // Grab ref to config selector. Use default if resolver didn't supply one.
@@ -1492,8 +1495,7 @@ void ClientChannelFilter::UpdateServiceConfigInDataPlaneLocked() {
1492
1495
  config_selector =
1493
1496
  MakeRefCounted<DefaultConfigSelector>(saved_service_config_);
1494
1497
  }
1495
- ChannelArgs new_args =
1496
- channel_args_.SetObject(this).SetObject(service_config);
1498
+ ChannelArgs new_args = args.SetObject(this).SetObject(service_config);
1497
1499
  bool enable_retries =
1498
1500
  !new_args.WantMinimalStack() &&
1499
1501
  new_args.GetBool(GRPC_ARG_ENABLE_RETRIES).value_or(true);
@@ -2516,16 +2518,17 @@ ClientChannelFilter::LoadBalancedCall::PickSubchannel(bool was_queued) {
2516
2518
  // updated before we queue it.
2517
2519
  // We need to unref pickers in the WorkSerializer.
2518
2520
  std::vector<RefCountedPtr<LoadBalancingPolicy::SubchannelPicker>> pickers;
2519
- auto cleanup = absl::MakeCleanup([&]() {
2520
- if (IsWorkSerializerDispatchEnabled()) return;
2521
- chand_->work_serializer_->Run(
2522
- [pickers = std::move(pickers)]() mutable {
2523
- for (auto& picker : pickers) {
2524
- picker.reset(DEBUG_LOCATION, "PickSubchannel");
2525
- }
2526
- },
2527
- DEBUG_LOCATION);
2528
- });
2521
+ auto cleanup = absl::MakeCleanup(
2522
+ [work_serializer = chand_->work_serializer_, &pickers]() {
2523
+ if (IsWorkSerializerDispatchEnabled()) return;
2524
+ work_serializer->Run(
2525
+ [pickers = std::move(pickers)]() mutable {
2526
+ for (auto& picker : pickers) {
2527
+ picker.reset(DEBUG_LOCATION, "PickSubchannel");
2528
+ }
2529
+ },
2530
+ DEBUG_LOCATION);
2531
+ });
2529
2532
  absl::AnyInvocable<void(RefCountedPtr<LoadBalancingPolicy::SubchannelPicker>)>
2530
2533
  set_picker;
2531
2534
  if (!IsWorkSerializerDispatchEnabled()) {
@@ -247,7 +247,7 @@ class ClientChannelFilter final {
247
247
  RefCountedPtr<ConfigSelector> config_selector, std::string lb_policy_name)
248
248
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(*work_serializer_);
249
249
 
250
- void UpdateServiceConfigInDataPlaneLocked()
250
+ void UpdateServiceConfigInDataPlaneLocked(const ChannelArgs& args)
251
251
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(*work_serializer_);
252
252
 
253
253
  void CreateResolverLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*work_serializer_);
@@ -24,8 +24,6 @@
24
24
  #include "absl/functional/any_invocable.h"
25
25
  #include "absl/log/check.h"
26
26
 
27
- #include <grpc/support/log.h>
28
-
29
27
  #include "src/core/lib/gprpp/down_cast.h"
30
28
  #include "src/core/lib/gprpp/unique_type_name.h"
31
29
  #include "src/core/lib/resource_quota/arena.h"
@@ -29,7 +29,6 @@
29
29
  #include "absl/strings/string_view.h"
30
30
 
31
31
  #include <grpc/grpc.h>
32
- #include <grpc/support/log.h>
33
32
 
34
33
  #include "src/core/client_channel/client_channel_internal.h"
35
34
  #include "src/core/lib/channel/channel_fwd.h"
@@ -27,8 +27,6 @@
27
27
  #include "absl/log/log.h"
28
28
  #include "absl/status/statusor.h"
29
29
 
30
- #include <grpc/support/log.h>
31
-
32
30
  #include "src/core/lib/channel/channel_args.h"
33
31
  #include "src/core/lib/channel/channel_stack.h"
34
32
  #include "src/core/lib/channel/channel_stack_builder_impl.h"
@@ -24,8 +24,6 @@
24
24
 
25
25
  #include "absl/log/check.h"
26
26
 
27
- #include <grpc/support/log.h>
28
-
29
27
  #include "src/core/client_channel/subchannel.h"
30
28
 
31
29
  namespace grpc_core {
@@ -30,7 +30,6 @@
30
30
  #include <grpc/event_engine/event_engine.h>
31
31
  #include <grpc/grpc.h>
32
32
  #include <grpc/impl/channel_arg_names.h>
33
- #include <grpc/support/log.h>
34
33
 
35
34
  #include "src/core/client_channel/client_channel_filter.h"
36
35
  #include "src/core/client_channel/retry_service_config.h"