grpc 1.32.0 → 1.36.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (1031) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1086 -3054
  3. data/etc/roots.pem +257 -573
  4. data/include/grpc/compression.h +1 -1
  5. data/include/grpc/grpc.h +15 -7
  6. data/include/grpc/grpc_security.h +227 -171
  7. data/include/grpc/impl/codegen/atm_windows.h +4 -0
  8. data/include/grpc/impl/codegen/byte_buffer.h +1 -1
  9. data/include/grpc/impl/codegen/grpc_types.h +10 -8
  10. data/include/grpc/impl/codegen/log.h +0 -2
  11. data/include/grpc/impl/codegen/port_platform.h +22 -55
  12. data/include/grpc/impl/codegen/sync_windows.h +4 -0
  13. data/include/grpc/slice_buffer.h +3 -3
  14. data/include/grpc/support/sync.h +3 -3
  15. data/include/grpc/support/time.h +7 -7
  16. data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
  17. data/src/core/ext/filters/client_channel/client_channel.cc +2788 -1535
  18. data/src/core/ext/filters/client_channel/client_channel.h +0 -6
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  20. data/src/core/ext/filters/client_channel/config_selector.cc +0 -4
  21. data/src/core/ext/filters/client_channel/config_selector.h +40 -8
  22. data/src/core/ext/filters/client_channel/dynamic_filters.cc +186 -0
  23. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  24. data/src/core/ext/filters/client_channel/health/health_check_client.cc +10 -7
  25. data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -4
  26. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +7 -8
  27. data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
  28. data/src/core/ext/filters/client_channel/lb_policy.cc +6 -2
  29. data/src/core/ext/filters/client_channel/lb_policy.h +6 -7
  30. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +48 -35
  31. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
  32. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +4 -3
  33. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +204 -195
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
  38. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
  39. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  40. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
  41. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +58 -26
  42. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +5 -5
  43. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +14 -34
  44. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +6 -6
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +478 -145
  46. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +52 -24
  47. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
  48. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +810 -0
  49. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +722 -0
  50. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1384 -0
  51. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
  52. data/src/core/ext/filters/client_channel/resolver.cc +4 -5
  53. data/src/core/ext/filters/client_channel/resolver.h +5 -13
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +43 -59
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +3 -3
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +443 -17
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
  59. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +22 -23
  60. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +21 -18
  61. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
  62. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +362 -0
  63. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +37 -30
  64. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +566 -366
  65. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +28 -0
  66. data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
  67. data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
  68. data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
  69. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +29 -74
  70. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +12 -10
  71. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
  72. data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
  73. data/src/core/ext/filters/client_channel/server_address.cc +86 -0
  74. data/src/core/ext/filters/client_channel/server_address.h +52 -36
  75. data/src/core/ext/filters/client_channel/service_config.cc +18 -13
  76. data/src/core/ext/filters/client_channel/service_config.h +8 -5
  77. data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
  78. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -2
  79. data/src/core/ext/filters/client_channel/service_config_parser.cc +8 -6
  80. data/src/core/ext/filters/client_channel/service_config_parser.h +8 -5
  81. data/src/core/ext/filters/client_channel/subchannel.cc +53 -66
  82. data/src/core/ext/filters/client_channel/subchannel.h +14 -20
  83. data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
  84. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -2
  85. data/src/core/ext/filters/deadline/deadline_filter.cc +87 -79
  86. data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
  87. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
  88. data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
  89. data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
  90. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
  91. data/src/core/ext/filters/max_age/max_age_filter.cc +36 -33
  92. data/src/core/ext/filters/message_size/message_size_filter.cc +3 -2
  93. data/src/core/ext/filters/message_size/message_size_filter.h +2 -1
  94. data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
  95. data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
  96. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
  97. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +1 -1
  98. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +20 -8
  99. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
  100. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +26 -14
  101. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +226 -95
  102. data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
  103. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +11 -1
  104. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -5
  105. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +62 -18
  106. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
  107. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +28 -42
  108. data/src/core/ext/transport/chttp2/transport/flow_control.cc +10 -2
  109. data/src/core/ext/transport/chttp2/transport/flow_control.h +13 -3
  110. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  111. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
  112. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
  113. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
  114. data/src/core/ext/transport/chttp2/transport/internal.h +5 -1
  115. data/src/core/ext/transport/chttp2/transport/parsing.cc +18 -3
  116. data/src/core/ext/transport/chttp2/transport/writing.cc +2 -3
  117. data/src/core/ext/transport/inproc/inproc_transport.cc +42 -8
  118. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
  119. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  120. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  121. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +52 -33
  122. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +199 -34
  123. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +13 -13
  124. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +44 -17
  125. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +171 -98
  126. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +625 -202
  127. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
  128. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +13 -5
  129. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +24 -23
  130. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +62 -21
  131. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +36 -24
  132. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +133 -39
  133. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
  134. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +15 -6
  135. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +70 -45
  136. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +275 -78
  137. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +31 -24
  138. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +107 -47
  139. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
  140. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +7 -0
  141. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
  142. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +149 -0
  143. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +74 -28
  144. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +248 -43
  145. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +41 -41
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +172 -89
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +17 -9
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +63 -39
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +254 -60
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -2
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +7 -0
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +2 -2
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +9 -2
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +42 -0
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +126 -0
  157. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +13 -14
  158. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +59 -36
  159. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +16 -16
  160. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +61 -29
  161. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +26 -26
  162. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +101 -66
  163. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
  164. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -3
  165. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +49 -27
  166. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +204 -48
  167. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +47 -26
  168. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +181 -48
  169. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +2 -3
  170. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +13 -0
  171. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -17
  172. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +96 -33
  173. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +15 -13
  174. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +70 -37
  175. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +352 -199
  176. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +1334 -443
  177. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +8 -7
  178. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +34 -10
  179. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +3 -4
  180. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +17 -3
  181. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
  182. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +67 -0
  183. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +129 -80
  184. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +525 -166
  185. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -1
  186. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -0
  187. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +26 -24
  188. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +121 -64
  189. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +7 -6
  190. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +29 -8
  191. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +70 -29
  192. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +296 -63
  193. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +1 -1
  194. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +7 -0
  195. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
  196. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +7 -0
  197. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +51 -34
  198. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +188 -75
  199. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +1 -4
  200. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +7 -0
  201. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +1 -4
  202. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +7 -0
  203. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +7 -8
  204. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +31 -16
  205. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +1 -3
  206. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +7 -0
  207. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +1 -1
  208. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +7 -0
  209. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +5 -5
  210. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -11
  211. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
  212. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +7 -0
  213. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
  214. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +7 -0
  215. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +6 -6
  216. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +29 -8
  217. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +4 -4
  218. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +22 -3
  219. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
  220. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +19 -0
  221. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
  222. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +46 -3
  223. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +8 -8
  224. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +41 -8
  225. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -0
  226. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +3 -3
  227. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +15 -2
  228. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +3 -3
  229. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +19 -0
  230. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
  231. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +7 -0
  232. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
  233. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
  234. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +830 -0
  235. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +54 -37
  236. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +171 -59
  237. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  238. data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
  239. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  240. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
  241. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +90 -90
  242. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
  243. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  244. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
  245. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  246. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
  247. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
  248. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +22 -3
  249. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  250. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
  251. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
  252. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
  253. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  254. data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
  255. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
  256. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
  257. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
  258. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
  259. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
  260. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
  261. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  262. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +13 -0
  263. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
  264. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
  265. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  266. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
  267. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -0
  268. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +64 -0
  269. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
  270. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
  271. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
  272. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
  273. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
  274. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
  275. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
  276. data/src/core/ext/upb-generated/validate/validate.upb.c +64 -64
  277. data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
  278. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +28 -0
  279. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -0
  280. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
  281. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +143 -0
  282. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
  283. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +84 -0
  284. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +36 -0
  285. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -0
  286. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
  287. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +166 -0
  288. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
  289. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +85 -0
  290. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
  291. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  292. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
  293. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  294. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +251 -0
  295. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  296. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
  297. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  298. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +543 -0
  299. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
  300. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
  301. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  302. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +136 -0
  303. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  304. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
  305. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  306. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
  307. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  308. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +272 -0
  309. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +135 -0
  310. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
  311. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
  312. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
  313. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  314. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
  315. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
  316. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
  317. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  318. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
  319. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
  320. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
  321. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  322. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +228 -0
  323. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +80 -0
  324. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +43 -0
  325. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  326. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
  327. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  328. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +68 -0
  329. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  330. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +107 -0
  331. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  332. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
  333. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
  334. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
  335. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  336. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
  337. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  338. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +195 -0
  339. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
  340. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +193 -0
  341. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  342. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +59 -0
  343. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  344. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +101 -0
  345. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
  346. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +938 -0
  347. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +285 -0
  348. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
  349. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  350. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +61 -0
  351. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  352. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
  353. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
  354. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +504 -0
  355. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
  356. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +44 -0
  357. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  358. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +170 -0
  359. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
  360. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +97 -0
  361. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  362. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +246 -0
  363. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
  364. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
  365. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
  366. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
  367. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  368. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +142 -0
  369. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +65 -0
  370. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +73 -0
  371. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
  372. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +72 -0
  373. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
  374. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +80 -0
  375. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  376. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +80 -0
  377. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
  378. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
  379. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
  380. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
  381. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  382. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
  383. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  384. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
  385. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  386. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
  387. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  388. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +69 -0
  389. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  390. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
  391. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  392. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
  393. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  394. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
  395. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  396. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
  397. data/src/core/ext/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -9
  398. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
  399. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  400. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
  401. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  402. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
  403. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  404. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  405. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  406. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
  407. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  408. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +39 -0
  409. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  410. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
  411. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  412. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +40 -0
  413. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  414. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
  415. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  416. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
  417. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  418. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +40 -0
  419. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  420. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
  421. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  422. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
  423. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  424. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
  425. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  426. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
  427. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  428. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
  429. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  430. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
  431. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  432. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
  433. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  434. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +310 -0
  435. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  436. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -0
  437. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
  438. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +62 -0
  439. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
  440. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +45 -0
  441. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
  442. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +49 -0
  443. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
  444. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +67 -0
  445. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
  446. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +50 -0
  447. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
  448. data/src/core/ext/xds/certificate_provider_factory.h +61 -0
  449. data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
  450. data/src/core/ext/xds/certificate_provider_registry.h +57 -0
  451. data/src/core/ext/xds/certificate_provider_store.cc +87 -0
  452. data/src/core/ext/xds/certificate_provider_store.h +112 -0
  453. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
  454. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
  455. data/src/core/ext/xds/xds_api.cc +1149 -1058
  456. data/src/core/ext/xds/xds_api.h +215 -144
  457. data/src/core/ext/xds/xds_bootstrap.cc +228 -62
  458. data/src/core/ext/xds/xds_bootstrap.h +35 -12
  459. data/src/core/ext/xds/xds_certificate_provider.cc +405 -0
  460. data/src/core/ext/xds/xds_certificate_provider.h +151 -0
  461. data/src/core/ext/xds/xds_channel_args.h +6 -3
  462. data/src/core/ext/xds/xds_client.cc +620 -495
  463. data/src/core/ext/xds/xds_client.h +121 -58
  464. data/src/core/ext/xds/xds_client_stats.cc +61 -17
  465. data/src/core/ext/xds/xds_client_stats.h +35 -7
  466. data/src/core/ext/xds/xds_server_config_fetcher.cc +267 -0
  467. data/src/core/lib/channel/channel_args.cc +9 -8
  468. data/src/core/lib/channel/channel_args.h +0 -1
  469. data/src/core/lib/channel/channel_trace.cc +4 -2
  470. data/src/core/lib/channel/channel_trace.h +1 -1
  471. data/src/core/lib/channel/channelz.cc +23 -59
  472. data/src/core/lib/channel/channelz.h +13 -22
  473. data/src/core/lib/channel/channelz_registry.cc +12 -11
  474. data/src/core/lib/channel/channelz_registry.h +3 -1
  475. data/src/core/lib/channel/handshaker.cc +4 -7
  476. data/src/core/lib/channel/handshaker.h +3 -3
  477. data/src/core/lib/compression/compression.cc +8 -4
  478. data/src/core/lib/compression/compression_args.cc +3 -2
  479. data/src/core/lib/compression/compression_internal.cc +10 -5
  480. data/src/core/lib/compression/compression_internal.h +2 -1
  481. data/src/core/lib/compression/stream_compression_identity.cc +1 -3
  482. data/src/core/lib/debug/stats.h +2 -2
  483. data/src/core/lib/debug/stats_data.cc +1 -0
  484. data/src/core/lib/debug/stats_data.h +13 -13
  485. data/src/core/lib/gpr/alloc.cc +3 -2
  486. data/src/core/lib/gpr/cpu_iphone.cc +10 -2
  487. data/src/core/lib/gpr/log.cc +59 -17
  488. data/src/core/lib/gpr/log_linux.cc +19 -3
  489. data/src/core/lib/gpr/log_posix.cc +15 -1
  490. data/src/core/lib/gpr/log_windows.cc +18 -4
  491. data/src/core/lib/gpr/murmur_hash.cc +1 -1
  492. data/src/core/lib/gpr/spinlock.h +10 -2
  493. data/src/core/lib/gpr/string.cc +23 -22
  494. data/src/core/lib/gpr/string.h +5 -6
  495. data/src/core/lib/gpr/sync.cc +4 -4
  496. data/src/core/lib/gpr/time.cc +12 -12
  497. data/src/core/lib/gpr/time_precise.cc +5 -2
  498. data/src/core/lib/gpr/time_precise.h +6 -2
  499. data/src/core/lib/gpr/tls.h +4 -0
  500. data/src/core/lib/gpr/tls_msvc.h +2 -0
  501. data/src/core/lib/gpr/tls_stdcpp.h +48 -0
  502. data/src/core/lib/gpr/useful.h +5 -4
  503. data/src/core/lib/gprpp/arena.h +3 -2
  504. data/src/core/lib/gprpp/dual_ref_counted.h +331 -0
  505. data/src/core/lib/gprpp/examine_stack.cc +43 -0
  506. data/src/core/lib/gprpp/examine_stack.h +46 -0
  507. data/src/core/lib/gprpp/fork.cc +2 -2
  508. data/src/core/lib/gprpp/manual_constructor.h +1 -1
  509. data/src/core/lib/gprpp/mpscq.cc +2 -2
  510. data/src/core/lib/gprpp/orphanable.h +4 -8
  511. data/src/core/lib/gprpp/ref_counted.h +91 -68
  512. data/src/core/lib/gprpp/ref_counted_ptr.h +166 -7
  513. data/src/core/lib/{security/authorization/mock_cel/statusor.h → gprpp/stat.h} +13 -25
  514. data/src/core/lib/gprpp/stat_posix.cc +49 -0
  515. data/src/core/lib/gprpp/stat_windows.cc +48 -0
  516. data/src/core/lib/gprpp/sync.h +129 -40
  517. data/src/core/lib/gprpp/thd.h +2 -2
  518. data/src/core/lib/gprpp/thd_posix.cc +42 -37
  519. data/src/core/lib/gprpp/thd_windows.cc +3 -1
  520. data/src/core/lib/gprpp/time_util.cc +77 -0
  521. data/src/core/lib/gprpp/time_util.h +42 -0
  522. data/src/core/lib/http/httpcli.cc +1 -1
  523. data/src/core/lib/http/httpcli.h +2 -3
  524. data/src/core/lib/http/httpcli_security_connector.cc +3 -3
  525. data/src/core/lib/http/parser.cc +47 -27
  526. data/src/core/lib/iomgr/call_combiner.cc +8 -5
  527. data/src/core/lib/iomgr/combiner.cc +2 -1
  528. data/src/core/lib/iomgr/endpoint.h +1 -1
  529. data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -5
  530. data/src/core/lib/iomgr/error.cc +17 -12
  531. data/src/core/lib/iomgr/error_internal.h +1 -1
  532. data/src/core/lib/iomgr/ev_apple.cc +10 -7
  533. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -13
  534. data/src/core/lib/iomgr/ev_epollex_linux.cc +29 -21
  535. data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
  536. data/src/core/lib/iomgr/exec_ctx.cc +1 -1
  537. data/src/core/lib/iomgr/exec_ctx.h +16 -12
  538. data/src/core/lib/iomgr/executor.cc +2 -1
  539. data/src/core/lib/iomgr/executor.h +1 -1
  540. data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
  541. data/src/core/lib/iomgr/executor/threadpool.h +4 -4
  542. data/src/core/lib/iomgr/iomgr.cc +1 -1
  543. data/src/core/lib/iomgr/iomgr_posix.cc +0 -1
  544. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -1
  545. data/src/core/lib/iomgr/load_file.h +1 -1
  546. data/src/core/lib/iomgr/lockfree_event.cc +19 -14
  547. data/src/core/lib/iomgr/lockfree_event.h +2 -2
  548. data/src/core/lib/iomgr/parse_address.cc +127 -43
  549. data/src/core/lib/iomgr/parse_address.h +32 -8
  550. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +2 -1
  551. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +1 -1
  552. data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
  553. data/src/core/lib/iomgr/python_util.h +4 -4
  554. data/src/core/lib/iomgr/resolve_address.cc +4 -4
  555. data/src/core/lib/iomgr/resolve_address_posix.cc +1 -5
  556. data/src/core/lib/iomgr/resource_quota.cc +4 -4
  557. data/src/core/lib/iomgr/sockaddr_utils.cc +11 -11
  558. data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
  559. data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
  560. data/src/core/lib/iomgr/socket_mutator.cc +3 -2
  561. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
  562. data/src/core/lib/iomgr/tcp_client.cc +3 -3
  563. data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
  564. data/src/core/lib/iomgr/tcp_client_posix.cc +1 -1
  565. data/src/core/lib/iomgr/tcp_custom.cc +22 -17
  566. data/src/core/lib/iomgr/tcp_posix.cc +16 -12
  567. data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
  568. data/src/core/lib/iomgr/timer_custom.cc +5 -5
  569. data/src/core/lib/iomgr/timer_generic.cc +3 -3
  570. data/src/core/lib/iomgr/timer_manager.cc +2 -2
  571. data/src/core/lib/iomgr/udp_server.cc +1 -2
  572. data/src/core/lib/iomgr/udp_server.h +1 -2
  573. data/src/core/lib/iomgr/unix_sockets_posix.cc +32 -21
  574. data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
  575. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
  576. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
  577. data/src/core/lib/json/json.h +12 -2
  578. data/src/core/lib/json/json_reader.cc +8 -4
  579. data/src/core/lib/json/json_util.cc +58 -0
  580. data/src/core/lib/json/json_util.h +204 -0
  581. data/src/core/lib/json/json_writer.cc +2 -1
  582. data/src/core/lib/security/authorization/evaluate_args.cc +5 -10
  583. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  584. data/src/core/lib/security/authorization/matchers.cc +339 -0
  585. data/src/core/lib/security/authorization/matchers.h +158 -0
  586. data/src/core/lib/security/authorization/mock_cel/activation.h +1 -1
  587. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +3 -1
  588. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +5 -4
  589. data/src/core/lib/security/authorization/mock_cel/cel_value.h +13 -7
  590. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +6 -6
  591. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +10 -9
  592. data/src/core/lib/security/context/security_context.cc +4 -3
  593. data/src/core/lib/security/context/security_context.h +3 -1
  594. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
  595. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  596. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  597. data/src/core/lib/security/credentials/credentials.cc +7 -7
  598. data/src/core/lib/security/credentials/credentials.h +5 -4
  599. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
  600. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
  601. data/src/core/lib/security/credentials/external/aws_request_signer.cc +213 -0
  602. data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
  603. data/src/core/lib/security/credentials/external/external_account_credentials.cc +497 -0
  604. data/src/core/lib/security/credentials/external/external_account_credentials.h +120 -0
  605. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +135 -0
  606. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +48 -0
  607. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +213 -0
  608. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +58 -0
  609. data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -2
  610. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +25 -18
  611. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
  612. data/src/core/lib/security/credentials/jwt/json_token.cc +3 -3
  613. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
  614. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -4
  615. data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
  616. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  617. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +39 -46
  618. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
  619. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
  620. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +7 -6
  621. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +2 -2
  622. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +346 -0
  623. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +213 -0
  624. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +399 -0
  625. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +138 -0
  626. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +78 -150
  627. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +57 -187
  628. data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -13
  629. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -3
  630. data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
  631. data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
  632. data/src/core/lib/security/credentials/xds/xds_credentials.cc +244 -0
  633. data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
  634. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
  635. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -13
  636. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
  637. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +87 -0
  638. data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
  639. data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
  640. data/src/core/lib/security/security_connector/local/local_security_connector.cc +3 -3
  641. data/src/core/lib/security/security_connector/security_connector.cc +4 -3
  642. data/src/core/lib/security/security_connector/security_connector.h +4 -2
  643. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
  644. data/src/core/lib/security/security_connector/ssl_utils.cc +5 -2
  645. data/src/core/lib/security/security_connector/ssl_utils.h +19 -19
  646. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +354 -279
  647. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +105 -61
  648. data/src/core/lib/security/transport/secure_endpoint.cc +2 -2
  649. data/src/core/lib/security/transport/security_handshaker.cc +4 -6
  650. data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
  651. data/src/core/lib/security/util/json_util.h +1 -0
  652. data/src/core/lib/slice/slice.cc +7 -4
  653. data/src/core/lib/slice/slice_buffer.cc +2 -1
  654. data/src/core/lib/slice/slice_intern.cc +7 -8
  655. data/src/core/lib/slice/slice_internal.h +2 -2
  656. data/src/core/lib/surface/call.cc +41 -32
  657. data/src/core/lib/surface/call_details.cc +8 -8
  658. data/src/core/lib/surface/channel.cc +25 -41
  659. data/src/core/lib/surface/channel.h +9 -3
  660. data/src/core/lib/surface/channel_init.cc +1 -1
  661. data/src/core/lib/surface/completion_queue.cc +30 -24
  662. data/src/core/lib/surface/completion_queue.h +16 -16
  663. data/src/core/lib/surface/init.cc +45 -29
  664. data/src/core/lib/surface/lame_client.cc +20 -46
  665. data/src/core/lib/surface/lame_client.h +4 -0
  666. data/src/core/lib/surface/server.cc +66 -20
  667. data/src/core/lib/surface/server.h +42 -7
  668. data/src/core/lib/surface/validate_metadata.h +3 -0
  669. data/src/core/lib/surface/version.cc +2 -2
  670. data/src/core/lib/transport/authority_override.cc +6 -4
  671. data/src/core/lib/transport/authority_override.h +7 -2
  672. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  673. data/src/core/lib/transport/bdp_estimator.h +2 -1
  674. data/src/core/lib/transport/byte_stream.h +3 -3
  675. data/src/core/lib/transport/connectivity_state.h +11 -9
  676. data/src/core/lib/transport/error_utils.h +1 -1
  677. data/src/core/lib/transport/metadata.cc +16 -2
  678. data/src/core/lib/transport/metadata.h +2 -2
  679. data/src/core/lib/transport/metadata_batch.h +4 -4
  680. data/src/core/lib/transport/static_metadata.cc +1 -1
  681. data/src/core/lib/transport/status_metadata.cc +4 -3
  682. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  683. data/src/core/lib/transport/transport.cc +5 -3
  684. data/src/core/lib/transport/transport.h +8 -8
  685. data/src/core/lib/uri/uri_parser.cc +131 -249
  686. data/src/core/lib/uri/uri_parser.h +57 -21
  687. data/src/core/plugin_registry/grpc_plugin_registry.cc +47 -20
  688. data/src/core/tsi/alts/crypt/gsec.cc +5 -4
  689. data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
  690. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +18 -21
  691. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +43 -47
  692. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
  693. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
  694. data/src/core/tsi/fake_transport_security.cc +7 -4
  695. data/src/core/tsi/local_transport_security.cc +5 -1
  696. data/src/core/tsi/local_transport_security.h +6 -7
  697. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  698. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
  699. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -2
  700. data/src/core/tsi/ssl_transport_security.cc +75 -58
  701. data/src/core/tsi/ssl_transport_security.h +6 -6
  702. data/src/core/tsi/transport_security.cc +10 -8
  703. data/src/core/tsi/transport_security_interface.h +1 -1
  704. data/src/ruby/ext/grpc/extconf.rb +1 -1
  705. data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
  706. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -16
  707. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +70 -40
  708. data/src/ruby/lib/grpc/version.rb +1 -1
  709. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +35 -0
  710. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
  711. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
  712. data/third_party/abseil-cpp/absl/algorithm/container.h +59 -22
  713. data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
  714. data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
  715. data/third_party/abseil-cpp/absl/base/casts.h +9 -6
  716. data/third_party/abseil-cpp/absl/base/config.h +60 -17
  717. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
  718. data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
  719. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -0
  720. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  721. data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
  722. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +1 -1
  723. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
  724. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
  725. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
  726. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
  727. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
  728. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
  729. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
  730. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
  731. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
  732. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
  733. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
  734. data/third_party/abseil-cpp/absl/base/macros.h +36 -109
  735. data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
  736. data/third_party/abseil-cpp/absl/base/options.h +31 -4
  737. data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
  738. data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
  739. data/third_party/abseil-cpp/absl/container/fixed_array.h +42 -25
  740. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  741. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +2 -1
  742. data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
  743. data/third_party/abseil-cpp/absl/container/internal/common.h +6 -2
  744. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
  745. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +49 -29
  746. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +15 -0
  747. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +24 -7
  748. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -1
  749. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +35 -11
  750. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +10 -9
  751. data/third_party/abseil-cpp/absl/container/internal/layout.h +7 -5
  752. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  753. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +55 -34
  754. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +5 -4
  755. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +66 -16
  756. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +4 -0
  757. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +13 -4
  758. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +43 -24
  759. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +12 -3
  760. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +10 -2
  761. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +22 -1
  762. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -21
  763. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +12 -1
  764. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  765. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +100 -20
  766. data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
  767. data/third_party/abseil-cpp/absl/functional/function_ref.h +1 -1
  768. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  769. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
  770. data/third_party/abseil-cpp/absl/hash/hash.h +6 -5
  771. data/third_party/abseil-cpp/absl/hash/internal/hash.h +73 -65
  772. data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
  773. data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
  774. data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
  775. data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
  776. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
  777. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
  778. data/third_party/abseil-cpp/absl/status/status.cc +4 -6
  779. data/third_party/abseil-cpp/absl/status/status.h +502 -113
  780. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +5 -10
  781. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  782. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  783. data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
  784. data/third_party/abseil-cpp/absl/strings/cord.cc +91 -112
  785. data/third_party/abseil-cpp/absl/strings/cord.h +360 -205
  786. data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
  787. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
  788. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  789. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
  790. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  791. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +45 -23
  792. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
  793. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
  794. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
  795. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
  796. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
  797. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
  798. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
  799. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
  800. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
  801. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
  802. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
  803. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
  804. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
  805. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  806. data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
  807. data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
  808. data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
  809. data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
  810. data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
  811. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
  812. data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
  813. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
  814. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +4 -3
  815. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +28 -28
  816. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +4 -16
  817. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -1
  818. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +8 -0
  819. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -2
  820. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -64
  821. data/third_party/abseil-cpp/absl/synchronization/mutex.h +15 -6
  822. data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
  823. data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
  824. data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
  825. data/third_party/abseil-cpp/absl/time/format.cc +43 -36
  826. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
  827. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
  828. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
  829. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
  830. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
  831. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
  832. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
  833. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
  834. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
  835. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
  836. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
  837. data/third_party/abseil-cpp/absl/time/time.h +15 -16
  838. data/third_party/abseil-cpp/absl/types/internal/variant.h +4 -4
  839. data/third_party/abseil-cpp/absl/types/optional.h +9 -9
  840. data/third_party/abseil-cpp/absl/types/span.h +49 -36
  841. data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
  842. data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
  843. data/third_party/boringssl-with-bazel/err_data.c +728 -720
  844. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
  845. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
  846. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
  847. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -10
  848. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
  849. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +4 -2
  850. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +2 -2
  851. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +15 -20
  852. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +30 -0
  853. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
  854. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +39 -85
  855. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +5 -16
  856. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
  857. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
  858. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -2
  859. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
  860. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
  861. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +158 -0
  862. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
  863. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
  864. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +60 -45
  865. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
  866. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +87 -0
  867. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
  868. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
  869. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
  870. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +25 -0
  871. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +9 -43
  872. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
  873. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +34 -0
  874. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
  875. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +4 -0
  876. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
  877. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +3 -1
  878. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
  879. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +2 -3
  880. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +9 -1
  881. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
  882. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
  883. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
  884. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
  885. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +12 -0
  886. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -1
  887. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +28 -0
  888. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +128 -38
  889. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +0 -7
  890. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
  891. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +30 -10
  892. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +107 -54
  893. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +155 -2
  894. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +112 -36
  895. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +63 -9
  896. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +10 -7
  897. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
  898. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
  899. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
  900. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +4 -0
  901. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
  902. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +118 -49
  903. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +267 -95
  904. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +210 -34
  905. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  906. data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +3 -3
  907. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +6 -4
  908. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
  909. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +3 -3
  910. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -1
  911. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +8 -3
  912. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +27 -21
  913. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -1
  914. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c +1 -1
  915. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +32 -11
  916. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +3 -3
  917. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
  918. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +4 -4
  919. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +29 -35
  920. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +42 -25
  921. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +9 -8
  922. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +10 -10
  923. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +3 -4
  924. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +28 -40
  925. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
  926. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +38 -3
  927. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
  928. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
  929. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
  930. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
  931. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +25 -24
  932. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
  933. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +32 -28
  934. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -2
  935. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -1
  936. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +42 -22
  937. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
  938. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
  939. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +25 -36
  940. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +2 -2
  941. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +55 -8
  942. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +7 -7
  943. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +6 -6
  944. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
  945. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +10 -8
  946. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +652 -546
  947. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
  948. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +15 -7
  949. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
  950. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
  951. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +22 -7
  952. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +21 -0
  953. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +1 -1
  954. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
  955. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +62 -20
  956. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +10 -0
  957. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +15 -0
  958. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +16 -3
  959. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
  960. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
  961. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -0
  962. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
  963. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +106 -27
  964. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +31 -8
  965. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +42 -14
  966. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +462 -163
  967. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +593 -440
  968. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
  969. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
  970. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +22 -21
  971. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +13 -23
  972. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +11 -6
  973. data/third_party/boringssl-with-bazel/src/ssl/internal.h +82 -26
  974. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
  975. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +49 -9
  976. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +8 -9
  977. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +87 -14
  978. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +18 -22
  979. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +2 -2
  980. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
  981. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +537 -34
  982. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -2
  983. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +59 -21
  984. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +48 -15
  985. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +194 -58
  986. data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
  987. data/third_party/upb/upb/decode.c +248 -167
  988. data/third_party/upb/upb/decode.h +20 -1
  989. data/third_party/upb/upb/decode.int.h +163 -0
  990. data/third_party/upb/upb/decode_fast.c +1040 -0
  991. data/third_party/upb/upb/decode_fast.h +126 -0
  992. data/third_party/upb/upb/def.c +2178 -0
  993. data/third_party/upb/upb/def.h +315 -0
  994. data/third_party/upb/upb/def.hpp +439 -0
  995. data/third_party/upb/upb/encode.c +227 -169
  996. data/third_party/upb/upb/encode.h +27 -2
  997. data/third_party/upb/upb/json_decode.c +1443 -0
  998. data/third_party/upb/upb/json_decode.h +23 -0
  999. data/third_party/upb/upb/json_encode.c +713 -0
  1000. data/third_party/upb/upb/json_encode.h +36 -0
  1001. data/third_party/upb/upb/msg.c +167 -88
  1002. data/third_party/upb/upb/msg.h +174 -34
  1003. data/third_party/upb/upb/port_def.inc +74 -61
  1004. data/third_party/upb/upb/port_undef.inc +3 -7
  1005. data/third_party/upb/upb/reflection.c +408 -0
  1006. data/third_party/upb/upb/reflection.h +168 -0
  1007. data/third_party/upb/upb/table.c +34 -197
  1008. data/third_party/upb/upb/table.int.h +14 -5
  1009. data/third_party/upb/upb/text_encode.c +421 -0
  1010. data/third_party/upb/upb/text_encode.h +38 -0
  1011. data/third_party/upb/upb/upb.c +18 -41
  1012. data/third_party/upb/upb/upb.h +36 -7
  1013. data/third_party/upb/upb/upb.hpp +4 -4
  1014. data/third_party/upb/upb/upb.int.h +29 -0
  1015. metadata +309 -63
  1016. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -946
  1017. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -537
  1018. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -1141
  1019. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
  1020. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
  1021. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -354
  1022. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -142
  1023. data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
  1024. data/src/core/ext/xds/xds_channel.h +0 -46
  1025. data/src/core/ext/xds/xds_channel_secure.cc +0 -103
  1026. data/src/core/lib/gprpp/map.h +0 -53
  1027. data/src/core/lib/iomgr/iomgr_posix.h +0 -26
  1028. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
  1029. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
  1030. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
  1031. data/third_party/upb/upb/port.c +0 -26
