grpc 1.31.1 → 1.35.0.pre1

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 (1104) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +719 -17819
  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 +254 -186
  7. data/include/grpc/impl/codegen/README.md +22 -0
  8. data/include/grpc/impl/codegen/atm_windows.h +4 -0
  9. data/include/grpc/impl/codegen/byte_buffer.h +1 -1
  10. data/include/grpc/impl/codegen/grpc_types.h +10 -8
  11. data/include/grpc/impl/codegen/log.h +0 -2
  12. data/include/grpc/impl/codegen/port_platform.h +28 -56
  13. data/include/grpc/impl/codegen/sync_windows.h +4 -0
  14. data/include/grpc/slice_buffer.h +3 -3
  15. data/include/grpc/support/sync.h +3 -3
  16. data/include/grpc/support/time.h +7 -7
  17. data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
  18. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -2
  19. data/src/core/ext/filters/client_channel/client_channel.cc +2831 -1540
  20. data/src/core/ext/filters/client_channel/client_channel.h +1 -5
  21. data/src/core/ext/filters/client_channel/client_channel_channelz.h +0 -3
  22. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  23. data/src/core/ext/filters/client_channel/config_selector.cc +0 -4
  24. data/src/core/ext/filters/client_channel/config_selector.h +40 -8
  25. data/src/core/ext/filters/client_channel/dynamic_filters.cc +186 -0
  26. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  27. data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -8
  28. data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -4
  29. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +7 -9
  30. data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
  31. data/src/core/ext/filters/client_channel/lb_policy.cc +6 -2
  32. data/src/core/ext/filters/client_channel/lb_policy.h +8 -7
  33. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +48 -35
  34. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
  35. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -7
  36. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +210 -192
  38. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
  39. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
  40. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -37
  41. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
  42. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
  43. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  44. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +23 -17
  45. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +79 -30
  46. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -9
  47. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +14 -34
  48. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +26 -15
  49. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +350 -130
  50. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +52 -24
  51. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +24 -0
  52. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +812 -0
  53. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +722 -0
  54. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1262 -0
  55. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
  56. data/src/core/ext/filters/client_channel/resolver.cc +3 -1
  57. data/src/core/ext/filters/client_channel/resolver.h +4 -1
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +9 -16
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
  60. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +3 -3
  61. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +457 -19
  62. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
  63. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  64. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  65. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +7 -10
  66. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +4 -4
  67. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
  68. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +35 -28
  69. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +664 -63
  70. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +28 -0
  71. data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
  72. data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
  73. data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
  74. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +29 -74
  75. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +12 -11
  76. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
  77. data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
  78. data/src/core/ext/filters/client_channel/server_address.cc +120 -7
  79. data/src/core/ext/filters/client_channel/server_address.h +44 -21
  80. data/src/core/ext/filters/client_channel/service_config.cc +18 -13
  81. data/src/core/ext/filters/client_channel/service_config.h +8 -5
  82. data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
  83. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -2
  84. data/src/core/ext/filters/client_channel/service_config_parser.cc +8 -6
  85. data/src/core/ext/filters/client_channel/service_config_parser.h +8 -5
  86. data/src/core/ext/filters/client_channel/subchannel.cc +115 -87
  87. data/src/core/ext/filters/client_channel/subchannel.h +30 -24
  88. data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
  89. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -2
  90. data/src/core/ext/filters/deadline/deadline_filter.cc +87 -79
  91. data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
  92. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
  93. data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
  94. data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
  95. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
  96. data/src/core/ext/filters/max_age/max_age_filter.cc +3 -2
  97. data/src/core/ext/filters/message_size/message_size_filter.cc +3 -2
  98. data/src/core/ext/filters/message_size/message_size_filter.h +2 -1
  99. data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
  100. data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
  101. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +87 -31
  102. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +19 -2
  103. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +20 -8
  104. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
  105. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +34 -47
  106. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +200 -100
  107. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -1
  108. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -2
  109. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +16 -9
  110. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -2
  111. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
  112. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +267 -319
  113. data/src/core/ext/transport/chttp2/transport/flow_control.cc +11 -3
  114. data/src/core/ext/transport/chttp2/transport/flow_control.h +13 -3
  115. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  116. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
  117. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
  118. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
  119. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
  120. data/src/core/ext/transport/chttp2/transport/internal.h +10 -2
  121. data/src/core/ext/transport/chttp2/transport/parsing.cc +19 -31
  122. data/src/core/ext/transport/chttp2/transport/writing.cc +8 -8
  123. data/src/core/ext/transport/inproc/inproc_transport.cc +52 -18
  124. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
  125. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  126. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  127. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +244 -0
  128. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +865 -0
  129. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
  130. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +253 -0
  131. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +458 -0
  132. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1818 -0
  133. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +35 -0
  134. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +77 -0
  135. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +55 -0
  136. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +349 -0
  137. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +124 -0
  138. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +428 -0
  139. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +35 -0
  140. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +88 -0
  141. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +310 -0
  142. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +991 -0
  143. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +103 -0
  144. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +388 -0
  145. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +78 -0
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +149 -0
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +241 -0
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +839 -0
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +752 -0
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +36 -0
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +88 -0
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +176 -0
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +730 -0
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +28 -0
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +65 -0
  159. data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +8 -8
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +95 -0
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +36 -0
  162. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +92 -0
  163. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +91 -0
  164. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +243 -0
  165. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
  166. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +305 -0
  167. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
  168. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +367 -0
  169. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +33 -0
  170. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +73 -0
  171. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +128 -0
  172. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +512 -0
  173. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +155 -0
  174. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +591 -0
  175. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +41 -0
  176. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +107 -0
  177. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +178 -0
  178. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +662 -0
  179. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +63 -0
  180. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +220 -0
  181. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +900 -0
  182. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +3640 -0
  183. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +60 -0
  184. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +159 -0
  185. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +50 -0
  186. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +122 -0
  187. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +364 -0
  188. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1475 -0
  189. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +20 -0
  190. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +35 -0
  191. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +110 -0
  192. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +426 -0
  193. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +76 -0
  194. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +236 -0
  195. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +147 -0
  196. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +621 -0
  197. data/src/core/ext/upb-generated/envoy/{api/v2 → service/cluster/v3}/cds.upb.c +6 -7
  198. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +56 -0
  199. data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +6 -5
  200. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +56 -0
  201. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +139 -0
  202. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +487 -0
  203. data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +6 -7
  204. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +56 -0
  205. data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +6 -7
  206. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +56 -0
  207. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +55 -0
  208. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +151 -0
  209. data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/rds.upb.c +6 -7
  210. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +56 -0
  211. data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/srds.upb.c +6 -7
  212. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +56 -0
  213. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
  214. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +128 -0
  215. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
  216. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +84 -0
  217. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
  218. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +78 -0
  219. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +64 -0
  220. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +166 -0
  221. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +54 -0
  222. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +146 -0
  223. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
  224. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +207 -0
  225. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
  226. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +301 -0
  227. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
  228. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +283 -0
  229. data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
  230. data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +9 -8
  231. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +40 -0
  232. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +99 -0
  233. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +51 -0
  234. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +130 -0
  235. data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +7 -6
  236. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +68 -0
  237. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
  238. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
  239. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +830 -0
  240. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +234 -0
  241. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +842 -0
  242. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  243. data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
  244. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  245. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
  246. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +103 -103
  247. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
  248. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  249. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
  250. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  251. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
  252. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
  253. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +23 -4
  254. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  255. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
  256. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
  257. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
  258. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  259. data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
  260. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
  261. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
  262. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
  263. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
  264. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
  265. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
  266. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  267. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +13 -0
  268. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
  269. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
  270. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  271. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
  272. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -0
  273. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +64 -0
  274. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
  275. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
  276. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
  277. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
  278. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +60 -0
  279. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +28 -0
  280. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +60 -0
  281. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +52 -0
  282. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +143 -0
  283. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +42 -0
  284. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +84 -0
  285. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +36 -0
  286. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +94 -0
  287. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +54 -0
  288. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +173 -0
  289. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +36 -0
  290. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +92 -0
  291. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
  292. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
  293. data/src/core/ext/upb-generated/validate/validate.upb.c +68 -68
  294. data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
  295. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
  296. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  297. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
  298. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  299. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +254 -0
  300. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  301. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
  302. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  303. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +558 -0
  304. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
  305. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
  306. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  307. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +133 -0
  308. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  309. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
  310. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  311. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
  312. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  313. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +266 -0
  314. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +125 -0
  315. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
  316. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
  317. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
  318. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  319. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
  320. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
  321. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
  322. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  323. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
  324. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
  325. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
  326. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  327. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +228 -0
  328. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +80 -0
  329. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +46 -0
  330. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  331. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
  332. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  333. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +55 -0
  334. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  335. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +110 -0
  336. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  337. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
  338. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
  339. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
  340. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  341. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
  342. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  343. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +190 -0
  344. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
  345. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +185 -0
  346. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  347. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +62 -0
  348. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  349. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +97 -0
  350. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
  351. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +915 -0
  352. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +280 -0
  353. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
  354. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  355. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +64 -0
  356. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  357. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +511 -0
  358. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
  359. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -0
  360. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  361. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +166 -0
  362. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
  363. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +105 -0
  364. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  365. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +249 -0
  366. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
  367. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
  368. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
  369. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
  370. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  371. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +152 -0
  372. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +60 -0
  373. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +83 -0
  374. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
  375. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +82 -0
  376. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
  377. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +83 -0
  378. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  379. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +86 -0
  380. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
  381. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
  382. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
  383. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
  384. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  385. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
  386. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  387. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
  388. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  389. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
  390. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  391. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +72 -0
  392. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  393. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
  394. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  395. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
  396. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  397. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
  398. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  399. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
  400. data/src/core/ext/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -9
  401. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
  402. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  403. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
  404. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  405. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
  406. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  407. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  408. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  409. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
  410. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  411. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +38 -0
  412. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  413. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
  414. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  415. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +39 -0
  416. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  417. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
  418. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  419. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
  420. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  421. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +39 -0
  422. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  423. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
  424. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  425. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
  426. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  427. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
  428. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  429. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
  430. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  431. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
  432. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  433. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
  434. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  435. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
  436. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  437. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +42 -0
  438. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +35 -0
  439. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +62 -0
  440. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +40 -0
  441. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +45 -0
  442. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +40 -0
  443. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +49 -0
  444. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +35 -0
  445. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +68 -0
  446. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +40 -0
  447. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +51 -0
  448. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +35 -0
  449. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +307 -0
  450. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  451. data/src/core/ext/xds/certificate_provider_factory.h +61 -0
  452. data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
  453. data/src/core/ext/xds/certificate_provider_registry.h +57 -0
  454. data/src/core/ext/xds/certificate_provider_store.cc +87 -0
  455. data/src/core/ext/xds/certificate_provider_store.h +112 -0
  456. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
  457. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
  458. data/src/core/ext/xds/xds_api.cc +2308 -0
  459. data/src/core/ext/xds/xds_api.h +469 -0
  460. data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.cc +208 -19
  461. data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.h +31 -11
  462. data/src/core/ext/xds/xds_certificate_provider.cc +299 -0
  463. data/src/core/ext/xds/xds_certificate_provider.h +112 -0
  464. data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_args.h +9 -6
  465. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +656 -865
  466. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.h +126 -99
  467. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +61 -18
  468. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +38 -10
  469. data/src/core/ext/xds/xds_server_config_fetcher.cc +131 -0
  470. data/src/core/lib/channel/channel_args.cc +9 -8
  471. data/src/core/lib/channel/channel_args.h +0 -1
  472. data/src/core/lib/channel/channel_trace.cc +4 -2
  473. data/src/core/lib/channel/channel_trace.h +1 -1
  474. data/src/core/lib/channel/channelz.cc +37 -74
  475. data/src/core/lib/channel/channelz.h +14 -23
  476. data/src/core/lib/channel/channelz_registry.cc +15 -12
  477. data/src/core/lib/channel/channelz_registry.h +3 -1
  478. data/src/core/lib/channel/handshaker.cc +2 -2
  479. data/src/core/lib/channel/handshaker.h +2 -2
  480. data/src/core/lib/compression/compression.cc +8 -4
  481. data/src/core/lib/compression/compression_args.cc +3 -2
  482. data/src/core/lib/compression/compression_internal.cc +10 -5
  483. data/src/core/lib/compression/compression_internal.h +2 -1
  484. data/src/core/lib/compression/stream_compression_identity.cc +1 -3
  485. data/src/core/lib/debug/stats.h +2 -2
  486. data/src/core/lib/debug/stats_data.cc +1 -0
  487. data/src/core/lib/debug/stats_data.h +13 -13
  488. data/src/core/lib/gpr/alloc.cc +3 -2
  489. data/src/core/lib/gpr/cpu_iphone.cc +10 -2
  490. data/src/core/lib/gpr/log.cc +53 -16
  491. data/src/core/lib/gpr/log_linux.cc +19 -3
  492. data/src/core/lib/gpr/log_posix.cc +15 -1
  493. data/src/core/lib/gpr/log_windows.cc +18 -4
  494. data/src/core/lib/gpr/murmur_hash.cc +1 -1
  495. data/src/core/lib/gpr/spinlock.h +10 -2
  496. data/src/core/lib/gpr/string.cc +23 -22
  497. data/src/core/lib/gpr/string.h +5 -6
  498. data/src/core/lib/gpr/sync.cc +4 -4
  499. data/src/core/lib/gpr/sync_posix.cc +2 -8
  500. data/src/core/lib/gpr/time.cc +12 -12
  501. data/src/core/lib/gpr/time_precise.cc +5 -2
  502. data/src/core/lib/gpr/time_precise.h +6 -2
  503. data/src/core/lib/gpr/tls.h +4 -0
  504. data/src/core/lib/gpr/tls_msvc.h +2 -0
  505. data/src/core/lib/gpr/tls_stdcpp.h +48 -0
  506. data/src/core/lib/gpr/useful.h +5 -4
  507. data/src/core/lib/gprpp/arena.h +3 -2
  508. data/src/core/lib/gprpp/dual_ref_counted.h +331 -0
  509. data/src/core/lib/gprpp/examine_stack.cc +43 -0
  510. data/src/core/lib/gprpp/examine_stack.h +46 -0
  511. data/src/core/lib/gprpp/fork.cc +2 -2
  512. data/src/core/lib/gprpp/manual_constructor.h +1 -1
  513. data/src/core/lib/gprpp/orphanable.h +4 -8
  514. data/src/core/lib/gprpp/ref_counted.h +91 -68
  515. data/src/core/lib/gprpp/ref_counted_ptr.h +166 -7
  516. data/src/core/lib/gprpp/stat.h +38 -0
  517. data/src/core/lib/gprpp/stat_posix.cc +49 -0
  518. data/src/core/lib/gprpp/stat_windows.cc +48 -0
  519. data/src/core/lib/gprpp/thd.h +2 -2
  520. data/src/core/lib/gprpp/thd_posix.cc +42 -37
  521. data/src/core/lib/gprpp/thd_windows.cc +3 -1
  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 +1 -1
  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.cc +5 -1
  529. data/src/core/lib/iomgr/endpoint.h +8 -4
  530. data/src/core/lib/iomgr/endpoint_cfstream.cc +36 -11
  531. data/src/core/lib/iomgr/error.cc +17 -12
  532. data/src/core/lib/iomgr/error_internal.h +1 -1
  533. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -13
  534. data/src/core/lib/iomgr/ev_epollex_linux.cc +25 -17
  535. data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
  536. data/src/core/lib/iomgr/ev_posix.cc +0 -2
  537. data/src/core/lib/iomgr/exec_ctx.cc +1 -1
  538. data/src/core/lib/iomgr/exec_ctx.h +16 -12
  539. data/src/core/lib/iomgr/executor.cc +2 -1
  540. data/src/core/lib/iomgr/executor.h +1 -1
  541. data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
  542. data/src/core/lib/iomgr/executor/threadpool.h +4 -4
  543. data/src/core/lib/iomgr/iomgr.cc +1 -11
  544. data/src/core/lib/iomgr/iomgr.h +0 -10
  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/{ext/filters/client_channel → lib/iomgr}/parse_address.cc +128 -44
  549. data/src/core/lib/iomgr/parse_address.h +77 -0
  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 +12 -11
  558. data/src/core/lib/iomgr/sockaddr_utils.h +3 -2
  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/tcp_client.cc +3 -3
  562. data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
  563. data/src/core/lib/iomgr/tcp_custom.cc +53 -32
  564. data/src/core/lib/iomgr/tcp_posix.cc +43 -21
  565. data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
  566. data/src/core/lib/iomgr/tcp_windows.cc +26 -10
  567. data/src/core/lib/iomgr/timer_custom.cc +5 -5
  568. data/src/core/lib/iomgr/timer_generic.cc +3 -3
  569. data/src/core/lib/iomgr/timer_manager.cc +2 -2
  570. data/src/core/lib/iomgr/udp_server.cc +1 -2
  571. data/src/core/lib/iomgr/udp_server.h +1 -2
  572. data/src/core/lib/iomgr/unix_sockets_posix.cc +32 -21
  573. data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
  574. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
  575. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
  576. data/src/core/lib/json/json.h +12 -2
  577. data/src/core/lib/json/json_reader.cc +8 -4
  578. data/src/core/lib/json/json_util.cc +58 -0
  579. data/src/core/lib/json/json_util.h +204 -0
  580. data/src/core/lib/json/json_writer.cc +2 -1
  581. data/src/core/lib/security/authorization/authorization_engine.cc +177 -0
  582. data/src/core/lib/security/authorization/authorization_engine.h +84 -0
  583. data/src/core/lib/security/authorization/evaluate_args.cc +148 -0
  584. data/src/core/lib/security/authorization/evaluate_args.h +59 -0
  585. data/src/core/lib/security/authorization/mock_cel/activation.h +57 -0
  586. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +44 -0
  587. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +69 -0
  588. data/src/core/lib/security/authorization/mock_cel/cel_value.h +97 -0
  589. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +67 -0
  590. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +57 -0
  591. data/src/core/lib/security/context/security_context.cc +4 -3
  592. data/src/core/lib/security/context/security_context.h +3 -1
  593. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  594. data/src/core/lib/security/credentials/credentials.cc +7 -7
  595. data/src/core/lib/security/credentials/credentials.h +3 -3
  596. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
  597. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
  598. data/src/core/lib/security/credentials/external/aws_request_signer.cc +213 -0
  599. data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
  600. data/src/core/lib/security/credentials/external/external_account_credentials.cc +497 -0
  601. data/src/core/lib/security/credentials/external/external_account_credentials.h +120 -0
  602. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +135 -0
  603. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +48 -0
  604. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +213 -0
  605. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +58 -0
  606. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -1
  607. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +74 -50
  608. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
  609. data/src/core/lib/security/credentials/jwt/json_token.cc +6 -3
  610. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
  611. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -4
  612. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +39 -46
  613. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
  614. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
  615. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -5
  616. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  617. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +346 -0
  618. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +213 -0
  619. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +399 -0
  620. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +138 -0
  621. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +78 -150
  622. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +57 -187
  623. data/src/core/lib/security/credentials/tls/tls_credentials.cc +16 -12
  624. data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
  625. data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
  626. data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
  627. data/src/core/lib/security/credentials/xds/xds_credentials.cc +175 -0
  628. data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
  629. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
  630. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +10 -15
  631. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
  632. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +87 -0
  633. data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
  634. data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
  635. data/src/core/lib/security/security_connector/local/local_security_connector.cc +3 -3
  636. data/src/core/lib/security/security_connector/security_connector.cc +4 -3
  637. data/src/core/lib/security/security_connector/security_connector.h +4 -2
  638. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
  639. data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
  640. data/src/core/lib/security/security_connector/ssl_utils.h +19 -19
  641. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +342 -279
  642. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +105 -61
  643. data/src/core/lib/security/transport/secure_endpoint.cc +9 -3
  644. data/src/core/lib/security/transport/security_handshaker.cc +3 -3
  645. data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
  646. data/src/core/lib/security/util/json_util.h +1 -0
  647. data/src/core/lib/slice/slice.cc +7 -4
  648. data/src/core/lib/slice/slice_buffer.cc +2 -1
  649. data/src/core/lib/slice/slice_intern.cc +6 -7
  650. data/src/core/lib/slice/slice_internal.h +2 -2
  651. data/src/core/lib/surface/call.cc +53 -44
  652. data/src/core/lib/surface/call.h +2 -1
  653. data/src/core/lib/surface/call_details.cc +8 -8
  654. data/src/core/lib/surface/channel.cc +53 -61
  655. data/src/core/lib/surface/channel.h +21 -5
  656. data/src/core/lib/surface/channel_init.cc +1 -1
  657. data/src/core/lib/surface/completion_queue.cc +38 -294
  658. data/src/core/lib/surface/completion_queue.h +16 -24
  659. data/src/core/lib/surface/init.cc +32 -16
  660. data/src/core/lib/surface/lame_client.cc +20 -46
  661. data/src/core/lib/surface/lame_client.h +4 -0
  662. data/src/core/lib/surface/server.cc +1107 -1239
  663. data/src/core/lib/surface/server.h +394 -86
  664. data/src/core/lib/surface/validate_metadata.h +3 -0
  665. data/src/core/lib/surface/version.cc +2 -2
  666. data/src/core/lib/transport/authority_override.cc +40 -0
  667. data/src/core/lib/transport/authority_override.h +37 -0
  668. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  669. data/src/core/lib/transport/bdp_estimator.h +2 -1
  670. data/src/core/lib/transport/byte_stream.h +3 -3
  671. data/src/core/lib/transport/connectivity_state.cc +18 -13
  672. data/src/core/lib/transport/connectivity_state.h +26 -12
  673. data/src/core/lib/transport/error_utils.cc +13 -0
  674. data/src/core/lib/transport/error_utils.h +7 -1
  675. data/src/core/lib/transport/metadata.cc +11 -1
  676. data/src/core/lib/transport/metadata.h +2 -2
  677. data/src/core/lib/transport/metadata_batch.h +4 -4
  678. data/src/core/lib/transport/static_metadata.cc +296 -277
  679. data/src/core/lib/transport/static_metadata.h +80 -73
  680. data/src/core/lib/transport/status_metadata.cc +4 -3
  681. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  682. data/src/core/lib/transport/transport.cc +5 -3
  683. data/src/core/lib/transport/transport.h +15 -8
  684. data/src/core/lib/uri/uri_parser.cc +131 -247
  685. data/src/core/lib/uri/uri_parser.h +58 -20
  686. data/src/core/plugin_registry/grpc_plugin_registry.cc +41 -20
  687. data/src/core/tsi/alts/crypt/gsec.cc +5 -4
  688. data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
  689. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  690. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +49 -26
  691. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
  692. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
  693. data/src/core/tsi/fake_transport_security.cc +6 -3
  694. data/src/core/tsi/local_transport_security.cc +5 -1
  695. data/src/core/tsi/local_transport_security.h +6 -7
  696. data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -0
  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.h +4 -1
  699. data/src/core/tsi/ssl_transport_security.cc +81 -67
  700. data/src/core/tsi/ssl_transport_security.h +9 -6
  701. data/src/core/tsi/transport_security.cc +10 -8
  702. data/src/core/tsi/transport_security_interface.h +1 -1
  703. data/src/ruby/ext/grpc/extconf.rb +1 -1
  704. data/src/ruby/ext/grpc/rb_channel_credentials.c +9 -0
  705. data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
  706. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -18
  707. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +74 -44
  708. data/src/ruby/lib/grpc/version.rb +1 -1
  709. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +28 -0
  710. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
  711. data/src/ruby/spec/channel_credentials_spec.rb +10 -0
  712. data/src/ruby/spec/generic/active_call_spec.rb +19 -8
  713. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
  714. data/third_party/abseil-cpp/absl/algorithm/container.h +1764 -0
  715. data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
  716. data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
  717. data/third_party/abseil-cpp/absl/base/casts.h +9 -6
  718. data/third_party/abseil-cpp/absl/base/config.h +60 -17
  719. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
  720. data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
  721. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +166 -0
  722. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  723. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
  724. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
  725. data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
  726. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
  727. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
  728. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
  729. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
  730. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
  731. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
  732. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
  733. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
  734. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
  735. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
  736. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
  737. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
  738. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
  739. data/third_party/abseil-cpp/absl/base/macros.h +36 -109
  740. data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
  741. data/third_party/abseil-cpp/absl/base/options.h +31 -4
  742. data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
  743. data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
  744. data/third_party/abseil-cpp/absl/container/fixed_array.h +532 -0
  745. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  746. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +504 -0
  747. data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
  748. data/third_party/abseil-cpp/absl/container/internal/common.h +206 -0
  749. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
  750. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +460 -0
  751. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +161 -0
  752. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +208 -0
  753. data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
  754. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +270 -0
  755. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +321 -0
  756. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +30 -0
  757. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +50 -0
  758. data/third_party/abseil-cpp/absl/container/internal/layout.h +743 -0
  759. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  760. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +48 -0
  761. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1903 -0
  762. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +139 -0
  763. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
  764. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1945 -0
  765. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
  766. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
  767. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
  768. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +196 -0
  769. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +134 -0
  770. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +89 -0
  771. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +108 -0
  772. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +248 -0
  773. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
  774. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +93 -0
  775. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
  776. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +149 -0
  777. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +173 -0
  778. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
  779. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
  780. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
  781. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +36 -0
  782. data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
  783. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  784. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1560 -0
  785. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
  786. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
  787. data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
  788. data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
  789. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  790. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
  791. data/third_party/abseil-cpp/absl/hash/hash.h +325 -0
  792. data/third_party/abseil-cpp/absl/hash/internal/city.cc +346 -0
  793. data/third_party/abseil-cpp/absl/hash/internal/city.h +96 -0
  794. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +55 -0
  795. data/third_party/abseil-cpp/absl/hash/internal/hash.h +996 -0
  796. data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
  797. data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
  798. data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
  799. data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
  800. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
  801. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
  802. data/third_party/abseil-cpp/absl/status/status.cc +445 -0
  803. data/third_party/abseil-cpp/absl/status/status.h +817 -0
  804. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +38 -0
  805. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
  806. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  807. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  808. data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
  809. data/third_party/abseil-cpp/absl/strings/cord.cc +1998 -0
  810. data/third_party/abseil-cpp/absl/strings/cord.h +1276 -0
  811. data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
  812. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
  813. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  814. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
  815. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  816. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +173 -0
  817. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
  818. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
  819. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
  820. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
  821. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
  822. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
  823. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
  824. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
  825. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
  826. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
  827. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
  828. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
  829. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
  830. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  831. data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
  832. data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
  833. data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
  834. data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
  835. data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
  836. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
  837. data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
  838. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
  839. data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
  840. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
  841. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
  842. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
  843. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
  844. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +697 -0
  845. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
  846. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +155 -0
  847. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +249 -0
  848. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
  849. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
  850. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +492 -0
  851. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +159 -0
  852. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2739 -0
  853. data/third_party/abseil-cpp/absl/synchronization/mutex.h +1065 -0
  854. data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
  855. data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
  856. data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
  857. data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
  858. data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
  859. data/third_party/abseil-cpp/absl/time/format.cc +43 -36
  860. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
  861. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
  862. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
  863. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
  864. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
  865. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
  866. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
  867. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
  868. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
  869. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
  870. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
  871. data/third_party/abseil-cpp/absl/time/time.h +15 -16
  872. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
  873. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
  874. data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
  875. data/third_party/abseil-cpp/absl/types/optional.h +9 -9
  876. data/third_party/abseil-cpp/absl/types/span.h +49 -36
  877. data/third_party/abseil-cpp/absl/types/variant.h +861 -0
  878. data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
  879. data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
  880. data/third_party/boringssl-with-bazel/err_data.c +479 -467
  881. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -6
  882. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
  883. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +9 -43
  884. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
  885. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +34 -0
  886. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +4 -0
  887. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +16 -0
  888. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
  889. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
  890. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
  891. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
  892. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +30 -10
  893. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +56 -22
  894. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +8 -2
  895. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +543 -0
  896. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +237 -0
  897. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +118 -49
  898. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +267 -95
  899. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +210 -34
  900. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  901. data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +3 -3
  902. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +6 -4
  903. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +3 -3
  904. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -1
  905. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +7 -2
  906. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +21 -18
  907. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -1
  908. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +24 -3
  909. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +3 -3
  910. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
  911. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +3 -3
  912. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +29 -35
  913. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +13 -2
  914. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +9 -8
  915. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +10 -10
  916. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +2 -2
  917. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +28 -40
  918. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +20 -0
  919. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
  920. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
  921. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
  922. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +14 -14
  923. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +7 -3
  924. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +2 -2
  925. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
  926. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
  927. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +55 -8
  928. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -1
  929. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
  930. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +54 -0
  931. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +0 -1
  932. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +6 -3
  933. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
  934. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +6 -0
  935. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +1 -1
  936. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
  937. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +12 -0
  938. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +9 -0
  939. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +4 -1
  940. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
  941. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
  942. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +103 -10
  943. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +5 -2
  944. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +42 -14
  945. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +199 -78
  946. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +482 -432
  947. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
  948. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
  949. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +18 -18
  950. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -3
  951. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  952. data/third_party/boringssl-with-bazel/src/ssl/internal.h +49 -10
  953. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +42 -1
  954. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +3 -6
  955. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +8 -9
  956. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +77 -0
  957. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +11 -14
  958. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +250 -20
  959. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -2
  960. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +57 -19
  961. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +140 -41
  962. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
  963. data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
  964. data/third_party/upb/upb/decode.c +275 -145
  965. data/third_party/upb/upb/decode.h +20 -1
  966. data/third_party/upb/upb/decode.int.h +163 -0
  967. data/third_party/upb/upb/decode_fast.c +1040 -0
  968. data/third_party/upb/upb/decode_fast.h +126 -0
  969. data/third_party/upb/upb/def.c +2178 -0
  970. data/third_party/upb/upb/def.h +315 -0
  971. data/third_party/upb/upb/def.hpp +439 -0
  972. data/third_party/upb/upb/encode.c +229 -171
  973. data/third_party/upb/upb/encode.h +27 -2
  974. data/third_party/upb/upb/json_decode.c +1443 -0
  975. data/third_party/upb/upb/json_decode.h +23 -0
  976. data/third_party/upb/upb/json_encode.c +713 -0
  977. data/third_party/upb/upb/json_encode.h +36 -0
  978. data/third_party/upb/upb/msg.c +167 -88
  979. data/third_party/upb/upb/msg.h +175 -35
  980. data/third_party/upb/upb/port_def.inc +75 -62
  981. data/third_party/upb/upb/port_undef.inc +3 -7
  982. data/third_party/upb/upb/reflection.c +408 -0
  983. data/third_party/upb/upb/reflection.h +168 -0
  984. data/third_party/upb/upb/table.c +34 -208
  985. data/third_party/upb/upb/table.int.h +14 -14
  986. data/third_party/upb/upb/text_encode.c +421 -0
  987. data/third_party/upb/upb/text_encode.h +38 -0
  988. data/third_party/upb/upb/upb.c +33 -54
  989. data/third_party/upb/upb/upb.h +56 -1
  990. data/third_party/upb/upb/upb.hpp +6 -4
  991. data/third_party/upb/upb/upb.int.h +29 -0
  992. metadata +508 -172
  993. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -938
  994. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -528
  995. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -1143
  996. data/src/core/ext/filters/client_channel/parse_address.h +0 -53
  997. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
  998. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
  999. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -353
  1000. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -142
  1001. data/src/core/ext/filters/client_channel/xds/xds_api.cc +0 -2110
  1002. data/src/core/ext/filters/client_channel/xds/xds_api.h +0 -345
  1003. data/src/core/ext/filters/client_channel/xds/xds_channel.h +0 -46
  1004. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +0 -106
  1005. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
  1006. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -34
  1007. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
  1008. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -429
  1009. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
  1010. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -198
  1011. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
  1012. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -388
  1013. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -52
  1014. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
  1015. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1453
  1016. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
  1017. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -226
  1018. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +0 -35
  1019. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
  1020. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +0 -55
  1021. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -323
  1022. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
  1023. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -334
  1024. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +0 -35
  1025. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -79
  1026. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
  1027. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -891
  1028. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
  1029. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -328
  1030. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
  1031. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -71
  1032. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
  1033. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -649
  1034. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
  1035. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -693
  1036. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +0 -36
  1037. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
  1038. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
  1039. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -536
  1040. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -88
  1041. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
  1042. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -386
  1043. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -52
  1044. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
  1045. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -224
  1046. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
  1047. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -32
  1048. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
  1049. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -273
  1050. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
  1051. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -332
  1052. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -52
  1053. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
  1054. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -415
  1055. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
  1056. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -32
  1057. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
  1058. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -538
  1059. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
  1060. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -111
  1061. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -52
  1062. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
  1063. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -204
  1064. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
  1065. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -32
  1066. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
  1067. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -2984
  1068. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
  1069. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -135
  1070. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -52
  1071. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
  1072. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -732
  1073. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
  1074. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1167
  1075. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +0 -33
  1076. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
  1077. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
  1078. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
  1079. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -49
  1080. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
  1081. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -136
  1082. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
  1083. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -145
  1084. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
  1085. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
  1086. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
  1087. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
  1088. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +0 -39
  1089. data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -86
  1090. data/src/core/ext/upb-generated/envoy/type/range.upb.c +0 -50
  1091. data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -111
  1092. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -61
  1093. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
  1094. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -250
  1095. data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
  1096. data/src/core/lib/gprpp/map.h +0 -53
  1097. data/src/core/lib/security/transport/target_authority_table.cc +0 -75
  1098. data/src/core/lib/security/transport/target_authority_table.h +0 -40
  1099. data/src/core/lib/slice/slice_hash_table.h +0 -199
  1100. data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
  1101. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
  1102. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
  1103. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
  1104. data/third_party/upb/upb/port.c +0 -26
