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
@@ -22,8 +22,8 @@
22
22
  #include <grpc/grpc.h>
23
23
  #include <grpc/support/port_platform.h>
24
24
 
25
+ #include "src/core/credentials/transport/alts/grpc_alts_credentials_options.h"
25
26
  #include "src/core/lib/iomgr/pollset_set.h"
26
- #include "src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h"
27
27
  #include "src/core/tsi/alts/handshaker/alts_handshaker_client.h"
28
28
  #include "src/core/tsi/transport_security.h"
29
29
  #include "src/core/tsi/transport_security_interface.h"
@@ -60,7 +60,7 @@
60
60
  #include "absl/strings/match.h"
61
61
  #include "absl/strings/str_cat.h"
62
62
  #include "absl/strings/string_view.h"
63
- #include "src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h"
63
+ #include "src/core/credentials/transport/tls/grpc_tls_crl_provider.h"
64
64
  #include "src/core/tsi/ssl/key_logging/ssl_key_logging.h"
65
65
  #include "src/core/tsi/ssl/session_cache/ssl_session_cache.h"
66
66
  #include "src/core/tsi/ssl_transport_security_utils.h"
@@ -0,0 +1,48 @@
1
+ //
2
+ //
3
+ // Copyright 2025 gRPC authors.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ //
17
+ //
18
+
19
+ #ifndef GRPC_SRC_CORE_UTIL_CHECK_CLASS_SIZE_H
20
+ #define GRPC_SRC_CORE_UTIL_CHECK_CLASS_SIZE_H
21
+
22
+ #include <grpc/support/port_platform.h>
23
+
24
+ #if defined(__has_feature)
25
+ #if __has_feature(memory_sanitizer)
26
+ #define GRPC_MSAN_ENABLED 1
27
+ #else
28
+ #define GRPC_MSAN_ENABLED 0
29
+ #endif
30
+ #else
31
+ #ifdef MEMORY_SANITIZER
32
+ #define GRPC_MSAN_ENABLED 1
33
+ #else
34
+ #define GRPC_MSAN_ENABLED 0
35
+ #endif
36
+ #endif
37
+
38
+ #if defined(GPR_LINUX) && !defined(NDEBUG) && !defined(GRPC_ASAN_ENABLED) && \
39
+ !defined(GRPC_MSAN_ENABLED)
40
+ // Since class size varies based on platform and compiler, we limit our
41
+ // guardrail to only one platform.
42
+ #define GRPC_CHECK_CLASS_SIZE(class_name, class_size) \
43
+ static_assert(sizeof(class_name) <= (class_size), "Class size too large");
44
+ #else
45
+ #define GRPC_CHECK_CLASS_SIZE(class_name, class_size)
46
+ #endif
47
+
48
+ #endif // GRPC_SRC_CORE_UTIL_CHECK_CLASS_SIZE_H
@@ -33,8 +33,8 @@
33
33
  #include "absl/status/statusor.h"
34
34
  #include "absl/strings/str_format.h"
35
35
  #include "absl/strings/string_view.h"
36
+ #include "src/core/credentials/transport/transport_credentials.h"
36
37
  #include "src/core/lib/debug/trace.h"
37
- #include "src/core/lib/security/credentials/credentials.h"
38
38
  #include "src/core/util/ref_counted_ptr.h"
39
39
  #include "src/core/util/status_helper.h"
40
40
  #include "src/core/util/time.h"
@@ -32,6 +32,8 @@
32
32
  #include "absl/status/status.h"
33
33
  #include "absl/strings/str_format.h"
34
34
  #include "src/core/config/core_configuration.h"
35
+ #include "src/core/credentials/transport/security_connector.h"
36
+ #include "src/core/credentials/transport/transport_credentials.h"
35
37
  #include "src/core/handshaker/handshaker.h"
36
38
  #include "src/core/handshaker/handshaker_registry.h"
