grpc 1.75.0 → 1.78.1

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 (839) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +24 -5
  3. data/include/grpc/credentials.h +27 -6
  4. data/include/grpc/event_engine/memory_allocator.h +2 -0
  5. data/include/grpc/event_engine/memory_request.h +2 -0
  6. data/include/grpc/impl/channel_arg_names.h +5 -0
  7. data/include/grpc/support/metrics.h +7 -1
  8. data/src/core/call/call_filters.cc +5 -5
  9. data/src/core/call/call_filters.h +211 -37
  10. data/src/core/call/call_spine.cc +1 -1
  11. data/src/core/call/call_spine.h +54 -32
  12. data/src/core/call/channelz_context.h +30 -0
  13. data/src/core/call/client_call.cc +49 -10
  14. data/src/core/call/client_call.h +6 -3
  15. data/src/core/call/filter_fusion.h +9 -9
  16. data/src/core/call/interception_chain.h +7 -6
  17. data/src/core/call/metadata_batch.cc +49 -55
  18. data/src/core/call/metadata_batch.h +10 -9
  19. data/src/core/call/metadata_info.cc +1 -1
  20. data/src/core/call/parsed_metadata.h +2 -2
  21. data/src/core/call/request_buffer.cc +1 -1
  22. data/src/core/call/security_context.cc +2 -2
  23. data/src/core/call/security_context.h +1 -1
  24. data/src/core/call/server_call.cc +5 -5
  25. data/src/core/call/server_call.h +6 -4
  26. data/src/core/call/simple_slice_based_metadata.h +1 -1
  27. data/src/core/call/status_util.cc +1 -1
  28. data/src/core/channelz/channel_trace.cc +1 -1
  29. data/src/core/channelz/channel_trace.h +3 -3
  30. data/src/core/channelz/channelz.cc +25 -29
  31. data/src/core/channelz/channelz.h +73 -22
  32. data/src/core/channelz/channelz_registry.cc +2 -2
  33. data/src/core/channelz/channelz_registry.h +53 -2
  34. data/src/core/channelz/property_list.cc +18 -0
  35. data/src/core/channelz/property_list.h +15 -4
  36. data/src/core/channelz/text_encode.cc +66 -0
  37. data/src/core/channelz/text_encode.h +29 -0
  38. data/src/core/channelz/v2tov1/convert.cc +17 -6
  39. data/src/core/channelz/v2tov1/legacy_api.cc +18 -12
  40. data/src/core/channelz/v2tov1/property_list.cc +2 -1
  41. data/src/core/channelz/ztrace_collector.h +260 -87
  42. data/src/core/client_channel/backup_poller.cc +7 -8
  43. data/src/core/client_channel/buffered_call.cc +140 -0
  44. data/src/core/client_channel/buffered_call.h +104 -0
  45. data/src/core/client_channel/client_channel.cc +144 -84
  46. data/src/core/client_channel/client_channel.h +8 -11
  47. data/src/core/client_channel/client_channel_factory.h +1 -1
  48. data/src/core/client_channel/client_channel_filter.cc +424 -686
  49. data/src/core/client_channel/client_channel_filter.h +57 -150
  50. data/src/core/client_channel/client_channel_internal.h +8 -5
  51. data/src/core/client_channel/client_channel_service_config.cc +43 -3
  52. data/src/core/client_channel/client_channel_service_config.h +12 -1
  53. data/src/core/client_channel/config_selector.h +5 -5
  54. data/src/core/client_channel/connector.h +2 -0
  55. data/src/core/client_channel/dynamic_filters.cc +5 -5
  56. data/src/core/client_channel/global_subchannel_pool.cc +0 -37
  57. data/src/core/client_channel/global_subchannel_pool.h +1 -28
  58. data/src/core/client_channel/lb_metadata.h +1 -1
  59. data/src/core/client_channel/load_balanced_call_destination.cc +10 -12
  60. data/src/core/client_channel/load_balanced_call_destination.h +1 -1
  61. data/src/core/client_channel/local_subchannel_pool.cc +4 -4
  62. data/src/core/client_channel/retry_filter.cc +2 -2
  63. data/src/core/client_channel/retry_filter.h +3 -3
  64. data/src/core/client_channel/retry_filter_legacy_call_data.cc +11 -12
  65. data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -8
  66. data/src/core/client_channel/retry_service_config.cc +3 -3
  67. data/src/core/client_channel/retry_service_config.h +1 -1
  68. data/src/core/client_channel/subchannel.cc +114 -25
  69. data/src/core/client_channel/subchannel.h +24 -8
  70. data/src/core/client_channel/subchannel_pool_interface.cc +2 -2
  71. data/src/core/client_channel/subchannel_pool_interface.h +1 -1
  72. data/src/core/client_channel/subchannel_stream_client.cc +5 -5
  73. data/src/core/client_channel/subchannel_stream_client.h +3 -3
  74. data/src/core/config/config_vars.cc +38 -3
  75. data/src/core/config/config_vars.h +26 -0
  76. data/src/core/config/core_configuration.cc +5 -5
  77. data/src/core/config/core_configuration.h +8 -8
  78. data/src/core/config/load_config.cc +13 -1
  79. data/src/core/config/load_config.h +2 -0
  80. data/src/core/credentials/call/call_credentials.h +4 -4
  81. data/src/core/credentials/call/call_creds_registry.h +1 -1
  82. data/src/core/credentials/call/call_creds_registry_init.cc +2 -2
  83. data/src/core/credentials/call/call_creds_util.cc +7 -6
  84. data/src/core/credentials/call/composite/composite_call_credentials.cc +6 -6
  85. data/src/core/credentials/call/composite/composite_call_credentials.h +1 -1
  86. data/src/core/credentials/call/external/aws_external_account_credentials.cc +9 -9
  87. data/src/core/credentials/call/external/aws_external_account_credentials.h +1 -1
  88. data/src/core/credentials/call/external/external_account_credentials.cc +12 -12
  89. data/src/core/credentials/call/external/external_account_credentials.h +1 -1
  90. data/src/core/credentials/call/external/file_external_account_credentials.cc +3 -3
  91. data/src/core/credentials/call/external/file_external_account_credentials.h +1 -1
  92. data/src/core/credentials/call/external/url_external_account_credentials.cc +7 -7
  93. data/src/core/credentials/call/external/url_external_account_credentials.h +1 -1
  94. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +24 -71
  95. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h +1 -8
  96. data/src/core/credentials/call/iam/iam_credentials.cc +6 -6
  97. data/src/core/credentials/call/iam/iam_credentials.h +1 -1
  98. data/src/core/credentials/call/json_util.cc +1 -1
  99. data/src/core/credentials/call/jwt/json_token.cc +7 -7
  100. data/src/core/credentials/call/jwt/jwt_credentials.cc +5 -5
  101. data/src/core/credentials/call/jwt/jwt_credentials.h +4 -4
  102. data/src/core/credentials/call/jwt/jwt_verifier.cc +19 -18
  103. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +2 -2
  104. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +3 -3
  105. data/src/core/credentials/call/jwt_util.cc +3 -3
  106. data/src/core/credentials/call/jwt_util.h +1 -1
  107. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +49 -72
  108. data/src/core/credentials/call/oauth2/oauth2_credentials.h +3 -9
  109. data/src/core/credentials/call/plugin/plugin_credentials.cc +6 -6
  110. data/src/core/credentials/call/plugin/plugin_credentials.h +2 -2
  111. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +46 -0
  112. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +32 -3
  113. data/src/core/credentials/transport/alts/alts_credentials.cc +5 -5
  114. data/src/core/credentials/transport/alts/alts_security_connector.cc +17 -15
  115. data/src/core/credentials/transport/alts/check_gcp_environment_no_op.cc +1 -1
  116. data/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc +23 -3
  117. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc +10 -1
  118. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.h +31 -0
  119. data/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc +8 -3
  120. data/src/core/credentials/transport/channel_creds_registry.h +1 -1
  121. data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
  122. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +7 -7
  123. data/src/core/credentials/transport/composite/composite_channel_credentials.h +1 -1
  124. data/src/core/credentials/transport/fake/fake_credentials.cc +1 -1
  125. data/src/core/credentials/transport/fake/fake_credentials.h +1 -1
  126. data/src/core/credentials/transport/fake/fake_security_connector.cc +7 -7
  127. data/src/core/credentials/transport/google_default/credentials_generic.cc +2 -2
  128. data/src/core/credentials/transport/google_default/google_default_credentials.cc +83 -39
  129. data/src/core/credentials/transport/google_default/google_default_credentials.h +0 -2
  130. data/src/core/credentials/transport/insecure/insecure_security_connector.cc +3 -3
  131. data/src/core/credentials/transport/insecure/insecure_security_connector.h +2 -2
  132. data/src/core/credentials/transport/local/local_security_connector.cc +13 -13
  133. data/src/core/credentials/transport/security_connector.cc +6 -6
  134. data/src/core/credentials/transport/security_connector.h +2 -2
  135. data/src/core/credentials/transport/ssl/ssl_credentials.cc +13 -13
  136. data/src/core/credentials/transport/ssl/ssl_credentials.h +2 -2
  137. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +8 -8
  138. data/src/core/credentials/transport/tls/certificate_provider_factory.h +1 -1
  139. data/src/core/credentials/transport/tls/certificate_provider_registry.cc +2 -2
  140. data/src/core/credentials/transport/tls/certificate_provider_registry.h +1 -1
  141. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +25 -25
  142. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +2 -2
  143. data/src/core/credentials/transport/tls/grpc_tls_certificate_match.cc +1 -1
  144. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +8 -8
  145. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +5 -5
  146. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
  147. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.h +4 -4
  148. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +18 -18
  149. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +5 -5
  150. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.h +3 -3
  151. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -1
  152. data/src/core/credentials/transport/tls/spiffe_utils.cc +10 -8
  153. data/src/core/credentials/transport/tls/spiffe_utils.h +2 -2
  154. data/src/core/credentials/transport/tls/ssl_utils.cc +18 -13
  155. data/src/core/credentials/transport/tls/ssl_utils.h +2 -2
  156. data/src/core/credentials/transport/tls/tls_credentials.cc +3 -3
  157. data/src/core/credentials/transport/tls/tls_security_connector.cc +15 -15
  158. data/src/core/credentials/transport/tls/tls_security_connector.h +3 -3
  159. data/src/core/credentials/transport/transport_credentials.cc +3 -3
  160. data/src/core/credentials/transport/transport_credentials.h +4 -4
  161. data/src/core/credentials/transport/xds/xds_credentials.cc +5 -5
  162. data/src/core/credentials/transport/xds/xds_credentials.h +1 -1
  163. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +2 -2
  164. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +4 -1
  165. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +6 -4
  166. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -2
  167. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +7 -7
  168. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +6 -3
  169. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +1 -1
  170. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
  171. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +6 -3
  172. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +1 -1
  173. data/src/core/ext/filters/http/client/http_client_filter.cc +6 -6
  174. data/src/core/ext/filters/http/client/http_client_filter.h +4 -1
  175. data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
  176. data/src/core/ext/filters/http/client_authority_filter.h +4 -1
  177. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -1
  178. data/src/core/ext/filters/http/message_compress/compression_filter.cc +11 -11
  179. data/src/core/ext/filters/http/message_compress/compression_filter.h +24 -5
  180. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
  181. data/src/core/ext/filters/http/server/http_server_filter.h +4 -1
  182. data/src/core/ext/filters/message_size/message_size_filter.cc +2 -2
  183. data/src/core/ext/filters/message_size/message_size_filter.h +8 -2
  184. data/src/core/ext/filters/rbac/rbac_filter.cc +1 -1
  185. data/src/core/ext/filters/rbac/rbac_filter.h +4 -1
  186. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +3 -3
  187. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  188. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +14 -14
  189. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +13 -2
  190. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +1 -1
  191. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -2
  192. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +58 -44
  193. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -3
  194. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +25 -24
  195. data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -2
  196. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +6 -6
  197. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +6 -6
  198. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +306 -148
  199. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +10 -2
  200. data/src/core/ext/transport/chttp2/transport/flow_control.cc +42 -7
  201. data/src/core/ext/transport/chttp2/transport/flow_control.h +223 -83
  202. data/src/core/ext/transport/chttp2/transport/flow_control_manager.h +105 -0
  203. data/src/core/ext/transport/chttp2/transport/frame.cc +175 -27
  204. data/src/core/ext/transport/chttp2/transport/frame.h +58 -10
  205. data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
  206. data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -1
  207. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +5 -5
  208. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +6 -6
  209. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  210. data/src/core/ext/transport/chttp2/transport/frame_security.cc +1 -1
  211. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -15
  212. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
  213. data/src/core/ext/transport/chttp2/transport/goaway.cc +129 -0
  214. data/src/core/ext/transport/chttp2/transport/goaway.h +350 -0
  215. data/src/core/ext/transport/chttp2/transport/header_assembler.h +194 -54
  216. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +3 -3
  217. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +8 -6
  218. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +8 -8
  219. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +3 -3
  220. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +5 -5
  221. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +34 -34
  222. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -7
  223. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +8 -8
  224. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +1 -1
  225. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1475 -632
  226. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +384 -373
  227. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
  228. data/src/core/ext/transport/chttp2/transport/http2_settings.h +6 -4
  229. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.cc +4 -3
  230. data/src/core/ext/transport/chttp2/transport/http2_settings_manager.h +6 -5
  231. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +417 -0
  232. data/src/core/ext/transport/chttp2/transport/http2_status.h +7 -1
  233. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +337 -30
  234. data/src/core/ext/transport/chttp2/transport/http2_transport.h +196 -21
  235. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +172 -72
  236. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +128 -0
  237. data/src/core/ext/transport/chttp2/transport/internal.h +31 -19
  238. data/src/core/ext/transport/chttp2/transport/keepalive.cc +12 -5
  239. data/src/core/ext/transport/chttp2/transport/keepalive.h +14 -10
  240. data/src/core/ext/transport/chttp2/transport/message_assembler.h +30 -21
  241. data/src/core/ext/transport/chttp2/transport/parsing.cc +25 -23
  242. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +2 -2
  243. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +3 -3
  244. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +70 -28
  245. data/src/core/ext/transport/chttp2/transport/ping_promise.h +63 -23
  246. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +1 -1
  247. data/src/core/ext/transport/chttp2/transport/security_frame.cc +31 -0
  248. data/src/core/ext/transport/chttp2/transport/security_frame.h +32 -0
  249. data/src/core/ext/transport/chttp2/transport/stream.h +287 -0
  250. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +476 -208
  251. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +8 -8
  252. data/src/core/ext/transport/chttp2/transport/transport_common.cc +17 -1
  253. data/src/core/ext/transport/chttp2/transport/transport_common.h +57 -0
  254. data/src/core/ext/transport/chttp2/transport/varint.h +2 -2
  255. data/src/core/ext/transport/chttp2/transport/writable_streams.h +202 -84
  256. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +2 -2
  257. data/src/core/ext/transport/chttp2/transport/writing.cc +6 -6
  258. data/src/core/ext/transport/inproc/inproc_transport.cc +9 -3
  259. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +11 -8
  260. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h +740 -0
  261. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +218 -0
  262. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h +46 -0
  263. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +87 -55
  264. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +23 -21
  265. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c +80 -0
  266. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h +47 -0
  267. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.c +129 -0
  268. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.h +72 -0
  269. data/src/core/filter/auth/auth_filters.h +7 -1
  270. data/src/core/filter/auth/client_auth_filter.cc +2 -2
  271. data/src/core/filter/auth/server_auth_filter.cc +5 -5
  272. data/src/core/filter/blackboard.h +2 -2
  273. data/src/core/filter/filter_args.h +40 -2
  274. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc +2 -2
  275. data/src/core/handshaker/handshaker.cc +8 -8
  276. data/src/core/handshaker/handshaker.h +2 -2
  277. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +5 -5
  278. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +12 -12
  279. data/src/core/handshaker/http_connect/http_proxy_mapper.h +1 -1
  280. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +1 -1
  281. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +1 -1
  282. data/src/core/handshaker/proxy_mapper.h +1 -1
  283. data/src/core/handshaker/proxy_mapper_registry.h +1 -1
  284. data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -6
  285. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +38 -15
  286. data/src/core/handshaker/security/secure_endpoint.cc +31 -11
  287. data/src/core/handshaker/security/security_handshaker.cc +11 -8
  288. data/src/core/handshaker/security/security_handshaker.h +1 -1
  289. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +6 -6
  290. data/src/core/lib/address_utils/parse_address.cc +5 -5
  291. data/src/core/lib/address_utils/parse_address.h +2 -2
  292. data/src/core/lib/address_utils/sockaddr_utils.cc +4 -4
  293. data/src/core/lib/address_utils/sockaddr_utils.h +1 -1
  294. data/src/core/lib/channel/channel_args.cc +1 -1
  295. data/src/core/lib/channel/channel_args.h +2 -2
  296. data/src/core/lib/channel/channel_stack.cc +29 -25
  297. data/src/core/lib/channel/channel_stack.h +8 -3
  298. data/src/core/lib/channel/channel_stack_builder.cc +8 -4
  299. data/src/core/lib/channel/channel_stack_builder.h +10 -9
  300. data/src/core/lib/channel/channel_stack_builder_impl.cc +8 -13
  301. data/src/core/lib/channel/channel_stack_builder_impl.h +1 -1
  302. data/src/core/lib/channel/connected_channel.cc +4 -4
  303. data/src/core/lib/channel/promise_based_filter.cc +132 -72
  304. data/src/core/lib/channel/promise_based_filter.h +39 -23
  305. data/src/core/lib/compression/compression_internal.cc +6 -6
  306. data/src/core/lib/compression/compression_internal.h +1 -1
  307. data/src/core/lib/compression/message_compress.cc +8 -8
  308. data/src/core/lib/debug/trace.cc +2 -5
  309. data/src/core/lib/debug/trace.h +10 -0
  310. data/src/core/lib/debug/trace_flags.cc +2 -2
  311. data/src/core/lib/debug/trace_flags.h +1 -1
  312. data/src/core/lib/event_engine/ares_resolver.cc +30 -28
  313. data/src/core/lib/event_engine/ares_resolver.h +4 -4
  314. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -3
  315. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +2 -2
  316. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +1 -1
  317. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +4 -4
  318. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +3 -3
  319. data/src/core/lib/event_engine/channel_args_endpoint_config.h +1 -1
  320. data/src/core/lib/event_engine/default_event_engine.cc +1 -1
  321. data/src/core/lib/event_engine/event_engine.cc +1 -1
  322. data/src/core/lib/event_engine/extensions/channelz.h +3 -3
  323. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +1 -1
  324. data/src/core/lib/event_engine/extensions/supports_fd.h +5 -5
  325. data/src/core/lib/event_engine/extensions/tcp_trace.h +8 -1
  326. data/src/core/lib/event_engine/grpc_polled_fd.h +1 -1
  327. data/src/core/lib/event_engine/memory_allocator_factory.h +1 -1
  328. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +12 -12
  329. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +5 -5
  330. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +15 -15
  331. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +3 -3
  332. data/src/core/lib/event_engine/posix_engine/event_poller.h +2 -2
  333. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -2
  334. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +1 -1
  335. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +1 -1
  336. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +4 -4
  337. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +1 -1
  338. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +3 -3
  339. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +1 -1
  340. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +3 -3
  341. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +1 -1
  342. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +28 -27
  343. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +17 -17
  344. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +175 -177
  345. data/src/core/lib/event_engine/posix_engine/posix_engine.h +40 -61
  346. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +11 -7
  347. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +4 -4
  348. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +9 -9
  349. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +1 -1
  350. data/src/core/lib/event_engine/posix_engine/posix_interface.h +2 -2
  351. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +5 -5
  352. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +1 -1
  353. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1 -1
  354. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +1 -1
  355. data/src/core/lib/event_engine/posix_engine/timer.h +1 -1
  356. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -4
  357. data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
  358. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -2
  359. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +2 -2
  360. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +1 -1
  361. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -2
  362. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +1 -1
  363. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -2
  364. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +1 -1
  365. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -2
  366. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +1 -1
  367. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +1 -1
  368. data/src/core/lib/event_engine/resolved_address.cc +3 -3
  369. data/src/core/lib/event_engine/shim.cc +8 -11
  370. data/src/core/lib/event_engine/shim.h +2 -1
  371. data/src/core/lib/event_engine/slice.cc +2 -2
  372. data/src/core/lib/event_engine/tcp_socket_utils.cc +15 -15
  373. data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
  374. data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
  375. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +11 -11
  376. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -3
  377. data/src/core/lib/event_engine/utils.cc +3 -3
  378. data/src/core/lib/event_engine/utils.h +1 -1
  379. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +32 -32
  380. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +2 -2
  381. data/src/core/lib/event_engine/windows/iocp.cc +11 -11
  382. data/src/core/lib/event_engine/windows/iocp.h +1 -1
  383. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +5 -2
  384. data/src/core/lib/event_engine/windows/win_socket.cc +7 -7
  385. data/src/core/lib/event_engine/windows/win_socket.h +2 -2
  386. data/src/core/lib/event_engine/windows/windows_endpoint.cc +16 -16
  387. data/src/core/lib/event_engine/windows/windows_engine.cc +20 -18
  388. data/src/core/lib/event_engine/windows/windows_engine.h +3 -3
  389. data/src/core/lib/event_engine/windows/windows_listener.cc +10 -10
  390. data/src/core/lib/event_engine/windows/windows_listener.h +2 -2
  391. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +2 -2
  392. data/src/core/lib/experiments/config.cc +4 -4
  393. data/src/core/lib/experiments/experiments.cc +255 -42
  394. data/src/core/lib/experiments/experiments.h +105 -21
  395. data/src/core/lib/iomgr/buffer_list.cc +1 -1
  396. data/src/core/lib/iomgr/call_combiner.cc +4 -4
  397. data/src/core/lib/iomgr/call_combiner.h +2 -2
  398. data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
  399. data/src/core/lib/iomgr/closure.h +2 -2
  400. data/src/core/lib/iomgr/combiner.cc +2 -2
  401. data/src/core/lib/iomgr/endpoint.h +1 -1
  402. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -7
  403. data/src/core/lib/iomgr/endpoint_pair_posix.cc +6 -6
  404. data/src/core/lib/iomgr/endpoint_pair_windows.cc +16 -15
  405. data/src/core/lib/iomgr/error.cc +1 -1
  406. data/src/core/lib/iomgr/error.h +2 -2
  407. data/src/core/lib/iomgr/error_cfstream.cc +1 -1
  408. data/src/core/lib/iomgr/ev_apple.cc +1 -1
  409. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  410. data/src/core/lib/iomgr/ev_poll_posix.cc +14 -14
  411. data/src/core/lib/iomgr/ev_posix.cc +3 -3
  412. data/src/core/lib/iomgr/event_engine_shims/closure.cc +3 -3
  413. data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -1
  414. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +10 -9
  415. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -1
  416. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +2 -2
  417. data/src/core/lib/iomgr/exec_ctx.cc +3 -3
  418. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  419. data/src/core/lib/iomgr/fork_posix.cc +1 -1
  420. data/src/core/lib/iomgr/internal_errqueue.cc +1 -1
  421. data/src/core/lib/iomgr/iocp_windows.cc +9 -9
  422. data/src/core/lib/iomgr/iomgr.cc +1 -1
  423. data/src/core/lib/iomgr/iomgr_windows.cc +3 -3
  424. data/src/core/lib/iomgr/lockfree_event.cc +3 -3
  425. data/src/core/lib/iomgr/polling_entity.cc +4 -4
  426. data/src/core/lib/iomgr/resolve_address.cc +1 -1
  427. data/src/core/lib/iomgr/resolve_address.h +2 -2
  428. data/src/core/lib/iomgr/resolve_address_posix.cc +4 -4
  429. data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
  430. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +1 -1
  431. data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -4
  432. data/src/core/lib/iomgr/socket_windows.cc +6 -6
  433. data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -1
  434. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -7
  435. data/src/core/lib/iomgr/tcp_client_windows.cc +4 -4
  436. data/src/core/lib/iomgr/tcp_posix.cc +47 -47
  437. data/src/core/lib/iomgr/tcp_server.cc +5 -0
  438. data/src/core/lib/iomgr/tcp_server.h +7 -0
  439. data/src/core/lib/iomgr/tcp_server_posix.cc +62 -31
  440. data/src/core/lib/iomgr/tcp_server_utils_posix.h +4 -1
  441. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -7
  442. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -4
  443. data/src/core/lib/iomgr/tcp_server_windows.cc +70 -31
  444. data/src/core/lib/iomgr/tcp_windows.cc +8 -8
  445. data/src/core/lib/iomgr/timer_generic.cc +5 -5
  446. data/src/core/lib/iomgr/timer_manager.cc +3 -3
  447. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  448. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -1
  449. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -2
  450. data/src/core/lib/iomgr/vsock.cc +1 -1
  451. data/src/core/lib/iomgr/vsock.h +1 -1
  452. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +1 -1
  453. data/src/core/lib/promise/activity.cc +3 -3
  454. data/src/core/lib/promise/activity.h +11 -10
  455. data/src/core/lib/promise/all_ok.h +3 -3
  456. data/src/core/lib/promise/arena_promise.h +47 -6
  457. data/src/core/lib/promise/context.h +3 -3
  458. data/src/core/lib/promise/detail/join_state.h +10 -10
  459. data/src/core/lib/promise/detail/promise_factory.h +1 -1
  460. data/src/core/lib/promise/detail/promise_like.h +1 -1
  461. data/src/core/lib/promise/detail/seq_state.h +16 -16
  462. data/src/core/lib/promise/detail/status.h +2 -2
  463. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +1 -1
  464. data/src/core/lib/promise/for_each.h +8 -8
  465. data/src/core/lib/promise/if.h +1 -1
  466. data/src/core/lib/promise/inter_activity_latch.h +3 -3
  467. data/src/core/lib/promise/inter_activity_mutex.h +1 -1
  468. data/src/core/lib/promise/interceptor_list.h +5 -5
  469. data/src/core/lib/promise/latch.h +9 -9
  470. data/src/core/lib/promise/loop.h +2 -2
  471. data/src/core/lib/promise/map.h +2 -2
  472. data/src/core/lib/promise/mpsc.cc +31 -30
  473. data/src/core/lib/promise/mpsc.h +2 -2
  474. data/src/core/lib/promise/observable.h +6 -6
  475. data/src/core/lib/promise/party.cc +43 -30
  476. data/src/core/lib/promise/party.h +27 -23
  477. data/src/core/lib/promise/pipe.h +31 -17
  478. data/src/core/lib/promise/poll.h +6 -5
  479. data/src/core/lib/promise/promise.h +2 -4
  480. data/src/core/lib/promise/sleep.cc +3 -1
  481. data/src/core/lib/promise/sleep.h +1 -1
  482. data/src/core/lib/promise/status_flag.h +8 -8
  483. data/src/core/lib/promise/try_join.h +5 -5
  484. data/src/core/lib/promise/try_seq.h +5 -5
  485. data/src/core/lib/promise/wait_set.h +2 -2
  486. data/src/core/lib/resource_quota/api.cc +1 -1
  487. data/src/core/lib/resource_quota/arena.cc +1 -1
  488. data/src/core/lib/resource_quota/arena.h +15 -2
  489. data/src/core/lib/resource_quota/connection_quota.cc +9 -7
  490. data/src/core/lib/resource_quota/connection_quota.h +1 -1
  491. data/src/core/lib/resource_quota/memory_quota.cc +48 -27
  492. data/src/core/lib/resource_quota/memory_quota.h +56 -20
  493. data/src/core/lib/resource_quota/periodic_update.h +1 -1
  494. data/src/core/lib/resource_quota/resource_quota.cc +8 -0
  495. data/src/core/lib/resource_quota/resource_quota.h +2 -1
  496. data/src/core/lib/resource_quota/stream_quota.cc +22 -0
  497. data/src/core/lib/resource_quota/stream_quota.h +31 -0
  498. data/src/core/lib/resource_quota/telemetry.h +55 -0
  499. data/src/core/lib/resource_quota/thread_quota.cc +2 -2
  500. data/src/core/lib/resource_quota/thread_quota.h +1 -1
  501. data/src/core/lib/resource_tracker/resource_tracker.cc +33 -0
  502. data/src/core/lib/resource_tracker/resource_tracker.h +46 -0
  503. data/src/core/lib/security/authorization/audit_logging.cc +7 -7
  504. data/src/core/lib/security/authorization/audit_logging.h +1 -1
  505. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  506. data/src/core/lib/security/authorization/evaluate_args.cc +5 -5
  507. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  508. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +2 -2
  509. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +3 -3
  510. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +4 -1
  511. data/src/core/lib/security/authorization/matchers.cc +2 -2
  512. data/src/core/lib/security/authorization/stdout_logger.cc +3 -3
  513. data/src/core/lib/slice/percent_encoding.cc +1 -1
  514. data/src/core/lib/slice/slice.cc +1 -1
  515. data/src/core/lib/slice/slice.h +2 -2
  516. data/src/core/lib/slice/slice_buffer.cc +1 -1
  517. data/src/core/lib/slice/slice_internal.h +1 -1
  518. data/src/core/lib/surface/byte_buffer_reader.cc +2 -2
  519. data/src/core/lib/surface/call.cc +58 -28
  520. data/src/core/lib/surface/call.h +13 -6
  521. data/src/core/lib/surface/call_log_batch.cc +2 -2
  522. data/src/core/lib/surface/call_utils.cc +7 -7
  523. data/src/core/lib/surface/call_utils.h +85 -20
  524. data/src/core/lib/surface/channel.cc +6 -5
  525. data/src/core/lib/surface/channel.h +13 -3
  526. data/src/core/lib/surface/channel_create.cc +12 -8
  527. data/src/core/lib/surface/channel_create.h +1 -1
  528. data/src/core/lib/surface/channel_init.cc +84 -27
  529. data/src/core/lib/surface/channel_init.h +30 -13
  530. data/src/core/lib/surface/completion_queue.cc +21 -20
  531. data/src/core/lib/surface/completion_queue_factory.cc +7 -7
  532. data/src/core/lib/surface/connection_context.h +45 -2
  533. data/src/core/lib/surface/filter_stack_call.cc +25 -31
  534. data/src/core/lib/surface/filter_stack_call.h +6 -7
  535. data/src/core/lib/surface/init.cc +4 -4
  536. data/src/core/lib/surface/lame_client.cc +2 -2
  537. data/src/core/lib/surface/lame_client.h +3 -3
  538. data/src/core/lib/surface/legacy_channel.cc +10 -10
  539. data/src/core/lib/surface/legacy_channel.h +1 -1
  540. data/src/core/lib/surface/validate_metadata.cc +2 -2
  541. data/src/core/lib/surface/validate_metadata.h +3 -3
  542. data/src/core/lib/surface/version.cc +2 -2
  543. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  544. data/src/core/lib/transport/bdp_estimator.h +5 -5
  545. data/src/core/lib/transport/connectivity_state.cc +1 -1
  546. data/src/core/lib/transport/connectivity_state.h +2 -2
  547. data/src/core/lib/transport/error_utils.h +1 -1
  548. data/src/core/lib/transport/promise_endpoint.cc +4 -4
  549. data/src/core/lib/transport/promise_endpoint.h +11 -11
  550. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  551. data/src/core/lib/transport/transport.cc +3 -3
  552. data/src/core/lib/transport/transport.h +62 -4
  553. data/src/core/lib/transport/transport_framing_endpoint_extension.h +1 -1
  554. data/src/core/lib/transport/transport_op_string.cc +2 -2
  555. data/src/core/load_balancing/address_filtering.cc +1 -1
  556. data/src/core/load_balancing/address_filtering.h +2 -2
  557. data/src/core/load_balancing/backend_metric_parser.cc +1 -1
  558. data/src/core/load_balancing/backend_metric_parser.h +1 -1
  559. data/src/core/load_balancing/child_policy_handler.cc +8 -8
  560. data/src/core/load_balancing/child_policy_handler.h +2 -2
  561. data/src/core/load_balancing/delegating_helper.h +2 -2
  562. data/src/core/load_balancing/endpoint_list.cc +6 -6
  563. data/src/core/load_balancing/endpoint_list.h +2 -2
  564. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +7 -5
  565. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +5 -1
  566. data/src/core/load_balancing/grpclb/grpclb.cc +37 -48
  567. data/src/core/load_balancing/grpclb/grpclb_client_stats.h +2 -2
  568. data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
  569. data/src/core/load_balancing/grpclb/load_balancer_api.h +1 -1
  570. data/src/core/load_balancing/health_check_client.cc +13 -9
  571. data/src/core/load_balancing/health_check_client_internal.h +5 -5
  572. data/src/core/load_balancing/lb_policy.h +11 -8
  573. data/src/core/load_balancing/lb_policy_factory.h +2 -2
  574. data/src/core/load_balancing/lb_policy_registry.cc +3 -3
  575. data/src/core/load_balancing/lb_policy_registry.h +2 -2
  576. data/src/core/load_balancing/oob_backend_metric.cc +11 -7
  577. data/src/core/load_balancing/oob_backend_metric_internal.h +4 -4
  578. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +9 -17
  579. data/src/core/load_balancing/pick_first/pick_first.cc +62 -32
  580. data/src/core/load_balancing/priority/priority.cc +29 -30
  581. data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -11
  582. data/src/core/load_balancing/rls/rls.cc +23 -23
  583. data/src/core/load_balancing/round_robin/round_robin.cc +16 -16
  584. data/src/core/load_balancing/subchannel_interface.h +2 -2
  585. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +3 -3
  586. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +42 -41
  587. data/src/core/load_balancing/weighted_target/weighted_target.cc +14 -14
  588. data/src/core/load_balancing/xds/cds.cc +81 -37
  589. data/src/core/load_balancing/xds/xds_cluster_impl.cc +24 -41
  590. data/src/core/load_balancing/xds/xds_cluster_manager.cc +6 -6
  591. data/src/core/load_balancing/xds/xds_override_host.cc +14 -14
  592. data/src/core/load_balancing/xds/xds_override_host.h +1 -1
  593. data/src/core/load_balancing/xds/xds_wrr_locality.cc +5 -5
  594. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +8 -8
  595. data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +1 -1
  596. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  597. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  598. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +35 -35
  599. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +16 -16
  600. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +2 -2
  601. data/src/core/resolver/dns/dns_resolver_plugin.cc +8 -5
  602. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +10 -10
  603. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +1 -1
  604. data/src/core/resolver/dns/event_engine/service_config_helper.cc +2 -2
  605. data/src/core/resolver/dns/native/dns_resolver.cc +7 -7
  606. data/src/core/resolver/endpoint_addresses.cc +6 -6
  607. data/src/core/resolver/endpoint_addresses.h +4 -1
  608. data/src/core/resolver/fake/fake_resolver.cc +3 -3
  609. data/src/core/resolver/fake/fake_resolver.h +3 -3
  610. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +46 -59
  611. data/src/core/resolver/polling_resolver.cc +8 -8
  612. data/src/core/resolver/polling_resolver.h +1 -1
  613. data/src/core/resolver/resolver.h +2 -2
  614. data/src/core/resolver/resolver_factory.h +2 -2
  615. data/src/core/resolver/resolver_registry.cc +5 -4
  616. data/src/core/resolver/resolver_registry.h +1 -1
  617. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +4 -4
  618. data/src/core/resolver/xds/xds_config.cc +1 -1
  619. data/src/core/resolver/xds/xds_config.h +3 -3
  620. data/src/core/resolver/xds/xds_dependency_manager.cc +7 -7
  621. data/src/core/resolver/xds/xds_dependency_manager.h +3 -3
  622. data/src/core/resolver/xds/xds_resolver.cc +25 -22
  623. data/src/core/resolver/xds/xds_resolver_attributes.h +1 -1
  624. data/src/core/server/add_port.cc +2 -2
  625. data/src/core/server/server.cc +47 -43
  626. data/src/core/server/server.h +8 -7
  627. data/src/core/server/server_call_tracer_filter.cc +1 -1
  628. data/src/core/server/server_call_tracer_filter.h +9 -5
  629. data/src/core/server/server_config_selector.h +2 -2
  630. data/src/core/server/server_config_selector_filter.cc +5 -5
  631. data/src/core/server/xds_channel_stack_modifier.cc +3 -2
  632. data/src/core/server/xds_channel_stack_modifier.h +1 -1
  633. data/src/core/server/xds_server_config_fetcher.cc +19 -18
  634. data/src/core/service_config/service_config.h +1 -1
  635. data/src/core/service_config/service_config_channel_arg_filter.h +4 -1
  636. data/src/core/service_config/service_config_impl.cc +3 -3
  637. data/src/core/service_config/service_config_impl.h +4 -4
  638. data/src/core/service_config/service_config_parser.h +1 -1
  639. data/src/core/telemetry/call_tracer.cc +39 -49
  640. data/src/core/telemetry/call_tracer.h +201 -24
  641. data/src/core/telemetry/default_tcp_tracer.h +3 -3
  642. data/src/core/telemetry/histogram.h +205 -0
  643. data/src/core/telemetry/instrument.cc +999 -0
  644. data/src/core/telemetry/instrument.h +1105 -0
  645. data/src/core/telemetry/metrics.cc +15 -5
  646. data/src/core/telemetry/metrics.h +36 -5
  647. data/src/core/telemetry/stats.h +2 -2
  648. data/src/core/telemetry/stats_data.cc +1 -20
  649. data/src/core/telemetry/stats_data.h +2 -21
  650. data/src/core/transport/auth_context.cc +3 -3
  651. data/src/core/transport/auth_context.h +2 -1
  652. data/src/core/transport/auth_context_comparator_registry.h +1 -1
  653. data/src/core/tsi/alts/crypt/aes_gcm.cc +1 -1
  654. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +2 -2
  655. data/src/core/tsi/alts/frame_protector/frame_handler.cc +1 -1
  656. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +81 -48
  657. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -0
  658. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +3 -3
  659. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +46 -36
  660. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +4 -4
  661. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -1
  662. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +4 -4
  663. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +11 -3
  664. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +10 -0
  665. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +16 -8
  666. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +3 -0
  667. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +18 -5
  668. data/src/core/tsi/fake_transport_security.cc +6 -5
  669. data/src/core/tsi/local_transport_security.cc +1 -1
  670. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
  671. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +1 -1
  672. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +10 -10
  673. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +4 -4
  674. data/src/core/tsi/ssl_transport_security.cc +30 -30
  675. data/src/core/tsi/ssl_transport_security.h +1 -1
  676. data/src/core/tsi/ssl_transport_security_utils.cc +10 -10
  677. data/src/core/tsi/ssl_transport_security_utils.h +2 -2
  678. data/src/core/tsi/transport_security_grpc.cc +8 -0
  679. data/src/core/tsi/transport_security_grpc.h +15 -0
  680. data/src/core/util/alloc.cc +1 -1
  681. data/src/core/util/backoff.h +1 -1
  682. data/src/core/util/chunked_vector.h +4 -4
  683. data/src/core/util/crash.h +1 -1
  684. data/src/core/util/dual_ref_counted.h +2 -2
  685. data/src/core/util/event_log.cc +2 -2
  686. data/src/core/util/event_log.h +3 -3
  687. data/src/core/util/gcp_metadata_query.cc +7 -7
  688. data/src/core/util/gcp_metadata_query.h +2 -2
  689. data/src/core/util/glob.cc +2 -0
  690. data/src/core/util/grpc_check.cc +24 -0
  691. data/src/core/util/grpc_check.h +103 -0
  692. data/src/core/util/grpc_if_nametoindex_posix.cc +1 -1
  693. data/src/core/util/grpc_if_nametoindex_unsupported.cc +1 -1
  694. data/src/core/util/http_client/format_request.cc +1 -1
  695. data/src/core/util/http_client/httpcli.cc +6 -6
  696. data/src/core/util/http_client/httpcli.h +4 -4
  697. data/src/core/util/http_client/httpcli_security_connector.cc +4 -4
  698. data/src/core/util/http_client/parser.cc +4 -4
  699. data/src/core/util/json/json_channel_args.h +1 -1
  700. data/src/core/util/json/json_object_loader.h +6 -6
  701. data/src/core/util/json/json_reader.cc +2 -2
  702. data/src/core/util/json/json_reader.h +1 -1
  703. data/src/core/util/json/json_util.h +3 -3
  704. data/src/core/util/json/json_writer.cc +1 -1
  705. data/src/core/util/latent_see.cc +45 -24
  706. data/src/core/util/latent_see.h +199 -28
  707. data/src/core/util/linux/cpu.cc +1 -1
  708. data/src/core/util/load_file.cc +1 -1
  709. data/src/core/util/load_file.h +1 -1
  710. data/src/core/util/log.cc +3 -3
  711. data/src/core/util/lru_cache.h +4 -4
  712. data/src/core/util/matchers.h +1 -1
  713. data/src/core/util/memory_usage.h +17 -1
  714. data/src/core/util/mpscq.h +1 -1
  715. data/src/core/util/notification.h +1 -1
  716. data/src/core/util/posix/cpu.cc +1 -1
  717. data/src/core/util/posix/directory_reader.cc +3 -2
  718. data/src/core/util/posix/stat.cc +2 -2
  719. data/src/core/util/posix/sync.cc +24 -24
  720. data/src/core/util/posix/thd.cc +2 -2
  721. data/src/core/util/posix/tmpfile.cc +2 -2
  722. data/src/core/util/postmortem_emit.cc +52 -0
  723. data/src/core/util/postmortem_emit.h +30 -0
  724. data/src/core/util/ref_counted.h +2 -2
  725. data/src/core/util/ref_counted_ptr.h +6 -1
  726. data/src/core/util/ref_counted_string.h +1 -1
  727. data/src/core/util/single_set_ptr.h +3 -1
  728. data/src/core/util/status_helper.cc +8 -8
  729. data/src/core/util/status_helper.h +1 -1
  730. data/src/core/util/string.cc +2 -2
  731. data/src/core/util/sync_abseil.cc +1 -1
  732. data/src/core/util/table.h +1 -1
  733. data/src/core/util/time.cc +1 -1
  734. data/src/core/util/time_precise.cc +1 -1
  735. data/src/core/util/trie_lookup.h +170 -0
  736. data/src/core/util/unique_ptr_with_bitset.h +5 -5
  737. data/src/core/util/unique_type_name.h +1 -1
  738. data/src/core/util/upb_utils.h +6 -1
  739. data/src/core/util/validation_errors.cc +2 -2
  740. data/src/core/util/validation_errors.h +2 -3
  741. data/src/core/util/wait_for_single_owner.h +2 -2
  742. data/src/core/util/windows/directory_reader.cc +1 -1
  743. data/src/core/util/windows/stat.cc +2 -2
  744. data/src/core/util/windows/thd.cc +2 -2
  745. data/src/core/util/windows/time.cc +1 -1
  746. data/src/core/util/work_serializer.cc +3 -3
  747. data/src/core/util/work_serializer.h +2 -2
  748. data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
  749. data/src/core/xds/grpc/certificate_provider_store.h +2 -2
  750. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  751. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
  752. data/src/core/xds/grpc/xds_audit_logger_registry.cc +3 -3
  753. data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
  754. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +7 -7
  755. data/src/core/xds/grpc/xds_bootstrap_grpc.h +8 -3
  756. data/src/core/xds/grpc/xds_certificate_provider.cc +4 -4
  757. data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
  758. data/src/core/xds/grpc/xds_client_grpc.cc +39 -20
  759. data/src/core/xds/grpc/xds_client_grpc.h +6 -3
  760. data/src/core/xds/grpc/xds_cluster.cc +2 -2
  761. data/src/core/xds/grpc/xds_cluster.h +1 -1
  762. data/src/core/xds/grpc/xds_cluster_parser.cc +7 -7
  763. data/src/core/xds/grpc/xds_cluster_parser.h +1 -1
  764. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +4 -4
  765. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
  766. data/src/core/xds/grpc/xds_common_types.cc +1 -1
  767. data/src/core/xds/grpc/xds_common_types.h +1 -1
  768. data/src/core/xds/grpc/xds_common_types_parser.cc +5 -5
  769. data/src/core/xds/grpc/xds_endpoint.h +2 -2
  770. data/src/core/xds/grpc/xds_endpoint_parser.cc +7 -7
  771. data/src/core/xds/grpc/xds_endpoint_parser.h +1 -1
  772. data/src/core/xds/grpc/xds_health_status.cc +1 -1
  773. data/src/core/xds/grpc/xds_health_status.h +1 -1
  774. data/src/core/xds/grpc/xds_http_fault_filter.cc +4 -4
  775. data/src/core/xds/grpc/xds_http_fault_filter.h +2 -2
  776. data/src/core/xds/grpc/xds_http_filter.h +3 -3
  777. data/src/core/xds/grpc/xds_http_filter_registry.cc +4 -3
  778. data/src/core/xds/grpc/xds_http_filter_registry.h +2 -2
  779. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +3 -3
  780. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +2 -2
  781. data/src/core/xds/grpc/xds_http_rbac_filter.cc +4 -4
  782. data/src/core/xds/grpc/xds_http_rbac_filter.h +2 -2
  783. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +3 -3
  784. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +2 -2
  785. data/src/core/xds/grpc/xds_lb_policy_registry.cc +1 -1
  786. data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
  787. data/src/core/xds/grpc/xds_listener.cc +2 -2
  788. data/src/core/xds/grpc/xds_listener_parser.cc +9 -9
  789. data/src/core/xds/grpc/xds_listener_parser.h +1 -1
  790. data/src/core/xds/grpc/xds_matcher.cc +277 -0
  791. data/src/core/xds/grpc/xds_matcher.h +432 -0
  792. data/src/core/xds/grpc/xds_matcher_action.cc +47 -0
  793. data/src/core/xds/grpc/xds_matcher_action.h +48 -0
  794. data/src/core/xds/grpc/xds_matcher_context.cc +29 -0
  795. data/src/core/xds/grpc/xds_matcher_context.h +46 -0
  796. data/src/core/xds/grpc/xds_matcher_input.cc +79 -0
  797. data/src/core/xds/grpc/xds_matcher_input.h +105 -0
  798. data/src/core/xds/grpc/xds_matcher_parse.cc +356 -0
  799. data/src/core/xds/grpc/xds_matcher_parse.h +39 -0
  800. data/src/core/xds/grpc/xds_metadata.cc +4 -3
  801. data/src/core/xds/grpc/xds_metadata.h +3 -3
  802. data/src/core/xds/grpc/xds_metadata_parser.cc +2 -2
  803. data/src/core/xds/grpc/xds_route_config.cc +3 -3
  804. data/src/core/xds/grpc/xds_route_config_parser.cc +14 -14
  805. data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
  806. data/src/core/xds/grpc/xds_routing.cc +6 -6
  807. data/src/core/xds/grpc/xds_routing.h +2 -2
  808. data/src/core/xds/grpc/xds_server_grpc.cc +2 -2
  809. data/src/core/xds/grpc/xds_transport_grpc.cc +11 -11
  810. data/src/core/xds/grpc/xds_transport_grpc.h +2 -2
  811. data/src/core/xds/xds_client/lrs_client.cc +9 -9
  812. data/src/core/xds/xds_client/lrs_client.h +4 -4
  813. data/src/core/xds/xds_client/xds_api.h +1 -1
  814. data/src/core/xds/xds_client/xds_backend_metric_propagation.cc +1 -1
  815. data/src/core/xds/xds_client/xds_backend_metric_propagation.h +1 -1
  816. data/src/core/xds/xds_client/xds_client.cc +17 -17
  817. data/src/core/xds/xds_client/xds_client.h +5 -5
  818. data/src/core/xds/xds_client/xds_locality.h +2 -2
  819. data/src/core/xds/xds_client/xds_resource_type.h +2 -2
  820. data/src/core/xds/xds_client/xds_resource_type_impl.h +1 -1
  821. data/src/core/xds/xds_client/xds_transport.h +2 -2
  822. data/src/ruby/ext/grpc/extconf.rb +14 -12
  823. data/src/ruby/ext/grpc/rb_call.c +0 -1
  824. data/src/ruby/ext/grpc/rb_channel_args.c +0 -1
  825. data/src/ruby/ext/grpc/rb_channel_credentials.c +0 -1
  826. data/src/ruby/ext/grpc/rb_compression_options.c +0 -1
  827. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
  828. data/src/ruby/ext/grpc/rb_server_credentials.c +0 -1
  829. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +0 -1
  830. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +0 -1
  831. data/src/ruby/lib/grpc/grpc.rb +7 -9
  832. data/src/ruby/lib/grpc/version.rb +1 -1
  833. data/src/ruby/spec/client_server_spec.rb +1 -1
  834. data/src/ruby/spec/generic/rpc_server_pool_spec.rb +1 -1
  835. data/src/ruby/spec/generic/rpc_server_spec.rb +3 -4
  836. data/src/ruby/spec/spec_helper.rb +1 -1
  837. data/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h +95 -0
  838. data/third_party/abseil-cpp/absl/container/node_hash_map.h +687 -0
  839. metadata +67 -8