@@ -14,5 +14,5 @@
14
14
 
15
15
  # GRPC contains the General RPC module.
16
16
  module GRPC
17
- VERSION = '1.32.0'
17
+ VERSION = '1.36.0'
18
18
  end
@@ -76,6 +76,34 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
76
76
  add_message "grpc.testing.LoadBalancerStatsResponse.RpcsByPeer" do
77
77
  map :rpcs_by_peer, :string, :int32, 1
78
78
  end
79
+ add_message "grpc.testing.LoadBalancerAccumulatedStatsRequest" do
80
+ end
81
+ add_message "grpc.testing.LoadBalancerAccumulatedStatsResponse" do
82
+ map :num_rpcs_started_by_method, :string, :int32, 1
83
+ map :num_rpcs_succeeded_by_method, :string, :int32, 2
84
+ map :num_rpcs_failed_by_method, :string, :int32, 3
85
+ map :stats_per_method, :string, :message, 4, "grpc.testing.LoadBalancerAccumulatedStatsResponse.MethodStats"
86
+ end
87
+ add_message "grpc.testing.LoadBalancerAccumulatedStatsResponse.MethodStats" do
88
+ optional :rpcs_started, :int32, 1
89
+ map :result, :int32, :int32, 2
90
+ end
91
+ add_message "grpc.testing.ClientConfigureRequest" do
92
+ repeated :types, :enum, 1, "grpc.testing.ClientConfigureRequest.RpcType"
93
+ repeated :metadata, :message, 2, "grpc.testing.ClientConfigureRequest.Metadata"
94
+ optional :timeout_sec, :int32, 3
95
+ end
96
+ add_message "grpc.testing.ClientConfigureRequest.Metadata" do
97
+ optional :type, :enum, 1, "grpc.testing.ClientConfigureRequest.RpcType"
98
+ optional :key, :string, 2
99
+ optional :value, :string, 3
100
+ end
101
+ add_enum "grpc.testing.ClientConfigureRequest.RpcType" do
102
+ value :EMPTY_CALL, 0
103
+ value :UNARY_CALL, 1
104
+ end
105
+ add_message "grpc.testing.ClientConfigureResponse" do
106
+ end
79
107
  add_enum "grpc.testing.PayloadType" do