@@ -25,6 +25,7 @@
25
25
  #include "src/core/lib/channel/context.h"
26
26
  #include "src/core/lib/gprpp/arena.h"
27
27
  #include "src/core/lib/surface/api_trace.h"
28
+ #include "src/core/lib/surface/server.h"
28
29
 
29
30
  #include <grpc/grpc.h>
30
31
  #include <grpc/impl/codegen/compression_types.h>
@@ -34,7 +35,7 @@ typedef void (*grpc_ioreq_completion_func)(grpc_call* call, int success,
34
35
 
35
36
  typedef struct grpc_call_create_args {
36
37
  grpc_channel* channel;
37
- grpc_server* server;
38
+ grpc_core::Server* server;
38
39
 
39
40
  grpc_call* parent;
40
41
  uint32_t propagation_mask;
@@ -27,15 +27,15 @@
27
27
  #include "src/core/lib/slice/slice_internal.h"
28
28
  #include "src/core/lib/surface/api_trace.h"
29
29
 
30
- void grpc_call_details_init(grpc_call_details* cd) {
31
- GRPC_API_TRACE("grpc_call_details_init(cd=%p)", 1, (cd));
32
- cd->method = grpc_empty_slice();
33
- cd->host = grpc_empty_slice();
30
+ void grpc_call_details_init(grpc_call_details* details) {
31
+ GRPC_API_TRACE("grpc_call_details_init(details=%p)", 1, (details));
32
+ details->method = grpc_empty_slice();
33
+ details->host = grpc_empty_slice();
34
34
  }
35
35
 
36
- void grpc_call_details_destroy(grpc_call_details* cd) {
37
- GRPC_API_TRACE("grpc_call_details_destroy(cd=%p)", 1, (cd));
36
+ void grpc_call_details_destroy(grpc_call_details* details) {
37
+ GRPC_API_TRACE("grpc_call_details_destroy(details=%p)", 1, (details));
38
38
  grpc_core::ExecCtx exec_ctx;
39
- grpc_slice_unref_internal(cd->method);
40
- grpc_slice_unref_internal(cd->host);
39
+ grpc_slice_unref_internal(details->method);
40
+ grpc_slice_unref_internal(details->host);
41
41
  }
@@ -58,7 +58,7 @@ static void destroy_channel(void* arg, grpc_error* error);
58
58
 
59
59
  grpc_channel* grpc_channel_create_with_builder(
60
60
  grpc_channel_stack_builder* builder,
61
- grpc_channel_stack_type channel_stack_type) {
61
+ grpc_channel_stack_type channel_stack_type, grpc_error** error) {
62
62
  char* target = gpr_strdup(grpc_channel_stack_builder_get_target(builder));
63
63
  grpc_channel_args* args = grpc_channel_args_copy(
64
64
  grpc_channel_stack_builder_get_channel_arguments(builder));
@@ -70,16 +70,21 @@ grpc_channel* grpc_channel_create_with_builder(
70
70
  } else {
71
71
  GRPC_STATS_INC_CLIENT_CHANNELS_CREATED();
72
72
  }
73
- grpc_error* error = grpc_channel_stack_builder_finish(
73
+ grpc_error* builder_error = grpc_channel_stack_builder_finish(
74
74
  builder, sizeof(grpc_channel), 1, destroy_channel, nullptr,
75
75
  reinterpret_cast<void**>(&channel));
76
- if (error != GRPC_ERROR_NONE) {
76
+ if (builder_error != GRPC_ERROR_NONE) {
77
77
  gpr_log(GPR_ERROR, "channel stack builder failed: %s",
78
- grpc_error_string(error));
79
- GRPC_ERROR_UNREF(error);
78
+ grpc_error_string(builder_error));
79
+ GPR_ASSERT(channel == nullptr);
80
+ if (error != nullptr) {
81
+ *error = builder_error;
82
+ } else {
83
+ GRPC_ERROR_UNREF(builder_error);
84
+ }
80
85
  gpr_free(target);
81
86
  grpc_channel_args_destroy(args);
82
- return channel;
87
+ return nullptr;
83
88
  }
84
89
  channel->target = target;
85
90
  channel->resource_user = resource_user;
@@ -183,42 +188,30 @@ void CreateChannelzNode(grpc_channel_stack_builder* builder) {
183
188
  const grpc_channel_args* args =
184
189
  grpc_channel_stack_builder_get_channel_arguments(builder);
185
190
  // Check whether channelz is enabled.
186
- const bool channelz_enabled = grpc_channel_arg_get_bool(
187
- grpc_channel_args_find(args, GRPC_ARG_ENABLE_CHANNELZ),
188
- GRPC_ENABLE_CHANNELZ_DEFAULT);
191
+ const bool channelz_enabled = grpc_channel_args_find_bool(
192
+ args, GRPC_ARG_ENABLE_CHANNELZ, GRPC_ENABLE_CHANNELZ_DEFAULT);
189
193
  if (!channelz_enabled) return;
190
194
  // Get parameters needed to create the channelz node.
191
- const size_t channel_tracer_max_memory = grpc_channel_arg_get_integer(
192
- grpc_channel_args_find(args,
193
- GRPC_ARG_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE),
195
+ const size_t channel_tracer_max_memory = grpc_channel_args_find_integer(
196
+ args, GRPC_ARG_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE,
194
197
  {GRPC_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE_DEFAULT, 0, INT_MAX});
195
- const intptr_t channelz_parent_uuid =
196
- grpc_core::channelz::GetParentUuidFromArgs(*args);
198
+ const bool is_internal_channel = grpc_channel_args_find_bool(
199
+ args, GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL, false);
197
200
  // Create the channelz node.
198
201
  const char* target = grpc_channel_stack_builder_get_target(builder);
199
202
  grpc_core::RefCountedPtr<grpc_core::channelz::ChannelNode> channelz_node =
200
203
  grpc_core::MakeRefCounted<grpc_core::channelz::ChannelNode>(
201
204
  target != nullptr ? target : "", channel_tracer_max_memory,
202
- channelz_parent_uuid);
205
+ is_internal_channel);
203
206
  channelz_node->AddTraceEvent(
204
207
  grpc_core::channelz::ChannelTrace::Severity::Info,
205
208
  grpc_slice_from_static_string("Channel created"));
206
- // Update parent channel node, if any.
207
- if (channelz_parent_uuid > 0) {
208
- grpc_core::RefCountedPtr<grpc_core::channelz::BaseNode> parent_node =
209
- grpc_core::channelz::ChannelzRegistry::Get(channelz_parent_uuid);
210
- if (parent_node != nullptr) {
211
- grpc_core::channelz::ChannelNode* parent =
212
- static_cast<grpc_core::channelz::ChannelNode*>(parent_node.get());
213
- parent->AddChildChannel(channelz_node->uuid());
214
- }
215
- }
216
209
  // Add channelz node to channel args.
217
- // We remove the arg for the parent uuid, since we no longer need it.
210
+ // We remove the is_internal_channel arg, since we no longer need it.
218
211
  grpc_arg new_arg = grpc_channel_arg_pointer_create(
219
212
  const_cast<char*>(GRPC_ARG_CHANNELZ_CHANNEL_NODE), channelz_node.get(),
220
213
  &channelz_node_arg_vtable);
221
- const char* args_to_remove[] = {GRPC_ARG_CHANNELZ_PARENT_UUID};
214
+ const char* args_to_remove[] = {GRPC_ARG_CHANNELZ_IS_INTERNAL_CHANNEL};
222
215
  grpc_channel_args* new_args = grpc_channel_args_copy_and_add_and_remove(
223
216
  args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove), &new_arg, 1);
224
217
  grpc_channel_stack_builder_set_channel_arguments(builder, new_args);
@@ -231,7 +224,8 @@ grpc_channel* grpc_channel_create(const char* target,
231
224
  const grpc_channel_args* input_args,
232
225
  grpc_channel_stack_type channel_stack_type,
233
226
  grpc_transport* optional_transport,
234
- grpc_resource_user* resource_user) {
227
+ grpc_resource_user* resource_user,
228
+ grpc_error** error) {
235
229
  // We need to make sure that grpc_shutdown() does not shut things down
236
230
  // until after the channel is destroyed. However, the channel may not
237
231
  // actually be destroyed by the time grpc_channel_destroy() returns,
@@ -280,7 +274,7 @@ grpc_channel* grpc_channel_create(const char* target,
280
274
  CreateChannelzNode(builder);
281
275
  }
282
276
  grpc_channel* channel =
283
- grpc_channel_create_with_builder(builder, channel_stack_type);
277
+ grpc_channel_create_with_builder(builder, channel_stack_type, error);
284
278
  if (channel == nullptr) {
285
279
  grpc_shutdown(); // Since we won't call destroy_channel().
286
280
  }
@@ -384,14 +378,14 @@ static grpc_call* grpc_channel_create_call_internal(
384
378
  grpc_call* grpc_channel_create_call(grpc_channel* channel,
385
379
  grpc_call* parent_call,
386
380
  uint32_t propagation_mask,
387
- grpc_completion_queue* cq,
381
+ grpc_completion_queue* completion_queue,
388
382
  grpc_slice method, const grpc_slice* host,
389
383
  gpr_timespec deadline, void* reserved) {
390
384
  GPR_ASSERT(!reserved);
391
385
  grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
392
386
  grpc_core::ExecCtx exec_ctx;
393
387
  grpc_call* call = grpc_channel_create_call_internal(
394
- channel, parent_call, propagation_mask, cq, nullptr,
388
+ channel, parent_call, propagation_mask, completion_queue, nullptr,
395
389
  grpc_mdelem_create(GRPC_MDSTR_PATH, method, nullptr),
396
390
  host != nullptr ? grpc_mdelem_create(GRPC_MDSTR_AUTHORITY, *host, nullptr)
397
391
  : GRPC_MDNULL,
@@ -415,26 +409,33 @@ grpc_call* grpc_channel_create_pollset_set_call(
415
409
 
416
410
  namespace grpc_core {
417
411
 
418
- RegisteredCall::RegisteredCall(const char* method, const char* host) {
419
- path = grpc_mdelem_from_slices(GRPC_MDSTR_PATH,
420
- grpc_core::ExternallyManagedSlice(method));
421
- authority =
422
- host ? grpc_mdelem_from_slices(GRPC_MDSTR_AUTHORITY,
423
- grpc_core::ExternallyManagedSlice(host))
424
- : GRPC_MDNULL;
425
- }
412
+ RegisteredCall::RegisteredCall(const char* method_arg, const char* host_arg)
413
+ : method(method_arg != nullptr ? method_arg : ""),
414
+ host(host_arg != nullptr ? host_arg : ""),
415
+ path(grpc_mdelem_from_slices(
416
+ GRPC_MDSTR_PATH, grpc_core::ExternallyManagedSlice(method.c_str()))),
417
+ authority(!host.empty()
418
+ ? grpc_mdelem_from_slices(
419
+ GRPC_MDSTR_AUTHORITY,
420
+ grpc_core::ExternallyManagedSlice(host.c_str()))
421
+ : GRPC_MDNULL) {}
426
422
 
427
423
  // TODO(vjpai): Delete copy-constructor when allowed by all supported compilers.
428
- RegisteredCall::RegisteredCall(const RegisteredCall& other) {
429
- path = other.path;
430
- authority = other.authority;
431
- GRPC_MDELEM_REF(path);
432
- GRPC_MDELEM_REF(authority);
433
- }
434
-
435
- RegisteredCall::RegisteredCall(RegisteredCall&& other) noexcept {
436
- path = other.path;
437
- authority = other.authority;
424
+ RegisteredCall::RegisteredCall(const RegisteredCall& other)
425
+ : RegisteredCall(other.method.c_str(), other.host.c_str()) {}
426
+
427
+ RegisteredCall::RegisteredCall(RegisteredCall&& other) noexcept
428
+ : method(std::move(other.method)),
429
+ host(std::move(other.host)),
430
+ path(grpc_mdelem_from_slices(
431
+ GRPC_MDSTR_PATH, grpc_core::ExternallyManagedSlice(method.c_str()))),
432
+ authority(!host.empty()
433
+ ? grpc_mdelem_from_slices(
434
+ GRPC_MDSTR_AUTHORITY,
435
+ grpc_core::ExternallyManagedSlice(host.c_str()))
436
+ : GRPC_MDNULL) {
437
+ GRPC_MDELEM_UNREF(other.path);
438
+ GRPC_MDELEM_UNREF(other.authority);
438
439
  other.path = GRPC_MDNULL;
439
440
  other.authority = GRPC_MDNULL;
440
441
  }
@@ -457,13 +458,14 @@ void* grpc_channel_register_call(grpc_channel* channel, const char* method,
457
458
 
458
459
  grpc_core::MutexLock lock(&channel->registration_table->mu);
459
460
  channel->registration_table->method_registration_attempts++;
460
- auto key = std::make_pair(host, method);
461
+ auto key = std::make_pair(std::string(host != nullptr ? host : ""),
462
+ std::string(method != nullptr ? method : ""));
461
463
  auto rc_posn = channel->registration_table->map.find(key);
462
464
  if (rc_posn != channel->registration_table->map.end()) {
463
465
  return &rc_posn->second;
464
466
  }
465
467
  auto insertion_result = channel->registration_table->map.insert(
466
- {key, grpc_core::RegisteredCall(method, host)});
468
+ {std::move(key), grpc_core::RegisteredCall(method, host)});
467
469
  return &insertion_result.first->second;
468
470
  }
469
471
 
@@ -498,16 +500,6 @@ grpc_call* grpc_channel_create_registered_call(
498
500
  static void destroy_channel(void* arg, grpc_error* /*error*/) {
499
501
  grpc_channel* channel = static_cast<grpc_channel*>(arg);
500
502
  if (channel->channelz_node != nullptr) {
501
- if (channel->channelz_node->parent_uuid() > 0) {
502
- grpc_core::RefCountedPtr<grpc_core::channelz::BaseNode> parent_node =
503
- grpc_core::channelz::ChannelzRegistry::Get(
504
- channel->channelz_node->parent_uuid());
505
- if (parent_node != nullptr) {
506
- grpc_core::channelz::ChannelNode* parent =
507
- static_cast<grpc_core::channelz::ChannelNode*>(parent_node.get());
508
- parent->RemoveChildChannel(channel->channelz_node->uuid());
509
- }
510
- }
511
503
  channel->channelz_node->AddTraceEvent(
512
504
  grpc_core::channelz::ChannelTrace::Severity::Info,
513
505
  grpc_slice_from_static_string("Channel destroyed"));
@@ -34,7 +34,8 @@ grpc_channel* grpc_channel_create(const char* target,
34
34
  const grpc_channel_args* args,
35
35
  grpc_channel_stack_type channel_stack_type,
36
36
  grpc_transport* optional_transport,
37
- grpc_resource_user* resource_user = nullptr);
37
+ grpc_resource_user* resource_user = nullptr,
38
+ grpc_error** error = nullptr);
38
39
 
39
40
  /** The same as grpc_channel_destroy, but doesn't create an ExecCtx, and so
40
41
  * is safe to use from within core. */
@@ -42,7 +43,7 @@ void grpc_channel_destroy_internal(grpc_channel* channel);
42
43
 
43
44
  grpc_channel* grpc_channel_create_with_builder(
44
45
  grpc_channel_stack_builder* builder,
45
- grpc_channel_stack_type channel_stack_type);
46
+ grpc_channel_stack_type channel_stack_type, grpc_error** error = nullptr);
46
47
 
47
48
  /** Create a call given a grpc_channel, in order to call \a method.
48
49
  Progress is tied to activity on \a pollset_set. The returned call object is
@@ -69,21 +70,31 @@ void grpc_channel_update_call_size_estimate(grpc_channel* channel, size_t size);
69
70
  namespace grpc_core {
70
71
 
71
72
  struct RegisteredCall {
73
+ // The method and host are kept as part of this struct just to manage their
74
+ // lifetime since they must outlive the mdelem contents.
75
+ std::string method;
76
+ std::string host;
77
+
72
78
  grpc_mdelem path;
73
79
  grpc_mdelem authority;
74
80
 
75
- explicit RegisteredCall(const char* method, const char* host);
81
+ explicit RegisteredCall(const char* method_arg, const char* host_arg);
76
82
  // TODO(vjpai): delete copy constructor once all supported compilers allow
77
83
  // std::map value_type to be MoveConstructible.
78
84
  RegisteredCall(const RegisteredCall& other);
79
85
  RegisteredCall(RegisteredCall&& other) noexcept;
86
+ RegisteredCall& operator=(const RegisteredCall&) = delete;
87
+ RegisteredCall& operator=(RegisteredCall&&) = delete;
80
88
 
81
89
  ~RegisteredCall();
82
90
  };
83
91
 
84
92
  struct CallRegistrationTable {
85
93
  grpc_core::Mutex mu;
86
- std::map<std::pair<const char*, const char*>, RegisteredCall>
94
+ // The map key should be owned strings rather than unowned char*'s to
95
+ // guarantee that it outlives calls on the core channel (which may outlast the
96
+ // C++ or other wrapped language Channel that registered these calls).
97
+ std::map<std::pair<std::string, std::string>, RegisteredCall>
87
98
  map /* GUARDED_BY(mu) */;
88
99
  int method_registration_attempts /* GUARDED_BY(mu) */ = 0;
89
100
  };
@@ -151,8 +162,13 @@ inline void grpc_channel_internal_unref(grpc_channel* channel) {
151
162
  grpc_channel_internal_unref(channel)
152
163
  #endif
153
164
 
154
- /** Return the channel's compression options. */
165
+ // Return the channel's compression options.
155
166
  grpc_compression_options grpc_channel_compression_options(
156
167
  const grpc_channel* channel);
157
168
 
169
+ // Ping the channels peer (load balanced channels will select one sub-channel to
170
+ // ping); if the channel is not connected, posts a failed.
171
+ void grpc_channel_ping(grpc_channel* channel, grpc_completion_queue* cq,
172
+ void* tag, void* reserved);
173
+
158
174
  #endif /* GRPC_CORE_LIB_SURFACE_CHANNEL_H */
@@ -87,7 +87,7 @@ void grpc_channel_init_shutdown(void) {
87
87
  for (int i = 0; i < GRPC_NUM_CHANNEL_STACK_TYPES; i++) {
88
88
  gpr_free(g_slots[i].slots);
89
89
  g_slots[i].slots =
90
- static_cast<stage_slot*>((void*)static_cast<uintptr_t>(0xdeadbeef));
90
+ static_cast<stage_slot*>(reinterpret_cast<void*>(0xdeadbeef));
91
91
  }
92
92
  }
93
93
 
@@ -39,7 +39,6 @@
39
39
  #include "src/core/lib/gpr/string.h"
40
40
  #include "src/core/lib/gpr/tls.h"
41
41
  #include "src/core/lib/gprpp/atomic.h"
42
- #include "src/core/lib/iomgr/closure.h"
43
42
  #include "src/core/lib/iomgr/executor.h"
44
43
  #include "src/core/lib/iomgr/pollset.h"
45
44
  #include "src/core/lib/iomgr/timer.h"
@@ -127,8 +126,8 @@ grpc_error* non_polling_poller_work(grpc_pollset* pollset,
127
126
  gpr_timespec deadline_ts =
128
127
  grpc_millis_to_timespec(deadline, GPR_CLOCK_MONOTONIC);
129
128
  while (!npp->shutdown && !w.kicked &&
130
- !gpr_cv_wait(&w.cv, &npp->mu, deadline_ts))
131
- ;
129
+ !gpr_cv_wait(&w.cv, &npp->mu, deadline_ts)) {
130
+ }
132
131
  grpc_core::ExecCtx::Get()->InvalidateNow();
133
132
  if (&w == npp->root) {
134
133
  npp->root = w.next;
@@ -149,8 +148,9 @@ grpc_error* non_polling_poller_work(grpc_pollset* pollset,
149
148
  grpc_error* non_polling_poller_kick(grpc_pollset* pollset,
150
149
  grpc_pollset_worker* specific_worker) {
151
150
  non_polling_poller* p = reinterpret_cast<non_polling_poller*>(pollset);
152
- if (specific_worker == nullptr)
151
+ if (specific_worker == nullptr) {
153
152
  specific_worker = reinterpret_cast<grpc_pollset_worker*>(p->root);
153
+ }
154
154
  if (specific_worker != nullptr) {
155
155
  non_polling_worker* w =
156
156
  reinterpret_cast<non_polling_worker*>(specific_worker);
@@ -209,9 +209,6 @@ struct cq_vtable {
209
209
  void* reserved);
210
210
  grpc_event (*pluck)(grpc_completion_queue* cq, void* tag,
211
211
  gpr_timespec deadline, void* reserved);
212
- // TODO(vjpai): Remove proxy_pollset once callback_alternative no longer
213
- // needed.
214
- grpc_pollset* (*proxy_pollset)(grpc_completion_queue* cq);
215
212
  };
216
213
 
217
214
  namespace {
@@ -338,81 +335,6 @@ struct cq_callback_data {
338
335
  grpc_experimental_completion_queue_functor* shutdown_callback;
339
336
  };
340
337
 
341
- // TODO(vjpai): Remove all callback_alternative variants when event manager is
342
- // the only supported poller.
343
- struct cq_callback_alternative_data {
344
- explicit cq_callback_alternative_data(
345
- grpc_experimental_completion_queue_functor* shutdown_callback)
346
- : implementation(SharedNextableCQ()),
347
- shutdown_callback(shutdown_callback) {}
348
-
349
- /* This just points to a single shared nextable CQ */
350
- grpc_completion_queue* const implementation;
351
-
352
- /** Number of outstanding events (+1 if not shut down)
353
- Initial count is dropped by grpc_completion_queue_shutdown */
354
- grpc_core::Atomic<intptr_t> pending_events{1};
355
-
356
- /** 0 initially. 1 once we initiated shutdown */
357
- bool shutdown_called = false;
358
-
359
- /** A callback that gets invoked when the CQ completes shutdown */
360
- grpc_experimental_completion_queue_functor* shutdown_callback;
361
-
362
- static grpc_completion_queue* SharedNextableCQ() {
363
- grpc_core::MutexLock lock(&*shared_cq_next_mu);
364
-
365
- if (shared_cq_next == nullptr) {
366
- shared_cq_next = grpc_completion_queue_create_for_next(nullptr);
367
- int num_nexting_threads = GPR_CLAMP(gpr_cpu_num_cores(), 1, 32);
368
- threads_remaining.Store(num_nexting_threads,
369
- grpc_core::MemoryOrder::RELEASE);
370
- for (int i = 0; i < num_nexting_threads; i++) {
371
- grpc_core::Executor::Run(
372
- GRPC_CLOSURE_CREATE(
373
- [](void* arg, grpc_error* /*error*/) {
374
- grpc_completion_queue* cq =
375
- static_cast<grpc_completion_queue*>(arg);
376
- while (true) {
377
- grpc_event event = grpc_completion_queue_next(
378
- cq, gpr_inf_future(GPR_CLOCK_REALTIME), nullptr);
379
- if (event.type == GRPC_QUEUE_SHUTDOWN) {
380
- break;
381
- }
382
- GPR_DEBUG_ASSERT(event.type == GRPC_OP_COMPLETE);
383
- // We can always execute the callback inline rather than
384
- // pushing it to another Executor thread because this
385
- // thread is definitely running on an executor, does not
386
- // hold any application locks before executing the callback,
387
- // and cannot be entered recursively.
388
- auto* functor = static_cast<
389
- grpc_experimental_completion_queue_functor*>(event.tag);
390
- functor->functor_run(functor, event.success);
391
- }
392
- if (threads_remaining.FetchSub(
393
- 1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
394
- grpc_completion_queue_destroy(cq);
395
- }
396
- },
397
- shared_cq_next, nullptr),
398
- GRPC_ERROR_NONE, grpc_core::ExecutorType::DEFAULT,
399
- grpc_core::ExecutorJobType::LONG);
400
- }
401
- }
402
- return shared_cq_next;
403
- }
404
- // Use manually-constructed Mutex to avoid static construction issues
405
- static grpc_core::ManualConstructor<grpc_core::Mutex> shared_cq_next_mu;
406
- static grpc_completion_queue*
407
- shared_cq_next; // GUARDED_BY(shared_cq_next_mu)
408
- static grpc_core::Atomic<int> threads_remaining;
409
- };
410
-
411
- grpc_core::ManualConstructor<grpc_core::Mutex>
412
- cq_callback_alternative_data::shared_cq_next_mu;
413
- grpc_completion_queue* cq_callback_alternative_data::shared_cq_next = nullptr;
414
- grpc_core::Atomic<int> cq_callback_alternative_data::threads_remaining{0};
415
-
416
338
  } // namespace
417
339
 
418
340
  /* Completion queue structure */
@@ -425,12 +347,6 @@ struct grpc_completion_queue {
425
347
  const cq_vtable* vtable;
426
348
  const cq_poller_vtable* poller_vtable;
427
349
 
428
- // The pollset entry is allowed to enable proxy CQs like the
429
- // callback_alternative.
430
- // TODO(vjpai): Consider removing pollset and reverting to previous
431
- // calculation of pollset once callback_alternative is no longer needed.
432
- grpc_pollset* pollset;
433
-
434
350
  #ifndef NDEBUG
435
351
  void** outstanding_tags;
436
352
  size_t outstanding_tag_count;
@@ -445,17 +361,13 @@ struct grpc_completion_queue {
445
361
  static void cq_finish_shutdown_next(grpc_completion_queue* cq);
446
362
  static void cq_finish_shutdown_pluck(grpc_completion_queue* cq);
447
363
  static void cq_finish_shutdown_callback(grpc_completion_queue* cq);
448
- static void cq_finish_shutdown_callback_alternative(grpc_completion_queue* cq);
449
364
  static void cq_shutdown_next(grpc_completion_queue* cq);
450
365
  static void cq_shutdown_pluck(grpc_completion_queue* cq);
451
366
  static void cq_shutdown_callback(grpc_completion_queue* cq);
452
- static void cq_shutdown_callback_alternative(grpc_completion_queue* cq);
453
367
 
454
368
  static bool cq_begin_op_for_next(grpc_completion_queue* cq, void* tag);
455
369
  static bool cq_begin_op_for_pluck(grpc_completion_queue* cq, void* tag);
456
370
  static bool cq_begin_op_for_callback(grpc_completion_queue* cq, void* tag);
457
- static bool cq_begin_op_for_callback_alternative(grpc_completion_queue* cq,
458
- void* tag);
459
371
 
460
372
  // A cq_end_op function is called when an operation on a given CQ with
461
373
  // a given tag has completed. The storage argument is a reference to the
@@ -478,20 +390,12 @@ static void cq_end_op_for_callback(
478
390
  void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
479
391
  grpc_cq_completion* storage, bool internal);
480
392
 
481
- static void cq_end_op_for_callback_alternative(
482
- grpc_completion_queue* cq, void* tag, grpc_error* error,
483
- void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
484
- grpc_cq_completion* storage, bool internal);
485
-
486
393
  static grpc_event cq_next(grpc_completion_queue* cq, gpr_timespec deadline,
487
394
  void* reserved);
488
395
 
489
396
  static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
490
397
  gpr_timespec deadline, void* reserved);
491
398
 
492
- static grpc_pollset* cq_proxy_pollset_for_callback_alternative(
493
- grpc_completion_queue* cq);
494
-
495
399
  // Note that cq_init_next and cq_init_pluck do not use the shutdown_callback
496
400
  static void cq_init_next(
497
401
  void* data, grpc_experimental_completion_queue_functor* shutdown_callback);
@@ -499,39 +403,29 @@ static void cq_init_pluck(
499
403
  void* data, grpc_experimental_completion_queue_functor* shutdown_callback);
500
404
  static void cq_init_callback(
501
405
  void* data, grpc_experimental_completion_queue_functor* shutdown_callback);
502
- // poller becomes only option.
503
- static void cq_init_callback_alternative(
504
- void* data, grpc_experimental_completion_queue_functor* shutdown_callback);
505
406
  static void cq_destroy_next(void* data);
506
407
  static void cq_destroy_pluck(void* data);
507
408
  static void cq_destroy_callback(void* data);
508
- static void cq_destroy_callback_alternative(void* data);
509
409
 
510
410
  /* Completion queue vtables based on the completion-type */
511
- // TODO(vjpai): Make this const again once we stop needing callback_alternative
512
- static cq_vtable g_polling_cq_vtable[] = {
411
+ static const cq_vtable g_cq_vtable[] = {
513
412
  /* GRPC_CQ_NEXT */
514
413
  {GRPC_CQ_NEXT, sizeof(cq_next_data), cq_init_next, cq_shutdown_next,
515
414
  cq_destroy_next, cq_begin_op_for_next, cq_end_op_for_next, cq_next,
516
- nullptr, nullptr},
415
+ nullptr},
517
416
  /* GRPC_CQ_PLUCK */
518
417
  {GRPC_CQ_PLUCK, sizeof(cq_pluck_data), cq_init_pluck, cq_shutdown_pluck,
519
418
  cq_destroy_pluck, cq_begin_op_for_pluck, cq_end_op_for_pluck, nullptr,
520
- cq_pluck, nullptr},
419
+ cq_pluck},
521
420
  /* GRPC_CQ_CALLBACK */
522
421
  {GRPC_CQ_CALLBACK, sizeof(cq_callback_data), cq_init_callback,
523
422
  cq_shutdown_callback, cq_destroy_callback, cq_begin_op_for_callback,
524
- cq_end_op_for_callback, nullptr, nullptr, nullptr},
423
+ cq_end_op_for_callback, nullptr, nullptr},
525
424
  };
526
425
 
527
- // Separate vtable for non-polling cqs, assign at init
528
- static cq_vtable g_nonpolling_cq_vtable[sizeof(g_polling_cq_vtable) /
529
- sizeof(g_polling_cq_vtable[0])];
530
-
531
- #define DATA_FROM_CQ(cq) ((void*)(cq + 1))
532
- #define INLINE_POLLSET_FROM_CQ(cq) \
533
- ((grpc_pollset*)(cq->vtable->data_size + (char*)DATA_FROM_CQ(cq)))
534
- #define POLLSET_FROM_CQ(cq) (cq->pollset)
426
+ #define DATA_FROM_CQ(cq) ((void*)((cq) + 1))
427
+ #define POLLSET_FROM_CQ(cq) \
428
+ ((grpc_pollset*)((cq)->vtable->data_size + (char*)DATA_FROM_CQ(cq)))
535
429
 
536
430
  grpc_core::TraceFlag grpc_cq_pluck_trace(false, "queue_pluck");
537
431
 
@@ -545,55 +439,16 @@ grpc_core::TraceFlag grpc_cq_pluck_trace(false, "queue_pluck");
545
439
  } \
546
440
  } while (0)
547
441
 
548
- static void on_pollset_shutdown_done(void* cq, grpc_error* error);
442
+ static void on_pollset_shutdown_done(void* arg, grpc_error* error);
549
443
 
550
444
  void grpc_cq_global_init() {
551
445
  gpr_tls_init(&g_cached_event);
552
446
  gpr_tls_init(&g_cached_cq);
553
- g_nonpolling_cq_vtable[GRPC_CQ_NEXT] = g_polling_cq_vtable[GRPC_CQ_NEXT];
554
- g_nonpolling_cq_vtable[GRPC_CQ_PLUCK] = g_polling_cq_vtable[GRPC_CQ_PLUCK];
555
- g_nonpolling_cq_vtable[GRPC_CQ_CALLBACK] =
556
- g_polling_cq_vtable[GRPC_CQ_CALLBACK];
557
- }
558
-
559
- // TODO(vjpai): Remove when callback_alternative is no longer needed
560
- void grpc_cq_init() {
561
- // If the iomgr runs in the background, we can use the preferred callback CQ.
562
- // If the iomgr is non-polling, we cannot use the alternative callback CQ.
563
- if (!grpc_iomgr_run_in_background() && !grpc_iomgr_non_polling()) {
564
- cq_callback_alternative_data::shared_cq_next_mu.Init();
565
- g_polling_cq_vtable[GRPC_CQ_CALLBACK] = {
566
- GRPC_CQ_CALLBACK,
567
- sizeof(cq_callback_alternative_data),
568
- cq_init_callback_alternative,
569
- cq_shutdown_callback_alternative,
570
- cq_destroy_callback_alternative,
571
- cq_begin_op_for_callback_alternative,
572
- cq_end_op_for_callback_alternative,
573
- nullptr,
574
- nullptr,
575
- cq_proxy_pollset_for_callback_alternative};
576
- }
577
- }
578
-
579
- // TODO(vjpai): Remove when callback_alternative is no longer needed
580
- void grpc_cq_shutdown() {
581
- if (!grpc_iomgr_run_in_background() && !grpc_iomgr_non_polling()) {
582
- {
583
- grpc_core::MutexLock lock(
584
- &*cq_callback_alternative_data::shared_cq_next_mu);
585
- if (cq_callback_alternative_data::shared_cq_next != nullptr) {
586
- grpc_completion_queue_shutdown(
587
- cq_callback_alternative_data::shared_cq_next);
588
- }
589
- cq_callback_alternative_data::shared_cq_next = nullptr;
590
- }
591
- cq_callback_alternative_data::shared_cq_next_mu.Destroy();
592
- }
593
447
  }
594
448
 
595
449
  void grpc_completion_queue_thread_local_cache_init(grpc_completion_queue* cq) {
596
- if ((grpc_completion_queue*)gpr_tls_get(&g_cached_cq) == nullptr) {
450
+ if (reinterpret_cast<grpc_completion_queue*>(gpr_tls_get(&g_cached_cq)) ==
451
+ nullptr) {
597
452
  gpr_tls_set(&g_cached_event, (intptr_t)0);
598
453
  gpr_tls_set(&g_cached_cq, (intptr_t)cq);
599
454
  }
@@ -602,10 +457,10 @@ void grpc_completion_queue_thread_local_cache_init(grpc_completion_queue* cq) {
602
457
  int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue* cq,
603
458
  void** tag, int* ok) {
604
459
  grpc_cq_completion* storage =
605
- (grpc_cq_completion*)gpr_tls_get(&g_cached_event);
460
+ reinterpret_cast<grpc_cq_completion*>(gpr_tls_get(&g_cached_event));
606
461
  int ret = 0;
607
- if (storage != nullptr &&
608
- (grpc_completion_queue*)gpr_tls_get(&g_cached_cq) == cq) {
462
+ if (storage != nullptr && reinterpret_cast<grpc_completion_queue*>(
463
+ gpr_tls_get(&g_cached_cq)) == cq) {
609
464
  *tag = storage->tag;
610
465
  grpc_core::ExecCtx exec_ctx;
611
466
  *ok = (storage->next & static_cast<uintptr_t>(1)) == 1;
@@ -668,9 +523,7 @@ grpc_completion_queue* grpc_completion_queue_create_internal(
668
523
  "polling_type=%d)",
669
524
  2, (completion_type, polling_type));
670
525
 
671
- const cq_vtable* vtable = (polling_type == GRPC_CQ_NON_POLLING)
672
- ? &g_nonpolling_cq_vtable[completion_type]
673
- : &g_polling_cq_vtable[completion_type];
526
+ const cq_vtable* vtable = &g_cq_vtable[completion_type];
674
527
  const cq_poller_vtable* poller_vtable =
675
528
  &g_poller_vtable_by_poller_type[polling_type];
676
529
 
@@ -687,18 +540,9 @@ grpc_completion_queue* grpc_completion_queue_create_internal(
687
540
  /* One for destroy(), one for pollset_shutdown */
688
541
  new (&cq->owning_refs) grpc_core::RefCount(2);
689
542
 
543
+ poller_vtable->init(POLLSET_FROM_CQ(cq), &cq->mu);
690
544
  vtable->init(DATA_FROM_CQ(cq), shutdown_callback);
691
545
 
692
- // TODO(vjpai): When callback_alternative is no longer needed, cq->pollset can
693
- // be removed and the nullptr proxy_pollset value below can be the definition
694
- // of POLLSET_FROM_CQ.
695
- cq->pollset = cq->vtable->proxy_pollset == nullptr
696
- ? INLINE_POLLSET_FROM_CQ(cq)
697
- : cq->vtable->proxy_pollset(cq);
698
- // Init the inline pollset. If a proxy CQ is used, the proxy pollset will be
699
- // init'ed in its CQ init.
700
- cq->poller_vtable->init(INLINE_POLLSET_FROM_CQ(cq), &cq->mu);
701
-
702
546
  GRPC_CLOSURE_INIT(&cq->pollset_shutdown_done, on_pollset_shutdown_done, cq,
703
547
  grpc_schedule_on_exec_ctx);
704
548
  return cq;
@@ -736,17 +580,6 @@ static void cq_destroy_callback(void* data) {
736
580
  cqd->~cq_callback_data();
737
581
  }
738
582
 
739
- static void cq_init_callback_alternative(
740
- void* data, grpc_experimental_completion_queue_functor* shutdown_callback) {
741
- new (data) cq_callback_alternative_data(shutdown_callback);
742
- }
743
-
744
- static void cq_destroy_callback_alternative(void* data) {
745
- cq_callback_alternative_data* cqd =
746
- static_cast<cq_callback_alternative_data*>(data);
747
- cqd->~cq_callback_alternative_data();
748
- }
749
-
750
583
  grpc_cq_completion_type grpc_get_cq_completion_type(grpc_completion_queue* cq) {
751
584
  return cq->vtable->cq_completion_type;
752
585
  }
@@ -787,9 +620,7 @@ void grpc_cq_internal_unref(grpc_completion_queue* cq) {
787
620
  #endif
788
621
  if (GPR_UNLIKELY(cq->owning_refs.Unref(debug_location, reason))) {
789
622
  cq->vtable->destroy(DATA_FROM_CQ(cq));
790
- // Only destroy the inlined pollset. If a proxy CQ is used, the proxy
791
- // pollset will be destroyed by the proxy CQ.
792
- cq->poller_vtable->destroy(INLINE_POLLSET_FROM_CQ(cq));
623
+ cq->poller_vtable->destroy(POLLSET_FROM_CQ(cq));
793
624
  #ifndef NDEBUG
794
625
  gpr_free(cq->outstanding_tags);
795
626
  #endif
@@ -840,14 +671,6 @@ static bool cq_begin_op_for_callback(grpc_completion_queue* cq, void* /*tag*/) {
840
671
  return cqd->pending_events.IncrementIfNonzero();
841
672
  }
842
673
 
843
- static bool cq_begin_op_for_callback_alternative(grpc_completion_queue* cq,
844
- void* tag) {
845
- cq_callback_alternative_data* cqd =
846
- static_cast<cq_callback_alternative_data*> DATA_FROM_CQ(cq);
847
- return grpc_cq_begin_op(cqd->implementation, tag) &&
848
- cqd->pending_events.IncrementIfNonzero();
849
- }
850
-
851
674
  bool grpc_cq_begin_op(grpc_completion_queue* cq, void* tag) {
852
675
  #ifndef NDEBUG
853
676
  gpr_mu_lock(cq->mu);
@@ -895,8 +718,10 @@ static void cq_end_op_for_next(
895
718
 
896
719
  cq_check_tag(cq, tag, true); /* Used in debug builds only */
897
720
 
898
- if ((grpc_completion_queue*)gpr_tls_get(&g_cached_cq) == cq &&
899
- (grpc_cq_completion*)gpr_tls_get(&g_cached_event) == nullptr) {
721
+ if (reinterpret_cast<grpc_completion_queue*>(gpr_tls_get(&g_cached_cq)) ==
722
+ cq &&
723
+ reinterpret_cast<grpc_cq_completion*>(gpr_tls_get(&g_cached_event)) ==
724
+ nullptr) {
900
725
  gpr_tls_set(&g_cached_event, (intptr_t)storage);
901
726
  } else {
902
727
  /* Add the completion to the queue */
@@ -971,8 +796,8 @@ static void cq_end_op_for_pluck(
971
796
  storage->tag = tag;
972
797
  storage->done = done;
973
798
  storage->done_arg = done_arg;
974
- storage->next =
975
- ((uintptr_t)&cqd->completed_head) | (static_cast<uintptr_t>(is_success));
799
+ storage->next = reinterpret_cast<uintptr_t>(&cqd->completed_head) |
800
+ static_cast<uintptr_t>(is_success);
976
801
 
977
802
  gpr_mu_lock(cq->mu);
978
803
  cq_check_tag(cq, tag, false); /* Used in debug builds only */
@@ -980,7 +805,7 @@ static void cq_end_op_for_pluck(
980
805
  /* Add to the list of completions */
981
806
  cqd->things_queued_ever.FetchAdd(1, grpc_core::MemoryOrder::RELAXED);
982
807
  cqd->completed_tail->next =
983
- ((uintptr_t)storage) | (1u & cqd->completed_tail->next);
808
+ reinterpret_cast<uintptr_t>(storage) | (1u & cqd->completed_tail->next);
984
809
  cqd->completed_tail = storage;
985
810
 
986
811
  if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
@@ -1011,7 +836,7 @@ static void cq_end_op_for_pluck(
1011
836
  GRPC_ERROR_UNREF(error);
1012
837
  }
1013
838
 
1014
- void functor_callback(void* arg, grpc_error* error) {
839
+ static void functor_callback(void* arg, grpc_error* error) {
1015
840
  auto* functor = static_cast<grpc_experimental_completion_queue_functor*>(arg);
1016
841
  functor->functor_run(functor, error == GRPC_ERROR_NONE);
1017
842
  }
@@ -1071,40 +896,6 @@ static void cq_end_op_for_callback(
1071
896
  GRPC_CLOSURE_CREATE(functor_callback, functor, nullptr), error);
1072
897
  }
1073
898
 
1074
- static void cq_end_op_for_callback_alternative(
1075
- grpc_completion_queue* cq, void* tag, grpc_error* error,
1076
- void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg,
1077
- grpc_cq_completion* storage, bool internal) {
1078
- GPR_TIMER_SCOPE("cq_end_op_for_callback_alternative", 0);
1079
-
1080
- cq_callback_alternative_data* cqd =
1081
- static_cast<cq_callback_alternative_data*> DATA_FROM_CQ(cq);
1082
-
1083
- if (GRPC_TRACE_FLAG_ENABLED(grpc_api_trace) ||
1084
- (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
1085
- error != GRPC_ERROR_NONE)) {
1086
- const char* errmsg = grpc_error_string(error);
1087
- GRPC_API_TRACE(
1088
- "cq_end_op_for_callback_alternative(cq=%p, tag=%p, error=%s, "
1089
- "done=%p, done_arg=%p, storage=%p)",
1090
- 6, (cq, tag, errmsg, done, done_arg, storage));
1091
- if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_operation_failures) &&
1092
- error != GRPC_ERROR_NONE) {
1093
- gpr_log(GPR_ERROR, "Operation failed: tag=%p, error=%s", tag, errmsg);
1094
- }
1095
- }
1096
-
1097
- // Pass through the actual work to the internal nextable CQ
1098
- grpc_cq_end_op(cqd->implementation, tag, error, done, done_arg, storage,
1099
- internal);
1100
-
1101
- cq_check_tag(cq, tag, true); /* Used in debug builds only */
1102
-
1103
- if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
1104
- cq_finish_shutdown_callback_alternative(cq);
1105
- }
1106
- }
1107
-
1108
899
  void grpc_cq_end_op(grpc_completion_queue* cq, void* tag, grpc_error* error,
1109
900
  void (*done)(void* done_arg, grpc_cq_completion* storage),
1110
901
  void* done_arg, grpc_cq_completion* storage,
@@ -1112,13 +903,6 @@ void grpc_cq_end_op(grpc_completion_queue* cq, void* tag, grpc_error* error,
1112
903
  cq->vtable->end_op(cq, tag, error, done, done_arg, storage, internal);
1113
904
  }
1114
905
 
1115
- static grpc_pollset* cq_proxy_pollset_for_callback_alternative(
1116
- grpc_completion_queue* cq) {
1117
- cq_callback_alternative_data* cqd =
1118
- static_cast<cq_callback_alternative_data*>(DATA_FROM_CQ(cq));
1119
- return POLLSET_FROM_CQ(cqd->implementation);
1120
- }
1121
-
1122
906
  struct cq_is_finished_arg {
1123
907
  gpr_atm last_seen_things_queued_ever;
1124
908
  grpc_completion_queue* cq;
@@ -1129,7 +913,8 @@ struct cq_is_finished_arg {
1129
913
  };
1130
914
  class ExecCtxNext : public grpc_core::ExecCtx {
1131
915
  public:
1132
- ExecCtxNext(void* arg) : ExecCtx(0), check_ready_to_finish_arg_(arg) {}
916
+ explicit ExecCtxNext(void* arg)
917
+ : ExecCtx(0), check_ready_to_finish_arg_(arg) {}
1133
918
 
1134
919
  bool CheckReadyToFinish() override {
1135
920
  cq_is_finished_arg* a =
@@ -1377,7 +1162,8 @@ static void del_plucker(grpc_completion_queue* cq, void* tag,
1377
1162
 
1378
1163
  class ExecCtxPluck : public grpc_core::ExecCtx {
1379
1164
  public:
1380
- ExecCtxPluck(void* arg) : ExecCtx(0), check_ready_to_finish_arg_(arg) {}
1165
+ explicit ExecCtxPluck(void* arg)
1166
+ : ExecCtx(0), check_ready_to_finish_arg_(arg) {}
1381
1167
 
1382
1168
  bool CheckReadyToFinish() override {
1383
1169
  cq_is_finished_arg* a =
@@ -1395,8 +1181,8 @@ class ExecCtxPluck : public grpc_core::ExecCtx {
1395
1181
  cqd->things_queued_ever.Load(grpc_core::MemoryOrder::RELAXED);
1396
1182
  grpc_cq_completion* c;
1397
1183
  grpc_cq_completion* prev = &cqd->completed_head;
1398
- while ((c = (grpc_cq_completion*)(prev->next &
1399
- ~static_cast<uintptr_t>(1))) !=
1184
+ while ((c = reinterpret_cast<grpc_cq_completion*>(
1185
+ prev->next & ~static_cast<uintptr_t>(1))) !=
1400
1186
  &cqd->completed_head) {
1401
1187
  if (c->tag == a->tag) {
1402
1188
  prev->next = (prev->next & static_cast<uintptr_t>(1)) |
@@ -1467,9 +1253,9 @@ static grpc_event cq_pluck(grpc_completion_queue* cq, void* tag,
1467
1253
  break;
1468
1254
  }
1469
1255
  prev = &cqd->completed_head;
1470
- while (
1471
- (c = (grpc_cq_completion*)(prev->next & ~static_cast<uintptr_t>(1))) !=
1472
- &cqd->completed_head) {
1256
+ while ((c = reinterpret_cast<grpc_cq_completion*>(
1257
+ prev->next & ~static_cast<uintptr_t>(1))) !=
1258
+ &cqd->completed_head) {
1473
1259
  if (c->tag == tag) {
1474
1260
  prev->next = (prev->next & static_cast<uintptr_t>(1)) |
1475
1261
  (c->next & ~static_cast<uintptr_t>(1));
@@ -1549,7 +1335,7 @@ static void cq_finish_shutdown_pluck(grpc_completion_queue* cq) {
1549
1335
 
1550
1336
  GPR_ASSERT(cqd->shutdown_called);
1551
1337
  GPR_ASSERT(!cqd->shutdown.Load(grpc_core::MemoryOrder::RELAXED));
1552
- cqd->shutdown.Store(1, grpc_core::MemoryOrder::RELAXED);
1338
+ cqd->shutdown.Store(true, grpc_core::MemoryOrder::RELAXED);
1553
1339
 
1554
1340
  cq->poller_vtable->shutdown(POLLSET_FROM_CQ(cq), &cq->pollset_shutdown_done);
1555
1341
  }
@@ -1599,21 +1385,6 @@ static void cq_finish_shutdown_callback(grpc_completion_queue* cq) {
1599
1385
  GRPC_ERROR_NONE);
1600
1386
  }
1601
1387
 
1602
- static void cq_finish_shutdown_callback_alternative(grpc_completion_queue* cq) {
1603
- cq_callback_alternative_data* cqd =
1604
- static_cast<cq_callback_alternative_data*> DATA_FROM_CQ(cq);
1605
- auto* callback = cqd->shutdown_callback;
1606
-
1607
- GPR_ASSERT(cqd->shutdown_called);
1608
-
1609
- // Shutdown the non-proxy pollset
1610
- cq->poller_vtable->shutdown(INLINE_POLLSET_FROM_CQ(cq),
1611
- &cq->pollset_shutdown_done);
1612
- grpc_core::Executor::Run(
1613
- GRPC_CLOSURE_CREATE(functor_callback, callback, nullptr),
1614
- GRPC_ERROR_NONE);
1615
- }
1616
-
1617
1388
  static void cq_shutdown_callback(grpc_completion_queue* cq) {
1618
1389
  cq_callback_data* cqd = static_cast<cq_callback_data*> DATA_FROM_CQ(cq);
1619
1390
 
@@ -1640,33 +1411,6 @@ static void cq_shutdown_callback(grpc_completion_queue* cq) {
1640
1411
  GRPC_CQ_INTERNAL_UNREF(cq, "shutting_down (callback cq)");
1641
1412
  }
1642
1413
 
1643
- static void cq_shutdown_callback_alternative(grpc_completion_queue* cq) {
1644
- cq_callback_alternative_data* cqd =
1645
- static_cast<cq_callback_alternative_data*> DATA_FROM_CQ(cq);
1646
-
1647
- /* Need an extra ref for cq here because:
1648
- * We call cq_finish_shutdown_callback() below, which calls pollset shutdown.
1649
- * Pollset shutdown decrements the cq ref count which can potentially destroy
1650
- * the cq (if that happens to be the last ref).
1651
- * Creating an extra ref here prevents the cq from getting destroyed while
1652
- * this function is still active */
1653
- GRPC_CQ_INTERNAL_REF(cq, "shutting_down (callback cq)");
1654
- gpr_mu_lock(cq->mu);
1655
- if (cqd->shutdown_called) {
1656
- gpr_mu_unlock(cq->mu);
1657
- GRPC_CQ_INTERNAL_UNREF(cq, "shutting_down (callback cq)");
1658
- return;
1659
- }
1660
- cqd->shutdown_called = true;
1661
- if (cqd->pending_events.FetchSub(1, grpc_core::MemoryOrder::ACQ_REL) == 1) {
1662
- gpr_mu_unlock(cq->mu);
1663
- cq_finish_shutdown_callback_alternative(cq);
1664
- } else {
1665
- gpr_mu_unlock(cq->mu);
1666
- }
1667
- GRPC_CQ_INTERNAL_UNREF(cq, "shutting_down (callback cq)");
1668
- }
1669
-
1670
1414
  /* Shutdown simply drops a ref that we reserved at creation time; if we drop
1671
1415
  to zero here, then enter shutdown mode and wake up any waiters */
1672
1416
  void grpc_completion_queue_shutdown(grpc_completion_queue* cq) {