37
39
  #include "src/core/handshaker/tcp_connect/tcp_connect_handshaker.h"
@@ -44,8 +46,6 @@
44
46
  #include "src/core/lib/iomgr/pollset_set.h"
45
47
  #include "src/core/lib/iomgr/resolve_address.h"
46
48
  #include "src/core/lib/resource_quota/api.h"
47
- #include "src/core/lib/security/credentials/credentials.h"
48
- #include "src/core/lib/security/security_connector/security_connector.h"
49
49
  #include "src/core/lib/slice/slice.h"
50
50
  #include "src/core/lib/transport/error_utils.h"
51
51
  #include "src/core/util/http_client/format_request.h"
@@ -282,7 +282,7 @@ void HttpRequest::AppendError(grpc_error_handle error) {
282
282
  overall_error_ = GRPC_ERROR_CREATE("Failed HTTP/1 client request");
283
283
  }
284
284
  auto addr_text = ResolvedAddressToURI(addresses_[next_address_ - 1]);
285
- if (addr_text.ok()) error = AddMessagePrefix(*addr_text, std::move(error));
285
+ if (addr_text.ok()) error = AddMessagePrefix(*addr_text, error);
286
286
  overall_error_ = grpc_error_add_child(overall_error_, std::move(error));
287
287
  }
288
288
 
@@ -32,6 +32,9 @@
32
32
  #include "absl/status/status.h"
33
33
  #include "absl/strings/str_cat.h"
34
34
  #include "absl/strings/string_view.h"
35
+ #include "src/core/credentials/transport/security_connector.h"
36
+ #include "src/core/credentials/transport/tls/ssl_utils.h"
37
+ #include "src/core/credentials/transport/transport_credentials.h"
35
38
  #include "src/core/handshaker/handshaker.h"
36
39
  #include "src/core/handshaker/security/security_handshaker.h"
37
40
  #include "src/core/lib/channel/channel_args.h"
@@ -42,9 +45,6 @@
42
45
  #include "src/core/lib/iomgr/iomgr_fwd.h"
43
46
  #include "src/core/lib/promise/arena_promise.h"
44
47
  #include "src/core/lib/promise/promise.h"
45
- #include "src/core/lib/security/credentials/credentials.h"
46
- #include "src/core/lib/security/security_connector/security_connector.h"
47
- #include "src/core/lib/security/security_connector/ssl_utils.h"
48
48
  #include "src/core/tsi/ssl_transport_security.h"
49
49
  #include "src/core/tsi/transport_security_interface.h"
50
50
  #include "src/core/util/debug_location.h"
@@ -24,6 +24,7 @@
24
24
  #include "absl/cleanup/cleanup.h"
25
25
  #include "absl/status/status.h"
26
26
  #include "absl/strings/str_cat.h"
27
+ #include "src/core/util/strerror.h"
27
28
 