80
108
  value :COMPRESSABLE, 0
81
109
  end
@@ -104,6 +132,13 @@ module Grpc
104
132
  LoadBalancerStatsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.LoadBalancerStatsRequest").msgclass
105
133
  LoadBalancerStatsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.LoadBalancerStatsResponse").msgclass
106
134
  LoadBalancerStatsResponse::RpcsByPeer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.LoadBalancerStatsResponse.RpcsByPeer").msgclass
135
+ LoadBalancerAccumulatedStatsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.LoadBalancerAccumulatedStatsRequest").msgclass
136
+ LoadBalancerAccumulatedStatsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.LoadBalancerAccumulatedStatsResponse").msgclass
137
+ LoadBalancerAccumulatedStatsResponse::MethodStats = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.LoadBalancerAccumulatedStatsResponse.MethodStats").msgclass
138
+ ClientConfigureRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientConfigureRequest").msgclass
139
+ ClientConfigureRequest::Metadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientConfigureRequest.Metadata").msgclass
140
+ ClientConfigureRequest::RpcType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientConfigureRequest.RpcType").enummodule
141
+ ClientConfigureResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientConfigureResponse").msgclass
107
142
  PayloadType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.PayloadType").enummodule
108
143
  GrpclbRouteType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.GrpclbRouteType").enummodule
