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
@@ -35,6 +35,7 @@
35
35
  #include "absl/strings/cord.h"
36
36
  #include "absl/strings/str_cat.h"
37
37
  #include "absl/strings/string_view.h"
38
+ #include "src/core/call/interception_chain.h"
38
39
  #include "src/core/channelz/channel_trace.h"
39
40
  #include "src/core/channelz/channelz.h"
40
41
  #include "src/core/client_channel/client_channel_internal.h"
@@ -57,7 +58,6 @@
57
58
  #include "src/core/lib/surface/init_internally.h"
58
59
  #include "src/core/lib/transport/connectivity_state.h"
59
60
  #include "src/core/lib/transport/error_utils.h"
60
- #include "src/core/lib/transport/interception_chain.h"
61
61
  #include "src/core/lib/transport/transport.h"
62
62
  #include "src/core/telemetry/stats.h"
63
63
  #include "src/core/telemetry/stats_data.h"
@@ -244,13 +244,12 @@ SubchannelCall::SubchannelCall(Args args, grpc_error_handle* error)
244
244
  deadline_(args.deadline) {
245
245
  grpc_call_stack* callstk = SUBCHANNEL_CALL_TO_CALL_STACK(this);
246
246
  const grpc_call_element_args call_args = {
247
- callstk, // call_stack
248
- nullptr, // server_transport_data
249
- args.path.c_slice(), // path
250
- args.start_time, // start_time
251
- args.deadline, // deadline
252
- args.arena, // arena
253
- args.call_combiner // call_combiner
247
+ callstk, // call_stack
248
+ nullptr, // server_transport_data
249
+ args.start_time, // start_time
250
+ args.deadline, // deadline
251
+ args.arena, // arena
252
+ args.call_combiner // call_combiner
254
253
  };
255
254
  *error = grpc_call_stack_init(connected_subchannel_->channel_stack(), 1,
256
255
  SubchannelCall::Destroy, this, &call_args);
@@ -29,6 +29,7 @@
29
29
  #include "absl/base/thread_annotations.h"
30
30
  #include "absl/container/flat_hash_set.h"
31
31
  #include "absl/status/status.h"
32
+ #include "src/core/call/metadata_batch.h"
32
33
  #include "src/core/client_channel/connector.h"
33
34
  #include "src/core/client_channel/subchannel_pool_interface.h"
34
35
  #include "src/core/lib/address_utils/sockaddr_utils.h"
@@ -44,7 +45,6 @@
44
45
  #include "src/core/lib/resource_quota/arena.h"
45
46
  #include "src/core/lib/slice/slice.h"
46
47
  #include "src/core/lib/transport/connectivity_state.h"
47
- #include "src/core/lib/transport/metadata_batch.h"
48
48
  #include "src/core/lib/transport/transport.h"
49
49
  #include "src/core/util/backoff.h"
50
50
  #include "src/core/util/debug_location.h"
@@ -95,7 +95,6 @@ class SubchannelCall final {
95
95
  struct Args {
96
96
  RefCountedPtr<ConnectedSubchannel> connected_subchannel;
97
97
  grpc_polling_entity* pollent;
98
- Slice path;
99
98
  gpr_cycle_counter start_time;
100
99
  Timestamp deadline;
101
100
  Arena* arena;
@@ -130,7 +130,7 @@ void SubchannelStreamClient::StartRetryTimerLocked() {
130
130
  const Duration timeout = retry_backoff_.NextAttemptDelay();
131
131
  if (GPR_UNLIKELY(tracer_ != nullptr)) {
132
132
  LOG(INFO) << tracer_ << " " << this
133
- << ": SubchannelStreamClient health check call lost...";
133
+ << ": SubchannelStreamClient call lost...";
134
134
  if (timeout > Duration::Zero()) {
135
135
  LOG(INFO) << tracer_ << " " << this << ": ... will retry in "
136
136
  << timeout.millis() << "ms.";
@@ -139,10 +139,10 @@ void SubchannelStreamClient::StartRetryTimerLocked() {
139
139
  }
140
140
  }
141
141
  retry_timer_handle_ = event_engine_->RunAfter(
142
- timeout, [self = Ref(DEBUG_LOCATION, "health_retry_timer")]() mutable {
142
+ timeout, [self = Ref(DEBUG_LOCATION, "retry_timer")]() mutable {
143
143
  ExecCtx exec_ctx;
144
144
  self->OnRetryTimer();
145
- self.reset(DEBUG_LOCATION, "health_retry_timer");
145
+ self.reset(DEBUG_LOCATION, "retry_timer");
146
146
  });
147
147
  }
148
148
 
@@ -152,7 +152,7 @@ void SubchannelStreamClient::OnRetryTimer() {
152
152
  call_state_ == nullptr) {
153
153
  if (GPR_UNLIKELY(tracer_ != nullptr)) {
154
154
  LOG(INFO) << tracer_ << " " << this
155
- << ": SubchannelStreamClient restarting health check call";
155
+ << ": SubchannelStreamClient restarting call";
156
156
  }
157
157
  StartCallLocked();
158
158
  }
@@ -164,9 +164,9 @@ void SubchannelStreamClient::OnRetryTimer() {
164
164
  //
165
165
 
166
166
  SubchannelStreamClient::CallState::CallState(
167
- RefCountedPtr<SubchannelStreamClient> health_check_client,
167
+ RefCountedPtr<SubchannelStreamClient> subchannel_stream_client,
168
168
  grpc_pollset_set* interested_parties)
169
- : subchannel_stream_client_(std::move(health_check_client)),
169
+ : subchannel_stream_client_(std::move(subchannel_stream_client)),
170
170
  pollent_(grpc_polling_entity_create_from_pollset_set(interested_parties)),
171
171
  arena_(subchannel_stream_client_->call_allocator_->MakeArena()) {}
172
172
 
@@ -192,7 +192,6 @@ void SubchannelStreamClient::CallState::StartCallLocked() {
192
192
  SubchannelCall::Args args = {
193
193
  subchannel_stream_client_->connected_subchannel_,
194
194
  &pollent_,
195
- Slice::FromStaticString("/grpc.health.v1.Health/Watch"),
196
195
  gpr_get_cycle_counter(), // start_time
197
196
  Timestamp::InfFuture(), // deadline
198
197
  arena_.get(),
@@ -299,7 +298,7 @@ void SubchannelStreamClient::CallState::AfterCallStackDestruction(
299
298
  void SubchannelStreamClient::CallState::OnCancelComplete(
300
299
  void* arg, grpc_error_handle /*error*/) {
301
300
  auto* self = static_cast<SubchannelStreamClient::CallState*>(arg);
302
- GRPC_CALL_COMBINER_STOP(&self->call_combiner_, "health_cancel");
301
+ GRPC_CALL_COMBINER_STOP(&self->call_combiner_, "cancel_batch");
303
302
  self->call_->Unref(DEBUG_LOCATION, "cancel");
304
303
  }
305
304
 
@@ -322,7 +321,7 @@ void SubchannelStreamClient::CallState::Cancel() {
322
321
  GRPC_CALL_COMBINER_START(
323
322
  &call_combiner_,
324
323
  GRPC_CLOSURE_CREATE(StartCancel, this, grpc_schedule_on_exec_ctx),
325
- absl::OkStatus(), "health_cancel");
324
+ absl::OkStatus(), "cancel_batch");
326
325
  }
327
326
  }
328
327
 
@@ -406,18 +405,22 @@ void SubchannelStreamClient::CallState::RecvTrailingMetadataReady(
406
405
  LOG(INFO) << self->subchannel_stream_client_->tracer_ << " "
407
406
  << self->subchannel_stream_client_.get()
408
407
  << ": SubchannelStreamClient CallState " << self
409
- << ": health watch failed with status " << status;
408
+ << ": call failed with status " << status;
410
409
  }
411
410
  // Clean up.
412
411
  self->recv_trailing_metadata_.Clear();
413
412
  // Report call end.
413
+ // Note: We hold a ref to the SubchannelStreamClient here to ensure
414
+ // that it lives long enough for us to release the mutex, since the
415
+ // call to CallEndedLocked() may release the last ref.
416
+ auto subchannel_stream_client = self->subchannel_stream_client_->Ref();
414
417
  MutexLock lock(&self->subchannel_stream_client_->mu_);
415
418
  if (self->subchannel_stream_client_->event_handler_ != nullptr) {
416
419
  self->subchannel_stream_client_->event_handler_
417
420
  ->RecvTrailingMetadataReadyLocked(self->subchannel_stream_client_.get(),
418
421
  status);
419
422
  }
420
- // For status UNIMPLEMENTED, give up and assume always healthy.
423
+ // For status UNIMPLEMENTED, give up.
421
424
  self->CallEndedLocked(/*retry=*/status != GRPC_STATUS_UNIMPLEMENTED);
422
425
  }
423
426
 
@@ -30,6 +30,7 @@
30
30
  #include "absl/base/thread_annotations.h"
31
31
  #include "absl/status/status.h"
32
32
  #include "absl/strings/string_view.h"
33
+ #include "src/core/call/metadata_batch.h"
33
34
  #include "src/core/client_channel/subchannel.h"
34
35
  #include "src/core/lib/iomgr/call_combiner.h"
35
36
  #include "src/core/lib/iomgr/closure.h"
@@ -40,7 +41,6 @@
40
41
  #include "src/core/lib/resource_quota/memory_quota.h"
41
42
  #include "src/core/lib/slice/slice.h"
42
43
  #include "src/core/lib/slice/slice_buffer.h"
43
- #include "src/core/lib/transport/metadata_batch.h"
44
44
  #include "src/core/lib/transport/transport.h"
45
45
  #include "src/core/util/backoff.h"
46
46
  #include "src/core/util/orphanable.h"
@@ -202,7 +202,7 @@ class SubchannelStreamClient final
202
202
  Mutex mu_;
203
203
  std::unique_ptr<CallEventHandler> event_handler_ ABSL_GUARDED_BY(mu_);
204
204
 
205
- // The data associated with the current health check call. It holds a ref
205
+ // The data associated with the current call. It holds a ref
206
206
  // to this SubchannelStreamClient object.
207
207
  OrphanablePtr<CallState> call_state_ ABSL_GUARDED_BY(mu_);
208
208
 
@@ -21,11 +21,11 @@
21
21
 
22
22
  #include "absl/functional/any_invocable.h"
23
23
  #include "absl/log/check.h"
24
+ #include "src/core/credentials/transport/channel_creds_registry.h"
25
+ #include "src/core/credentials/transport/tls/certificate_provider_registry.h"
24
26
  #include "src/core/handshaker/handshaker_registry.h"
25
27
  #include "src/core/handshaker/proxy_mapper_registry.h"
26
28
  #include "src/core/lib/channel/channel_args_preconditioning.h"
27
- #include "src/core/lib/security/certificate_provider/certificate_provider_registry.h"
28
- #include "src/core/lib/security/credentials/channel_creds_registry.h"
29
29
  #include "src/core/lib/surface/channel_init.h"
30
30
  #include "src/core/load_balancing/lb_policy_registry.h"
31
31
  #include "src/core/resolver/resolver_registry.h"
@@ -0,0 +1,157 @@
1
+ //
2
+ // Copyright 2015 gRPC authors.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ //
16
+
17
+ #ifndef GRPC_SRC_CORE_CREDENTIALS_CALL_CALL_CREDENTIALS_H
18
+ #define GRPC_SRC_CORE_CREDENTIALS_CALL_CALL_CREDENTIALS_H
19
+
20
+ #include <grpc/credentials.h>
21
+ #include <grpc/grpc.h>
22
+ #include <grpc/grpc_security.h>
23
+ #include <grpc/grpc_security_constants.h>
24
+ #include <grpc/impl/grpc_types.h>
25
+ #include <grpc/support/port_platform.h>
26
+
27
+ #include <string>
28
+ #include <utility>
29
+ #include <vector>
30
+
31
+ #include "absl/log/check.h"
32
+ #include "absl/status/statusor.h"
33
+ #include "absl/strings/string_view.h"
34
+ #include "src/core/credentials/transport/security_connector.h"
35
+ #include "src/core/lib/channel/channel_args.h"
36
+ #include "src/core/lib/promise/arena_promise.h"
37
+ #include "src/core/lib/slice/slice.h"
38
+ #include "src/core/lib/transport/transport.h"
39
+ #include "src/core/transport/auth_context.h"
40
+ #include "src/core/util/crash.h"
41
+ #include "src/core/util/ref_counted.h"
42
+ #include "src/core/util/ref_counted_ptr.h"
43
+ #include "src/core/util/unique_type_name.h"
44
+
45
+ // --- Constants. ---
46
+
47
+ typedef enum {
48
+ GRPC_CREDENTIALS_OK = 0,
49
+ GRPC_CREDENTIALS_ERROR
50
+ } grpc_credentials_status;
51
+
52
+ #define GRPC_AUTHORIZATION_METADATA_KEY "authorization"
53
+ #define GRPC_IAM_AUTHORIZATION_TOKEN_METADATA_KEY \
54
+ "x-goog-iam-authorization-token"
55
+ #define GRPC_IAM_AUTHORITY_SELECTOR_METADATA_KEY "x-goog-iam-authority-selector"
56
+
57
+ #define GRPC_SECURE_TOKEN_REFRESH_THRESHOLD_SECS 60
58
+
59
+ #define GRPC_COMPUTE_ENGINE_METADATA_HOST "metadata.google.internal."
60
+ #define GRPC_COMPUTE_ENGINE_METADATA_TOKEN_PATH \
61
+ "/computeMetadata/v1/instance/service-accounts/default/token"
62
+
63
+ #define GRPC_GOOGLE_OAUTH2_SERVICE_HOST "oauth2.googleapis.com"
64
+ #define GRPC_GOOGLE_OAUTH2_SERVICE_TOKEN_PATH "/token"
65
+
66
+ #define GRPC_SERVICE_ACCOUNT_POST_BODY_PREFIX \
67
+ "grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&" \
68
+ "assertion="
69
+
70
+ #define GRPC_REFRESH_TOKEN_POST_BODY_FORMAT_STRING \
71
+ "client_id=%s&client_secret=%s&refresh_token=%s&grant_type=refresh_token"
72
+
73
+ // --- Google utils ---
74
+
75
+ // It is the caller's responsibility to gpr_free the result if not NULL.
76
+ std::string grpc_get_well_known_google_credentials_file_path(void);
77
+
78
+ // Implementation function for the different platforms.
79
+ std::string grpc_get_well_known_google_credentials_file_path_impl(void);
80
+
81
+ // Override for testing only. Not thread-safe
82
+ typedef std::string (*grpc_well_known_credentials_path_getter)(void);
83
+ void grpc_override_well_known_credentials_path_getter(
84
+ grpc_well_known_credentials_path_getter getter);
85
+
86
+ // --- grpc_core::CredentialsMetadataArray. ---
87
+
88
+ namespace grpc_core {
89
+ using CredentialsMetadataArray = std::vector<std::pair<Slice, Slice>>;
90
+ }
91
+
92
+ // --- grpc_call_credentials. ---
93
+
94
+ // This type is forward declared as a C struct and we cannot define it as a
95
+ // class. Otherwise, compiler will complain about type mismatch due to
96
+ // -Wmismatched-tags.
97
+ struct grpc_call_credentials
98
+ : public grpc_core::DualRefCounted<grpc_call_credentials> {
99
+ public:
100
+ // TODO(roth): Consider whether security connector actually needs to
101
+ // be part of this interface. Currently, it is here only for the
102
+ // url_scheme() method, which we might be able to instead add as an
103
+ // auth context property.
104
+ struct GetRequestMetadataArgs {
105
+ grpc_core::RefCountedPtr<grpc_channel_security_connector>
106
+ security_connector;
107
+ grpc_core::RefCountedPtr<grpc_auth_context> auth_context;
108
+ };
109
+
110
+ // The pointer value \a type is used to uniquely identify a creds
111
+ // implementation for down-casting purposes. Every creds implementation should
112
+ // use a unique string instance, which should be returned by all instances of
113
+ // that creds implementation.
114
+ explicit grpc_call_credentials(
115
+ grpc_security_level min_security_level = GRPC_PRIVACY_AND_INTEGRITY)
116
+ : min_security_level_(min_security_level) {}
117
+
118
+ ~grpc_call_credentials() override = default;
119
+
120
+ virtual grpc_core::ArenaPromise<
121
+ absl::StatusOr<grpc_core::ClientMetadataHandle>>
122
+ GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
123
+ const GetRequestMetadataArgs* args) = 0;
124
+
125
+ virtual grpc_security_level min_security_level() const {
126
+ return min_security_level_;
127
+ }
128
+
129
+ // Compares this grpc_call_credentials object with \a other.
130
+ // If this method returns 0, it means that gRPC can treat the two call
131
+ // credentials as effectively the same..
132
+ int cmp(const grpc_call_credentials* other) const {
133
+ CHECK_NE(other, nullptr);
134
+ int r = type().Compare(other->type());
135
+ if (r != 0) return r;
136
+ return cmp_impl(other);
137
+ }
138
+
139
+ virtual std::string debug_string() {
140
+ return "grpc_call_credentials did not provide debug string";
141
+ }
142
+
143
+ // The pointer value \a type is used to uniquely identify a creds
144
+ // implementation for down-casting purposes. Every creds implementation should
145
+ // use a unique string instance, which should be returned by all instances of
146
+ // that creds implementation.
147
+ virtual grpc_core::UniqueTypeName type() const = 0;
148
+
149
+ private:
150
+ // Implementation for `cmp` method intended to be overridden by subclasses.
151
+ // Only invoked if `type()` and `other->type()` point to the same string.
152
+ virtual int cmp_impl(const grpc_call_credentials* other) const = 0;
153
+
154
+ const grpc_security_level min_security_level_;
155
+ };
156
+
157
+ #endif // GRPC_SRC_CORE_CREDENTIALS_CALL_CALL_CREDENTIALS_H
@@ -14,7 +14,7 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
- #include "src/core/lib/security/credentials/call_creds_util.h"
17
+ #include "src/core/credentials/call/call_creds_util.h"
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
  #include <grpc/support/string_util.h>
@@ -24,9 +24,9 @@
24
24
  #include "absl/log/log.h"
25
25
  #include "absl/strings/str_cat.h"
26
26
  #include "absl/strings/string_view.h"
27
- #include "src/core/lib/security/context/security_context.h"
28
- #include "src/core/lib/security/security_connector/security_connector.h"
29
- #include "src/core/lib/transport/metadata_batch.h"
27
+ #include "src/core/call/metadata_batch.h"
28
+ #include "src/core/credentials/transport/security_connector.h"
29
+ #include "src/core/transport/auth_context.h"
30
30
  #include "src/core/util/ref_counted_ptr.h"
31
31
 
32
32
  namespace grpc_core {
@@ -14,8 +14,8 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
- #ifndef GRPC_SRC_CORE_LIB_SECURITY_CREDENTIALS_CALL_CREDS_UTIL_H
18
- #define GRPC_SRC_CORE_LIB_SECURITY_CREDENTIALS_CALL_CREDS_UTIL_H
17
+ #ifndef GRPC_SRC_CORE_CREDENTIALS_CALL_CALL_CREDS_UTIL_H
18
+ #define GRPC_SRC_CORE_CREDENTIALS_CALL_CALL_CREDS_UTIL_H
19
19
 
20
20
  #include <grpc/credentials.h>
21
21
  #include <grpc/grpc_security.h>
@@ -23,7 +23,7 @@
23
23
 
24
24
  #include <string>
25
25
 
26
- #include "src/core/lib/security/credentials/credentials.h"
26
+ #include "src/core/credentials/call/call_credentials.h"
27
27
  #include "src/core/lib/transport/transport.h"
28
28
 
29
29
  namespace grpc_core {
@@ -40,4 +40,4 @@ grpc_auth_metadata_context MakePluginAuthMetadataContext(
40
40
 
41
41
  } // namespace grpc_core
42
42
 
43
- #endif // GRPC_SRC_CORE_LIB_SECURITY_CREDENTIALS_CALL_CREDS_UTIL_H
43
+ #endif // GRPC_SRC_CORE_CREDENTIALS_CALL_CALL_CREDS_UTIL_H
@@ -16,9 +16,7 @@
16
16
  //
17
17
  //
18
18
 
19
- #include "src/core/lib/security/credentials/composite/composite_credentials.h"
20
-
21
- #include <grpc/support/port_platform.h>
19
+ #include "src/core/credentials/call/composite/composite_call_credentials.h"
22
20
 
23
21
  #include <cstring>
24
22
  #include <memory>
@@ -27,22 +25,11 @@
27
25
  #include "absl/log/check.h"
28
26
  #include "absl/strings/str_cat.h"
29
27
  #include "absl/strings/str_join.h"
28
+ #include "src/core/call/metadata_batch.h"
30
29
  #include "src/core/lib/debug/trace.h"
31
30
  #include "src/core/lib/promise/try_seq.h"
32
- #include "src/core/lib/transport/metadata_batch.h"
33
31
  #include "src/core/util/ref_counted_ptr.h"
34
32
 
35
- //
36
- // grpc_composite_channel_credentials
37
- //
38
-
39
- grpc_core::UniqueTypeName grpc_composite_channel_credentials::Type() {
40
- static grpc_core::UniqueTypeName::Factory kFactory("Composite");
41
- return kFactory.Create();
42
- }
43
-
44
- // -- Composite call credentials. --
45
-
46
33
  grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
47
34
  grpc_composite_call_credentials::GetRequestMetadata(
48
35
  grpc_core::ClientMetadataHandle initial_metadata,
@@ -113,14 +100,6 @@ grpc_composite_call_credentials::grpc_composite_call_credentials(
113
100
  }
114
101
  }
115
102
 
116
- static grpc_core::RefCountedPtr<grpc_call_credentials>
117
- composite_call_credentials_create(
118
- grpc_core::RefCountedPtr<grpc_call_credentials> creds1,
119
- grpc_core::RefCountedPtr<grpc_call_credentials> creds2) {
120
- return grpc_core::MakeRefCounted<grpc_composite_call_credentials>(
121
- std::move(creds1), std::move(creds2));
122
- }
123
-
124
103
  grpc_call_credentials* grpc_composite_call_credentials_create(
125
104
  grpc_call_credentials* creds1, grpc_call_credentials* creds2,
126
105
  void* reserved) {
@@ -130,39 +109,7 @@ grpc_call_credentials* grpc_composite_call_credentials_create(
130
109
  CHECK_EQ(reserved, nullptr);
131
110
  CHECK_NE(creds1, nullptr);
132
111
  CHECK_NE(creds2, nullptr);
133
-
134
- return composite_call_credentials_create(creds1->Ref(), creds2->Ref())
112
+ return grpc_core::MakeRefCounted<grpc_composite_call_credentials>(
113
+ creds1->Ref(), creds2->Ref())
135
114
  .release();
136
115
  }
137
-
138
- // -- Composite channel credentials. --
139
-
140
- grpc_core::RefCountedPtr<grpc_channel_security_connector>
141
- grpc_composite_channel_credentials::create_security_connector(
142
- grpc_core::RefCountedPtr<grpc_call_credentials> call_creds,
143
- const char* target, grpc_core::ChannelArgs* args) {
144
- CHECK(inner_creds_ != nullptr);
145
- CHECK(call_creds_ != nullptr);
146
- // If we are passed a call_creds, create a call composite to pass it
147
- // downstream.
148
- if (call_creds != nullptr) {
149
- return inner_creds_->create_security_connector(
150
- composite_call_credentials_create(call_creds_, std::move(call_creds)),
151
- target, args);
152
- } else {
153
- return inner_creds_->create_security_connector(call_creds_, target, args);
154
- }
155
- }
156
-
157
- grpc_channel_credentials* grpc_composite_channel_credentials_create(
158
- grpc_channel_credentials* channel_creds, grpc_call_credentials* call_creds,
159
- void* reserved) {
160
- CHECK(channel_creds != nullptr && call_creds != nullptr &&
161
- reserved == nullptr);
162
- GRPC_TRACE_LOG(api, INFO)
163
- << "grpc_composite_channel_credentials_create(channel_creds="
164
- << channel_creds << ", call_creds=" << call_creds
165
- << ", reserved=" << reserved << ")";
166
- return new grpc_composite_channel_credentials(channel_creds->Ref(),
167
- call_creds->Ref());
168
- }
@@ -0,0 +1,82 @@
1
+ //
2
+ //
3
+ // Copyright 2015 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_CREDENTIALS_CALL_COMPOSITE_COMPOSITE_CALL_CREDENTIALS_H
20
+ #define GRPC_SRC_CORE_CREDENTIALS_CALL_COMPOSITE_COMPOSITE_CALL_CREDENTIALS_H
21
+
22
+ #include <grpc/credentials.h>
23
+ #include <grpc/grpc.h>
24
+ #include <grpc/grpc_security.h>
25
+ #include <grpc/grpc_security_constants.h>
26
+
27
+ #include <algorithm>
28
+ #include <string>
29
+ #include <utility>
30
+ #include <vector>
31
+
32
+ #include "absl/status/statusor.h"
33
+ #include "src/core/credentials/call/call_credentials.h"
34
+ #include "src/core/credentials/transport/security_connector.h"
35
+ #include "src/core/lib/channel/channel_args.h"
36
+ #include "src/core/lib/promise/arena_promise.h"
37
+ #include "src/core/lib/transport/transport.h"
38
+ #include "src/core/util/ref_counted_ptr.h"
39
+ #include "src/core/util/unique_type_name.h"
40
+ #include "src/core/util/useful.h"
41
+
42
+ class grpc_composite_call_credentials : public grpc_call_credentials {
43
+ public:
44
+ using CallCredentialsList =
45
+ std::vector<grpc_core::RefCountedPtr<grpc_call_credentials>>;
46
+
47
+ grpc_composite_call_credentials(
48
+ grpc_core::RefCountedPtr<grpc_call_credentials> creds1,
49
+ grpc_core::RefCountedPtr<grpc_call_credentials> creds2);
50
+ ~grpc_composite_call_credentials() override = default;
51
+
52
+ void Orphaned() override { inner_.clear(); }
53
+
54
+ grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
55
+ GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
56
+ const GetRequestMetadataArgs* args) override;
57
+
58
+ grpc_security_level min_security_level() const override {
59
+ return min_security_level_;
60
+ }
61
+
62
+ const CallCredentialsList& inner() const { return inner_; }
63
+ std::string debug_string() override;
64
+
65
+ static grpc_core::UniqueTypeName Type();
66
+
67
+ grpc_core::UniqueTypeName type() const override { return Type(); }
68
+
69
+ private:
70
+ int cmp_impl(const grpc_call_credentials* other) const override {
71
+ // TODO(yashykt): Check if we can do something better here
72
+ return grpc_core::QsortCompare(
73
+ static_cast<const grpc_call_credentials*>(this), other);
74
+ }
75
+
76
+ void push_to_inner(grpc_core::RefCountedPtr<grpc_call_credentials> creds,
77
+ bool is_composite);
78
+ grpc_security_level min_security_level_;
79
+ CallCredentialsList inner_;
80
+ };
81
+
82
+ #endif // GRPC_SRC_CORE_CREDENTIALS_CALL_COMPOSITE_COMPOSITE_CALL_CREDENTIALS_H
@@ -13,7 +13,7 @@
13
13
  // See the License for the specific language governing permissions and
14
14
  // limitations under the License.
15
15
  //
16
- #include "src/core/lib/security/credentials/external/aws_external_account_credentials.h"
16
+ #include "src/core/credentials/call/external/aws_external_account_credentials.h"
17
17
 
18
18
  #include <grpc/credentials.h>
19
19
  #include <grpc/grpc.h>
@@ -35,8 +35,8 @@
35
35
  #include "absl/strings/str_format.h"
36
36
  #include "absl/strings/str_replace.h"
37
37
  #include "absl/strings/string_view.h"
38
+ #include "src/core/credentials/transport/transport_credentials.h"
38
39
  #include "src/core/lib/iomgr/closure.h"
39
- #include "src/core/lib/security/credentials/credentials.h"
40
40
  #include "src/core/util/env.h"
41
41
  #include "src/core/util/http_client/httpcli_ssl_credentials.h"
42
42
  #include "src/core/util/json/json.h"
@@ -14,8 +14,8 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
- #ifndef GRPC_SRC_CORE_LIB_SECURITY_CREDENTIALS_EXTERNAL_AWS_EXTERNAL_ACCOUNT_CREDENTIALS_H
18
- #define GRPC_SRC_CORE_LIB_SECURITY_CREDENTIALS_EXTERNAL_AWS_EXTERNAL_ACCOUNT_CREDENTIALS_H
17
+ #ifndef GRPC_SRC_CORE_CREDENTIALS_CALL_EXTERNAL_AWS_EXTERNAL_ACCOUNT_CREDENTIALS_H
18
+ #define GRPC_SRC_CORE_CREDENTIALS_CALL_EXTERNAL_AWS_EXTERNAL_ACCOUNT_CREDENTIALS_H
19
19
 
20
20
  #include <grpc/support/port_platform.h>
21
21
 
@@ -25,9 +25,9 @@
25
25
  #include <vector>
26
26
 
27
27
  #include "absl/strings/string_view.h"
28
+ #include "src/core/credentials/call/external/aws_request_signer.h"
29
+ #include "src/core/credentials/call/external/external_account_credentials.h"
28
30
  #include "src/core/lib/iomgr/error.h"
29
- #include "src/core/lib/security/credentials/external/aws_request_signer.h"
30
- #include "src/core/lib/security/credentials/external/external_account_credentials.h"
31
31
  #include "src/core/util/http_client/httpcli.h"
32
32
  #include "src/core/util/http_client/parser.h"
33
33
  #include "src/core/util/orphanable.h"
@@ -114,4 +114,4 @@ class AwsExternalAccountCredentials final : public ExternalAccountCredentials {
114
114
 
115
115
  } // namespace grpc_core
116
116
 
117
- #endif // GRPC_SRC_CORE_LIB_SECURITY_CREDENTIALS_EXTERNAL_AWS_EXTERNAL_ACCOUNT_CREDENTIALS_H
117
+ #endif // GRPC_SRC_CORE_CREDENTIALS_CALL_EXTERNAL_AWS_EXTERNAL_ACCOUNT_CREDENTIALS_H
@@ -13,7 +13,7 @@
13
13
  // See the License for the specific language governing permissions and
14
14
  // limitations under the License.
15
15
  //
16
- #include "src/core/lib/security/credentials/external/aws_request_signer.h"
16
+ #include "src/core/credentials/call/external/aws_request_signer.h"
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
  #include <openssl/crypto.h>
@@ -14,8 +14,8 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
- #ifndef GRPC_SRC_CORE_LIB_SECURITY_CREDENTIALS_EXTERNAL_AWS_REQUEST_SIGNER_H
18
- #define GRPC_SRC_CORE_LIB_SECURITY_CREDENTIALS_EXTERNAL_AWS_REQUEST_SIGNER_H
17
+ #ifndef GRPC_SRC_CORE_CREDENTIALS_CALL_EXTERNAL_AWS_REQUEST_SIGNER_H
18
+ #define GRPC_SRC_CORE_CREDENTIALS_CALL_EXTERNAL_AWS_REQUEST_SIGNER_H
19
19
 
20
20
  #include <grpc/support/port_platform.h>
21
21
 
@@ -69,4 +69,4 @@ class AwsRequestSigner {
69
69
 
70
70
  } // namespace grpc_core
71
71
 
72
- #endif // GRPC_SRC_CORE_LIB_SECURITY_CREDENTIALS_EXTERNAL_AWS_REQUEST_SIGNER_H
72
+ #endif // GRPC_SRC_CORE_CREDENTIALS_CALL_EXTERNAL_AWS_REQUEST_SIGNER_H