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,12 +12,12 @@
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_CALL_DESTINATION_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_CALL_DESTINATION_H
15
+ #ifndef GRPC_SRC_CORE_CALL_CALL_DESTINATION_H
16
+ #define GRPC_SRC_CORE_CALL_CALL_DESTINATION_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
20
- #include "src/core/lib/transport/call_spine.h"
20
+ #include "src/core/call/call_spine.h"
21
21
  #include "src/core/util/orphanable.h"
22
22
 
23
23
  namespace grpc_core {
@@ -73,4 +73,4 @@ auto MakeCallDestinationFromHandlerFunction(HC handle_call) {
73
73
 
74
74
  } // namespace grpc_core
75
75
 
76
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_CALL_DESTINATION_H
76
+ #endif // GRPC_SRC_CORE_CALL_CALL_DESTINATION_H
@@ -12,13 +12,13 @@
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/call_filters.h"
15
+ #include "src/core/call/call_filters.h"
16
16
 
17
17
  #include <grpc/support/port_platform.h>
18
18
 
19
19
  #include "absl/log/check.h"
20
20
  #include "absl/log/log.h"
21
- #include "src/core/lib/transport/metadata.h"
21
+ #include "src/core/call/metadata.h"
22
22
  #include "src/core/util/crash.h"
23
23
 
24
24
  namespace grpc_core {
@@ -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_CALL_FILTERS_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_CALL_FILTERS_H
15
+ #ifndef GRPC_SRC_CORE_CALL_CALL_FILTERS_H
16
+ #define GRPC_SRC_CORE_CALL_CALL_FILTERS_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
@@ -24,6 +24,9 @@
24
24
  #include <type_traits>
25
25
 
26
26
  #include "absl/log/check.h"
27
+ #include "src/core/call/call_state.h"
28
+ #include "src/core/call/message.h"
29
+ #include "src/core/call/metadata.h"
27
30
  #include "src/core/lib/promise/for_each.h"
28
31
  #include "src/core/lib/promise/if.h"
29
32
  #include "src/core/lib/promise/latch.h"
@@ -33,9 +36,6 @@
33
36
  #include "src/core/lib/promise/status_flag.h"
34
37
  #include "src/core/lib/promise/try_seq.h"
35
38
  #include "src/core/lib/transport/call_final_info.h"
36
- #include "src/core/lib/transport/call_state.h"
37
- #include "src/core/lib/transport/message.h"
38
- #include "src/core/lib/transport/metadata.h"
39
39
  #include "src/core/util/dump_args.h"
40
40
  #include "src/core/util/ref_counted.h"
41
41
  #include "src/core/util/ref_counted_ptr.h"
@@ -186,6 +186,12 @@ class NextMessage {
186
186
  DCHECK(has_value());
187
187
  return *message_;
188
188
  }
189
+ const Message& value() const {
190
+ DCHECK_NE(message_, taken());
191
+ DCHECK(ok());
192
+ DCHECK(has_value());
193
+ return *message_;
194
+ }
189
195
  MessageHandle TakeValue() {
190
196
  DCHECK_NE(message_, taken());
191
197
  DCHECK(ok());
@@ -200,6 +206,19 @@ class NextMessage {
200
206
  call_state_ = nullptr;
201
207
  }
202
208
 
209
+ template <typename Sink>
210
+ friend void AbslStringify(Sink& sink, const NextMessage& msg) {
211
+ if (!msg.ok()) {
212
+ sink.Append("<failure>");
213
+ return;
214
+ }
215
+ if (!msg.has_value()) {
216
+ sink.Append("<end-of-stream>");
217
+ return;
218
+ }
219
+ AbslStringify(sink, msg.value());
220
+ }
221
+
203
222
  private:
204
223
  static Message* end_of_stream() { return nullptr; }
205
224
  static Message* error() { return reinterpret_cast<Message*>(1); }
@@ -1945,4 +1964,4 @@ static_assert(
1945
1964
 
1946
1965
  } // namespace grpc_core
1947
1966
 
1948
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_CALL_FILTERS_H
1967
+ #endif // GRPC_SRC_CORE_CALL_CALL_FILTERS_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_CHANNEL_CALL_FINALIZATION_H
16
- #define GRPC_SRC_CORE_LIB_CHANNEL_CALL_FINALIZATION_H
15
+ #ifndef GRPC_SRC_CORE_CALL_CALL_FINALIZATION_H
16
+ #define GRPC_SRC_CORE_CALL_CALL_FINALIZATION_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
@@ -85,4 +85,4 @@ struct ContextType<CallFinalization> {};
85
85
 
86
86
  } // namespace grpc_core
87
87
 
88
- #endif // GRPC_SRC_CORE_LIB_CHANNEL_CALL_FINALIZATION_H
88
+ #endif // GRPC_SRC_CORE_CALL_CALL_FINALIZATION_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/call_spine.h"
15
+ #include "src/core/call/call_spine.h"
16
16
 
17
17
  #include <grpc/support/port_platform.h>
18
18
 
@@ -12,12 +12,16 @@
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_CALL_SPINE_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_CALL_SPINE_H
15
+ #ifndef GRPC_SRC_CORE_CALL_CALL_SPINE_H
16
+ #define GRPC_SRC_CORE_CALL_CALL_SPINE_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
20
20
  #include "absl/log/check.h"
21
+ #include "src/core/call/call_arena_allocator.h"
22
+ #include "src/core/call/call_filters.h"
23
+ #include "src/core/call/message.h"
24
+ #include "src/core/call/metadata.h"
21
25
  #include "src/core/lib/promise/detail/status.h"
22
26
  #include "src/core/lib/promise/if.h"
23
27
  #include "src/core/lib/promise/latch.h"
@@ -27,10 +31,6 @@
27
31
  #include "src/core/lib/promise/promise.h"
28
32
  #include "src/core/lib/promise/status_flag.h"
29
33
  #include "src/core/lib/promise/try_seq.h"
30
- #include "src/core/lib/transport/call_arena_allocator.h"
31
- #include "src/core/lib/transport/call_filters.h"
32
- #include "src/core/lib/transport/message.h"
33
- #include "src/core/lib/transport/metadata.h"
34
34
  #include "src/core/util/dual_ref_counted.h"
35
35
 
36
36
  namespace grpc_core {
@@ -106,7 +106,8 @@ class CallSpine final : public Party {
106
106
 
107
107
  void PushServerTrailingMetadata(ServerMetadataHandle md) {
108
108
  GRPC_TRACE_LOG(call_state, INFO)
109
- << "[call_state] PushServerTrailingMetadata: " << md->DebugString();
109
+ << "[call_state] PushServerTrailingMetadata: " << this << " "
110
+ << md->DebugString();
110
111
  call_filters().PushServerTrailingMetadata(std::move(md));
111
112
  }
112
113
 
@@ -134,10 +135,10 @@ class CallSpine final : public Party {
134
135
  DCHECK(GetContext<Activity>() == this);
135
136
  using P = promise_detail::PromiseLike<Promise>;
136
137
  using ResultType = typename P::Result;
137
- return Map(std::move(promise), [this](ResultType r) {
138
- CancelIfFailed(r);
139
- return r;
140
- });
138
+ return Map(std::move(promise),
139
+ [self = RefAsSubclass<CallSpine>()](ResultType r) {
140
+ self->CancelIfFailed(r);
141
+ });
141
142
  }
142
143
 
143
144
  template <typename StatusType>
@@ -220,18 +221,16 @@ class CallSpine final : public Party {
220
221
  void SpawnPushServerToClientMessage(MessageHandle msg) {
221
222
  server_to_client_serializer()->Spawn(
222
223
  [msg = std::move(msg), self = RefAsSubclass<CallSpine>()]() mutable {
223
- return Map(self->CancelIfFails(
224
- self->PushServerToClientMessage(std::move(msg))),
225
- [](auto) { return Empty{}; });
224
+ return self->CancelIfFails(
225
+ self->PushServerToClientMessage(std::move(msg)));
226
226
  });
227
227
  }
228
228
 
229
229
  void SpawnPushClientToServerMessage(MessageHandle msg) {
230
230
  client_to_server_serializer()->Spawn(
231
231
  [msg = std::move(msg), self = RefAsSubclass<CallSpine>()]() mutable {
232
- return Map(self->CancelIfFails(
233
- self->PushClientToServerMessage(std::move(msg))),
234
- [](auto) { return Empty{}; });
232
+ return self->CancelIfFails(
233
+ self->PushClientToServerMessage(std::move(msg)));
235
234
  });
236
235
  }
237
236
 
@@ -322,36 +321,56 @@ class CallInitiator {
322
321
 
323
322
  CallInitiator() = default;
324
323
  explicit CallInitiator(RefCountedPtr<CallSpine> spine)
325
- : spine_(std::move(spine)) {}
324
+ : spine_(std::move(spine)) {
325
+ DCHECK_NE(spine_.get(), nullptr);
326
+ }
326
327
 
328
+ // Wrap a promise so that if it returns failure it automatically cancels
329
+ // the rest of the call.
330
+ // The resulting (returned) promise will resolve to Empty.
327
331
  template <typename Promise>
328
332
  auto CancelIfFails(Promise promise) {
333
+ DCHECK_NE(spine_.get(), nullptr);
329
334
  return spine_->CancelIfFails(std::move(promise));
330
335
  }
331
336
 
332
337
  auto PullServerInitialMetadata() {
338
+ DCHECK_NE(spine_.get(), nullptr);
333
339
  return spine_->PullServerInitialMetadata();
334
340
  }
335
341
 
336
342
  auto PushMessage(MessageHandle message) {
343
+ DCHECK_NE(spine_.get(), nullptr);
337
344
  return spine_->PushClientToServerMessage(std::move(message));
338
345
  }
339
346
 
340
347
  void SpawnPushMessage(MessageHandle message) {
348
+ DCHECK_NE(spine_.get(), nullptr);
341
349
  spine_->SpawnPushClientToServerMessage(std::move(message));
342
350
  }
343
351
 
344
- void FinishSends() { spine_->FinishSends(); }
352
+ void FinishSends() {
353
+ DCHECK_NE(spine_.get(), nullptr);
354
+ spine_->FinishSends();
355
+ }
345
356
 
346
- void SpawnFinishSends() { spine_->SpawnFinishSends(); }
357
+ void SpawnFinishSends() {
358
+ DCHECK_NE(spine_.get(), nullptr);
359
+ spine_->SpawnFinishSends();
360
+ }
347
361
 
348
- auto PullMessage() { return spine_->PullServerToClientMessage(); }
362
+ auto PullMessage() {
363
+ DCHECK_NE(spine_.get(), nullptr);
364
+ return spine_->PullServerToClientMessage();
365
+ }
349
366
 
350
367
  auto PullServerTrailingMetadata() {
368
+ DCHECK_NE(spine_.get(), nullptr);
351
369
  return spine_->PullServerTrailingMetadata();
352
370
  }
353
371
 
354
372
  void Cancel(absl::Status error) {
373
+ DCHECK_NE(spine_.get(), nullptr);
355
374
  CHECK(!error.ok());
356
375
  auto status = ServerMetadataFromStatus(error);
357
376
  status->Set(GrpcCallWasCancelled(), true);
@@ -359,52 +378,72 @@ class CallInitiator {
359
378
  }
360
379
 
361
380
  void SpawnCancel(absl::Status error) {
381
+ DCHECK_NE(spine_.get(), nullptr);
362
382
  CHECK(!error.ok());
363
383
  auto status = ServerMetadataFromStatus(error);
364
384
  status->Set(GrpcCallWasCancelled(), true);
365
385
  spine_->SpawnPushServerTrailingMetadata(std::move(status));
366
386
  }
367
387
 
368
- void Cancel() { spine_->Cancel(); }
388
+ void Cancel() {
389
+ DCHECK_NE(spine_.get(), nullptr);
390
+ spine_->Cancel();
391
+ }
369
392
 
370
- void SpawnCancel() { spine_->SpawnCancel(); }
393
+ void SpawnCancel() {
394
+ DCHECK_NE(spine_.get(), nullptr);
395
+ spine_->SpawnCancel();
396
+ }
371
397
 
372
398
  GRPC_MUST_USE_RESULT bool OnDone(absl::AnyInvocable<void(bool)> fn) {
399
+ DCHECK_NE(spine_.get(), nullptr);
373
400
  return spine_->OnDone(std::move(fn));
374
401
  }
375
402
 
376
403
  template <typename Promise>
377
404
  auto UntilCallCompletes(Promise promise) {
405
+ DCHECK_NE(spine_.get(), nullptr);
378
406
  return spine_->UntilCallCompletes(std::move(promise));
379
407
  }
380
408
 
381
409
  template <typename PromiseFactory>
382
410
  void SpawnGuarded(absl::string_view name, PromiseFactory promise_factory) {
411
+ DCHECK_NE(spine_.get(), nullptr);
383
412
  spine_->SpawnGuarded(name, std::move(promise_factory));
384
413
  }
385
414
 
386
415
  template <typename PromiseFactory>
387
416
  void SpawnGuardedUntilCallCompletes(absl::string_view name,
388
417
  PromiseFactory promise_factory) {
418
+ DCHECK_NE(spine_.get(), nullptr);
389
419
  spine_->SpawnGuardedUntilCallCompletes(name, std::move(promise_factory));
390
420
  }
391
421
 
392
422
  template <typename PromiseFactory>
393
423
  void SpawnInfallible(absl::string_view name, PromiseFactory promise_factory) {
424
+ DCHECK_NE(spine_.get(), nullptr);
394
425
  spine_->SpawnInfallible(name, std::move(promise_factory));
395
426
  }
396
427
 
397
428
  template <typename PromiseFactory>
398
429
  auto SpawnWaitable(absl::string_view name, PromiseFactory promise_factory) {
430
+ DCHECK_NE(spine_.get(), nullptr);
399
431
  return spine_->SpawnWaitable(name, std::move(promise_factory));
400
432
  }
401
433
 
402
434
  bool WasCancelledPushed() const {
435
+ DCHECK_NE(spine_.get(), nullptr);
403
436
  return spine_->call_filters().WasCancelledPushed();
404
437
  }
405
438
 
406
- Arena* arena() { return spine_->arena(); }
407
- Party* party() { return spine_.get(); }
439
+ Arena* arena() {
440
+ DCHECK_NE(spine_.get(), nullptr);
441
+ return spine_->arena();
442
+ }
443
+ Party* party() {
444
+ DCHECK_NE(spine_.get(), nullptr);
445
+ return spine_.get();
446
+ }
408
447
 
409
448
  private:
410
449
  friend class CallHandler;
@@ -442,6 +481,9 @@ class CallHandler {
442
481
  return spine_->OnDone(std::move(fn));
443
482
  }
444
483
 
484
+ // Wrap a promise so that if it returns failure it automatically cancels
485
+ // the rest of the call.
486
+ // The resulting (returned) promise will resolve to Empty.
445
487
  template <typename Promise>
446
488
  auto CancelIfFails(Promise promise) {
447
489
  return spine_->CancelIfFails(std::move(promise));
@@ -599,4 +641,4 @@ void ForwardCall(
599
641
 
600
642
  } // namespace grpc_core
601
643
 
602
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_CALL_SPINE_H
644
+ #endif // GRPC_SRC_CORE_CALL_CALL_SPINE_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/call_state.h"
15
+ #include "src/core/call/call_state.h"
16
16
 
17
17
  namespace grpc_core {
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_CALL_STATE_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_CALL_STATE_H
15
+ #ifndef GRPC_SRC_CORE_CALL_CALL_STATE_H
16
+ #define GRPC_SRC_CORE_CALL_CALL_STATE_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
@@ -1151,4 +1151,4 @@ CallState::PollServerTrailingMetadataWasPushed() {
1151
1151
 
1152
1152
  } // namespace grpc_core
1153
1153
 
1154
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_CALL_STATE_H
1154
+ #endif // GRPC_SRC_CORE_CALL_CALL_STATE_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/client_call.h"
15
+ #include "src/core/call/client_call.h"
16
16
 
17
17
  #include <grpc/byte_buffer.h>
18
18
  #include <grpc/compression.h>
@@ -42,6 +42,7 @@
42
42
  #include "absl/log/check.h"
43
43
  #include "absl/status/status.h"
44
44
  #include "absl/strings/string_view.h"
45
+ #include "src/core/call/metadata.h"
45
46
  #include "src/core/lib/event_engine/event_engine_context.h"
46
47
  #include "src/core/lib/promise/all_ok.h"
47
48
  #include "src/core/lib/promise/status_flag.h"
@@ -49,7 +50,6 @@
49
50
  #include "src/core/lib/resource_quota/arena.h"
50
51
  #include "src/core/lib/slice/slice_buffer.h"
51
52
  #include "src/core/lib/surface/completion_queue.h"
52
- #include "src/core/lib/transport/metadata.h"
53
53
  #include "src/core/telemetry/stats.h"
54
54
  #include "src/core/telemetry/stats_data.h"
55
55
  #include "src/core/util/bitset.h"
@@ -404,12 +404,14 @@ void ClientCall::OnReceivedStatus(ServerMetadataHandle server_trailing_metadata,
404
404
  const auto status = server_trailing_metadata->get(GrpcStatusMetadata())
405
405
  .value_or(GRPC_STATUS_UNKNOWN);
406
406
  *out_status = status;
407
- Slice message_slice;
408
- if (Slice* message =
409
- server_trailing_metadata->get_pointer(GrpcMessageMetadata())) {
410
- message_slice = message->Ref();
407
+ if (!IsErrorFlattenEnabled() || status != GRPC_STATUS_OK) {
408
+ Slice message_slice;
409
+ if (Slice* message =
410
+ server_trailing_metadata->get_pointer(GrpcMessageMetadata())) {
411
+ message_slice = message->Ref();
412
+ }
413
+ *out_status_details = message_slice.TakeCSlice();
411
414
  }
412
- *out_status_details = message_slice.TakeCSlice();
413
415
  if (out_error_string != nullptr) {
414
416
  if (status != GRPC_STATUS_OK) {
415
417
  *out_error_string =
@@ -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_CLIENT_CALL_H
16
- #define GRPC_SRC_CORE_LIB_SURFACE_CLIENT_CALL_H
15
+ #ifndef GRPC_SRC_CORE_CALL_CLIENT_CALL_H
16
+ #define GRPC_SRC_CORE_CALL_CLIENT_CALL_H
17
17
 
18
18
  #include <grpc/byte_buffer.h>
19
19
  #include <grpc/compression.h>
@@ -40,11 +40,11 @@
40
40
  #include "absl/status/status.h"
41
41
  #include "absl/strings/str_format.h"
42
42
  #include "absl/strings/string_view.h"
43
+ #include "src/core/call/metadata.h"
43
44
  #include "src/core/lib/promise/status_flag.h"
44
45
  #include "src/core/lib/resource_quota/arena.h"
45
46
  #include "src/core/lib/surface/call.h"
46
47
  #include "src/core/lib/surface/call_utils.h"
47
- #include "src/core/lib/transport/metadata.h"
48
48
  #include "src/core/util/crash.h"
49
49
  #include "src/core/util/ref_counted.h"
50
50
  #include "src/core/util/ref_counted_ptr.h"
@@ -189,4 +189,4 @@ grpc_call* MakeClientCall(grpc_call* parent_call, uint32_t propagation_mask,
189
189
 
190
190
  } // namespace grpc_core
191
191
 
192
- #endif // GRPC_SRC_CORE_LIB_SURFACE_CLIENT_CALL_H
192
+ #endif // GRPC_SRC_CORE_CALL_CLIENT_CALL_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_TRANSPORT_CUSTOM_METADATA_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_CUSTOM_METADATA_H
15
+ #ifndef GRPC_SRC_CORE_CALL_CUSTOM_METADATA_H
16
+ #define GRPC_SRC_CORE_CALL_CUSTOM_METADATA_H
17
17
 
18
18
  // This file defines two macros: GRPC_CUSTOM_CLIENT_METADATA and
19
19
  // GRPC_CUSTOM_SERVER_METADATA.
@@ -27,4 +27,4 @@
27
27
  #define GRPC_CUSTOM_CLIENT_METADATA
28
28
  #define GRPC_CUSTOM_SERVER_METADATA
29
29
 
30
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_CUSTOM_METADATA_H
30
+ #endif // GRPC_SRC_CORE_CALL_CUSTOM_METADATA_H
@@ -12,17 +12,17 @@
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/interception_chain.h"
15
+ #include "src/core/call/interception_chain.h"
16
16
 
17
17
  #include <grpc/support/port_platform.h>
18
18
 
19
19
  #include <cstddef>
20
20
 
21
+ #include "src/core/call/call_destination.h"
22
+ #include "src/core/call/call_filters.h"
23
+ #include "src/core/call/call_spine.h"
24
+ #include "src/core/call/metadata.h"
21
25
  #include "src/core/lib/debug/trace.h"
22
- #include "src/core/lib/transport/call_destination.h"
23
- #include "src/core/lib/transport/call_filters.h"
24
- #include "src/core/lib/transport/call_spine.h"
25
- #include "src/core/lib/transport/metadata.h"
26
26
  #include "src/core/util/match.h"
27
27
 
28
28
  namespace grpc_core {
@@ -12,18 +12,18 @@
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_INTERCEPTION_CHAIN_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_INTERCEPTION_CHAIN_H
15
+ #ifndef GRPC_SRC_CORE_CALL_INTERCEPTION_CHAIN_H
16
+ #define GRPC_SRC_CORE_CALL_INTERCEPTION_CHAIN_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
20
20
  #include <memory>
21
21
  #include <vector>
22
22
 
23
- #include "src/core/lib/transport/call_destination.h"
24
- #include "src/core/lib/transport/call_filters.h"
25
- #include "src/core/lib/transport/call_spine.h"
26
- #include "src/core/lib/transport/metadata.h"
23
+ #include "src/core/call/call_destination.h"
24
+ #include "src/core/call/call_filters.h"
25
+ #include "src/core/call/call_spine.h"
26
+ #include "src/core/call/metadata.h"
27
27
  #include "src/core/util/ref_counted.h"
28
28
 
29
29
  namespace grpc_core {
@@ -279,4 +279,4 @@ class InterceptionChainBuilder final {
279
279
 
280
280
  } // namespace grpc_core
281
281
 
282
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_INTERCEPTION_CHAIN_H
282
+ #endif // GRPC_SRC_CORE_CALL_INTERCEPTION_CHAIN_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/message.h"
15
+ #include "src/core/call/message.h"
16
16
 
17
17
  #include <grpc/impl/grpc_types.h>
18
18
  #include <grpc/support/port_platform.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_TRANSPORT_MESSAGE_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_MESSAGE_H
15
+ #ifndef GRPC_SRC_CORE_CALL_MESSAGE_H
16
+ #define GRPC_SRC_CORE_CALL_MESSAGE_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
@@ -47,6 +47,10 @@ class Message {
47
47
  SliceBuffer* payload() { return &payload_; }
48
48
  const SliceBuffer* payload() const { return &payload_; }
49
49
 
50
+ Arena::PoolPtr<Message> Clone() const {
51
+ return Arena::MakePooled<Message>(payload_.Copy(), flags_);
52
+ }
53
+
50
54
  std::string DebugString() const;
51
55
 
52
56
  template <typename Sink>
@@ -63,4 +67,4 @@ using MessageHandle = Arena::PoolPtr<Message>;
63
67
 
64
68
  } // namespace grpc_core
65
69
 
66
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_MESSAGE_H
70
+ #endif // GRPC_SRC_CORE_CALL_MESSAGE_H
@@ -12,12 +12,12 @@
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.h"
15
+ #include "src/core/call/metadata.h"
16
16
 
17
17
  #include <grpc/support/port_platform.h>
18
18
 
19
+ #include "src/core/call/metadata_batch.h"
19
20
  #include "src/core/lib/transport/error_utils.h"
20
- #include "src/core/lib/transport/metadata_batch.h"
21
21
 
22
22
  namespace grpc_core {
23
23
 
@@ -12,13 +12,13 @@
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_H
16
- #define GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_H
15
+ #ifndef GRPC_SRC_CORE_CALL_METADATA_H
16
+ #define GRPC_SRC_CORE_CALL_METADATA_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/lib/promise/try_seq.h"
21
- #include "src/core/lib/transport/metadata_batch.h"
22
22
 
23
23
  namespace grpc_core {
24
24
 
@@ -198,4 +198,4 @@ struct StatusCastImpl<
198
198
 
199
199
  } // namespace grpc_core
200
200
 
201
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_H
201
+ #endif // GRPC_SRC_CORE_CALL_METADATA_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/metadata_batch.h"
15
+ #include "src/core/call/metadata_batch.h"
16
16
 
17
17
  #include <grpc/support/port_platform.h>
18
18
  #include <string.h>
@@ -16,8 +16,8 @@
16
16
  //
17
17
  //
18
18
 
19
- #ifndef GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_BATCH_H
20
- #define GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_BATCH_H
19
+ #ifndef GRPC_SRC_CORE_CALL_METADATA_BATCH_H
20
+ #define GRPC_SRC_CORE_CALL_METADATA_BATCH_H
21
21
 
22
22
  #include <grpc/impl/compression_types.h>
23
23
  #include <grpc/status.h>
@@ -36,14 +36,14 @@
36
36
  #include "absl/meta/type_traits.h"
37
37
  #include "absl/strings/numbers.h"
38
38
  #include "absl/strings/string_view.h"
39
+ #include "src/core/call/custom_metadata.h"
40
+ #include "src/core/call/metadata_compression_traits.h"
41
+ #include "src/core/call/parsed_metadata.h"
42
+ #include "src/core/call/simple_slice_based_metadata.h"
39
43
  #include "src/core/lib/compression/compression_internal.h"
40
44
  #include "src/core/lib/experiments/experiments.h"
41
45
  #include "src/core/lib/promise/poll.h"
42
46
  #include "src/core/lib/slice/slice.h"
43
- #include "src/core/lib/transport/custom_metadata.h"
44
- #include "src/core/lib/transport/metadata_compression_traits.h"
45
- #include "src/core/lib/transport/parsed_metadata.h"
46
- #include "src/core/lib/transport/simple_slice_based_metadata.h"
47
47
  #include "src/core/util/chunked_vector.h"
48
48
  #include "src/core/util/if_list.h"
49
49
  #include "src/core/util/packed_table.h"
@@ -1665,4 +1665,4 @@ struct grpc_metadata_batch : public grpc_metadata_batch_base {
1665
1665
  using grpc_metadata_batch_base::grpc_metadata_batch_base;
1666
1666
  };
1667
1667
 
1668
- #endif // GRPC_SRC_CORE_LIB_TRANSPORT_METADATA_BATCH_H
1668
+ #endif // GRPC_SRC_CORE_CALL_METADATA_BATCH_H