109
144
  end
@@ -110,6 +110,8 @@ module Grpc
110
110
 
111
111
  # Gets the backend distribution for RPCs sent by a test client.
112
112
  rpc :GetClientStats, ::Grpc::Testing::LoadBalancerStatsRequest, ::Grpc::Testing::LoadBalancerStatsResponse
113
+ # Gets the accumulated stats for RPCs sent by a test client.
114
+ rpc :GetClientAccumulatedStats, ::Grpc::Testing::LoadBalancerAccumulatedStatsRequest, ::Grpc::Testing::LoadBalancerAccumulatedStatsResponse
113
115
  end
114
116
 
115
117
  Stub = Service.rpc_stub_class
@@ -128,6 +130,22 @@ module Grpc
128
130
  rpc :SetNotServing, ::Grpc::Testing::Empty, ::Grpc::Testing::Empty
129
131
  end
130
132
 
133
+ Stub = Service.rpc_stub_class
134
+ end
135
+ module XdsUpdateClientConfigureService
136
+ # A service to dynamically update the configuration of an xDS test client.
137
+ class Service
138
+
139
+ include GRPC::GenericService
140
+
141
+ self.marshal_class_method = :encode
142
+ self.unmarshal_class_method = :decode
143
+ self.service_name = 'grpc.testing.XdsUpdateClientConfigureService'
144
+
145
+ # Update the tes client's configuration.
146
+ rpc :Configure, ::Grpc::Testing::ClientConfigureRequest, ::Grpc::Testing::ClientConfigureResponse
147
+ end
148
+
131
149
  Stub = Service.rpc_stub_class
