grpc 1.71.0 → 1.72.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +78 -75
  3. data/include/grpc/event_engine/memory_request.h +3 -3
  4. data/include/grpc/impl/channel_arg_names.h +70 -50
  5. data/include/grpc/support/workaround_list.h +1 -4
  6. data/src/core/{lib/transport → call}/call_arena_allocator.cc +1 -1
  7. data/src/core/{lib/transport → call}/call_arena_allocator.h +3 -3
  8. data/src/core/{lib/transport → call}/call_destination.h +4 -4
  9. data/src/core/{lib/transport → call}/call_filters.cc +2 -2
  10. data/src/core/{lib/transport → call}/call_filters.h +25 -6
  11. data/src/core/{lib/channel → call}/call_finalization.h +3 -3
  12. data/src/core/{lib/transport → call}/call_spine.cc +1 -1
  13. data/src/core/{lib/transport → call}/call_spine.h +68 -26
  14. data/src/core/{lib/transport → call}/call_state.cc +1 -1
  15. data/src/core/{lib/transport → call}/call_state.h +3 -3
  16. data/src/core/{lib/surface → call}/client_call.cc +9 -7
  17. data/src/core/{lib/surface → call}/client_call.h +4 -4
  18. data/src/core/{lib/transport → call}/custom_metadata.h +3 -3
  19. data/src/core/{lib/transport → call}/interception_chain.cc +5 -5
  20. data/src/core/{lib/transport → call}/interception_chain.h +7 -7
  21. data/src/core/{lib/transport → call}/message.cc +1 -1
  22. data/src/core/{lib/transport → call}/message.h +7 -3
  23. data/src/core/{lib/transport → call}/metadata.cc +2 -2
  24. data/src/core/{lib/transport → call}/metadata.h +4 -4
  25. data/src/core/{lib/transport → call}/metadata_batch.cc +1 -1
  26. data/src/core/{lib/transport → call}/metadata_batch.h +7 -7
  27. data/src/core/{lib/transport → call}/metadata_compression_traits.h +3 -3
  28. data/src/core/{lib/transport → call}/metadata_info.cc +27 -9
  29. data/src/core/{lib/transport → call}/metadata_info.h +4 -4
  30. data/src/core/{lib/transport → call}/parsed_metadata.cc +1 -1
  31. data/src/core/{lib/transport → call}/parsed_metadata.h +3 -3
  32. data/src/core/call/request_buffer.h +3 -3
  33. data/src/core/call/security_context.cc +125 -0
  34. data/src/core/call/security_context.h +114 -0
  35. data/src/core/{lib/surface → call}/server_call.cc +3 -3
  36. data/src/core/{lib/surface → call}/server_call.h +5 -5
  37. data/src/core/{lib/transport → call}/simple_slice_based_metadata.h +4 -4
  38. data/src/core/{lib/channel → call}/status_util.cc +1 -1
  39. data/src/core/{lib/channel → call}/status_util.h +3 -3
  40. data/src/core/client_channel/client_channel.cc +24 -16
  41. data/src/core/client_channel/client_channel.h +4 -3
  42. data/src/core/client_channel/client_channel_filter.cc +10 -20
  43. data/src/core/client_channel/client_channel_filter.h +1 -1
  44. data/src/core/client_channel/client_channel_internal.h +1 -1
  45. data/src/core/client_channel/config_selector.h +2 -2
  46. data/src/core/client_channel/direct_channel.cc +2 -2
  47. data/src/core/client_channel/dynamic_filters.cc +0 -1
  48. data/src/core/client_channel/dynamic_filters.h +0 -1
  49. data/src/core/client_channel/lb_metadata.h +1 -1
  50. data/src/core/client_channel/load_balanced_call_destination.cc +1 -1
  51. data/src/core/client_channel/load_balanced_call_destination.h +1 -1
  52. data/src/core/client_channel/retry_filter_legacy_call_data.cc +43 -41
  53. data/src/core/client_channel/retry_filter_legacy_call_data.h +6 -6
  54. data/src/core/client_channel/retry_interceptor.h +1 -1
  55. data/src/core/client_channel/retry_service_config.cc +1 -1
  56. data/src/core/client_channel/retry_service_config.h +1 -1
  57. data/src/core/client_channel/retry_throttle.cc +30 -34
  58. data/src/core/client_channel/retry_throttle.h +10 -2
  59. data/src/core/client_channel/subchannel.cc +7 -8
  60. data/src/core/client_channel/subchannel.h +1 -2
  61. data/src/core/client_channel/subchannel_stream_client.cc +14 -11
  62. data/src/core/client_channel/subchannel_stream_client.h +2 -2
  63. data/src/core/config/core_configuration.h +2 -2
  64. data/src/core/credentials/call/call_credentials.h +157 -0
  65. data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.cc +4 -4
  66. data/src/core/{lib/security/credentials → credentials/call}/call_creds_util.h +4 -4
  67. data/src/core/{lib/security/credentials/composite/composite_credentials.cc → credentials/call/composite/composite_call_credentials.cc} +4 -57
  68. data/src/core/credentials/call/composite/composite_call_credentials.h +82 -0
  69. data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.cc +2 -2
  70. data/src/core/{lib/security/credentials → credentials/call}/external/aws_external_account_credentials.h +5 -5
  71. data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.cc +1 -1
  72. data/src/core/{lib/security/credentials → credentials/call}/external/aws_request_signer.h +3 -3
  73. data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.cc +6 -6
  74. data/src/core/{lib/security/credentials → credentials/call}/external/external_account_credentials.h +5 -5
  75. data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.cc +1 -1
  76. data/src/core/{lib/security/credentials → credentials/call}/external/file_external_account_credentials.h +4 -4
  77. data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.cc +3 -2
  78. data/src/core/{lib/security/credentials → credentials/call}/external/url_external_account_credentials.h +4 -4
  79. data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +3 -2
  80. data/src/core/{lib/security/credentials → credentials/call}/gcp_service_account_identity/gcp_service_account_identity_credentials.h +6 -6
  81. data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.cc +2 -2
  82. data/src/core/{lib/security/credentials → credentials/call}/iam/iam_credentials.h +4 -4
  83. data/src/core/{lib/security/util → credentials/call}/json_util.cc +1 -1
  84. data/src/core/{lib/security/util → credentials/call}/json_util.h +3 -3
  85. data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.cc +2 -2
  86. data/src/core/{lib/security/credentials → credentials/call}/jwt/json_token.h +3 -3
  87. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.cc +3 -3
  88. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_credentials.h +5 -5
  89. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.cc +3 -2
  90. data/src/core/{lib/security/credentials → credentials/call}/jwt/jwt_verifier.h +3 -3
  91. data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.cc +4 -3
  92. data/src/core/{lib/security/credentials → credentials/call}/oauth2/oauth2_credentials.h +5 -5
  93. data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.cc +2 -2
  94. data/src/core/{lib/security/credentials → credentials/call}/plugin/plugin_credentials.h +5 -5
  95. data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.cc +1 -1
  96. data/src/core/{lib/security/credentials → credentials/call}/token_fetcher/token_fetcher_credentials.h +5 -5
  97. data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.cc +4 -4
  98. data/src/core/{lib/security/credentials → credentials/transport}/alts/alts_credentials.h +5 -5
  99. data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.cc +4 -4
  100. data/src/core/{lib/security/security_connector → credentials/transport}/alts/alts_security_connector.h +4 -4
  101. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.cc +1 -1
  102. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment.h +3 -3
  103. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_linux.cc +1 -1
  104. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_no_op.cc +1 -1
  105. data/src/core/{lib/security/credentials → credentials/transport}/alts/check_gcp_environment_windows.cc +1 -1
  106. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_client_options.cc +1 -1
  107. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.cc +1 -1
  108. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_options.h +3 -3
  109. data/src/core/{lib/security/credentials → credentials/transport}/alts/grpc_alts_credentials_server_options.cc +1 -1
  110. data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry.h +4 -4
  111. data/src/core/{lib/security/credentials → credentials/transport}/channel_creds_registry_init.cc +21 -17
  112. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +68 -0
  113. data/src/core/{lib/security/credentials/composite/composite_credentials.h → credentials/transport/composite/composite_channel_credentials.h} +6 -51
  114. data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.cc +4 -26
  115. data/src/core/{lib/security/credentials → credentials/transport}/fake/fake_credentials.h +5 -37
  116. data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.cc +4 -4
  117. data/src/core/{lib/security/security_connector → credentials/transport}/fake/fake_security_connector.h +4 -4
  118. data/src/core/{lib/security/credentials → credentials/transport}/google_default/credentials_generic.cc +2 -2
  119. data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.cc +31 -19
  120. data/src/core/{lib/security/credentials → credentials/transport}/google_default/google_default_credentials.h +5 -5
  121. data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.cc +2 -2
  122. data/src/core/{lib/security/credentials → credentials/transport}/insecure/insecure_credentials.h +5 -5
  123. data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.cc +2 -2
  124. data/src/core/{lib/security/security_connector → credentials/transport}/insecure/insecure_security_connector.h +5 -5
  125. data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.cc +2 -2
  126. data/src/core/{lib/security/credentials → credentials/transport}/local/local_credentials.h +5 -5
  127. data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.cc +4 -4
  128. data/src/core/{lib/security/security_connector → credentials/transport}/local/local_security_connector.h +4 -4
  129. data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.cc +2 -2
  130. data/src/core/{lib/security/security_connector → credentials/transport}/security_connector.h +3 -3
  131. data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.cc +2 -2
  132. data/src/core/{lib/security/credentials → credentials/transport}/ssl/ssl_credentials.h +6 -6
  133. data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.cc +5 -5
  134. data/src/core/{lib/security/security_connector → credentials/transport}/ssl/ssl_security_connector.h +4 -4
  135. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_factory.h +3 -3
  136. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.cc +1 -1
  137. data/src/core/{lib/security/certificate_provider → credentials/transport/tls}/certificate_provider_registry.h +4 -4
  138. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.cc +1 -1
  139. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_distributor.h +4 -4
  140. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_match.cc +1 -1
  141. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.cc +2 -2
  142. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_provider.h +5 -5
  143. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.cc +2 -2
  144. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_certificate_verifier.h +3 -3
  145. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.cc +1 -1
  146. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_credentials_options.h +7 -7
  147. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.cc +1 -1
  148. data/src/core/{lib/security/credentials → credentials/transport}/tls/grpc_tls_crl_provider.h +3 -3
  149. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots.h +3 -3
  150. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_fallback.cc +1 -1
  151. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.cc +2 -2
  152. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_supported.h +3 -3
  153. data/src/core/{lib/security/security_connector → credentials/transport/tls}/load_system_roots_windows.cc +1 -1
  154. data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.cc +3 -3
  155. data/src/core/{lib/security/security_connector → credentials/transport/tls}/ssl_utils.h +4 -4
  156. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.cc +4 -4
  157. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_credentials.h +5 -5
  158. data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.cc +6 -6
  159. data/src/core/{lib/security/security_connector → credentials/transport}/tls/tls_security_connector.h +6 -6
  160. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.cc +1 -1
  161. data/src/core/{lib/security/credentials → credentials/transport}/tls/tls_utils.h +3 -3
  162. data/src/core/{lib/security/credentials/credentials.cc → credentials/transport/transport_credentials.cc} +1 -3
  163. data/src/core/{lib/security/credentials/credentials.h → credentials/transport/transport_credentials.h} +5 -121
  164. data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.cc +5 -5
  165. data/src/core/{lib/security/credentials → credentials/transport}/xds/xds_credentials.h +6 -6
  166. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
  167. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -5
  168. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +2 -2
  169. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +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 +1 -1
  172. data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
  173. data/src/core/ext/filters/http/client_authority_filter.cc +2 -2
  174. data/src/core/ext/filters/http/message_compress/compression_filter.cc +1 -1
  175. data/src/core/ext/filters/http/message_compress/compression_filter.h +1 -1
  176. data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
  177. data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
  178. data/src/core/ext/filters/rbac/rbac_filter.cc +2 -2
  179. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +1 -1
  180. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +3 -3
  181. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +8 -5
  182. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
  183. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +2 -2
  184. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +1 -3
  185. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +58 -57
  186. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +3 -3
  187. data/src/core/ext/transport/chttp2/transport/frame.cc +89 -68
  188. data/src/core/ext/transport/chttp2/transport/frame.h +37 -1
  189. data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -0
  190. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -3
  191. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -2
  192. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -2
  193. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +1 -1
  194. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -2
  195. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -1
  196. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -2
  197. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +10 -8
  198. data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -2
  199. data/src/core/ext/transport/chttp2/transport/http2_status.h +52 -0
  200. data/src/core/ext/transport/chttp2/transport/internal.h +11 -14
  201. data/src/core/ext/transport/chttp2/transport/parsing.cc +36 -23
  202. data/src/core/ext/transport/chttp2/transport/writing.cc +15 -14
  203. data/src/core/ext/transport/inproc/inproc_transport.cc +1 -1
  204. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +1 -1
  205. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +65 -65
  206. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +28 -28
  207. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +14 -14
  208. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +6 -6
  209. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +6 -6
  210. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +4 -4
  211. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +133 -133
  212. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +71 -71
  213. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +26 -26
  214. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +7 -7
  215. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +216 -218
  216. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +66 -66
  217. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +27 -27
  218. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +9 -9
  219. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +326 -328
  220. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +103 -103
  221. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +58 -58
  222. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +14 -14
  223. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +22 -24
  224. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +3 -3
  225. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +29 -29
  226. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +16 -16
  227. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +186 -192
  228. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +54 -54
  229. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +54 -54
  230. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +21 -21
  231. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +59 -61
  232. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +15 -15
  233. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +100 -100
  234. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +34 -34
  235. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +12 -12
  236. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +5 -5
  237. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +118 -118
  238. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +39 -39
  239. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +19 -19
  240. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +9 -9
  241. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +27 -27
  242. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +10 -10
  243. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +12 -14
  244. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +2 -2
  245. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +41 -41
  246. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +16 -16
  247. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +24 -24
  248. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -9
  249. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +139 -139
  250. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +46 -46
  251. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +61 -61
  252. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +20 -20
  253. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +3 -3
  254. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -1
  255. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +6 -6
  256. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -4
  257. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +33 -33
  258. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +14 -14
  259. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +12 -14
  260. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +2 -2
  261. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +52 -54
  262. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +10 -10
  263. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +620 -626
  264. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +215 -215
  265. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +13 -13
  266. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +4 -4
  267. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +3 -3
  268. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +2 -2
  269. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +7 -7
  270. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +3 -3
  271. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +15 -15
  272. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +7 -7
  273. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +7 -7
  274. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +3 -3
  275. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +16 -16
  276. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -10
  277. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +306 -312
  278. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +96 -96
  279. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +61 -61
  280. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -27
  281. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +19 -19
  282. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +6 -6
  283. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +25 -25
  284. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +9 -9
  285. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +34 -34
  286. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +9 -9
  287. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +3 -3
  288. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -2
  289. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +294 -294
  290. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +105 -105
  291. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +3 -3
  292. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +1 -1
  293. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +23 -23
  294. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +8 -8
  295. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +84 -84
  296. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +28 -28
  297. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +87 -87
  298. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +31 -31
  299. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +24 -24
  300. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +5 -5
  301. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +130 -132
  302. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +43 -43
  303. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +6 -6
  304. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -2
  305. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +60 -60
  306. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +26 -26
  307. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +7 -7
  308. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +3 -3
  309. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +6 -6
  310. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -2
  311. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +7 -7
  312. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +3 -3
  313. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +11 -11
  314. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +4 -4
  315. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +85 -89
  316. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +20 -20
  317. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +80 -83
  318. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +27 -27
  319. data/src/core/ext/upb-gen/google/api/http.upb.h +51 -51
  320. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -22
  321. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +327 -301
  322. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +97 -85
  323. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +1 -0
  324. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +9 -11
  325. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +9 -10
  326. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +110 -113
  327. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +25 -25
  328. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +6 -6
  329. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +4 -4
  330. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +21 -22
  331. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -3
  332. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +70 -72
  333. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +17 -17
  334. data/src/core/ext/upb-gen/validate/validate.upb.h +368 -368
  335. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +117 -117
  336. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +9 -10
  337. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +7 -7
  338. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +3 -3
  339. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +12 -12
  340. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -2
  341. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +27 -30
  342. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +7 -7
  343. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +3 -3
  344. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +3 -3
  345. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +1 -1
  346. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +22 -24
  347. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +3 -3
  348. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +98 -87
  349. data/src/core/{lib/security/transport → filter/auth}/auth_filters.h +8 -7
  350. data/src/core/{lib/security/transport → filter/auth}/client_auth_filter.cc +7 -6
  351. data/src/core/{lib/security/transport → filter/auth}/server_auth_filter.cc +5 -4
  352. data/src/core/handshaker/handshaker.cc +0 -8
  353. data/src/core/handshaker/security/security_handshaker.cc +1 -1
  354. data/src/core/handshaker/security/security_handshaker.h +1 -1
  355. data/src/core/lib/channel/channel_args.h +49 -30
  356. data/src/core/lib/channel/channel_stack.h +1 -2
  357. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  358. data/src/core/lib/channel/connected_channel.cc +2 -2
  359. data/src/core/lib/channel/promise_based_filter.h +3 -3
  360. data/src/core/lib/debug/trace_flags.cc +2 -4
  361. data/src/core/lib/debug/trace_flags.h +1 -2
  362. data/src/core/lib/event_engine/default_event_engine_factory.cc +6 -6
  363. data/src/core/lib/event_engine/default_event_engine_factory.h +1 -1
  364. data/src/core/lib/event_engine/extensions/iomgr_compatible.h +39 -0
  365. data/src/core/lib/event_engine/extensions/supports_win_sockets.h +48 -0
  366. data/src/core/lib/event_engine/extensions/tcp_trace.h +1 -1
  367. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +0 -2
  368. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +1 -3
  369. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +26 -0
  370. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +4 -0
  371. data/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc +64 -0
  372. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +0 -11
  373. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +10 -2
  374. data/src/core/lib/event_engine/shim.cc +9 -16
  375. data/src/core/lib/event_engine/shim.h +11 -0
  376. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +15 -7
  377. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +2 -1
  378. data/src/core/lib/event_engine/windows/win_socket.cc +11 -0
  379. data/src/core/lib/event_engine/windows/win_socket.h +3 -0
  380. data/src/core/lib/event_engine/windows/windows_endpoint.cc +5 -10
  381. data/src/core/lib/event_engine/windows/windows_engine.cc +42 -0
  382. data/src/core/lib/event_engine/windows/windows_engine.h +8 -2
  383. data/src/core/lib/event_engine/windows/windows_listener.cc +5 -6
  384. data/src/core/lib/event_engine/windows/windows_listener.h +9 -4
  385. data/src/core/lib/experiments/experiments.cc +174 -21
  386. data/src/core/lib/experiments/experiments.h +70 -13
  387. data/src/core/lib/iomgr/endpoint_pair_posix.cc +43 -16
  388. data/src/core/lib/iomgr/endpoint_pair_windows.cc +43 -8
  389. data/src/core/lib/iomgr/error.cc +27 -43
  390. data/src/core/lib/iomgr/ev_epoll1_linux.cc +13 -1
  391. data/src/core/lib/iomgr/ev_poll_posix.cc +13 -0
  392. data/src/core/lib/iomgr/polling_entity.cc +2 -7
  393. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
  394. data/src/core/lib/iomgr/socket_utils_posix.cc +22 -11
  395. data/src/core/lib/iomgr/socket_utils_posix.h +12 -2
  396. data/src/core/lib/iomgr/tcp_client_cfstream.cc +8 -9
  397. data/src/core/lib/iomgr/tcp_client_posix.cc +11 -15
  398. data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
  399. data/src/core/lib/iomgr/tcp_posix.cc +58 -31
  400. data/src/core/lib/iomgr/tcp_posix.h +10 -2
  401. data/src/core/lib/iomgr/tcp_server_posix.cc +9 -1
  402. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -4
  403. data/src/core/lib/iomgr/tcp_server_windows.cc +27 -16
  404. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +10 -2
  405. data/src/core/lib/promise/all_ok.h +31 -0
  406. data/src/core/lib/promise/loop.h +8 -5
  407. data/src/core/lib/promise/map.h +65 -2
  408. data/src/core/lib/promise/party.h +5 -1
  409. data/src/core/lib/promise/poll.h +22 -20
  410. data/src/core/lib/promise/promise.h +2 -2
  411. data/src/core/lib/promise/status_flag.h +23 -11
  412. data/src/core/lib/security/authorization/evaluate_args.cc +1 -1
  413. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  414. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
  415. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  416. data/src/core/lib/slice/slice.h +6 -0
  417. data/src/core/lib/surface/call.cc +20 -18
  418. data/src/core/lib/surface/call_utils.cc +3 -3
  419. data/src/core/lib/surface/call_utils.h +3 -3
  420. data/src/core/lib/surface/channel.h +2 -2
  421. data/src/core/lib/surface/channel_init.h +2 -2
  422. data/src/core/lib/surface/completion_queue.cc +77 -17
  423. data/src/core/lib/surface/filter_stack_call.cc +40 -27
  424. data/src/core/lib/surface/filter_stack_call.h +1 -1
  425. data/src/core/lib/surface/init.cc +2 -3
  426. data/src/core/lib/surface/lame_client.cc +1 -1
  427. data/src/core/lib/surface/legacy_channel.cc +27 -23
  428. data/src/core/lib/surface/legacy_channel.h +1 -1
  429. data/src/core/lib/surface/version.cc +2 -2
  430. data/src/core/lib/transport/error_utils.cc +65 -11
  431. data/src/core/lib/transport/error_utils.h +2 -2
  432. data/src/core/lib/transport/status_conversion.cc +16 -14
  433. data/src/core/lib/transport/status_conversion.h +5 -4
  434. data/src/core/lib/transport/transport.h +5 -5
  435. data/src/core/lib/transport/transport_op_string.cc +1 -1
  436. data/src/core/load_balancing/delegating_helper.h +1 -1
  437. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -1
  438. data/src/core/load_balancing/grpclb/grpclb.cc +1 -2
  439. data/src/core/load_balancing/pick_first/pick_first.cc +0 -955
  440. data/src/core/load_balancing/rls/rls.cc +31 -37
  441. data/src/core/load_balancing/weighted_target/weighted_target.cc +1 -1
  442. data/src/core/load_balancing/xds/cds.cc +3 -10
  443. data/src/core/load_balancing/xds/xds_cluster_impl.cc +1 -1
  444. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  445. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -2
  446. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +1 -3
  447. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -0
  448. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +1 -1
  449. data/src/core/resolver/xds/xds_dependency_manager.cc +8 -3
  450. data/src/core/resolver/xds/xds_resolver.cc +2 -2
  451. data/src/core/server/server.cc +7 -4
  452. data/src/core/server/server.h +1 -1
  453. data/src/core/server/server_call_tracer_filter.cc +1 -1
  454. data/src/core/server/server_config_selector.h +1 -1
  455. data/src/core/server/server_config_selector_filter.cc +1 -1
  456. data/src/core/server/xds_server_config_fetcher.cc +5 -5
  457. data/src/core/service_config/service_config_channel_arg_filter.cc +1 -1
  458. data/src/core/telemetry/call_tracer.cc +2 -4
  459. data/src/core/telemetry/call_tracer.h +3 -3
  460. data/src/core/telemetry/metrics.cc +30 -12
  461. data/src/core/telemetry/metrics.h +15 -3
  462. data/src/core/telemetry/stats_data.cc +75 -2
  463. data/src/core/telemetry/stats_data.h +46 -4
  464. data/src/core/telemetry/tcp_tracer.h +90 -84
  465. data/src/core/{lib/security/context/security_context.cc → transport/auth_context.cc} +1 -96
  466. data/src/core/{lib/security/context/security_context.h → transport/auth_context.h} +6 -76
  467. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  468. data/src/core/tsi/ssl_transport_security.cc +1 -1
  469. data/src/core/util/check_class_size.h +48 -0
  470. data/src/core/util/gcp_metadata_query.cc +1 -1
  471. data/src/core/util/http_client/httpcli.cc +3 -3
  472. data/src/core/util/http_client/httpcli_security_connector.cc +3 -3
  473. data/src/core/util/load_file.cc +26 -14
  474. data/src/core/util/status_helper.cc +86 -63
  475. data/src/core/util/status_helper.h +9 -26
  476. data/src/core/xds/grpc/certificate_provider_store.cc +1 -1
  477. data/src/core/xds/grpc/certificate_provider_store.h +3 -3
  478. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
  479. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
  480. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +10 -7
  481. data/src/core/xds/grpc/xds_certificate_provider.cc +1 -1
  482. data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
  483. data/src/core/xds/grpc/xds_client_grpc.cc +7 -6
  484. data/src/core/xds/grpc/xds_client_grpc.h +4 -2
  485. data/src/core/xds/grpc/xds_cluster.h +3 -3
  486. data/src/core/xds/grpc/xds_cluster_parser.cc +3 -2
  487. data/src/core/xds/grpc/xds_http_fault_filter.cc +1 -1
  488. data/src/core/xds/grpc/xds_http_filter.h +1 -1
  489. data/src/core/xds/grpc/xds_http_filter_registry.h +1 -1
  490. data/src/core/xds/grpc/xds_route_config.h +1 -1
  491. data/src/core/xds/grpc/xds_route_config_parser.cc +1 -1
  492. data/src/core/xds/grpc/xds_route_config_parser.h +1 -1
  493. data/src/core/xds/grpc/xds_routing.h +1 -1
  494. data/src/core/xds/grpc/xds_server_grpc.cc +60 -48
  495. data/src/core/xds/grpc/xds_server_grpc.h +23 -13
  496. data/src/core/xds/grpc/xds_server_grpc_interface.h +2 -2
  497. data/src/core/xds/grpc/xds_transport_grpc.cc +5 -5
  498. data/src/core/xds/grpc/xds_transport_grpc.h +5 -3
  499. data/src/core/xds/xds_client/lrs_client.cc +6 -5
  500. data/src/core/xds/xds_client/lrs_client.h +7 -7
  501. data/src/core/xds/xds_client/xds_bootstrap.h +16 -1
  502. data/src/core/xds/xds_client/xds_client.cc +25 -23
  503. data/src/core/xds/xds_client/xds_client.h +3 -1
  504. data/src/core/xds/xds_client/xds_resource_type.h +1 -2
  505. data/src/core/xds/xds_client/xds_transport.h +1 -1
  506. data/src/ruby/ext/grpc/extconf.rb +1 -1
  507. data/src/ruby/lib/grpc/version.rb +1 -1
  508. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +0 -2
  509. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +0 -2
  510. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +0 -2
  511. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +0 -2
  512. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +0 -2
  513. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +0 -2
  514. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +0 -1
  515. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +0 -1
  516. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +0 -2
  517. data/third_party/boringssl-with-bazel/src/crypto/internal.h +20 -3
  518. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -25
  519. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +3 -7
  520. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +1 -1
  521. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  522. data/third_party/boringssl-with-bazel/src/ssl/internal.h +13 -6
  523. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +2 -1
  524. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
  525. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +1 -1
  526. data/third_party/upb/upb/base/internal/log2.h +3 -1
  527. data/third_party/upb/upb/base/string_view.h +10 -0
  528. data/third_party/upb/upb/hash/common.c +5 -1
  529. data/third_party/upb/upb/json/decode.c +2 -2
  530. data/third_party/upb/upb/json/decode.h +0 -1
  531. data/third_party/upb/upb/mem/alloc.h +5 -0
  532. data/third_party/upb/upb/mem/arena.c +296 -142
  533. data/third_party/upb/upb/mem/arena.h +47 -11
  534. data/third_party/upb/upb/mem/arena.hpp +4 -20
  535. data/third_party/upb/upb/mem/internal/arena.h +4 -6
  536. data/third_party/upb/upb/message/accessors.h +41 -0
  537. data/third_party/upb/upb/message/compat.c +11 -14
  538. data/third_party/upb/upb/message/compat.h +4 -3
  539. data/third_party/upb/upb/message/copy.c +35 -30
  540. data/third_party/upb/upb/message/internal/accessors.h +139 -10
  541. data/third_party/upb/upb/message/internal/extension.c +28 -25
  542. data/third_party/upb/upb/message/internal/extension.h +21 -5
  543. data/third_party/upb/upb/message/internal/iterator.c +58 -0
  544. data/third_party/upb/upb/message/internal/iterator.h +29 -0
  545. data/third_party/upb/upb/message/internal/map.h +2 -3
  546. data/third_party/upb/upb/message/internal/map_sorter.h +3 -2
  547. data/third_party/upb/upb/message/internal/message.c +48 -29
  548. data/third_party/upb/upb/message/internal/message.h +154 -24
  549. data/third_party/upb/upb/message/map_sorter.c +20 -8
  550. data/third_party/upb/upb/message/message.c +90 -38
  551. data/third_party/upb/upb/message/message.h +58 -2
  552. data/third_party/upb/upb/message/value.h +9 -0
  553. data/third_party/upb/upb/mini_descriptor/build_enum.c +1 -1
  554. data/third_party/upb/upb/mini_descriptor/decode.c +97 -136
  555. data/third_party/upb/upb/mini_descriptor/decode.h +4 -3
  556. data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +1 -1
  557. data/third_party/upb/upb/mini_table/extension_registry.c +24 -12
  558. data/third_party/upb/upb/mini_table/extension_registry.h +13 -6
  559. data/third_party/upb/upb/mini_table/message.c +21 -13
  560. data/third_party/upb/upb/port/atomic.h +134 -7
  561. data/third_party/upb/upb/port/def.inc +140 -38
  562. data/third_party/upb/upb/port/undef.inc +11 -1
  563. data/third_party/upb/upb/reflection/def.hpp +5 -1
  564. data/third_party/upb/upb/reflection/def_pool.c +10 -3
  565. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +1 -1
  566. data/third_party/upb/upb/reflection/file_def.c +12 -5
  567. data/third_party/upb/upb/reflection/internal/def_builder.c +1 -1
  568. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  569. data/third_party/upb/upb/reflection/message.c +19 -16
  570. data/third_party/upb/upb/reflection/message.h +3 -1
  571. data/third_party/upb/upb/text/encode.c +1 -13
  572. data/third_party/upb/upb/text/internal/encode.c +25 -6
  573. data/third_party/upb/upb/text/internal/encode.h +4 -0
  574. data/third_party/upb/upb/wire/decode.c +60 -45
  575. data/third_party/upb/upb/wire/decode.h +4 -2
  576. data/third_party/upb/upb/wire/encode.c +77 -42
  577. data/third_party/upb/upb/wire/encode.h +2 -0
  578. data/third_party/upb/upb/wire/eps_copy_input_stream.h +18 -20
  579. data/third_party/upb/upb/wire/internal/decoder.h +4 -11
  580. data/third_party/utf8_range/utf8_range.c +15 -275
  581. data/third_party/utf8_range/utf8_range_neon.inc +117 -0
  582. data/third_party/utf8_range/utf8_range_sse.inc +272 -0
  583. data/third_party/zlib/deflate.c +40 -15
  584. data/third_party/zlib/deflate.h +33 -2
  585. data/third_party/zlib/gzguts.h +2 -6
  586. data/third_party/zlib/inflate.c +1 -1
  587. data/third_party/zlib/inftrees.c +3 -3
  588. data/third_party/zlib/inftrees.h +2 -2
  589. data/third_party/zlib/trees.c +18 -4
  590. data/third_party/zlib/zconf.h +1 -9
  591. data/third_party/zlib/zlib.h +12 -12
  592. data/third_party/zlib/zutil.h +4 -25
  593. metadata +155 -145
  594. data/include/grpc/grpc_cronet.h +0 -37
  595. data/src/core/lib/transport/http2_errors.h +0 -43
  596. data/third_party/upb/upb/message/internal/compare_unknown.c +0 -289
  597. data/third_party/upb/upb/message/internal/compare_unknown.h +0 -49