@@ -22,13 +22,13 @@
22
22
  #include <grpc/support/port_platform.h>
23
23
  #include <string.h>
24
24
 
25
- #include "absl/log/check.h"
26
- #include "absl/log/log.h"
27
25
  #include "src/core/lib/slice/slice.h"
28
26
  #include "src/core/lib/slice/slice_internal.h"
29
27
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h"
30
28
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
31
29
  #include "src/core/util/crash.h"
30
+ #include "src/core/util/grpc_check.h"
31
+ #include "absl/log/log.h"
32
32
 
33
33
  // Main struct for alts_grpc_integrity_only_record_protocol.
34
34
  typedef struct alts_grpc_integrity_only_record_protocol {
@@ -141,14 +141,14 @@ static tsi_result alts_grpc_integrity_only_unprotect(
141
141
  grpc_slice_buffer_reset_and_unref(&rp->header_sb);
142
142
  grpc_slice_buffer_move_first(protected_slices, rp->header_length,
143
143
  &rp->header_sb);
144
- CHECK(rp->header_sb.length == rp->header_length);
144
+ GRPC_CHECK(rp->header_sb.length == rp->header_length);
145
145
  iovec_t header_iovec = alts_grpc_record_protocol_get_header_iovec(rp);
146
146
  // Moves protected slices data to data_sb and leaves the remaining tag.
147
147
  grpc_slice_buffer_reset_and_unref(&integrity_only_record_protocol->data_sb);
148
148
  grpc_slice_buffer_move_first(protected_slices,
149
149
  protected_slices->length - rp->tag_length,
150
150
  &integrity_only_record_protocol->data_sb);
151
- CHECK(protected_slices->length == rp->tag_length);
151
+ GRPC_CHECK(protected_slices->length == rp->tag_length);
152
152
  iovec_t tag_iovec = {nullptr, rp->tag_length};
153
153
  if (protected_slices->count == 1) {
154
154
  tag_iovec.iov_base = GRPC_SLICE_START_PTR(protected_slices->slices[0]);
@@ -21,18 +21,26 @@
21
21
  #include <grpc/support/alloc.h>
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include "absl/log/log.h"
25
24
  #include "src/core/lib/slice/slice.h"
26
25
  #include "src/core/lib/slice/slice_internal.h"
27
26
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h"
28
27
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
29
28
  #include "src/core/util/crash.h"
29
+ #include "absl/log/log.h"
30
30
 
31
31
  // Privacy-integrity alts_grpc_record_protocol object uses the same struct
32
32
  // defined in alts_grpc_record_protocol_common.h.
33
33
 
34
34
  // --- alts_grpc_record_protocol methods implementation. ---
35
35
 
36
+ static grpc_slice allocate_slice(alts_grpc_record_protocol* rp, size_t size) {
37
+ if (rp->alloc_cb != nullptr) {
38
+ return rp->alloc_cb(size, rp->alloc_user_data);
39
+ } else {
40
+ return GRPC_SLICE_MALLOC(size);
41
+ }
42
+ }
43
+
36
44
  static tsi_result alts_grpc_privacy_integrity_protect(
37
45
  alts_grpc_record_protocol* rp, grpc_slice_buffer* unprotected_slices,
38
46
  grpc_slice_buffer* protected_slices) {
@@ -48,7 +56,7 @@ static tsi_result alts_grpc_privacy_integrity_protect(
48
56
  size_t protected_frame_size =
49
57
  unprotected_slices->length + rp->header_length +
50
58
  alts_iovec_record_protocol_get_tag_length(rp->iovec_rp);
51
- grpc_slice protected_slice = GRPC_SLICE_MALLOC(protected_frame_size);
59
+ grpc_slice protected_slice = allocate_slice(rp, protected_frame_size);
52
60
  iovec_t protected_iovec = {GRPC_SLICE_START_PTR(protected_slice),
53
61
  GRPC_SLICE_LENGTH(protected_slice)};
54
62
  // Calls alts_iovec_record_protocol protect.
@@ -88,7 +96,7 @@ static tsi_result alts_grpc_privacy_integrity_unprotect(
88
96
  }
89
97
  size_t unprotected_frame_size =
90
98
  protected_slices->length - rp->header_length - rp->tag_length;
91
- grpc_slice unprotected_slice = GRPC_SLICE_MALLOC(unprotected_frame_size);
99
+ grpc_slice unprotected_slice = allocate_slice(rp, unprotected_frame_size);
92
100
  iovec_t unprotected_iovec = {GRPC_SLICE_START_PTR(unprotected_slice),
93
101
  GRPC_SLICE_LENGTH(unprotected_slice)};
94
102
  // Strips frame header from protected slices.
@@ -22,6 +22,7 @@
22
22
  #include <grpc/slice_buffer.h>
23
23
  #include <grpc/support/port_platform.h>
24
24
 
25
+ #include "src/core/tsi/transport_security_grpc.h"
25
26
  #include "src/core/tsi/transport_security_interface.h"
26
27
 
27
28
  ///
@@ -86,4 +87,13 @@ size_t alts_grpc_record_protocol_max_unprotected_data_size(
86
87
  ///
87
88
  void alts_grpc_record_protocol_destroy(alts_grpc_record_protocol* self);
88
89
 
90
+ ///
91
+ /// This method sets the allocation callback for the alts_grpc_record_protocol
92
+ /// instance.
93
+ ///
94
+ void alts_grpc_record_protocol_set_allocation_callback(
95
+ alts_grpc_record_protocol* self,
96
+ tsi_zero_copy_grpc_protector_allocator_cb allocator_cb,
97
+ void* allocator_user_data);
98
+
89
99
  #endif // GRPC_SRC_CORE_TSI_ALTS_ZERO_COPY_FRAME_PROTECTOR_ALTS_GRPC_RECORD_PROTOCOL_H
@@ -22,20 +22,20 @@
22
22
  #include <grpc/support/port_platform.h>
23
23
  #include <string.h>
24
24
 
25
- #include "absl/log/check.h"
26
- #include "absl/log/log.h"
27
25
  #include "src/core/lib/iomgr/exec_ctx.h"
28
26
  #include "src/core/lib/slice/slice_internal.h"
29
27
  #include "src/core/util/crash.h"
28
+ #include "src/core/util/grpc_check.h"
30
29
  #include "src/core/util/useful.h"
30
+ #include "absl/log/log.h"
31
31
 
32
32
  const size_t kInitialIovecBufferSize = 8;
33
33
 
34
34
  // Makes sure iovec_buf in alts_grpc_record_protocol is large enough.
35
35
  static void ensure_iovec_buf_size(alts_grpc_record_protocol* rp,
36
36
  const grpc_slice_buffer* sb) {
37
- CHECK(rp != nullptr);
38
- CHECK_NE(sb, nullptr);
37
+ GRPC_CHECK(rp != nullptr);
38
+ GRPC_CHECK_NE(sb, nullptr);
39
39
  if (sb->count <= rp->iovec_buf_length) {
40
40
  return;
41
41
  }
@@ -50,8 +50,8 @@ static void ensure_iovec_buf_size(alts_grpc_record_protocol* rp,
50
50
 
51
51
  void alts_grpc_record_protocol_convert_slice_buffer_to_iovec(
52
52
  alts_grpc_record_protocol* rp, const grpc_slice_buffer* sb) {
53
- CHECK(rp != nullptr);
54
- CHECK_NE(sb, nullptr);
53
+ GRPC_CHECK(rp != nullptr);
54
+ GRPC_CHECK_NE(sb, nullptr);
55
55
  ensure_iovec_buf_size(rp, sb);
56
56
  for (size_t i = 0; i < sb->count; i++) {
57
57
  rp->iovec_buf[i].iov_base = GRPC_SLICE_START_PTR(sb->slices[i]);
@@ -61,8 +61,8 @@ void alts_grpc_record_protocol_convert_slice_buffer_to_iovec(
61
61
 
62
62
  void alts_grpc_record_protocol_copy_slice_buffer(const grpc_slice_buffer* src,
63
63
  unsigned char* dst) {
64
- CHECK(src != nullptr);
65
- CHECK_NE(dst, nullptr);
64
+ GRPC_CHECK(src != nullptr);
65
+ GRPC_CHECK_NE(dst, nullptr);
66
66
  for (size_t i = 0; i < src->count; i++) {
67
67
  size_t slice_length = GRPC_SLICE_LENGTH(src->slices[i]);
68
68
  memcpy(dst, GRPC_SLICE_START_PTR(src->slices[i]), slice_length);
@@ -173,3 +173,11 @@ size_t alts_grpc_record_protocol_max_unprotected_data_size(
173
173
  return alts_iovec_record_protocol_max_unprotected_data_size(
174
174
  self->iovec_rp, max_protected_frame_size);
175
175
  }
176
+
177
+ void alts_grpc_record_protocol_set_allocation_callback(
178
+ alts_grpc_record_protocol* self,
179
+ tsi_zero_copy_grpc_protector_allocator_cb allocator_cb, void* user_data) {
180
+ if (self == nullptr) return;
181
+ self->alloc_cb = allocator_cb;
182
+ self->alloc_user_data = user_data;
183
+ }
@@ -29,6 +29,7 @@
29
29
 
30
30
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h"
31
31
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
32
+ #include "src/core/tsi/transport_security_grpc.h"
32
33
 
33
34
  // V-table for alts_grpc_record_protocol implementations.
34
35
  struct alts_grpc_record_protocol_vtable {
@@ -53,6 +54,8 @@ struct alts_grpc_record_protocol {
53
54
  size_t tag_length;
54
55
  iovec_t* iovec_buf;
55
56
  size_t iovec_buf_length;
57
+ tsi_zero_copy_grpc_protector_allocator_cb alloc_cb;
58
+ void* alloc_user_data;
56
59
  };
57
60
 
58
61
  ///
@@ -25,14 +25,14 @@
25
25
  #include <memory>
26
26
  #include <utility>
27
27
 
28
- #include "absl/log/check.h"
29
- #include "absl/log/log.h"
30
28
  #include "src/core/tsi/alts/crypt/gsec.h"
31
29
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h"
32
30
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h"
33
31
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h"
34
32
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
35
33
  #include "src/core/tsi/transport_security_grpc.h"
34
+ #include "src/core/util/grpc_check.h"
35
+ #include "absl/log/log.h"
36
36
 
37
37
  constexpr size_t kMinFrameLength = 1024;
38
38
  constexpr size_t kDefaultFrameLength = 16 * 1024;
@@ -84,7 +84,7 @@ static bool read_frame_size(const grpc_slice_buffer* sb,
84
84
  remaining -= slice_length;
85
85
  }
86
86
  }
87
- CHECK_EQ(remaining, 0u);
87
+ GRPC_CHECK_EQ(remaining, 0u);
88
88
  // Gets little-endian frame size.
89
89
  uint32_t frame_size = (static_cast<uint32_t>(frame_size_buffer[3]) << 24) |
90
90
  (static_cast<uint32_t>(frame_size_buffer[2]) << 16) |
@@ -256,13 +256,26 @@ static bool alts_zero_copy_grpc_protector_read_frame_size(
256
256
  return read_frame_size(protected_slices, frame_size);
257
257
  }
258
258
 
259
+ static void alts_zero_copy_grpc_protector_set_allocator(
260
+ tsi_zero_copy_grpc_protector* self,
261
+ tsi_zero_copy_grpc_protector_allocator_cb alloc_cb, void* user_data) {
262
+ alts_zero_copy_grpc_protector* impl =
263
+ reinterpret_cast<alts_zero_copy_grpc_protector*>(self);
264
+ // Set on both protect and unprotect protocols
265
+ alts_grpc_record_protocol_set_allocation_callback(impl->record_protocol,
266
+ alloc_cb, user_data);
267
+ alts_grpc_record_protocol_set_allocation_callback(impl->unrecord_protocol,
268
+ alloc_cb, user_data);
269
+ }
270
+
259
271
  static const tsi_zero_copy_grpc_protector_vtable
260
272
  alts_zero_copy_grpc_protector_vtable = {
261
273
  alts_zero_copy_grpc_protector_protect,
262
274
  alts_zero_copy_grpc_protector_unprotect,
263
275
  alts_zero_copy_grpc_protector_destroy,
264
276
  alts_zero_copy_grpc_protector_max_frame_size,
265
- alts_zero_copy_grpc_protector_read_frame_size};
277
+ alts_zero_copy_grpc_protector_read_frame_size,
278
+ alts_zero_copy_grpc_protector_set_allocator};
266
279
 
267
280
  tsi_result alts_zero_copy_grpc_protector_create(
268
281
  const grpc_core::GsecKeyFactoryInterface& key_factory, bool is_client,
@@ -300,7 +313,7 @@ tsi_result alts_zero_copy_grpc_protector_create(
300
313
  impl->max_unprotected_data_size =
301
314
  alts_grpc_record_protocol_max_unprotected_data_size(
302
315
  impl->record_protocol, max_protected_frame_size_to_set);
303
- CHECK_GT(impl->max_unprotected_data_size, 0u);
316
+ GRPC_CHECK_GT(impl->max_unprotected_data_size, 0u);
304
317
  // Allocates internal slice buffers.
305
318
  grpc_slice_buffer_init(&impl->unprotected_staging_sb);
306
319
  grpc_slice_buffer_init(&impl->protected_sb);
@@ -23,13 +23,13 @@
23
23
  #include <stdlib.h>
24
24
  #include <string.h>
25
25
 
26
- #include "absl/log/check.h"
27
- #include "absl/log/log.h"
28
26
  #include "src/core/lib/slice/slice_internal.h"
29
27
  #include "src/core/tsi/transport_security_grpc.h"
30
28
  #include "src/core/tsi/transport_security_interface.h"
31
29
  #include "src/core/util/crash.h"
30
+ #include "src/core/util/grpc_check.h"
32
31
  #include "src/core/util/memory.h"
32
+ #include "absl/log/log.h"
33
33
 
34
34
  // --- Constants. ---
35
35
  #define TSI_FAKE_FRAME_HEADER_SIZE 4
@@ -124,8 +124,8 @@ static void store32_little_endian(uint32_t value, unsigned char* buf) {
124
124
  }
125
125
 
126
126
  static uint32_t read_frame_size(const grpc_slice_buffer* sb) {
127
- CHECK(sb != nullptr);
128
- CHECK(sb->length >= TSI_FAKE_FRAME_HEADER_SIZE);
127
+ GRPC_CHECK(sb != nullptr);
128
+ GRPC_CHECK(sb->length >= TSI_FAKE_FRAME_HEADER_SIZE);
129
129
  uint8_t frame_size_buffer[TSI_FAKE_FRAME_HEADER_SIZE];
130
130
  uint8_t* buf = frame_size_buffer;
131
131
  // Copies the first 4 bytes to a temporary buffer.
@@ -142,7 +142,7 @@ static uint32_t read_frame_size(const grpc_slice_buffer* sb) {
142
142
  remaining -= slice_length;
143
143
  }
144
144
  }
145
- CHECK_EQ(remaining, 0u);
145
+ GRPC_CHECK_EQ(remaining, 0u);
146
146
  return load32_little_endian(frame_size_buffer);
147
147
  }
148
148
 
@@ -543,6 +543,7 @@ static const tsi_zero_copy_grpc_protector_vtable
543
543
  fake_zero_copy_grpc_protector_destroy,
544
544
  fake_zero_copy_grpc_protector_max_frame_size,
545
545
  fake_zero_copy_grpc_protector_read_frame_size,
546
+ nullptr /* set_allocator */
546
547
  };
547
548
 
548
549
  // --- tsi_handshaker_result methods implementation. ---
@@ -25,10 +25,10 @@
25
25
  #include <stdlib.h>
26
26
  #include <string.h>
27
27
 
28
- #include "absl/log/log.h"
29
28
  #include "src/core/lib/iomgr/exec_ctx.h"
30
29
  #include "src/core/tsi/transport_security_grpc.h"
31
30
  #include "src/core/util/crash.h"
31
+ #include "absl/log/log.h"
32
32
 
33
33
  namespace {
34
34
 
@@ -18,12 +18,12 @@
18
18
 
19
19
  #include <map>
20
20
 
21
- #include "absl/log/check.h"
22
- #include "absl/log/log.h"
23
21
  #include "src/core/lib/iomgr/error.h"
24
22
  #include "src/core/lib/slice/slice_internal.h"
25
23
  #include "src/core/util/crash.h"
24
+ #include "src/core/util/grpc_check.h"
26
25
  #include "src/core/util/sync.h"
26
+ #include "absl/log/log.h"
27
27
 
28
28
  using TlsSessionKeyLogger = tsi::TlsSessionKeyLoggerCache::TlsSessionKeyLogger;
29
29
 
@@ -48,8 +48,8 @@ TlsSessionKeyLoggerCache::TlsSessionKeyLogger::TlsSessionKeyLogger(
48
48
  grpc_core::RefCountedPtr<TlsSessionKeyLoggerCache> cache)
49
49
  : tls_session_key_log_file_path_(std::move(tls_session_key_log_file_path)),
50
50
  cache_(std::move(cache)) {
51
- CHECK(!tls_session_key_log_file_path_.empty());
52
- CHECK(cache_ != nullptr);
51
+ GRPC_CHECK(!tls_session_key_log_file_path_.empty());
52
+ GRPC_CHECK(cache_ != nullptr);
53
53
  fd_ = fopen(tls_session_key_log_file_path_.c_str(), "a");
54
54
  if (fd_ == nullptr) {
55
55
  grpc_error_handle error = GRPC_OS_ERROR(errno, "fopen");
@@ -108,7 +108,7 @@ TlsSessionKeyLoggerCache::~TlsSessionKeyLoggerCache() {
108
108
  grpc_core::RefCountedPtr<TlsSessionKeyLogger> TlsSessionKeyLoggerCache::Get(
109
109
  std::string tls_session_key_log_file_path) {
110
110
  gpr_once_init(&g_cache_mutex_init, do_cache_mutex_init);
111
- DCHECK_NE(g_tls_session_key_log_cache_mu, nullptr);
111
+ GRPC_DCHECK_NE(g_tls_session_key_log_cache_mu, nullptr);
112
112
  if (tls_session_key_log_file_path.empty()) {
113
113
  return nullptr;
114
114
  }
@@ -24,10 +24,10 @@
24
24
  #include <iostream>
25
25
  #include <map>
26
26
 
27
- #include "absl/base/thread_annotations.h"
28
27
  #include "src/core/util/memory.h"
29
28
  #include "src/core/util/ref_counted.h"
30
29
  #include "src/core/util/sync.h"
30
+ #include "absl/base/thread_annotations.h"
31
31
 
32
32
  namespace tsi {
33
33
 
@@ -21,12 +21,12 @@
21
21
  #include <grpc/support/port_platform.h>
22
22
  #include <grpc/support/string_util.h>
23
23
 
24
- #include "absl/log/check.h"
25
- #include "absl/log/log.h"
26
24
  #include "src/core/lib/slice/slice_internal.h"
27
25
  #include "src/core/tsi/ssl/session_cache/ssl_session.h"
28
26
  #include "src/core/util/crash.h"
27
+ #include "src/core/util/grpc_check.h"
29
28
  #include "src/core/util/sync.h"
29
+ #include "absl/log/log.h"
30
30
 
31
31
  namespace tsi {
32
32
 
@@ -112,7 +112,7 @@ void SslSessionLRUCache::Put(const char* key, SslSessionPtr session) {
112
112
  entry_by_key_.emplace(key, node);
113
113
  AssertInvariants();
114
114
  if (use_order_list_size_ > capacity_) {
115
- CHECK(use_order_list_tail_);
115
+ GRPC_CHECK(use_order_list_tail_);
116
116
  node = use_order_list_tail_;
117
117
  Remove(node);
118
118
  // Order matters, key is destroyed after deleting node.
@@ -143,7 +143,7 @@ void SslSessionLRUCache::Remove(SslSessionLRUCache::Node* node) {
143
143
  } else {
144
144
  node->next_->prev_ = node->prev_;
145
145
  }
146
- CHECK_GE(use_order_list_size_, 1u);
146
+ GRPC_CHECK_GE(use_order_list_size_, 1u);
147
147
  use_order_list_size_--;
148
148
  }
149
149
 
@@ -169,16 +169,16 @@ void SslSessionLRUCache::AssertInvariants() {
169
169
  Node* current = use_order_list_head_;
170
170
  while (current != nullptr) {
171
171
  size++;
172
- CHECK(current->prev_ == prev);
172
+ GRPC_CHECK(current->prev_ == prev);
173
173
  auto it = entry_by_key_.find(current->key());
174
- CHECK(it != entry_by_key_.end());
175
- CHECK(it->second == current);
174
+ GRPC_CHECK(it != entry_by_key_.end());
175
+ GRPC_CHECK(it->second == current);
176
176
  prev = current;
177
177
  current = current->next_;
178
178
  }
179
- CHECK(prev == use_order_list_tail_);
180
- CHECK(size == use_order_list_size_);
181
- CHECK(entry_by_key_.size() == use_order_list_size_);
179
+ GRPC_CHECK(prev == use_order_list_tail_);
180
+ GRPC_CHECK(size == use_order_list_size_);
181
+ GRPC_CHECK(entry_by_key_.size() == use_order_list_size_);
182
182
  }
183
183
  #else
184
184
  void SslSessionLRUCache::AssertInvariants() {}
@@ -17,14 +17,14 @@
17
17
  //
18
18
  #include <grpc/support/port_platform.h>
19
19
 
20
- #include "absl/log/check.h"
21
20
  #include "src/core/tsi/ssl/session_cache/ssl_session.h"
22
21
  #include "src/core/util/crash.h"
22
+ #include "src/core/util/grpc_check.h"
23
23
 
24
24
  #ifndef OPENSSL_IS_BORINGSSL
25
25
 
26
- #include "absl/memory/memory.h"
27
26
  #include "src/core/lib/slice/slice.h"
27
+ #include "absl/memory/memory.h"
28
28
 
29
29
  // OpenSSL invalidates SSL_SESSION on SSL destruction making it pointless
30
30
  // to cache sessions. The workaround is to serialize (relatively expensive)
@@ -41,11 +41,11 @@ class OpenSslCachedSession : public SslCachedSession {
41
41
  public:
42
42
  OpenSslCachedSession(SslSessionPtr session) {
43
43
  int size = i2d_SSL_SESSION(session.get(), nullptr);
44
- CHECK_GT(size, 0);
44
+ GRPC_CHECK_GT(size, 0);
45
45
  grpc_slice slice = grpc_slice_malloc(size_t(size));
46
46
  unsigned char* start = GRPC_SLICE_START_PTR(slice);
47
47
  int second_size = i2d_SSL_SESSION(session.get(), &start);
48
- CHECK(size == second_size);
48
+ GRPC_CHECK(size == second_size);
49
49
  serialized_session_ = slice;
50
50
  }
51
51
 
@@ -53,13 +53,6 @@
53
53
  #include <optional>
54
54
  #include <string>
55
55
 
56
- #include "absl/log/check.h"
57
- #include "absl/log/log.h"
58
- #include "absl/strings/match.h"
59
- #include "absl/strings/numbers.h"
60
- #include "absl/strings/str_cat.h"
61
- #include "absl/strings/str_split.h"
62
- #include "absl/strings/string_view.h"
63
56
  #include "src/core/credentials/transport/tls/grpc_tls_crl_provider.h"
64
57
  #include "src/core/credentials/transport/tls/ssl_utils.h"
65
58
  #include "src/core/lib/surface/init.h"
@@ -71,9 +64,16 @@
71
64
  #include "src/core/tsi/transport_security_interface.h"
72
65
  #include "src/core/util/crash.h"
73
66
  #include "src/core/util/env.h"
67
+ #include "src/core/util/grpc_check.h"
74
68
  #include "src/core/util/match.h"
75
69
  #include "src/core/util/sync.h"
76
70
  #include "src/core/util/useful.h"
71
+ #include "absl/log/log.h"
72
+ #include "absl/strings/match.h"
73
+ #include "absl/strings/numbers.h"
74
+ #include "absl/strings/str_cat.h"
75
+ #include "absl/strings/str_split.h"
76
+ #include "absl/strings/string_view.h"
77
77
 
78
78
  // Name of the environment variable controlling OpenSSL cleanup timeout.
79
79
  // This variable allows users to specify the timeout (in seconds) for OpenSSL
@@ -324,7 +324,7 @@ static void init_openssl(void) {
324
324
  #if OPENSSL_VERSION_NUMBER < 0x10100000
325
325
  if (!CRYPTO_get_locking_callback()) {
326
326
  int num_locks = CRYPTO_num_locks();
327
- CHECK_GT(num_locks, 0);
327
+ GRPC_CHECK_GT(num_locks, 0);
328
328
  g_openssl_mutexes = static_cast<gpr_mu*>(
329
329
  gpr_malloc(static_cast<size_t>(num_locks) * sizeof(gpr_mu)));
330
330
  for (int i = 0; i < num_locks; i++) {
@@ -338,19 +338,19 @@ static void init_openssl(void) {
338
338
  #endif
339
339
  g_ssl_ctx_ex_factory_index =
340
340
  SSL_CTX_get_ex_new_index(0, nullptr, nullptr, nullptr, nullptr);
341
- CHECK_NE(g_ssl_ctx_ex_factory_index, -1);
341
+ GRPC_CHECK_NE(g_ssl_ctx_ex_factory_index, -1);
342
342
 
343
343
  g_ssl_ctx_ex_crl_provider_index =
344
344
  SSL_CTX_get_ex_new_index(0, nullptr, nullptr, nullptr, nullptr);
345
- CHECK_NE(g_ssl_ctx_ex_crl_provider_index, -1);
345
+ GRPC_CHECK_NE(g_ssl_ctx_ex_crl_provider_index, -1);
346
346
 
347
347
  g_ssl_ctx_ex_spiffe_bundle_map_index =
348
348
  SSL_CTX_get_ex_new_index(0, nullptr, nullptr, nullptr, nullptr);
349
- CHECK_NE(g_ssl_ctx_ex_spiffe_bundle_map_index, -1);
349
+ GRPC_CHECK_NE(g_ssl_ctx_ex_spiffe_bundle_map_index, -1);
350
350
 
351
351
  g_ssl_ex_verified_root_cert_index = SSL_get_ex_new_index(
352
352
  0, nullptr, nullptr, nullptr, verified_root_cert_free);
353
- CHECK_NE(g_ssl_ex_verified_root_cert_index, -1);
353
+ GRPC_CHECK_NE(g_ssl_ex_verified_root_cert_index, -1);
354
354
  }
355
355
 
356
356
  // --- Ssl utils. ---
@@ -608,7 +608,7 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
608
608
  : 0;
609
609
  size_t property_count;
610
610
  tsi_result result;
611
- CHECK_GE(subject_alt_name_count, 0);
611
+ GRPC_CHECK_GE(subject_alt_name_count, 0);
612
612
  property_count = (include_certificate_type ? size_t{1} : 0) +
613
613
  3 /* subject, common name, certificate */ +
614
614
  static_cast<size_t>(subject_alt_name_count);
@@ -663,7 +663,7 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
663
663
  }
664
664
  if (result != TSI_OK) tsi_peer_destruct(peer);
665
665
 
666
- CHECK((int)peer->property_count == current_insert_index);
666
+ GRPC_CHECK((int)peer->property_count == current_insert_index);
667
667
  return result;
668
668
  }
669
669
 
@@ -674,7 +674,7 @@ static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
674
674
  tsi_result result = TSI_OK;
675
675
  X509* certificate = nullptr;
676
676
  BIO* pem;
677
- CHECK_LE(pem_cert_chain_size, static_cast<size_t>(INT_MAX));
677
+ GRPC_CHECK_LE(pem_cert_chain_size, static_cast<size_t>(INT_MAX));
678
678
  pem = BIO_new_mem_buf(pem_cert_chain, static_cast<int>(pem_cert_chain_size));
679
679
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
680
680
 
@@ -794,7 +794,7 @@ static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
794
794
  tsi_result result = TSI_OK;
795
795
  EVP_PKEY* private_key = nullptr;
796
796
  BIO* pem;
797
- CHECK_LE(pem_key_size, static_cast<size_t>(INT_MAX));
797
+ GRPC_CHECK_LE(pem_key_size, static_cast<size_t>(INT_MAX));
798
798
  pem = BIO_new_mem_buf(pem_key, static_cast<int>(pem_key_size));
799
799
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
800
800
  do {
@@ -839,7 +839,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
839
839
  X509* root = nullptr;
840
840
  X509_NAME* root_name = nullptr;
841
841
  BIO* pem;
842
- CHECK_LE(pem_roots_size, static_cast<size_t>(INT_MAX));
842
+ GRPC_CHECK_LE(pem_roots_size, static_cast<size_t>(INT_MAX));
843
843
  pem = BIO_new_mem_buf(pem_roots, static_cast<int>(pem_roots_size));
844
844
  if (cert_store == nullptr) return TSI_INVALID_ARGUMENT;
845
845
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
@@ -1240,7 +1240,7 @@ static int CheckChainRevocation(
1240
1240
  }
1241
1241
 
1242
1242
  static grpc_core::SpiffeBundleMap* GetSpiffeBundleMap(X509_STORE_CTX* ctx) {
1243
- CHECK(ctx != nullptr);
1243
+ GRPC_CHECK(ctx != nullptr);
1244
1244
  ERR_clear_error();
1245
1245
  int ssl_index = SSL_get_ex_data_X509_STORE_CTX_idx();
1246
1246
  if (ssl_index < 0) {
@@ -1264,7 +1264,7 @@ static grpc_core::SpiffeBundleMap* GetSpiffeBundleMap(X509_STORE_CTX* ctx) {
1264
1264
  }
1265
1265
 
1266
1266
  static absl::StatusOr<std::string> GetSpiffeUriFromCert(X509* cert) {
1267
- CHECK(cert != nullptr);
1267
+ GRPC_CHECK(cert != nullptr);
1268
1268
  GENERAL_NAMES* subject_alt_names = static_cast<GENERAL_NAMES*>(
1269
1269
  X509_get_ext_d2i(cert, NID_subject_alt_name, nullptr, nullptr));
1270
1270
  int uri_count = 0;
@@ -1301,7 +1301,7 @@ static absl::StatusOr<std::string> GetSpiffeUriFromCert(X509* cert) {
1301
1301
  }
1302
1302
 
1303
1303
  static absl::StatusOr<std::string> SpiffeTrustDomainFromCert(X509* cert) {
1304
- CHECK(cert != nullptr);
1304
+ GRPC_CHECK(cert != nullptr);
1305
1305
  auto subject_name = GetSpiffeUriFromCert(cert);
1306
1306
  GRPC_RETURN_IF_ERROR(subject_name.status());
1307
1307
  auto spiffe_id = grpc_core::SpiffeId::FromString(*subject_name);
@@ -1315,7 +1315,7 @@ static absl::StatusOr<std::string> SpiffeTrustDomainFromCert(X509* cert) {
1315
1315
  // https://github.com/grpc/proposal/blob/master/A87-mtls-spiffe-support.md
1316
1316
  absl::Status ConfigureSpiffeRoots(
1317
1317
  X509_STORE_CTX* ctx, grpc_core::SpiffeBundleMap* spiffe_bundle_map) {
1318
- CHECK(ctx != nullptr);
1318
+ GRPC_CHECK(ctx != nullptr);
1319
1319
  if (spiffe_bundle_map == nullptr) {
1320
1320
  return absl::InvalidArgumentError(
1321
1321
  "cannot configure spiffe roots with a nullptr spiffe_bundle_map.");
@@ -1354,7 +1354,7 @@ absl::Status ConfigureSpiffeRoots(
1354
1354
  // returns 1 on success, indicating a trusted chain to a root of trust was
1355
1355
  // found, 0 if a trusted chain could not be built.
1356
1356
  static int CustomVerificationFunction(X509_STORE_CTX* ctx, void* arg) {
1357
- CHECK(ctx != nullptr);
1357
+ GRPC_CHECK(ctx != nullptr);
1358
1358
  grpc_core::SpiffeBundleMap* spiffe_bundle_map = GetSpiffeBundleMap(ctx);
1359
1359
  if (spiffe_bundle_map != nullptr) {
1360
1360
  // If a SPIFFE Bundle Map is configured, we'll use
@@ -1598,7 +1598,7 @@ static tsi_ssl_handshaker_factory_vtable handshaker_factory_vtable = {nullptr};
1598
1598
  // allocating memory for the factory.
1599
1599
  static void tsi_ssl_handshaker_factory_init(
1600
1600
  tsi_ssl_handshaker_factory* factory) {
1601
- CHECK_NE(factory, nullptr);
1601
+ GRPC_CHECK_NE(factory, nullptr);
1602
1602
 
1603
1603
  factory->vtable = &handshaker_factory_vtable;
1604
1604
  gpr_ref_init(&factory->refcount, 1);
@@ -1825,7 +1825,7 @@ static tsi_result ssl_handshaker_get_bytes_to_send_to_peer(
1825
1825
  if (error != nullptr) *error = "invalid argument";
1826
1826
  return TSI_INVALID_ARGUMENT;
1827
1827
  }
1828
- CHECK_LE(*bytes_size, static_cast<size_t>(INT_MAX));
1828
+ GRPC_CHECK_LE(*bytes_size, static_cast<size_t>(INT_MAX));
1829
1829
  bytes_read_from_ssl =
1830
1830
  BIO_read(impl->network_io, bytes, static_cast<int>(*bytes_size));
1831
1831
  if (bytes_read_from_ssl < 0) {
@@ -1903,7 +1903,7 @@ static tsi_result ssl_handshaker_process_bytes_from_peer(
1903
1903
  if (error != nullptr) *error = "invalid argument";
1904
1904
  return TSI_INVALID_ARGUMENT;
1905
1905
  }
1906
- CHECK_LE(*bytes_size, static_cast<size_t>(INT_MAX));
1906
+ GRPC_CHECK_LE(*bytes_size, static_cast<size_t>(INT_MAX));
1907
1907
  bytes_written_into_ssl_size =
1908
1908
  BIO_write(impl->network_io, bytes, static_cast<int>(*bytes_size));
1909
1909
  if (bytes_written_into_ssl_size < 0) {
@@ -2402,7 +2402,7 @@ static int server_handshaker_factory_npn_advertised_callback(
2402
2402
  tsi_ssl_server_handshaker_factory* factory =
2403
2403
  static_cast<tsi_ssl_server_handshaker_factory*>(arg);
2404
2404
  *out = factory->alpn_protocol_list;
2405
- CHECK(factory->alpn_protocol_list_length <= UINT_MAX);
2405
+ GRPC_CHECK(factory->alpn_protocol_list_length <= UINT_MAX);
2406
2406
  *outlen = static_cast<unsigned int>(factory->alpn_protocol_list_length);
2407
2407
  return SSL_TLSEXT_ERR_OK;
2408
2408
  }
@@ -2437,7 +2437,7 @@ static int server_handshaker_factory_new_session_callback(
2437
2437
  template <typename T>
2438
2438
  static void ssl_keylogging_callback(const SSL* ssl, const char* info) {
2439
2439
  SSL_CTX* ssl_context = SSL_get_SSL_CTX(ssl);
2440
- CHECK_NE(ssl_context, nullptr);
2440
+ GRPC_CHECK_NE(ssl_context, nullptr);
2441
2441
  void* arg = SSL_CTX_get_ex_data(ssl_context, g_ssl_ctx_ex_factory_index);
2442
2442
  T* factory = static_cast<T*>(arg);
2443
2443
  factory->key_logger->LogSessionKeys(ssl_context, info);
@@ -2588,7 +2588,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
2588
2588
  break;
2589
2589
  }
2590
2590
  #if TSI_OPENSSL_ALPN_SUPPORT
2591
- CHECK(impl->alpn_protocol_list_length < UINT_MAX);
2591
+ GRPC_CHECK(impl->alpn_protocol_list_length < UINT_MAX);
2592
2592
  if (SSL_CTX_set_alpn_protos(
2593
2593
  ssl_context, impl->alpn_protocol_list,
2594
2594
  static_cast<unsigned int>(impl->alpn_protocol_list_length))) {
@@ -2945,8 +2945,8 @@ bool IsRootCertInfoEmpty(const RootCertInfo* root_cert_info) {
2945
2945
  const tsi_ssl_handshaker_factory_vtable* tsi_ssl_handshaker_factory_swap_vtable(
2946
2946
  tsi_ssl_handshaker_factory* factory,
2947
2947
  tsi_ssl_handshaker_factory_vtable* new_vtable) {
2948
- CHECK_NE(factory, nullptr);
2949
- CHECK_NE(factory->vtable, nullptr);
2948
+ GRPC_CHECK_NE(factory, nullptr);
2949
+ GRPC_CHECK_NE(factory->vtable, nullptr);
2950
2950
 
2951
2951
  const tsi_ssl_handshaker_factory_vtable* orig_vtable = factory->vtable;
2952
2952
  factory->vtable = new_vtable;
@@ -26,11 +26,11 @@
26
26
 
27
27
  #include <memory>
28
28
 
29
- #include "absl/strings/string_view.h"
30
29
  #include "src/core/credentials/transport/tls/spiffe_utils.h"
31
30
  #include "src/core/tsi/ssl/key_logging/ssl_key_logging.h"
32
31
  #include "src/core/tsi/ssl_transport_security_utils.h"
33
32
  #include "src/core/tsi/transport_security_interface.h"
33
+ #include "absl/strings/string_view.h"
34
34
 
35
35
  // Value for the TSI_CERTIFICATE_TYPE_PEER_PROPERTY property for X509 certs.
36
36
  #define TSI_X509_CERTIFICATE_TYPE "X509"