132
150
  end
133
151
  end
@@ -71,14 +71,10 @@ describe 'Code Generation Options' do
71
71
  end
72
72
 
73
73
  def with_protos(file_paths)
74
- fail 'CONFIG env variable unexpectedly unset' unless ENV['CONFIG']
75
- bins_sub_dir = ENV['CONFIG']
76
-
77
74
  pb_dir = File.dirname(__FILE__)
78
- bins_dir = File.join('..', '..', '..', '..', '..', 'bins', bins_sub_dir)
79
-
75
+ bins_dir = File.join('..', '..', '..', '..', '..', 'cmake', 'build')
80
76
  plugin = File.join(bins_dir, 'grpc_ruby_plugin')
81
- protoc = File.join(bins_dir, 'protobuf', 'protoc')
77
+ protoc = File.join(bins_dir, 'third_party', 'protobuf', 'protoc')
82
78
 
83
79
  # Generate the service from the proto
84
80
  Dir.mktmpdir(nil, File.dirname(__FILE__)) do |tmp_dir|
@@ -340,24 +340,45 @@ container_algorithm_internal::ContainerDifferenceType<const C> c_count_if(
340
340
  // c_mismatch()
341
341
  //
342
342
  // Container-based version of the <algorithm> `std::mismatch()` function to
343
- // return the first element where two ordered containers differ.
343
+ // return the first element where two ordered containers differ. Applies `==` to
344
+ // the first N elements of `c1` and `c2`, where N = min(size(c1), size(c2)).
344
345
  template <typename C1, typename C2>
345
346
  container_algorithm_internal::ContainerIterPairType<C1, C2>
346
347
  c_mismatch(C1& c1, C2& c2) {
347
- return std::mismatch(container_algorithm_internal::c_begin(c1),
348
- container_algorithm_internal::c_end(c1),
349
- container_algorithm_internal::c_begin(c2));
348
+ auto first1 = container_algorithm_internal::c_begin(c1);
349
+ auto last1 = container_algorithm_internal::c_end(c1);
350
+ auto first2 = container_algorithm_internal::c_begin(c2);
351
+ auto last2 = container_algorithm_internal::c_end(c2);
352
+
353
+ for (; first1 != last1 && first2 != last2; ++first1, (void)++first2) {
354
+ // Negates equality because Cpp17EqualityComparable doesn't require clients
355
+ // to overload both `operator==` and `operator!=`.
356
+ if (!(*first1 == *first2)) {
357
+ break;
358
+ }
359
+ }
360
+
361
+ return std::make_pair(first1, first2);
350
362
  }
351
363
 
352
364
  // Overload of c_mismatch() for using a predicate evaluation other than `==` as
353
- // the function's test condition.
365
+ // the function's test condition. Applies `pred`to the first N elements of `c1`
366
+ // and `c2`, where N = min(size(c1), size(c2)).
354
367
  template <typename C1, typename C2, typename BinaryPredicate>
355
368
  container_algorithm_internal::ContainerIterPairType<C1, C2>
356
- c_mismatch(C1& c1, C2& c2, BinaryPredicate&& pred) {
357
- return std::mismatch(container_algorithm_internal::c_begin(c1),
358
- container_algorithm_internal::c_end(c1),
359
- container_algorithm_internal::c_begin(c2),
360
- std::forward<BinaryPredicate>(pred));
369
+ c_mismatch(C1& c1, C2& c2, BinaryPredicate pred) {
370
+ auto first1 = container_algorithm_internal::c_begin(c1);
371
+ auto last1 = container_algorithm_internal::c_end(c1);
372
+ auto first2 = container_algorithm_internal::c_begin(c2);
373
+ auto last2 = container_algorithm_internal::c_end(c2);
374
+
375
+ for (; first1 != last1 && first2 != last2; ++first1, (void)++first2) {
376
+ if (!pred(*first1, *first2)) {
377
+ break;
378
+ }
379
+ }
380
+
381
+ return std::make_pair(first1, first2);
361
382
  }
362
383
 
363
384
  // c_equal()
@@ -539,12 +560,20 @@ BidirectionalIterator c_move_backward(C&& src, BidirectionalIterator dest) {
539
560
  // c_swap_ranges()
540
561
  //
541
562
  // Container-based version of the <algorithm> `std::swap_ranges()` function to
542
- // swap a container's elements with another container's elements.
563
+ // swap a container's elements with another container's elements. Swaps the
564
+ // first N elements of `c1` and `c2`, where N = min(size(c1), size(c2)).
543
565
  template <typename C1, typename C2>
544
566
  container_algorithm_internal::ContainerIter<C2> c_swap_ranges(C1& c1, C2& c2) {
545
- return std::swap_ranges(container_algorithm_internal::c_begin(c1),
546
- container_algorithm_internal::c_end(c1),
547
- container_algorithm_internal::c_begin(c2));
567
+ auto first1 = container_algorithm_internal::c_begin(c1);
568
+ auto last1 = container_algorithm_internal::c_end(c1);
569
+ auto first2 = container_algorithm_internal::c_begin(c2);
570
+ auto last2 = container_algorithm_internal::c_end(c2);
571
+
572
+ using std::swap;
573
+ for (; first1 != last1 && first2 != last2; ++first1, (void)++first2) {
574
+ swap(*first1, *first2);
575
+ }
576
+ return first2;
548
577
  }
549
578
 
550
579
  // c_transform()
@@ -562,16 +591,23 @@ OutputIterator c_transform(const InputSequence& input, OutputIterator output,
562
591
  }
563
592
 
564
593
  // Overload of c_transform() for performing a transformation using a binary
565
- // predicate.
594
+ // predicate. Applies `binary_op` to the first N elements of `c1` and `c2`,
595
+ // where N = min(size(c1), size(c2)).
566
596
  template <typename InputSequence1, typename InputSequence2,
567
597
  typename OutputIterator, typename BinaryOp>
568
598
  OutputIterator c_transform(const InputSequence1& input1,
569
599
  const InputSequence2& input2, OutputIterator output,
570
600
  BinaryOp&& binary_op) {
571
- return std::transform(container_algorithm_internal::c_begin(input1),
572
- container_algorithm_internal::c_end(input1),
573
- container_algorithm_internal::c_begin(input2), output,
574
- std::forward<BinaryOp>(binary_op));
601
+ auto first1 = container_algorithm_internal::c_begin(input1);
602
+ auto last1 = container_algorithm_internal::c_end(input1);
603
+ auto first2 = container_algorithm_internal::c_begin(input2);
604
+ auto last2 = container_algorithm_internal::c_end(input2);
605
+ for (; first1 != last1 && first2 != last2;
606
+ ++first1, (void)++first2, ++output) {
607
+ *output = binary_op(*first1, *first2);
608
+ }
609
+
610
+ return output;
575
611
  }
576
612
 
577
613
  // c_replace()
@@ -943,9 +979,10 @@ void c_partial_sort(
943
979
  // c_partial_sort_copy()
944
980
  //
945
981
  // Container-based version of the <algorithm> `std::partial_sort_copy()`
946
- // function to sort elements within a container such that elements before
947
- // `middle` are sorted in ascending order, and return the result within an
948
- // iterator.
982
+ // function to sort the elements in the given range `result` within the larger
983
+ // `sequence` in ascending order (and using `result` as the output parameter).
984
+ // At most min(result.last - result.first, sequence.last - sequence.first)
985
+ // elements from the sequence will be stored in the result.
949
986
  template <typename C, typename RandomAccessContainer>
950
987
  container_algorithm_internal::ContainerIter<RandomAccessContainer>
951
988
  c_partial_sort_copy(const C& sequence, RandomAccessContainer& result) {
@@ -32,34 +32,12 @@
32
32
  // of them are not supported in older version of Clang. Thus, we check
33
33
  // `__has_attribute()` first. If the check fails, we check if we are on GCC and
34
34
  // assume the attribute exists on GCC (which is verified on GCC 4.7).
35
- //
36
- // -----------------------------------------------------------------------------
37
- // Sanitizer Attributes
38
- // -----------------------------------------------------------------------------
39
- //
40
- // Sanitizer-related attributes are not "defined" in this file (and indeed
41
- // are not defined as such in any file). To utilize the following
42
- // sanitizer-related attributes within your builds, define the following macros
43
- // within your build using a `-D` flag, along with the given value for
44
- // `-fsanitize`:
45
- //
46
- // * `ADDRESS_SANITIZER` + `-fsanitize=address` (Clang, GCC 4.8)
47
- // * `MEMORY_SANITIZER` + `-fsanitize=memory` (Clang-only)
48
- // * `THREAD_SANITIZER + `-fsanitize=thread` (Clang, GCC 4.8+)
49
- // * `UNDEFINED_BEHAVIOR_SANITIZER` + `-fsanitize=undefined` (Clang, GCC 4.9+)
50
- // * `CONTROL_FLOW_INTEGRITY` + -fsanitize=cfi (Clang-only)
51
- //
52
- // Example:
53
- //
54
- // // Enable branches in the Abseil code that are tagged for ASan:
55
- // $ bazel build --copt=-DADDRESS_SANITIZER --copt=-fsanitize=address
56
- // --linkopt=-fsanitize=address *target*
57
- //
58
- // Since these macro names are only supported by GCC and Clang, we only check
59
- // for `__GNUC__` (GCC or Clang) and the above macros.
35
+
60
36
  #ifndef ABSL_BASE_ATTRIBUTES_H_
61
37
  #define ABSL_BASE_ATTRIBUTES_H_
62
38
 
39
+ #include "absl/base/config.h"
40
+
63
41
  // ABSL_HAVE_ATTRIBUTE
64
42
  //
65
43
  // A function-like feature checking macro that is a wrapper around
@@ -234,7 +212,7 @@
234
212
  // out of bounds or does other scary things with memory.
235
213
  // NOTE: GCC supports AddressSanitizer(asan) since 4.8.
236
214
  // https://gcc.gnu.org/gcc-4.8/changes.html
237
- #if defined(__GNUC__)
215
+ #if ABSL_HAVE_ATTRIBUTE(no_sanitize_address)
238
216
  #define ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address))
239
217
  #else
240
218
  #define ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS
@@ -242,13 +220,13 @@
242
220
 
243
221
  // ABSL_ATTRIBUTE_NO_SANITIZE_MEMORY
244
222
  //
245
- // Tells the MemorySanitizer to relax the handling of a given function. All
246
- // "Use of uninitialized value" warnings from such functions will be suppressed,
247
- // and all values loaded from memory will be considered fully initialized.
248
- // This attribute is similar to the ADDRESS_SANITIZER attribute above, but deals
249
- // with initialized-ness rather than addressability issues.
223
+ // Tells the MemorySanitizer to relax the handling of a given function. All "Use
224
+ // of uninitialized value" warnings from such functions will be suppressed, and
225
+ // all values loaded from memory will be considered fully initialized. This
226
+ // attribute is similar to the ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS attribute
227
+ // above, but deals with initialized-ness rather than addressability issues.
250
228
  // NOTE: MemorySanitizer(msan) is supported by Clang but not GCC.
251
- #if defined(__clang__)
229
+ #if ABSL_HAVE_ATTRIBUTE(no_sanitize_memory)
252
230
  #define ABSL_ATTRIBUTE_NO_SANITIZE_MEMORY __attribute__((no_sanitize_memory))
253
231
  #else
254
232
  #define ABSL_ATTRIBUTE_NO_SANITIZE_MEMORY
@@ -259,7 +237,7 @@
259
237
  // Tells the ThreadSanitizer to not instrument a given function.
260
238
  // NOTE: GCC supports ThreadSanitizer(tsan) since 4.8.
261
239
  // https://gcc.gnu.org/gcc-4.8/changes.html
262
- #if defined(__GNUC__)
240
+ #if ABSL_HAVE_ATTRIBUTE(no_sanitize_thread)
263
241
  #define ABSL_ATTRIBUTE_NO_SANITIZE_THREAD __attribute__((no_sanitize_thread))
264
242
  #else
265
243
  #define ABSL_ATTRIBUTE_NO_SANITIZE_THREAD
@@ -271,8 +249,10 @@
271
249
  // where certain behavior (eg. division by zero) is being used intentionally.
272
250
  // NOTE: GCC supports UndefinedBehaviorSanitizer(ubsan) since 4.9.
273
251
  // https://gcc.gnu.org/gcc-4.9/changes.html
274
- #if defined(__GNUC__) && \
275
- (defined(UNDEFINED_BEHAVIOR_SANITIZER) || defined(ADDRESS_SANITIZER))
252
+ #if ABSL_HAVE_ATTRIBUTE(no_sanitize_undefined)
253
+ #define ABSL_ATTRIBUTE_NO_SANITIZE_UNDEFINED \
254
+ __attribute__((no_sanitize_undefined))
255
+ #elif ABSL_HAVE_ATTRIBUTE(no_sanitize)
276
256
  #define ABSL_ATTRIBUTE_NO_SANITIZE_UNDEFINED \
277
257
  __attribute__((no_sanitize("undefined")))
278
258
  #else
@@ -283,7 +263,7 @@
283
263
  //
284
264
  // Tells the ControlFlowIntegrity sanitizer to not instrument a given function.
285
265
  // See https://clang.llvm.org/docs/ControlFlowIntegrity.html for details.
286
- #if defined(__GNUC__) && defined(CONTROL_FLOW_INTEGRITY)
266
+ #if ABSL_HAVE_ATTRIBUTE(no_sanitize)
287
267
  #define ABSL_ATTRIBUTE_NO_SANITIZE_CFI __attribute__((no_sanitize("cfi")))
288
268
  #else
289
269
  #define ABSL_ATTRIBUTE_NO_SANITIZE_CFI
@@ -293,7 +273,7 @@
293
273
  //
294
274
  // Tells the SafeStack to not instrument a given function.
295
275
  // See https://clang.llvm.org/docs/SafeStack.html for details.
296
- #if defined(__GNUC__) && defined(SAFESTACK_SANITIZER)
276
+ #if ABSL_HAVE_ATTRIBUTE(no_sanitize)
297
277
  #define ABSL_ATTRIBUTE_NO_SANITIZE_SAFESTACK \
298
278
  __attribute__((no_sanitize("safe-stack")))
299
279
  #else
@@ -507,8 +487,10 @@
507
487
  // packages/targets, as this may lead to conflicting definitions of functions at
508
488
  // link-time.
509
489
  //
490
+ // XRay isn't currently supported on Android:
491
+ // https://github.com/android/ndk/issues/368
510
492
  #if ABSL_HAVE_CPP_ATTRIBUTE(clang::xray_always_instrument) && \
511
- !defined(ABSL_NO_XRAY_ATTRIBUTES)
493
+ !defined(ABSL_NO_XRAY_ATTRIBUTES) && !defined(__ANDROID__)
512
494
  #define ABSL_XRAY_ALWAYS_INSTRUMENT [[clang::xray_always_instrument]]
513
495
  #define ABSL_XRAY_NEVER_INSTRUMENT [[clang::xray_never_instrument]]
514
496
  #if ABSL_HAVE_CPP_ATTRIBUTE(clang::xray_log_args)
@@ -592,6 +574,85 @@
592
574
  #define ABSL_ATTRIBUTE_FUNC_ALIGN(bytes)
593
575
  #endif
594
576
 
577
+ // ABSL_FALLTHROUGH_INTENDED
578
+ //
579
+ // Annotates implicit fall-through between switch labels, allowing a case to
580
+ // indicate intentional fallthrough and turn off warnings about any lack of a
581
+ // `break` statement. The ABSL_FALLTHROUGH_INTENDED macro should be followed by
582
+ // a semicolon and can be used in most places where `break` can, provided that
583
+ // no statements exist between it and the next switch label.
584
+ //
585
+ // Example:
586
+ //
587
+ // switch (x) {
588
+ // case 40:
589
+ // case 41:
590
+ // if (truth_is_out_there) {
591
+ // ++x;
592
+ // ABSL_FALLTHROUGH_INTENDED; // Use instead of/along with annotations
593
+ // // in comments
594
+ // } else {
595
+ // return x;
596
+ // }
597
+ // case 42:
598
+ // ...
599
+ //
600
+ // Notes: when compiled with clang in C++11 mode, the ABSL_FALLTHROUGH_INTENDED
601
+ // macro is expanded to the [[clang::fallthrough]] attribute, which is analysed
602
+ // when performing switch labels fall-through diagnostic
603
+ // (`-Wimplicit-fallthrough`). See clang documentation on language extensions
604
+ // for details:
605
+ // https://clang.llvm.org/docs/AttributeReference.html#fallthrough-clang-fallthrough
606
+ //
607
+ // When used with unsupported compilers, the ABSL_FALLTHROUGH_INTENDED macro
608
+ // has no effect on diagnostics. In any case this macro has no effect on runtime
609
+ // behavior and performance of code.
610
+ #ifdef ABSL_FALLTHROUGH_INTENDED
611
+ #error "ABSL_FALLTHROUGH_INTENDED should not be defined."
612
+ #endif
613
+
614
+ // TODO(zhangxy): Use c++17 standard [[fallthrough]] macro, when supported.
615
+ #if defined(__clang__) && defined(__has_warning)
616
+ #if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
617
+ #define ABSL_FALLTHROUGH_INTENDED [[clang::fallthrough]]
618
+ #endif
619
+ #elif defined(__GNUC__) && __GNUC__ >= 7
620
+ #define ABSL_FALLTHROUGH_INTENDED [[gnu::fallthrough]]
621
+ #endif
622
+
623
+ #ifndef ABSL_FALLTHROUGH_INTENDED
624
+ #define ABSL_FALLTHROUGH_INTENDED \
625
+ do { \
626
+ } while (0)
627
+ #endif
628
+
629
+ // ABSL_DEPRECATED()
630
+ //
631
+ // Marks a deprecated class, struct, enum, function, method and variable
632
+ // declarations. The macro argument is used as a custom diagnostic message (e.g.
633
+ // suggestion of a better alternative).
634
+ //
635
+ // Examples:
636
+ //
637
+ // class ABSL_DEPRECATED("Use Bar instead") Foo {...};
638
+ //
639
+ // ABSL_DEPRECATED("Use Baz() instead") void Bar() {...}
640
+ //
641
+ // template <typename T>
642
+ // ABSL_DEPRECATED("Use DoThat() instead")
643
+ // void DoThis();
644
+ //
645
+ // Every usage of a deprecated entity will trigger a warning when compiled with
646
+ // clang's `-Wdeprecated-declarations` option. This option is turned off by
647
+ // default, but the warnings will be reported by clang-tidy.
648
+ #if defined(__clang__) && __cplusplus >= 201103L
649
+ #define ABSL_DEPRECATED(message) __attribute__((deprecated(message)))
650
+ #endif
651
+
652
+ #ifndef ABSL_DEPRECATED
653
+ #define ABSL_DEPRECATED(message)
654
+ #endif
655
+
595
656
  // ABSL_CONST_INIT
596
657
  //
597
658
  // A variable declaration annotated with the `ABSL_CONST_INIT` attribute will
@@ -175,7 +175,7 @@ void CallOnceImpl(std::atomic<uint32_t>* control,
175
175
  std::memory_order_relaxed) ||
176
176
  base_internal::SpinLockWait(control, ABSL_ARRAYSIZE(trans), trans,
177
177
  scheduling_mode) == kOnceInit) {
178
- base_internal::Invoke(std::forward<Callable>(fn),
178
+ base_internal::invoke(std::forward<Callable>(fn),
179
179
  std::forward<Args>(args)...);
180
180
  // The call to SpinLockWake below is an optimization, because the waiter
181
181
  // in SpinLockWait is waiting with a short timeout. The atomic load/store
@@ -159,16 +159,19 @@ inline Dest bit_cast(const Source& source) {
159
159
  return dest;
160
160
  }
161
161
 
162
- // NOTE: This overload is only picked if the requirements of bit_cast are not
163
- // met. It is therefore UB, but is provided temporarily as previous versions of
164
- // this function template were unchecked. Do not use this in new code.
162
+ // NOTE: This overload is only picked if the requirements of bit_cast are
163
+ // not met. It is therefore UB, but is provided temporarily as previous
164
+ // versions of this function template were unchecked. Do not use this in
165
+ // new code.
165
166
  template <
166
167
  typename Dest, typename Source,
167
168
  typename std::enable_if<
168
- !internal_casts::is_bitcastable<Dest, Source>::value, int>::type = 0>
169
+ !internal_casts::is_bitcastable<Dest, Source>::value,
170
+ int>::type = 0>
169
171
  ABSL_DEPRECATED(
170
- "absl::bit_cast type requirements were violated. Update the types being "
171
- "used such that they are the same size and are both TriviallyCopyable.")
172
+ "absl::bit_cast type requirements were violated. Update the types "
173
+ "being used such that they are the same size and are both "
174
+ "TriviallyCopyable.")
172
175
  inline Dest bit_cast(const Source& source) {
173
176
  static_assert(sizeof(Dest) == sizeof(Source),
174
177
  "Source and destination types should have equal sizes.");