@@ -12,8 +12,8 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_COMPRESSION_TRAITS_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_COMPRESSION_TRAITS_H
15
+ #ifndef GRPC_SRC_CORE_CALL_METADATA_COMPRESSION_TRAITS_H
16
+ #define GRPC_SRC_CORE_CALL_METADATA_COMPRESSION_TRAITS_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
  #include <stddef.h>
@@ -63,4 +63,4 @@ struct HttpStatusCompressor {};
63
63
 
64
64
  } // namespace grpc_core
65
65
 
66
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_COMPRESSION_TRAITS_H
66
+ #endif // GRPC_SRC_CORE_CALL_METADATA_COMPRESSION_TRAITS_H
@@ -12,17 +12,28 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #include "src/core/lib/transport/metadata_info.h"
15
+ #include "src/core/call/metadata_info.h"
16
16
 
17
17
  #include <grpc/support/port_platform.h>
18
18
 
19
+ #include <cstddef>
20
+ #include <string>
21
+
22
+ #include "absl/strings/str_cat.h"
19
23
  #include "src/core/lib/slice/slice.h"
20
24
 
21
25
  namespace grpc_core {
22
26
 
23
27
  class MetadataSizesAnnotation::MetadataSizeEncoder {
24
28
  public:
25
- explicit MetadataSizeEncoder(std::string& summary) : summary_(summary) {}
29
+ explicit MetadataSizeEncoder(std::string& summary, uint64_t soft_limit,
30
+ uint64_t hard_limit)
31
+ : summary_(summary) {
32
+ header_ = absl::StrCat("gRPC metadata soft_limit:", soft_limit,
33
+ ",hard_limit:", hard_limit, ",");
34
+ absl::StrAppend(&summary_, header_);
35
+ entry_length_ = header_.length();
36
+ }
26
37
 
27
38
  void Encode(const Slice& key, const Slice& value) {
28
39
  AddToSummary(key.as_string_view(), value.size());
@@ -36,18 +47,25 @@ class MetadataSizesAnnotation::MetadataSizeEncoder {
36
47
  private:
37
48
  void AddToSummary(absl::string_view key,
38
49
  size_t value_length) GPR_ATTRIBUTE_NOINLINE {
39
- absl::StrAppend(&summary_, key, ":",
40
- hpack_constants::SizeForEntry(key.size(), value_length),
41
- ",");
50
+ std::string metadata_str = absl::StrCat(
51
+ key, ":", hpack_constants::SizeForEntry(key.size(), value_length), ",");
52
+ if ((entry_length_ + metadata_str.length()) < 200) {
53
+ // Limit each annotation to 200 bytes.
54
+ entry_length_ += metadata_str.length();
55
+ absl::StrAppend(&summary_, metadata_str);
56
+ } else {
57
+ absl::StrAppend(&summary_, ";", header_, metadata_str);
58
+ entry_length_ = header_.length() + metadata_str.length();
59
+ }
42
60
  }
43
61
  std::string& summary_;
62
+ std::string header_;
63
+ size_t entry_length_ = 0;
44
64
  };
45
65
 
46
66
  std::string MetadataSizesAnnotation::ToString() const {
47
- std::string metadata_annotation =
48
- absl::StrCat("gRPC metadata soft_limit:", soft_limit_,
49
- ",hard_limit:", hard_limit_, ",");
50
- MetadataSizeEncoder encoder(metadata_annotation);
67
+ std::string metadata_annotation;
68
+ MetadataSizeEncoder encoder(metadata_annotation, soft_limit_, hard_limit_);
51
69
  metadata_buffer_->Encode(&encoder);
52
70
  return metadata_annotation;
53
71
  }
@@ -12,14 +12,14 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_INFO_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_INFO_H
15
+ #ifndef GRPC_SRC_CORE_CALL_METADATA_INFO_H
16
+ #define GRPC_SRC_CORE_CALL_METADATA_INFO_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
20
+ #include "src/core/call/metadata_batch.h"
20
21
  #include "src/core/ext/transport/chttp2/transport/hpack_constants.h"
21
22
  #include "src/core/lib/channel/channel_args.h"
22
- #include "src/core/lib/transport/metadata_batch.h"
23
23
  #include "src/core/telemetry/call_tracer.h"
24
24
 
25
25
  namespace grpc_core {
@@ -82,4 +82,4 @@ class MetadataSizesAnnotation
82
82
 
83
83
  } // namespace grpc_core
84
84
 
85
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_INFO_H
85
+ #endif // GRPC_SRC_CORE_CALL_METADATA_INFO_H
@@ -12,7 +12,7 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #include "src/core/lib/transport/parsed_metadata.h"
15
+ #include "src/core/call/parsed_metadata.h"
16
16
 
17
17
  #include <grpc/support/port_platform.h>
18
18
 
@@ -12,8 +12,8 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef GRPC_SRC_CORE_LIB_TRANSPORT_PARSED_METADATA_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_PARSED_METADATA_H
15
+ #ifndef GRPC_SRC_CORE_CALL_PARSED_METADATA_H
16
+ #define GRPC_SRC_CORE_CALL_PARSED_METADATA_H
17
17
 
18
18
  #include <grpc/slice.h>
19
19
  #include <grpc/support/port_platform.h>
@@ -426,4 +426,4 @@ ParsedMetadata<MetadataContainer>::KeyValueVTable(absl::string_view key) {
426
426
 
427
427
  } // namespace grpc_core
428
428
 
429
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_PARSED_METADATA_H
429
+ #endif // GRPC_SRC_CORE_CALL_PARSED_METADATA_H
@@ -17,9 +17,9 @@
17
17
 
18
18
  #include <utility>
19
19
 
20
- #include "src/core/lib/transport/call_spine.h"
21
- #include "src/core/lib/transport/message.h"
22
- #include "src/core/lib/transport/metadata.h"
20
+ #include "src/core/call/call_spine.h"
21
+ #include "src/core/call/message.h"
22
+ #include "src/core/call/metadata.h"
23
23
 
24
24
  namespace grpc_core {
25
25
 
@@ -0,0 +1,125 @@
1
+ //
2
+ // Copyright 2015 gRPC authors.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ //
16
+
17
+ #include "src/core/call/security_context.h"
18
+
19
+ #include <grpc/credentials.h>
20
+ #include <grpc/grpc_security.h>
21
+ #include <grpc/support/alloc.h>
22
+ #include <grpc/support/port_platform.h>
23
+ #include <grpc/support/string_util.h>
24
+ #include <string.h>
25
+
26
+ #include <algorithm>
27
+
28
+ #include "absl/log/check.h"
29
+ #include "absl/log/log.h"
30
+ #include "src/core/credentials/call/call_credentials.h"
31
+ #include "src/core/lib/channel/channel_args.h"
32
+ #include "src/core/lib/debug/trace.h"
33
+ #include "src/core/lib/iomgr/exec_ctx.h"
34
+ #include "src/core/lib/resource_quota/arena.h"
35
+ #include "src/core/lib/surface/call.h"
36
+ #include "src/core/util/ref_counted_ptr.h"
37
+
38
+ // --- grpc_call ---
39
+
40
+ grpc_call_error grpc_call_set_credentials(grpc_call* call,
41
+ grpc_call_credentials* creds) {
42
+ grpc_core::ExecCtx exec_ctx;
43
+ grpc_client_security_context* ctx = nullptr;
44
+ GRPC_TRACE_LOG(api, INFO) << "grpc_call_set_credentials(call=" << call
45
+ << ", creds=" << creds << ")";
46
+ if (!grpc_call_is_client(call)) {
47
+ LOG(ERROR) << "Method is client-side only.";
48
+ return GRPC_CALL_ERROR_NOT_ON_SERVER;
49
+ }
50
+ auto* arena = grpc_call_get_arena(call);
51
+ ctx = grpc_core::DownCast<grpc_client_security_context*>(
52
+ arena->GetContext<grpc_core::SecurityContext>());
53
+ if (ctx == nullptr) {
54
+ ctx = grpc_client_security_context_create(arena, creds);
55
+ arena->SetContext<grpc_core::SecurityContext>(ctx);
56
+ } else {
57
+ ctx->creds = creds != nullptr ? creds->Ref() : nullptr;
58
+ }
59
+ return GRPC_CALL_OK;
60
+ }
61
+
62
+ grpc_auth_context* grpc_call_auth_context(grpc_call* call) {
63
+ auto* sec_ctx =
64
+ grpc_call_get_arena(call)->GetContext<grpc_core::SecurityContext>();
65
+ GRPC_TRACE_LOG(api, INFO) << "grpc_call_auth_context(call=" << call << ")";
66
+ if (sec_ctx == nullptr) return nullptr;
67
+ if (grpc_call_is_client(call)) {
68
+ auto* sc = grpc_core::DownCast<grpc_client_security_context*>(sec_ctx);
69
+ if (sc->auth_context == nullptr) {
70
+ return nullptr;
71
+ } else {
72
+ return sc->auth_context
73
+ ->Ref(DEBUG_LOCATION, "grpc_call_auth_context client")
74
+ .release();
75
+ }
76
+ } else {
77
+ auto* sc = grpc_core::DownCast<grpc_server_security_context*>(sec_ctx);
78
+ if (sc->auth_context == nullptr) {
79
+ return nullptr;
80
+ } else {
81
+ return sc->auth_context
82
+ ->Ref(DEBUG_LOCATION, "grpc_call_auth_context server")
83
+ .release();
84
+ }
85
+ }
86
+ }
87
+
88
+ // --- grpc_client_security_context ---
89
+ grpc_client_security_context::~grpc_client_security_context() {
90
+ auth_context.reset(DEBUG_LOCATION, "client_security_context");
91
+ if (extension.instance != nullptr && extension.destroy != nullptr) {
92
+ extension.destroy(extension.instance);
93
+ }
94
+ }
95
+
96
+ grpc_client_security_context* grpc_client_security_context_create(
97
+ grpc_core::Arena* arena, grpc_call_credentials* creds) {
98
+ return arena->New<grpc_client_security_context>(
99
+ creds != nullptr ? creds->Ref() : nullptr);
100
+ }
101
+
102
+ void grpc_client_security_context_destroy(void* ctx) {
103
+ grpc_client_security_context* c =
104
+ static_cast<grpc_client_security_context*>(ctx);
105
+ c->~grpc_client_security_context();
106
+ }
107
+
108
+ // --- grpc_server_security_context ---
109
+ grpc_server_security_context::~grpc_server_security_context() {
110
+ auth_context.reset(DEBUG_LOCATION, "server_security_context");
111
+ if (extension.instance != nullptr && extension.destroy != nullptr) {
112
+ extension.destroy(extension.instance);
113
+ }
114
+ }
115
+
116
+ grpc_server_security_context* grpc_server_security_context_create(
117
+ grpc_core::Arena* arena) {
118
+ return arena->New<grpc_server_security_context>();
119
+ }
120
+
121
+ void grpc_server_security_context_destroy(void* ctx) {
122
+ grpc_server_security_context* c =
123
+ static_cast<grpc_server_security_context*>(ctx);
124
+ c->~grpc_server_security_context();
125
+ }
@@ -0,0 +1,114 @@
1
+ //
2
+ // Copyright 2015 gRPC authors.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ //
16
+
17
+ #ifndef GRPC_SRC_CORE_CALL_SECURITY_CONTEXT_H
18
+ #define GRPC_SRC_CORE_CALL_SECURITY_CONTEXT_H
19
+
20
+ #include <grpc/credentials.h>
21
+ #include <grpc/grpc.h>
22
+ #include <grpc/grpc_security.h>
23
+ #include <grpc/support/alloc.h>
24
+ #include <grpc/support/port_platform.h>
25
+ #include <stddef.h>
26
+
27
+ #include <memory>
28
+ #include <utility>
29
+
30
+ #include "absl/strings/string_view.h"
31
+ #include "src/core/credentials/call/call_credentials.h" // IWYU pragma: keep
32
+ #include "src/core/lib/debug/trace.h"
33
+ #include "src/core/lib/resource_quota/arena.h"
34
+ #include "src/core/lib/surface/connection_context.h"
35
+ #include "src/core/transport/auth_context.h"
36
+ #include "src/core/util/debug_location.h"
37
+ #include "src/core/util/orphanable.h"
38
+ #include "src/core/util/ref_counted.h"
39
+ #include "src/core/util/ref_counted_ptr.h"
40
+ #include "src/core/util/useful.h"
41
+
42
+ // --- grpc_security_context_extension ---
43
+
44
+ // Extension to the security context that may be set in a filter and accessed
45
+ // later by a higher level method on a grpc_call object.
46
+
47
+ struct grpc_security_context_extension {
48
+ void* instance = nullptr;
49
+ void (*destroy)(void*) = nullptr;
50
+ };
51
+
52
+ namespace grpc_core {
53
+
54
+ // TODO(roth): Consider renaming to something like CallSecurityContext
55
+ // to reflect the fact that it stores call-level security properties.
56
+ class SecurityContext {
57
+ public:
58
+ virtual ~SecurityContext() = default;
59
+ };
60
+
61
+ } // namespace grpc_core
62
+
63
+ // --- grpc_client_security_context ---
64
+
65
+ // Internal client-side security context.
66
+
67
+ struct grpc_client_security_context final : public grpc_core::SecurityContext {
68
+ explicit grpc_client_security_context(
69
+ grpc_core::RefCountedPtr<grpc_call_credentials> creds)
70
+ : creds(std::move(creds)) {}
71
+ ~grpc_client_security_context() override;
72
+
73
+ grpc_core::RefCountedPtr<grpc_call_credentials> creds;
74
+ grpc_core::RefCountedPtr<grpc_auth_context> auth_context;
75
+ grpc_security_context_extension extension;
76
+ };
77
+
78
+ grpc_client_security_context* grpc_client_security_context_create(
79
+ grpc_core::Arena* arena, grpc_call_credentials* creds);
80
+ void grpc_client_security_context_destroy(void* ctx);
81
+
82
+ // --- grpc_server_security_context ---
83
+
84
+ // Internal server-side security context.
85
+
86
+ struct grpc_server_security_context final : public grpc_core::SecurityContext {
87
+ grpc_server_security_context() = default;
88
+ ~grpc_server_security_context() override;
89
+
90
+ grpc_core::RefCountedPtr<grpc_auth_context> auth_context;
91
+ grpc_security_context_extension extension;
92
+ };
93
+
94
+ grpc_server_security_context* grpc_server_security_context_create(
95
+ grpc_core::Arena* arena);
96
+ void grpc_server_security_context_destroy(void* ctx);
97
+
98
+ namespace grpc_core {
99
+ template <>
100
+ struct ArenaContextType<SecurityContext> {
101
+ static void Destroy(SecurityContext* p) { p->~SecurityContext(); }
102
+ };
103
+
104
+ template <>
105
+ struct ContextSubclass<grpc_client_security_context> {
106
+ using Base = SecurityContext;
107
+ };
108
+ template <>
109
+ struct ContextSubclass<grpc_server_security_context> {
110
+ using Base = SecurityContext;
111
+ };
112
+ } // namespace grpc_core
113
+
114
+ #endif // GRPC_SRC_CORE_CALL_SECURITY_CONTEXT_H
@@ -12,7 +12,7 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #include "src/core/lib/surface/server_call.h"
15
+ #include "src/core/call/server_call.h"
16
16
 
17
17
  #include <grpc/byte_buffer.h>
18
18
  #include <grpc/compression.h>
@@ -39,6 +39,8 @@
39
39
 
40
40
  #include "absl/log/check.h"
41
41
  #include "absl/strings/string_view.h"
42
+ #include "src/core/call/metadata.h"
43
+ #include "src/core/call/metadata_batch.h"
42
44
  #include "src/core/lib/promise/all_ok.h"
43
45
  #include "src/core/lib/promise/map.h"
44
46
  #include "src/core/lib/promise/poll.h"
@@ -47,8 +49,6 @@
47
49
  #include "src/core/lib/resource_quota/arena.h"
48
50
  #include "src/core/lib/slice/slice_buffer.h"
49
51
  #include "src/core/lib/surface/completion_queue.h"
50
- #include "src/core/lib/transport/metadata.h"
51
- #include "src/core/lib/transport/metadata_batch.h"
52
52
  #include "src/core/server/server_interface.h"
53
53
  #include "src/core/util/bitset.h"
54
54
  #include "src/core/util/latent_see.h"
@@ -12,8 +12,8 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef GRPC_SRC_CORE_LIB_SURFACE_SERVER_CALL_H
16
- #define GRPC_SRC_CORE_LIB_SURFACE_SERVER_CALL_H
15
+ #ifndef GRPC_SRC_CORE_CALL_SERVER_CALL_H
16
+ #define GRPC_SRC_CORE_CALL_SERVER_CALL_H
17
17
 
18
18
  #include <grpc/byte_buffer.h>
19
19
  #include <grpc/compression.h>
@@ -43,12 +43,12 @@
43
43
  #include "absl/status/status.h"
44
44
  #include "absl/strings/str_format.h"
45
45
  #include "absl/strings/string_view.h"
46
+ #include "src/core/call/metadata.h"
47
+ #include "src/core/call/metadata_batch.h"
46
48
  #include "src/core/lib/promise/poll.h"
47
49
  #include "src/core/lib/resource_quota/arena.h"
48
50
  #include "src/core/lib/surface/call.h"
49
51
  #include "src/core/lib/surface/call_utils.h"
50
- #include "src/core/lib/transport/metadata.h"
51
- #include "src/core/lib/transport/metadata_batch.h"
52
52
  #include "src/core/server/server_interface.h"
53
53
  #include "src/core/telemetry/stats.h"
54
54
  #include "src/core/telemetry/stats_data.h"
@@ -166,4 +166,4 @@ grpc_call* MakeServerCall(CallHandler call_handler,
166
166
 
167
167
  } // namespace grpc_core
168
168
 
169
- #endif // GRPC_SRC_CORE_LIB_SURFACE_SERVER_CALL_H
169
+ #endif // GRPC_SRC_CORE_CALL_SERVER_CALL_H
@@ -12,14 +12,14 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef GRPC_SRC_CORE_LIB_TRANSPORT_SIMPLE_SLICE_BASED_METADATA_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_SIMPLE_SLICE_BASED_METADATA_H
15
+ #ifndef GRPC_SRC_CORE_CALL_SIMPLE_SLICE_BASED_METADATA_H
16
+ #define GRPC_SRC_CORE_CALL_SIMPLE_SLICE_BASED_METADATA_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
20
20
  #include "absl/strings/string_view.h"
21
+ #include "src/core/call/parsed_metadata.h"
21
22
  #include "src/core/lib/slice/slice.h"
22
- #include "src/core/lib/transport/parsed_metadata.h"
23
23
 
24
24
  namespace grpc_core {
25
25
 
@@ -50,4 +50,4 @@ struct SimpleSliceBasedMetadata {
50
50
 
51
51
  } // namespace grpc_core
52
52
 
53
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_SIMPLE_SLICE_BASED_METADATA_H
53
+ #endif // GRPC_SRC_CORE_CALL_SIMPLE_SLICE_BASED_METADATA_H
@@ -16,7 +16,7 @@
16
16
  //
17
17
  //
18
18
 
19
- #include "src/core/lib/channel/status_util.h"
19
+ #include "src/core/call/status_util.h"
20
20
 
21
21
  #include <grpc/support/port_platform.h>
22
22
  #include <string.h>
@@ -16,8 +16,8 @@
16
16
  //
17
17
  //
18
18
 
19
- #ifndef GRPC_SRC_CORE_LIB_CHANNEL_STATUS_UTIL_H
20
- #define GRPC_SRC_CORE_LIB_CHANNEL_STATUS_UTIL_H
19
+ #ifndef GRPC_SRC_CORE_CALL_STATUS_UTIL_H
20
+ #define GRPC_SRC_CORE_CALL_STATUS_UTIL_H
21
21
 
22
22
  #include <grpc/status.h>
23
23
  #include <grpc/support/port_platform.h>
@@ -77,4 +77,4 @@ absl::Status MaybeRewriteIllegalStatusCode(absl::Status status,
77
77
 
78
78
  } // namespace grpc_core
79
79
 
80
- #endif // GRPC_SRC_CORE_LIB_CHANNEL_STATUS_UTIL_H
80
+ #endif // GRPC_SRC_CORE_CALL_STATUS_UTIL_H
@@ -45,6 +45,10 @@
45
45
  #include "absl/strings/str_cat.h"
46
46
  #include "absl/strings/str_join.h"
47
47
  #include "absl/strings/string_view.h"
48
+ #include "src/core/call/call_spine.h"
49
+ #include "src/core/call/client_call.h"
50
+ #include "src/core/call/metadata_batch.h"
51
+ #include "src/core/call/status_util.h"
48
52
  #include "src/core/client_channel/client_channel_internal.h"
49
53
  #include "src/core/client_channel/client_channel_service_config.h"
50
54
  #include "src/core/client_channel/config_selector.h"
@@ -55,10 +59,10 @@
55
59
  #include "src/core/client_channel/subchannel.h"
56
60
  #include "src/core/client_channel/subchannel_interface_internal.h"
57
61
  #include "src/core/config/core_configuration.h"
62
+ #include "src/core/credentials/transport/transport_credentials.h"
58
63
  #include "src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h"
59
64
  #include "src/core/lib/address_utils/sockaddr_utils.h"
60
65
  #include "src/core/lib/channel/channel_args.h"
61
- #include "src/core/lib/channel/status_util.h"
62
66
  #include "src/core/lib/debug/trace.h"
63
67
  #include "src/core/lib/event_engine/channel_args_endpoint_config.h"
64
68
  #include "src/core/lib/iomgr/resolved_address.h"
@@ -70,16 +74,12 @@
70
74
  #include "src/core/lib/promise/sleep.h"
71
75
  #include "src/core/lib/promise/try_seq.h"
72
76
  #include "src/core/lib/resource_quota/arena.h"
73
- #include "src/core/lib/security/credentials/credentials.h"
74
77
  #include "src/core/lib/slice/slice.h"
75
78
  #include "src/core/lib/slice/slice_internal.h"
76
79
  #include "src/core/lib/surface/call.h"
77
80
  #include "src/core/lib/surface/channel.h"
78
- #include "src/core/lib/surface/client_call.h"
79
81
  #include "src/core/lib/surface/completion_queue.h"
80
- #include "src/core/lib/transport/call_spine.h"
81
82
  #include "src/core/lib/transport/connectivity_state.h"
82
- #include "src/core/lib/transport/metadata_batch.h"
83
83
  #include "src/core/load_balancing/child_policy_handler.h"
84
84
  #include "src/core/load_balancing/lb_policy.h"
85
85
  #include "src/core/load_balancing/lb_policy_registry.h"
@@ -495,7 +495,7 @@ class ClientChannel::ClientChannelControlHelper
495
495
  }
496
496
 
497
497
  GlobalStatsPluginRegistry::StatsPluginGroup& GetStatsPluginGroup() override {
498
- return client_channel_->stats_plugin_group_;
498
+ return *client_channel_->stats_plugin_group_;
499
499
  }
500
500
 
501
501
  void AddTraceEvent(TraceSeverity severity, absl::string_view message) override
@@ -587,6 +587,7 @@ absl::StatusOr<RefCountedPtr<Channel>> ClientChannel::Create(
587
587
  }
588
588
 
589
589
  namespace {
590
+
590
591
  std::string GetDefaultAuthorityFromChannelArgs(const ChannelArgs& channel_args,
591
592
  absl::string_view target) {
592
593
  std::optional<std::string> default_authority =
@@ -598,6 +599,18 @@ std::string GetDefaultAuthorityFromChannelArgs(const ChannelArgs& channel_args,
598
599
  return std::move(*default_authority);
599
600
  }
600
601
  }
602
+
603
+ std::shared_ptr<GlobalStatsPluginRegistry::StatsPluginGroup>
604
+ GetStatsPluginGroupFromChannelArgs(const ChannelArgs& channel_args,
605
+ absl::string_view target,
606
+ absl::string_view default_authority) {
607
+ grpc_event_engine::experimental::ChannelArgsEndpointConfig endpoint_config(
608
+ channel_args);
609
+ experimental::StatsPluginChannelScope scope(target, default_authority,
610
+ endpoint_config);
611
+ return GlobalStatsPluginRegistry::GetStatsPluginsForChannel(scope);
612
+ }
613
+
601
614
  } // namespace
602
615
 
603
616
  ClientChannel::ClientChannel(
@@ -606,15 +619,17 @@ ClientChannel::ClientChannel(
606
619
  ClientChannelFactory* client_channel_factory,
607
620
  CallDestinationFactory* call_destination_factory)
608
621
  : Channel(std::move(target), channel_args),
609
- channel_args_(std::move(channel_args)),
622
+ default_authority_(
623
+ GetDefaultAuthorityFromChannelArgs(channel_args, this->target())),
624
+ stats_plugin_group_(GetStatsPluginGroupFromChannelArgs(
625
+ channel_args, this->target(), default_authority_)),
626
+ channel_args_(channel_args.SetObject(stats_plugin_group_)),
610
627
  event_engine_(channel_args_.GetObjectRef<EventEngine>()),
611
628
  uri_to_resolve_(std::move(uri_to_resolve)),
612
629
  service_config_parser_index_(
613
630
  internal::ClientChannelServiceConfigParser::ParserIndex()),
614
631
  default_service_config_(std::move(default_service_config)),
615
632
  client_channel_factory_(client_channel_factory),
616
- default_authority_(
617
- GetDefaultAuthorityFromChannelArgs(channel_args_, this->target())),
618
633
  channelz_node_(channel_args_.GetObject<channelz::ChannelNode>()),
619
634
  idle_timeout_(GetClientIdleTimeout(channel_args_)),
620
635
  resolver_data_for_calls_(ResolverDataForCalls{}),
@@ -634,13 +649,6 @@ ClientChannel::ClientChannel(
634
649
  } else {
635
650
  keepalive_time_ = -1; // unset
636
651
  }
637
- // Get stats plugins for channel.
638
- grpc_event_engine::experimental::ChannelArgsEndpointConfig endpoint_config(
639
- channel_args_);
640
- experimental::StatsPluginChannelScope scope(
641
- this->target(), default_authority_, endpoint_config);
642
- stats_plugin_group_ =
643
- GlobalStatsPluginRegistry::GetStatsPluginsForChannel(scope);
644
652
  }
645
653
 
646
654
  ClientChannel::~ClientChannel() {
@@ -22,6 +22,7 @@
22
22
  #include "absl/status/status.h"
23
23
  #include "absl/status/statusor.h"
24
24
  #include "absl/strings/string_view.h"
25
+ #include "src/core/call/metadata.h"
25
26
  #include "src/core/client_channel/client_channel_factory.h"
26
27
  #include "src/core/client_channel/config_selector.h"
27
28
  #include "src/core/client_channel/subchannel.h"
@@ -29,7 +30,6 @@
29
30
  #include "src/core/filter/blackboard.h"
30
31
  #include "src/core/lib/promise/observable.h"
31
32
  #include "src/core/lib/surface/channel.h"
32
- #include "src/core/lib/transport/metadata.h"
33
33
  #include "src/core/load_balancing/lb_policy.h"
34
34
  #include "src/core/resolver/resolver.h"
35
35
  #include "src/core/service_config/service_config.h"
@@ -170,6 +170,9 @@ class ClientChannel : public Channel {
170
170
  ConfigSelector& config_selector,
171
171
  ClientMetadata& client_initial_metadata) const;
172
172
 
173
+ const std::string default_authority_;
174
+ const std::shared_ptr<GlobalStatsPluginRegistry::StatsPluginGroup>
175
+ stats_plugin_group_;
173
176
  const ChannelArgs channel_args_;
174
177
  const std::shared_ptr<grpc_event_engine::experimental::EventEngine>
175
178
  event_engine_;
@@ -177,9 +180,7 @@ class ClientChannel : public Channel {
177
180
  const size_t service_config_parser_index_;
178
181
  const RefCountedPtr<ServiceConfig> default_service_config_;
179
182
  ClientChannelFactory* const client_channel_factory_;
180
- const std::string default_authority_;
181
183
  channelz::ChannelNode* const channelz_node_;
182
- GlobalStatsPluginRegistry::StatsPluginGroup stats_plugin_group_;
183
184
 
184
185
  //
185
186
  // Idleness state.