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
@@ -238,7 +238,7 @@ class XdsClient::XdsChannel::AdsCall final
238
238
  if (!state.HasResource()) {
239
239
  GRPC_TRACE_LOG(xds_client, INFO)
240
240
  << "[xds_client " << ads_call_->xds_client() << "] xds server "
241
- << ads_call_->xds_channel()->server_.server_uri()
241
+ << ads_call_->xds_channel()->server_uri()
242
242
  << ": timeout obtaining resource {type=" << type_->type_url()
243
243
  << " name="
244
244
  << XdsClient::ConstructFullXdsResourceName(
@@ -405,9 +405,10 @@ XdsClient::XdsChannel::XdsChannel(WeakRefCountedPtr<XdsClient> xds_client,
405
405
  server_(server) {
406
406
  GRPC_TRACE_LOG(xds_client, INFO)
407
407
  << "[xds_client " << xds_client_.get() << "] creating channel " << this
408
- << " for server " << server.server_uri();
408
+ << " for server " << server_uri();
409
409
  absl::Status status;
410
- transport_ = xds_client_->transport_factory_->GetTransport(server, &status);
410
+ transport_ =
411
+ xds_client_->transport_factory_->GetTransport(*server.target(), &status);
411
412
  CHECK(transport_ != nullptr);
412
413
  if (!status.ok()) {
413
414
  SetChannelStatusLocked(std::move(status));
@@ -421,7 +422,7 @@ XdsClient::XdsChannel::XdsChannel(WeakRefCountedPtr<XdsClient> xds_client,
421
422
  XdsClient::XdsChannel::~XdsChannel() {
422
423
  GRPC_TRACE_LOG(xds_client, INFO)
423
424
  << "[xds_client " << xds_client() << "] destroying xds channel " << this
424
- << " for server " << server_.server_uri();
425
+ << " for server " << server_uri();
425
426
  xds_client_.reset(DEBUG_LOCATION, "XdsChannel");
426
427
  }
427
428
 
@@ -432,7 +433,7 @@ XdsClient::XdsChannel::~XdsChannel() {
432
433
  void XdsClient::XdsChannel::Orphaned() ABSL_NO_THREAD_SAFETY_ANALYSIS {
433
434
  GRPC_TRACE_LOG(xds_client, INFO)
434
435
  << "[xds_client " << xds_client() << "] orphaning xds channel " << this
435
- << " for server " << server_.server_uri();
436
+ << " for server " << server_uri();
436
437
  shutting_down_ = true;
437
438
  if (failure_watcher_ != nullptr) {
438
439
  transport_->StopConnectivityFailureWatch(failure_watcher_);
@@ -511,8 +512,9 @@ bool XdsClient::XdsChannel::MaybeFallbackLocked(
511
512
  }
512
513
  GRPC_TRACE_LOG(xds_client, INFO)
513
514
  << "[xds_client " << xds_client_.get() << "] authority " << authority
514
- << ": added fallback server " << xds_servers[i]->server_uri() << " ("
515
- << authority_state.xds_channels.back()->status().ToString() << ")";
515
+ << ": added fallback server " << xds_servers[i]->target()->server_uri()
516
+ << " (" << authority_state.xds_channels.back()->status().ToString()
517
+ << ")";
516
518
  if (authority_state.xds_channels.back()->status().ok()) return true;
517
519
  }
518
520
  GRPC_TRACE_LOG(xds_client, INFO)
@@ -536,7 +538,7 @@ void XdsClient::XdsChannel::SetHealthyLocked() {
536
538
  if (channel_it != channels.end()) {
537
539
  GRPC_TRACE_LOG(xds_client, INFO)
538
540
  << "[xds_client " << xds_client_.get() << "] authority " << authority
539
- << ": Falling forward to " << server_.server_uri();
541
+ << ": Falling forward to " << server_uri();
540
542
  // Lower priority channels are no longer needed, connection is back!
541
543
  // Note that we move the lower priority channels out of the vector
542
544
  // before we unref them, or else
@@ -557,13 +559,13 @@ void XdsClient::XdsChannel::OnConnectivityFailure(absl::Status status) {
557
559
 
558
560
  void XdsClient::XdsChannel::SetChannelStatusLocked(absl::Status status) {
559
561
  if (shutting_down_) return;
560
- status = absl::Status(status.code(), absl::StrCat("xDS channel for server ",
561
- server_.server_uri(), ": ",
562
- status.message()));
562
+ status = absl::Status(
563
+ status.code(), absl::StrCat("xDS channel for server ", server_uri(), ": ",
564
+ status.message()));
563
565
  LOG(INFO) << "[xds_client " << xds_client() << "] " << status;
564
566
  // If status was previously OK, report that the channel has gone unhealthy.
565
567
  if (status_.ok() && xds_client_->metrics_reporter_ != nullptr) {
566
- xds_client_->metrics_reporter_->ReportServerFailure(server_.server_uri());
568
+ xds_client_->metrics_reporter_->ReportServerFailure(server_uri());
567
569
  }
568
570
  // Save status in channel, so that we can immediately generate an
569
571
  // error for any new watchers that may be started.
@@ -643,8 +645,8 @@ void XdsClient::XdsChannel::RetryableCall<T>::StartNewCallLocked() {
643
645
  CHECK(call_ == nullptr);
644
646
  GRPC_TRACE_LOG(xds_client, INFO)
645
647
  << "[xds_client " << xds_channel()->xds_client() << "] xds server "
646
- << xds_channel()->server_.server_uri()
647
- << ": start new call from retryable call " << this;
648
+ << xds_channel()->server_uri() << ": start new call from retryable call "
649
+ << this;
648
650
  call_ = MakeOrphanable<T>(
649
651
  this->Ref(DEBUG_LOCATION, "RetryableCall+start_new_call"));
650
652
  }
@@ -655,7 +657,7 @@ void XdsClient::XdsChannel::RetryableCall<T>::StartRetryTimerLocked() {
655
657
  const Duration delay = backoff_.NextAttemptDelay();
656
658
  GRPC_TRACE_LOG(xds_client, INFO)
657
659
  << "[xds_client " << xds_channel()->xds_client() << "] xds server "
658
- << xds_channel()->server_.server_uri()
660
+ << xds_channel()->server_uri()
659
661
  << ": call attempt failed; retry timer will fire in " << delay.millis()
660
662
  << "ms.";
661
663
  timer_handle_ = xds_channel()->xds_client()->engine()->RunAfter(
@@ -674,7 +676,7 @@ void XdsClient::XdsChannel::RetryableCall<T>::OnRetryTimer() {
674
676
  if (shutting_down_) return;
675
677
  GRPC_TRACE_LOG(xds_client, INFO)
676
678
  << "[xds_client " << xds_channel()->xds_client() << "] xds server "
677
- << xds_channel()->server_.server_uri()
679
+ << xds_channel()->server_uri()
678
680
  << ": retry timer fired (retryable call: " << this << ")";
679
681
  StartNewCallLocked();
680
682
  }
@@ -723,7 +725,7 @@ XdsClient::XdsChannel::AdsCall::AdsCall(
723
725
  // Start the call.
724
726
  GRPC_TRACE_LOG(xds_client, INFO)
725
727
  << "[xds_client " << xds_client() << "] xds server "
726
- << xds_channel()->server_.server_uri()
728
+ << xds_channel()->server_uri()
727
729
  << ": starting ADS call (ads_call: " << this
728
730
  << ", streaming_call: " << streaming_call_.get() << ")";
729
731
  // If this is a reconnect, add any necessary subscriptions from what's
@@ -906,7 +908,7 @@ void XdsClient::XdsChannel::AdsCall::SendMessageLocked(
906
908
  sent_initial_message_ = true;
907
909
  GRPC_TRACE_LOG(xds_client, INFO)
908
910
  << "[xds_client " << xds_client() << "] xds server "
909
- << xds_channel()->server_.server_uri()
911
+ << xds_channel()->server_uri()
910
912
  << ": sending ADS request: type=" << type->type_url()
911
913
  << " version=" << xds_channel()->resource_type_version_map_[type]
912
914
  << " nonce=" << state.nonce << " error=" << state.status;
@@ -1221,7 +1223,7 @@ absl::Status XdsClient::XdsChannel::AdsCall::DecodeAdsResponse(
1221
1223
  }
1222
1224
  GRPC_TRACE_LOG(xds_client, INFO)
1223
1225
  << "[xds_client " << xds_client() << "] xds server "
1224
- << xds_channel()->server_.server_uri()
1226
+ << xds_channel()->server_uri()
1225
1227
  << ": received ADS response: type_url=" << context->type_url
1226
1228
  << ", version=" << context->version << ", nonce=" << context->nonce
1227
1229
  << ", num_resources=" << num_resources << ", num_errors=" << num_errors;
@@ -1306,7 +1308,7 @@ void XdsClient::XdsChannel::AdsCall::OnRecvMessage(absl::string_view payload) {
1306
1308
  if (!status.ok()) {
1307
1309
  // Ignore unparsable response.
1308
1310
  LOG(ERROR) << "[xds_client " << xds_client() << "] xds server "
1309
- << xds_channel()->server_.server_uri()
1311
+ << xds_channel()->server_uri()
1310
1312
  << ": error parsing ADS response (" << status << ") -- ignoring";
1311
1313
  } else {
1312
1314
  seen_response_ = true;
@@ -1320,7 +1322,7 @@ void XdsClient::XdsChannel::AdsCall::OnRecvMessage(absl::string_view payload) {
1320
1322
  absl::StrCat("xDS response validation errors: [",
1321
1323
  absl::StrJoin(context.errors, "; "), "]"));
1322
1324
  LOG(ERROR) << "[xds_client " << xds_client() << "] xds server "
1323
- << xds_channel()->server_.server_uri()
1325
+ << xds_channel()->server_uri()
1324
1326
  << ": ADS response invalid for resource type "
1325
1327
  << context.type_url << " version " << context.version
1326
1328
  << ", will NACK: nonce=" << state.nonce
@@ -1374,7 +1376,7 @@ void XdsClient::XdsChannel::AdsCall::OnRecvMessage(absl::string_view payload) {
1374
1376
  // Update metrics.
1375
1377
  if (xds_client()->metrics_reporter_ != nullptr) {
1376
1378
  xds_client()->metrics_reporter_->ReportResourceUpdates(
1377
- xds_channel()->server_.server_uri(), context.type_url,
1379
+ xds_channel()->server_uri(), context.type_url,
1378
1380
  context.num_valid_resources, context.num_invalid_resources);
1379
1381
  }
1380
1382
  }
@@ -1383,7 +1385,7 @@ void XdsClient::XdsChannel::AdsCall::OnStatusReceived(absl::Status status) {
1383
1385
  MutexLock lock(&xds_client()->mu_);
1384
1386
  GRPC_TRACE_LOG(xds_client, INFO)
1385
1387
  << "[xds_client " << xds_client() << "] xds server "
1386
- << xds_channel()->server_.server_uri()
1388
+ << xds_channel()->server_uri()
1387
1389
  << ": ADS call status received (xds_channel=" << xds_channel()
1388
1390
  << ", ads_call=" << this << ", streaming_call=" << streaming_call_.get()
1389
1391
  << "): " << status;
@@ -213,7 +213,9 @@ class XdsClient : public DualRefCounted<XdsClient> {
213
213
  bool delay_unsubscription)
214
214
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(&XdsClient::mu_);
215
215
 
216
- absl::string_view server_uri() const { return server_.server_uri(); }
216
+ absl::string_view server_uri() const {
217
+ return server_.target()->server_uri();
218
+ }
217
219
 
218
220
  private:
219
221
  class ConnectivityFailureWatcher;
@@ -87,8 +87,7 @@ class XdsResourceType {
87
87
  // properly in logs.
88
88
  // Note: This won't actually work properly until upb adds support for
89
89
  // Any fields in textproto printing (internal b/178821188).
90
- virtual void InitUpbSymtab(XdsClient* xds_client,
91
- upb_DefPool* symtab) const = 0;
90
+ virtual void InitUpbSymtab(XdsClient*, upb_DefPool*) const {}
92
91
  };
93
92
 
94
93
  } // namespace grpc_core
@@ -96,7 +96,7 @@ class XdsTransportFactory : public DualRefCounted<XdsTransportFactory> {
96
96
  // *status will be set if there is an error creating the channel,
97
97
  // although the returned channel must still accept calls (which may fail).
98
98
  virtual RefCountedPtr<XdsTransport> GetTransport(
99
- const XdsBootstrap::XdsServer& server, absl::Status* status) = 0;
99
+ const XdsBootstrap::XdsServerTarget& server, absl::Status* status) = 0;
100
100
  };
101
101
 
102
102
  } // namespace grpc_core
@@ -29,7 +29,7 @@ grpc_root = File.expand_path(File.join(File.dirname(__FILE__), '../../../..'))
29
29
 
30
30
  grpc_config = ENV['GRPC_CONFIG'] || 'opt'
31
31
 
32
- ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.14'
32
+ ENV['MACOSX_DEPLOYMENT_TARGET'] = '11.0'
33
33
 
34
34
  def debug_symbols_output_dir
35
35
  d = ENV['GRPC_RUBY_DEBUG_SYMBOLS_OUTPUT_DIR']
@@ -14,5 +14,5 @@
14
14
 
15
15
  # GRPC contains the General RPC module.
16
16
  module GRPC
17
- VERSION = '1.71.0'
17
+ VERSION = '1.72.0'
18
18
  end
@@ -20,8 +20,6 @@
20
20
  #include <sys/sysctl.h>
21
21
  #include <sys/types.h>
22
22
 
23
- #include <openssl/arm_arch.h>
24
-
25
23
 
26
24
  static int has_hw_feature(const char *name) {
27
25
  int value;
@@ -21,8 +21,6 @@
21
21
  #include <zircon/syscalls.h>
22
22
  #include <zircon/types.h>
23
23
 
24
- #include <openssl/arm_arch.h>
25
-
26
24
 
27
25
  void OPENSSL_cpuid_setup(void) {
28
26
  uint32_t hwcap;
@@ -19,8 +19,6 @@
19
19
 
20
20
  #include <sys/auxv.h>
21
21
 
22
- #include <openssl/arm_arch.h>
23
-
24
22
 
25
23
  void OPENSSL_cpuid_setup(void) {
26
24
  unsigned long hwcap = getauxval(AT_HWCAP);
@@ -21,8 +21,6 @@
21
21
  #include <machine/cpu.h>
22
22
  #include <sys/sysctl.h>
23
23
 
24
- #include <openssl/arm_arch.h>
25
-
26
24
  #include "internal.h"
27
25
 
28
26
 
@@ -21,8 +21,6 @@
21
21
  (defined(ANDROID_BAREMETAL) || defined(OPENSSL_FREEBSD)) && \
22
22
  !defined(OPENSSL_NO_ASM)
23
23
 
24
- #include <openssl/arm_arch.h>
25
-
26
24
  #define ID_AA64PFR0_EL1_ADVSIMD 5
27
25
 
28
26
  #define ID_AA64ISAR0_EL1_AES 1
@@ -20,8 +20,6 @@
20
20
 
21
21
  #include <windows.h>
22
22
 
23
- #include <openssl/arm_arch.h>
24
-
25
23
 
26
24
  void OPENSSL_cpuid_setup(void) {
27
25
  // We do not need to check for the presence of NEON, as Armv8-A always has it
@@ -19,7 +19,6 @@
19
19
  #include <sys/auxv.h>
20
20
  #include <sys/types.h>
21
21
 
22
- #include <openssl/arm_arch.h>
23
22
  #include <openssl/mem.h>
24
23
 
25
24
 
@@ -22,7 +22,6 @@
22
22
  #include <sys/types.h>
23
23
  #include <unistd.h>
24
24
 
25
- #include <openssl/arm_arch.h>
26
25
  #include <openssl/mem.h>
27
26
 
28
27
  #include "cpu_arm_linux.h"
@@ -69,8 +69,6 @@ uint32_t OPENSSL_get_ia32cap(int idx) {
69
69
 
70
70
  #elif defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
71
71
 
72
- #include <openssl/arm_arch.h>
73
-
74
72
  #if defined(OPENSSL_STATIC_ARMCAP)
75
73
 
76
74
  // See ARM ACLE for the definitions of these macros. Note |__ARM_FEATURE_AES|
@@ -15,7 +15,6 @@
15
15
  #ifndef OPENSSL_HEADER_CRYPTO_INTERNAL_H
16
16
  #define OPENSSL_HEADER_CRYPTO_INTERNAL_H
17
17
 
18
- #include <openssl/arm_arch.h>
19
18
  #include <openssl/crypto.h>
20
19
  #include <openssl/ex_data.h>
21
20
  #include <openssl/stack.h>
@@ -1290,8 +1289,26 @@ inline int CRYPTO_is_VPCLMULQDQ_capable(void) {
1290
1289
 
1291
1290
  #if defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
1292
1291
 
1293
- // OPENSSL_armcap_P contains ARM CPU capabilities. From C, this should only be
1294
- // accessed with |OPENSSL_get_armcap|.
1292
+ // ARMV7_NEON indicates support for NEON.
1293
+ #define ARMV7_NEON (1 << 0)
1294
+
1295
+ // ARMV8_AES indicates support for hardware AES instructions.
1296
+ #define ARMV8_AES (1 << 2)
1297
+
1298
+ // ARMV8_SHA1 indicates support for hardware SHA-1 instructions.
1299
+ #define ARMV8_SHA1 (1 << 3)
1300
+
1301
+ // ARMV8_SHA256 indicates support for hardware SHA-256 instructions.
1302
+ #define ARMV8_SHA256 (1 << 4)
1303
+
1304
+ // ARMV8_PMULL indicates support for carryless multiplication.
1305
+ #define ARMV8_PMULL (1 << 5)
1306
+
1307
+ // ARMV8_SHA512 indicates support for hardware SHA-512 instructions.
1308
+ #define ARMV8_SHA512 (1 << 6)
1309
+
1310
+ // OPENSSL_armcap_P contains ARM CPU capabilities as a bitmask of the above
1311
+ // constants. This should only be accessed with |OPENSSL_get_armcap|.
1295
1312
  extern uint32_t OPENSSL_armcap_P;
1296
1313
 
1297
1314
  // OPENSSL_get_armcap initializes the library if needed and returns ARM CPU
@@ -17,30 +17,8 @@
17
17
 
18
18
  #include <openssl/target.h>
19
19
 
20
- // arm_arch.h contains symbols used by ARM assembly, and the C code that calls
21
- // it. It is included as a public header to simplify the build, but is not
22
- // intended for external use.
23
-
24
- #if defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
25
-
26
- // ARMV7_NEON is true when a NEON unit is present in the current CPU.
27
- #define ARMV7_NEON (1 << 0)
28
-
29
- // ARMV8_AES indicates support for hardware AES instructions.
30
- #define ARMV8_AES (1 << 2)
31
-
32
- // ARMV8_SHA1 indicates support for hardware SHA-1 instructions.
33
- #define ARMV8_SHA1 (1 << 3)
34
-
35
- // ARMV8_SHA256 indicates support for hardware SHA-256 instructions.
36
- #define ARMV8_SHA256 (1 << 4)
37
-
38
- // ARMV8_PMULL indicates support for carryless multiplication.
39
- #define ARMV8_PMULL (1 << 5)
40
-
41
- // ARMV8_SHA512 indicates support for hardware SHA-512 instructions.
42
- #define ARMV8_SHA512 (1 << 6)
43
-
44
- #endif // ARM || AARCH64
20
+ // This header historically defined constants used by Arm assembly, which was
21
+ // exposed publicly to simplify the build. This is no longer needed, but we
22
+ // retain the header for compatibility.
45
23
 
46
24
  #endif // OPENSSL_HEADER_ARM_ARCH_H
@@ -2879,12 +2879,8 @@ bool ssl_setup_pake_shares(SSL_HANDSHAKE *hs) {
2879
2879
  return true;
2880
2880
  }
2881
2881
 
2882
- Array<SSL_CREDENTIAL *> creds;
2883
- if (!ssl_get_credential_list(hs, &creds)) {
2884
- return false;
2885
- }
2886
-
2887
- if (std::none_of(creds.begin(), creds.end(), [](SSL_CREDENTIAL *cred) {
2882
+ const auto &creds = hs->config->cert->credentials;
2883
+ if (std::none_of(creds.begin(), creds.end(), [](const auto &cred) {
2888
2884
  return cred->type == SSLCredentialType::kSPAKE2PlusV1Client;
2889
2885
  })) {
2890
2886
  // If there were no configured PAKE credentials, proceed without filling
@@ -2898,7 +2894,7 @@ bool ssl_setup_pake_shares(SSL_HANDSHAKE *hs) {
2898
2894
  OPENSSL_PUT_ERROR(SSL, SSL_R_UNSUPPORTED_CREDENTIAL_LIST);
2899
2895
  return false;
2900
2896
  }
2901
- SSL_CREDENTIAL *cred = creds[0];
2897
+ SSL_CREDENTIAL *cred = creds[0].get();
2902
2898
  assert(cred->type == SSLCredentialType::kSPAKE2PlusV1Client);
2903
2899
 
2904
2900
  hs->pake_prover = MakeUnique<spake2plus::Prover>();
@@ -1301,7 +1301,7 @@ static enum ssl_hs_wait_t do_send_client_certificate(SSL_HANDSHAKE *hs) {
1301
1301
  }
1302
1302
 
1303
1303
  Array<SSL_CREDENTIAL *> creds;
1304
- if (!ssl_get_credential_list(hs, &creds)) {
1304
+ if (!ssl_get_full_credential_list(hs, &creds)) {
1305
1305
  return ssl_hs_error;
1306
1306
  }
1307
1307
 
@@ -736,7 +736,7 @@ static enum ssl_hs_wait_t do_select_parameters(SSL_HANDSHAKE *hs) {
736
736
  return ssl_hs_error;
737
737
  }
738
738
  Array<SSL_CREDENTIAL *> creds;
739
- if (!ssl_get_credential_list(hs, &creds)) {
739
+ if (!ssl_get_full_credential_list(hs, &creds)) {
740
740
  return ssl_hs_error;
741
741
  }
742
742
  TLS12ServerParams params;
@@ -1956,13 +1956,20 @@ struct ssl_credential_st : public bssl::RefCounted<ssl_credential_st> {
1956
1956
 
1957
1957
  BSSL_NAMESPACE_BEGIN
1958
1958
 
1959
- // ssl_get_credential_list computes |hs|'s credential list. On success, it
1960
- // writes it to |*out| and returns true. Otherwise, it returns false. The
1961
- // credential list may be empty, in which case this function will successfully
1962
- // return an empty array.
1959
+ // ssl_get_full_credential_list computes |hs|'s full credential list, including
1960
+ // the legacy credential. On success, it writes it to |*out| and returns true.
1961
+ // Otherwise, it returns false. The credential list may be empty, in which case
1962
+ // this function will successfully output an empty array.
1963
+ //
1964
+ // This function should be called at most once during the handshake and is
1965
+ // intended to be used for certificate-based credentials. It runs the
1966
+ // auto-chaining logic as part of finishing the legacy credential. Other uses of
1967
+ // the credential list (e.g. PAKE credentials) should iterate over
1968
+ // |hs->config->cert->credentials|.
1963
1969
  //
1964
1970
  // The pointers in the result are only valid until |hs| is next mutated.
1965
- bool ssl_get_credential_list(SSL_HANDSHAKE *hs, Array<SSL_CREDENTIAL *> *out);
1971
+ bool ssl_get_full_credential_list(SSL_HANDSHAKE *hs,
1972
+ Array<SSL_CREDENTIAL *> *out);
1966
1973
 
1967
1974
  // ssl_credential_matches_requested_issuers returns true if |cred| is a
1968
1975
  // usable match for any requested issuers in |hs|, and false with an error
@@ -4524,7 +4531,7 @@ struct ssl_session_st : public bssl::RefCounted<ssl_session_st> {
4524
4531
  // original_handshake_hash contains the handshake hash (either SHA-1+MD5 or
4525
4532
  // SHA-2, depending on TLS version) for the original, full handshake that
4526
4533
  // created a session. This is used by Channel IDs during resumption.
4527
- bssl::InplaceVector<uint8_t, EVP_MAX_MD_SIZE> original_handshake_hash;
4534
+ bssl::InplaceVector<uint8_t, SSL_MAX_MD_SIZE> original_handshake_hash;
4528
4535
 
4529
4536
  uint32_t ticket_lifetime_hint = 0; // Session lifetime hint in seconds
4530
4537
 
@@ -35,7 +35,8 @@ static UniquePtr<STACK_OF(CRYPTO_BUFFER)> new_leafless_chain(void) {
35
35
  return chain;
36
36
  }
37
37
 
38
- bool ssl_get_credential_list(SSL_HANDSHAKE *hs, Array<SSL_CREDENTIAL *> *out) {
38
+ bool ssl_get_full_credential_list(SSL_HANDSHAKE *hs,
39
+ Array<SSL_CREDENTIAL *> *out) {
39
40
  CERT *cert = hs->config->cert.get();
40
41
  // Finish filling in the legacy credential if needed.
41
42
  if (!cert->x509_method->ssl_auto_chain_if_needed(hs)) {
@@ -935,7 +935,7 @@ static enum ssl_hs_wait_t do_send_client_certificate(SSL_HANDSHAKE *hs) {
935
935
  }
936
936
 
937
937
  Array<SSL_CREDENTIAL *> creds;
938
- if (!ssl_get_credential_list(hs, &creds)) {
938
+ if (!ssl_get_full_credential_list(hs, &creds)) {
939
939
  return ssl_hs_error;
940
940
  }
941
941
 
@@ -318,7 +318,7 @@ static enum ssl_hs_wait_t do_select_parameters(SSL_HANDSHAKE *hs) {
318
318
  }
319
319
 
320
320
  Array<SSL_CREDENTIAL *> creds;
321
- if (!ssl_get_credential_list(hs, &creds)) {
321
+ if (!ssl_get_full_credential_list(hs, &creds)) {
322
322
  return ssl_hs_error;
323
323
  }
324
324
  if (creds.empty()) {
@@ -27,7 +27,9 @@ UPB_INLINE int upb_Log2Ceiling(int x) {
27
27
  #endif
28
28
  }
29
29
 
30
- UPB_INLINE int upb_Log2CeilingSize(int x) { return 1 << upb_Log2Ceiling(x); }
30
+ UPB_INLINE int upb_RoundUpToPowerOfTwo(int x) {
31
+ return 1 << upb_Log2Ceiling(x);
32
+ }
31
33
 
32
34
  #ifdef __cplusplus
33
35
  } /* extern "C" */
@@ -45,6 +45,16 @@ UPB_INLINE bool upb_StringView_IsEqual(upb_StringView a, upb_StringView b) {
45
45
  return (a.size == b.size) && (!a.size || !memcmp(a.data, b.data, a.size));
46
46
  }
47
47
 
48
+ // Compares StringViews following strcmp rules.
49
+ // Please note this comparison is neither unicode nor locale aware.
50
+ UPB_INLINE int upb_StringView_Compare(upb_StringView a, upb_StringView b) {
51
+ int result = memcmp(a.data, b.data, UPB_MIN(a.size, b.size));
52
+ if (result == 0) {
53
+ return a.size - b.size;
54
+ }
55
+ return result;
56
+ }
57
+
48
58
  // LINT.ThenChange(
49
59
  // GoogleInternalName1,
50
60
  // //depot/google3/third_party/upb/bits/golang/accessor.go:map_go_string,
@@ -402,8 +402,12 @@ uint32_t _upb_Hash(const void* p, size_t n, uint64_t seed) {
402
402
  return Wyhash(p, n, seed, kWyhashSalt);
403
403
  }
404
404
 
405
+ // Returns a seed for upb's hash function. For now this is just a hard-coded
406
+ // constant, but we are going to randomize it soon.
407
+ static uint64_t _upb_Seed(void) { return 0x69835f69597ec1cc; }
408
+
405
409
  static uint32_t _upb_Hash_NoSeed(const char* p, size_t n) {
406
- return _upb_Hash(p, n, 0);
410
+ return _upb_Hash(p, n, _upb_Seed());
407
411
  }
408
412
 
409
413
  static uint32_t strhash(upb_tabkey key) {
@@ -674,7 +674,7 @@ static int64_t jsondec_strtoint64(jsondec* d, upb_StringView str) {
674
674
  static void jsondec_checkempty(jsondec* d, upb_StringView str,
675
675
  const upb_FieldDef* f) {
676
676
  if (str.size != 0) return;
677
- d->result = kUpb_JsonDecodeResult_OkWithEmptyStringNumerics;
677
+ d->result = kUpb_JsonDecodeResult_Error;
678
678
  upb_Status_SetErrorFormat(d->status,
679
679
  "Empty string is not a valid number (field: %s). "
680
680
  "This will be an error in a future version.",
@@ -782,7 +782,7 @@ static upb_MessageValue jsondec_double(jsondec* d, const upb_FieldDef* f) {
782
782
  char* end;
783
783
  val.double_val = strtod(str.data, &end);
784
784
  if (end != str.data + str.size) {
785
- d->result = kUpb_JsonDecodeResult_OkWithEmptyStringNumerics;
785
+ d->result = kUpb_JsonDecodeResult_Error;
786
786
  upb_Status_SetErrorFormat(
787
787
  d->status,
788
788
  "Non-number characters in quoted number (field: %s). "
@@ -26,7 +26,6 @@ enum { upb_JsonDecode_IgnoreUnknown = 1 };
26
26
 
27
27
  enum {
28
28
  kUpb_JsonDecodeResult_Ok = 0,
29
- kUpb_JsonDecodeResult_OkWithEmptyStringNumerics = 1,
30
29
  kUpb_JsonDecodeResult_Error = 2,
31
30
  };
32
31
 
@@ -50,6 +50,11 @@ UPB_INLINE void upb_free(upb_alloc* alloc, void* ptr) {
50
50
  alloc->func(alloc, ptr, 0, 0);
51
51
  }
52
52
 
53
+ UPB_INLINE void upb_free_sized(upb_alloc* alloc, void* ptr, size_t size) {
54
+ UPB_ASSERT(alloc);
55
+ alloc->func(alloc, ptr, size, 0);
56
+ }
57
+
53
58
  // The global allocator used by upb. Uses the standard malloc()/free().
54
59
 
55
60
  extern upb_alloc upb_alloc_global;