28
29
  namespace grpc_core {
29
30
 
@@ -35,10 +36,9 @@ namespace grpc_core {
35
36
  absl::StatusOr<Slice> LoadFile(const std::string& filename,
36
37
  bool add_null_terminator) {
37
38
  unsigned char* contents = nullptr;
38
- size_t contents_size = 0;
39
+ long contents_size = 0;
39
40
  FILE* file;
40
41
  size_t bytes_read = 0;
41
- absl::Status error = absl::OkStatus();
42
42
  auto sock_cleanup = absl::MakeCleanup([&file]() -> void {
43
43
  if (file != nullptr) {
44
44
  fclose(file);
@@ -47,29 +47,41 @@ absl::StatusOr<Slice> LoadFile(const std::string& filename,
47
47
 
48
48
  file = fopen(filename.c_str(), "rb");
49
49
  if (file == nullptr) {
50
- error = absl::InternalError(
50
+ return absl::InternalError(
51
51
  absl::StrCat("Failed to load file: ", filename,
52
- " due to error(fdopen): ", strerror(errno)));
53
- return error;
52
+ " due to error(fdopen): ", StrError(errno)));
53
+ }
54
+ if (fseek(file, 0, SEEK_END) < 0) {
55
+ return absl::InternalError(
56
+ absl::StrCat("Failed to load file: ", filename,
57
+ " due to error(fseek): ", StrError(errno)));
58
+ }
59
+ if ((contents_size = static_cast<size_t>(ftell(file))) < 0) {
60
+ return absl::InternalError(
61
+ absl::StrCat("Failed to load file: ", filename,
62
+ " due to error(ftell): ", StrError(errno)));
63
+ }
64
+ if (fseek(file, 0, SEEK_SET) < 0) {
65
+ return absl::InternalError(
66
+ absl::StrCat("Failed to load file: ", filename,
67
+ " due to error(fseek): ", StrError(errno)));
54
68
  }
55
- fseek(file, 0, SEEK_END);
56
- // Converting to size_t on the assumption that it will not fail.
57
- contents_size = static_cast<size_t>(ftell(file));
58
- fseek(file, 0, SEEK_SET);
59
69
  contents = static_cast<unsigned char*>(
60
70
  gpr_malloc(contents_size + (add_null_terminator ? 1 : 0)));
61
71
  bytes_read = fread(contents, 1, contents_size, file);
62
- if (bytes_read < contents_size) {
72
+ static_assert(LONG_MAX <= SIZE_MAX,
73
+ "size_t max should be more than long max");
74
+ if (bytes_read < static_cast<size_t>(contents_size)) {
63
75
  gpr_free(contents);
64
- error = absl::InternalError(
76
+ return absl::InternalError(
65
77
  absl::StrCat("Failed to load file: ", filename,
66
- " due to error(fread): ", strerror(errno)));
67
- return error;
78
+ " due to error(fread): ", StrError(errno)));
68
79
  }
69
80
  if (add_null_terminator) {
70
81
  contents[contents_size++] = 0;
71
82
  }
72
- return Slice(grpc_slice_new(contents, contents_size, gpr_free));
83
+ return Slice(
84
+ grpc_slice_new(contents, static_cast<size_t>(contents_size), gpr_free));
73
85
  }
74
86
 
75
87
  } // namespace grpc_core
@@ -18,7 +18,7 @@
18
18
 
19
19
  #include "src/core/util/status_helper.h"
20
20
 
21
- #include <grpc/support/port_platform.h>
21
+ #include <grpc/status.h>
22
22
  #include <string.h>
23
23
 
24
24
  #include <utility>
@@ -33,8 +33,11 @@
33
33
  #include "absl/time/clock.h"
34
34
  #include "google/protobuf/any.upb.h"
35
35
  #include "google/rpc/status.upb.h"
36
+ #include "src/core/lib/experiments/experiments.h"
36
37
  #include "src/core/lib/slice/percent_encoding.h"
37
38
  #include "src/core/lib/slice/slice.h"
39
+ #include "src/core/lib/transport/status_conversion.h"
40
+ #include "src/core/util/time.h"
38
41
  #include "upb/base/string_view.h"
39
42
  #include "upb/mem/arena.hpp"
40
43
 
@@ -57,18 +60,12 @@ const absl::string_view kChildrenPropertyUrl = TYPE_URL(TYPE_CHILDREN_TAG);
57
60
 
58
61
  const char* GetStatusIntPropertyUrl(StatusIntProperty key) {
59
62
  switch (key) {
60
- case StatusIntProperty::kFileLine:
61
- return TYPE_URL(TYPE_INT_TAG "file_line");
62
63
  case StatusIntProperty::kStreamId:
63
64
  return TYPE_URL(TYPE_INT_TAG "stream_id");
64
65
  case StatusIntProperty::kRpcStatus:
65
66
  return TYPE_URL(TYPE_INT_TAG "grpc_status");
66
67
  case StatusIntProperty::kHttp2Error:
67
68
  return TYPE_URL(TYPE_INT_TAG "http2_error");
68
- case StatusIntProperty::kFd:
69
- return TYPE_URL(TYPE_INT_TAG "fd");
70
- case StatusIntProperty::kOccurredDuringWrite:
71
- return TYPE_URL(TYPE_INT_TAG "occurred_during_write");
72
69
  case StatusIntProperty::ChannelConnectivityState:
73
70
  return TYPE_URL(TYPE_INT_TAG "channel_connectivity_state");
74
71
  case StatusIntProperty::kLbPolicyDrop:
@@ -79,24 +76,12 @@ const char* GetStatusIntPropertyUrl(StatusIntProperty key) {
79
76
 
80
77
  const char* GetStatusStrPropertyUrl(StatusStrProperty key) {
81
78
  switch (key) {
82
- case StatusStrProperty::kDescription:
83
- return TYPE_URL(TYPE_STR_TAG "description");
84
- case StatusStrProperty::kFile:
85
- return TYPE_URL(TYPE_STR_TAG "file");
86
79
  case StatusStrProperty::kGrpcMessage:
87
80
  return TYPE_URL(TYPE_STR_TAG "grpc_message");
88
81
  }
89
82
  GPR_UNREACHABLE_CODE(return "unknown");
90
83
  }
91
84
 
92
- const char* GetStatusTimePropertyUrl(StatusTimeProperty key) {
93
- switch (key) {
94
- case StatusTimeProperty::kCreated:
95
- return TYPE_URL(TYPE_TIME_TAG "created_time");
96
- }
97
- GPR_UNREACHABLE_CODE(return "unknown");
98
- }
99
-
100
85
  void EncodeUInt32ToBytes(uint32_t v, char* buf) {
101
86
  buf[0] = v & 0xFF;
102
87
  buf[1] = (v >> 8) & 0xFF;
@@ -133,16 +118,9 @@ std::vector<absl::Status> ParseChildren(absl::Cord children) {
133
118
  } // namespace
134
119
 
135
120
  absl::Status StatusCreate(absl::StatusCode code, absl::string_view msg,
136
- const DebugLocation& location,
121
+ const DebugLocation& /*location*/,
137
122
  std::vector<absl::Status> children) {
138
123
  absl::Status s(code, msg);
139
- if (location.file() != nullptr) {
140
- StatusSetStr(&s, StatusStrProperty::kFile, location.file());
141
- }
142
- if (location.line() != -1) {
143
- StatusSetInt(&s, StatusIntProperty::kFileLine, location.line());
144
- }
145
- StatusSetTime(&s, StatusTimeProperty::kCreated, absl::Now());
146
124
  for (const absl::Status& child : children) {
147
125
  if (!child.ok()) {
148
126
  StatusAddChild(&s, child);
@@ -151,13 +129,35 @@ absl::Status StatusCreate(absl::StatusCode code, absl::string_view msg,
151
129
  return s;
152
130
  }
153
131
 
132
+ namespace {
133
+
134
+ absl::Status ReplaceStatusCode(const absl::Status& status,
135
+ absl::StatusCode code) {
136
+ absl::Status new_status(code, status.message());
137
+ status.ForEachPayload(
138
+ [&](absl::string_view type_url, const absl::Cord& payload) {
139
+ new_status.SetPayload(type_url, payload);
140
+ });
141
+ return new_status;
142
+ }
143
+
144
+ } // namespace
145
+
154
146
  void StatusSetInt(absl::Status* status, StatusIntProperty key, intptr_t value) {
147
+ if (IsErrorFlattenEnabled() && key == StatusIntProperty::kRpcStatus) {
148
+ // When setting the RPC status, just replace the top-level status code.
149
+ *status = ReplaceStatusCode(*status, static_cast<absl::StatusCode>(value));
150
+ return;
151
+ }
155
152
  status->SetPayload(GetStatusIntPropertyUrl(key),
156
153
  absl::Cord(std::to_string(value)));
157
154
  }
158
155
 
159
156
  std::optional<intptr_t> StatusGetInt(const absl::Status& status,
160
157
  StatusIntProperty key) {
158
+ if (IsErrorFlattenEnabled() && key == StatusIntProperty::kRpcStatus) {
159
+ return static_cast<intptr_t>(status.code());
160
+ }
161
161
  auto p = status.GetPayload(GetStatusIntPropertyUrl(key));
162
162
  if (p.has_value()) {
163
163
  auto sv = p->TryFlat();
@@ -175,13 +175,39 @@ std::optional<intptr_t> StatusGetInt(const absl::Status& status,
175
175
  return {};
176
176
  }
177
177
 
178
+ namespace {
179
+
180
+ absl::Status ReplaceStatusMessage(const absl::Status& status,
181
+ absl::string_view message) {
182
+ absl::Status new_status(status.code(), message);
183
+ status.ForEachPayload(
184
+ [&](absl::string_view type_url, const absl::Cord& payload) {
185
+ new_status.SetPayload(type_url, payload);
186
+ });
187
+ return new_status;
188
+ }
189
+
190
+ } // namespace
191
+
178
192
  void StatusSetStr(absl::Status* status, StatusStrProperty key,
179
193
  absl::string_view value) {
194
+ if (IsErrorFlattenEnabled() && key == StatusStrProperty::kGrpcMessage) {
195
+ if (!status->ok()) {
196
+ *status = ReplaceStatusMessage(
197
+ *status, status->message().empty()
198
+ ? value
199
+ : absl::StrCat(value, " (", status->message(), ")"));
200
+ }
201
+ return;
202
+ }
180
203
  status->SetPayload(GetStatusStrPropertyUrl(key), absl::Cord(value));
181
204
  }
182
205
 
183
206
  std::optional<std::string> StatusGetStr(const absl::Status& status,
184
207
  StatusStrProperty key) {
208
+ if (IsErrorFlattenEnabled() && key == StatusStrProperty::kGrpcMessage) {
209
+ return std::string(status.message());
210
+ }
185
211
  auto p = status.GetPayload(GetStatusStrPropertyUrl(key));
186
212
  if (p.has_value()) {
187
213
  return std::string(*p);
@@ -189,35 +215,37 @@ std::optional<std::string> StatusGetStr(const absl::Status& status,
189
215
  return {};
190
216
  }
191
217
 
192
- void StatusSetTime(absl::Status* status, StatusTimeProperty key,
193
- absl::Time time) {
194
- std::string time_str =
195
- absl::FormatTime(absl::RFC3339_full, time, absl::UTCTimeZone());
196
- status->SetPayload(GetStatusTimePropertyUrl(key),
197
- absl::Cord(std::move(time_str)));
198
- }
199
-
200
- std::optional<absl::Time> StatusGetTime(const absl::Status& status,
201
- StatusTimeProperty key) {
202
- auto p = status.GetPayload(GetStatusTimePropertyUrl(key));
203
- if (p.has_value()) {
204
- auto sv = p->TryFlat();
205
- absl::Time time;
206
- if (sv.has_value()) {
207
- if (absl::ParseTime(absl::RFC3339_full, sv.value(), &time, nullptr)) {
208
- return time;
209
- }
210
- } else {
211
- std::string s = std::string(*p);
212
- if (absl::ParseTime(absl::RFC3339_full, s, &time, nullptr)) {
213
- return time;
214
- }
218
+ void StatusAddChild(absl::Status* status, absl::Status child) {
219
+ if (IsErrorFlattenEnabled()) {
220
+ // If the child is OK, there's nothing to do.
221
+ if (child.ok()) return;
222
+ // If the parent is OK, replace it with the child.
223
+ if (status->ok()) {
224
+ *status = std::move(child);
225
+ return;
215
226
  }
227
+ // Parent and child are both non-OK, so we need to merge.
228
+ absl::Status new_status(
229
+ // Prefer any other code over UNKNOWN.
230
+ status->code() == absl::StatusCode::kUnknown ? child.code()
231
+ : status->code(),
232
+ absl::StrCat(status->message(), " (", child.message(), ")"));
233
+ // TODO(roth): Remove this once we eliminate all status attributes.
234
+ status->ForEachPayload(
235
+ [&](absl::string_view type_url, const absl::Cord& payload) {
236
+ new_status.SetPayload(type_url, payload);
237
+ });
238
+ child.ForEachPayload(
239
+ [&](absl::string_view type_url, const absl::Cord& payload) {
240
+ // If the original error already has the attribute, don't overwrite
241
+ // it.
242
+ if (!new_status.GetPayload(type_url).has_value()) {
243
+ new_status.SetPayload(type_url, payload);
244
+ }
245
+ });
246
+ *status = std::move(new_status);
247
+ return;
216
248
  }
217
- return {};
218
- }
219
-
220
- void StatusAddChild(absl::Status* status, absl::Status child) {
221
249
  upb::Arena arena;
222
250
  // Serialize msg to buf
223
251
  google_rpc_Status* msg = internal::StatusToProto(child, arena.ptr());
@@ -311,15 +339,10 @@ std::string StatusToString(const absl::Status& status) {
311
339
  : absl::StrCat(head, " {", absl::StrJoin(kvs, ", "), "}");
312
340
  }
313
341
 
314
- absl::Status AddMessagePrefix(absl::string_view prefix, absl::Status status) {
315
- absl::Status new_status(status.code(),
316
- absl::StrCat(prefix, ": ", status.message()));
317
- // TODO(roth): Remove this once we eliminate all status attributes.
318
- status.ForEachPayload(
319
- [&](absl::string_view type_url, const absl::Cord& payload) {
320
- new_status.SetPayload(type_url, payload);
321
- });
322
- return new_status;
342
+ absl::Status AddMessagePrefix(absl::string_view prefix,
343
+ const absl::Status& status) {
344
+ return ReplaceStatusMessage(status,
345
+ absl::StrCat(prefix, ": ", status.message()));
323
346
  }
324
347
 
325
348
  namespace internal {
@@ -46,42 +46,32 @@ namespace grpc_core {
46
46
 
47
47
  /// This enum should have the same value of grpc_error_ints
48
48
  enum class StatusIntProperty {
49
- /// __LINE__ from the call site creating the error
50
- kFileLine,
51
49
  /// stream identifier: for errors that are associated with an individual
52
50
  /// wire stream
51
+ // TODO(tjagtap): Remove this when the PH2 migration is done.
53
52
  kStreamId,
54
53
  /// grpc status code representing this error
55
- // TODO(veblush): Remove this after grpc_error is replaced with absl::Status
54
+ // TODO(roth): Remove this after error_flatten experiment is removed.
56
55
  kRpcStatus,
57
56
  /// http2 error code associated with the error (see the HTTP2 RFC)
57
+ // TODO(tjagtap): Remove this as part of creating a new HTTP/2 error type.
58
58
  kHttp2Error,
59
- /// File descriptor associated with this error
60
- kFd,
61
- /// chttp2: did the error occur while a write was in progress
62
- kOccurredDuringWrite,
63
59
  /// channel connectivity state associated with the error
60
+ // TODO(roth): Remove this when the promise migration is done.
64
61
  ChannelConnectivityState,
65
62
  /// LB policy drop
63
+ // TODO(roth): Replace this with something else, possibly a call
64
+ // context element.
66
65
  kLbPolicyDrop,
67
66
  };
68
67
 
69
68
  /// This enum should have the same value of grpc_error_strs
69
+ // TODO(roth): Remove this after error_flatten experiment is removed.
70
70
  enum class StatusStrProperty {
71
- /// top-level textual description of this error
72
- kDescription,
73
- /// source file in which this error occurred
74
- kFile,
75
71
  /// peer that we were trying to communicate when this error occurred
76
72
  kGrpcMessage,
77
73
  };
78
74
 
79
- /// This enum should have the same value of grpc_error_times
80
- enum class StatusTimeProperty {
81
- /// timestamp of error creation
82
- kCreated,
83
- };
84
-
85
75
  /// Creates a status with given additional information
86
76
  absl::Status StatusCreate(absl::StatusCode code, absl::string_view msg,
87
77
  const DebugLocation& location,
@@ -103,14 +93,6 @@ void StatusSetStr(absl::Status* status, StatusStrProperty key,
103
93
  GRPC_MUST_USE_RESULT std::optional<std::string> StatusGetStr(
104
94
  const absl::Status& status, StatusStrProperty key);
105
95
 
106
- /// Sets the time property to the status
107
- void StatusSetTime(absl::Status* status, StatusTimeProperty key,
108
- absl::Time time);
109
-
110
- /// Gets the time property from the status
111
- GRPC_MUST_USE_RESULT std::optional<absl::Time> StatusGetTime(
112
- const absl::Status& status, StatusTimeProperty key);
113
-
114
96
  /// Adds a child status to status
115
97
  void StatusAddChild(absl::Status* status, absl::Status child);
116
98
 
@@ -126,7 +108,8 @@ GRPC_MUST_USE_RESULT std::vector<absl::Status> StatusGetChildren(
126
108
  GRPC_MUST_USE_RESULT std::string StatusToString(const absl::Status& status);
127
109
 
128
110
  /// Adds prefix to the message of status.
129
- absl::Status AddMessagePrefix(absl::string_view prefix, absl::Status status);
111
+ absl::Status AddMessagePrefix(absl::string_view prefix,
112
+ const absl::Status& status);
130
113
 
131
114
  namespace internal {
132
115
 
@@ -24,7 +24,7 @@
24
24
  #include "absl/log/log.h"
25
25
  #include "absl/strings/str_cat.h"
26
26
  #include "src/core/config/core_configuration.h"
27
- #include "src/core/lib/security/certificate_provider/certificate_provider_registry.h"
27
+ #include "src/core/credentials/transport/tls/certificate_provider_registry.h"
28
28
 
29
29
  namespace grpc_core {
30
30
 
@@ -28,9 +28,9 @@
28
28
 
29
29
  #include "absl/base/thread_annotations.h"
30
30
  #include "absl/strings/string_view.h"
31
- #include "src/core/lib/security/certificate_provider/certificate_provider_factory.h"
32
- #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h"
33
- #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h"
31
+ #include "src/core/credentials/transport/tls/certificate_provider_factory.h"
32
+ #include "src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h"
33
+ #include "src/core/credentials/transport/tls/grpc_tls_certificate_provider.h"
34
34
  #include "src/core/util/json/json.h"
35
35
  #include "src/core/util/json/json_args.h"
36
36
  #include "src/core/util/json/json_object_loader.h"
@@ -29,7 +29,7 @@
29
29
  #include "absl/strings/str_format.h"
30
30
  #include "absl/strings/str_join.h"
31
31
  #include "src/core/config/core_configuration.h"
32
- #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h"
32
+ #include "src/core/credentials/transport/tls/grpc_tls_certificate_provider.h"
33
33
  #include "src/core/util/down_cast.h"
34
34
 
35
35
  namespace grpc_core {
@@ -55,11 +55,11 @@ std::string FileWatcherCertificateProviderFactory::Config::ToString() const {
55
55
  parts.push_back(
56
56
  absl::StrFormat("certificate_file=\"%s\", ", identity_cert_file_));
57
57
  }
58
- if (!identity_cert_file_.empty()) {
58
+ if (!private_key_file_.empty()) {
59
59
  parts.push_back(
60
60
  absl::StrFormat("private_key_file=\"%s\", ", private_key_file_));
61
61
  }
62
- if (!identity_cert_file_.empty()) {
62
+ if (!root_cert_file_.empty()) {
63
63
  parts.push_back(
64
64
  absl::StrFormat("ca_certificate_file=\"%s\", ", root_cert_file_));
65
65
  }
@@ -25,7 +25,7 @@
25
25
  #include <string>
26
26
 
27
27
  #include "absl/strings/string_view.h"
28
- #include "src/core/lib/security/certificate_provider/certificate_provider_factory.h"
28
+ #include "src/core/credentials/transport/tls/certificate_provider_factory.h"
29
29
  #include "src/core/util/json/json.h"
30
30
  #include "src/core/util/json/json_args.h"
31
31
  #include "src/core/util/json/json_object_loader.h"
@@ -179,8 +179,12 @@ std::string GrpcXdsBootstrap::ToString() const {
179
179
  node_->locality_zone(), node_->locality_sub_zone(),
180
180
  JsonDump(Json::FromObject(node_->metadata()))));
181
181
  }
182
- parts.push_back(
183
- absl::StrFormat("servers=[\n%s\n],\n", JsonDump(servers_[0].ToJson())));
182
+ std::vector<std::string> server_strings;
183
+ for (auto& server : servers_) {
184
+ server_strings.emplace_back(server.Key());
185
+ }
186
+ parts.push_back(absl::StrFormat(" servers=[\n%s\n],\n",
187
+ absl::StrJoin(server_strings, ",\n")));
184
188
  if (!client_default_listener_resource_name_template_.empty()) {
185
189
  parts.push_back(absl::StrFormat(
186
190
  "client_default_listener_resource_name_template=\"%s\",\n",
@@ -197,14 +201,13 @@ std::string GrpcXdsBootstrap::ToString() const {
197
201
  parts.push_back(
198
202
  absl::StrFormat(" client_listener_resource_name_template=\"%s\",\n",
199
203
  authority.client_listener_resource_name_template()));
200
- std::vector<std::string> server_jsons;
204
+ std::vector<std::string> server_strings;
201
205
  for (const XdsServer* server : authority.servers()) {
202
- server_jsons.emplace_back(
203
- JsonDump(DownCast<const GrpcXdsServer*>(server)->ToJson()));
206
+ server_strings.emplace_back(server->Key());
204
207
  }
205
- if (!server_jsons.empty()) {
208
+ if (!server_strings.empty()) {
206
209
  parts.push_back(absl::StrFormat(" servers=[\n%s\n],\n",
207
- absl::StrJoin(server_jsons, ",\n")));
210
+ absl::StrJoin(server_strings, ",\n")));
208
211
  }
209
212
  parts.push_back(" },\n");
210
213
  }
@@ -25,9 +25,9 @@
25
25
 
26
26
  #include "absl/functional/bind_front.h"
27
27
  #include "absl/log/check.h"
28
+ #include "src/core/credentials/transport/tls/ssl_utils.h"
28
29
  #include "src/core/lib/channel/channel_args.h"
29
30
  #include "src/core/lib/iomgr/error.h"
30
- #include "src/core/lib/security/security_connector/ssl_utils.h"
31
31
 
32
32
  namespace grpc_core {
33
33
 
@@ -30,8 +30,8 @@
30
30
 
31
31
  #include "absl/base/thread_annotations.h"
32
32
  #include "absl/strings/string_view.h"
33
- #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h"
34
- #include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h"
33
+ #include "src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h"
34
+ #include "src/core/credentials/transport/tls/grpc_tls_certificate_provider.h"
35
35
  #include "src/core/util/matchers.h"
36
36
  #include "src/core/util/ref_counted_ptr.h"
37
37
  #include "src/core/util/sync.h"