grpc 1.30.1 → 1.40.0

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

Potentially problematic release.


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

Files changed (1628) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1195 -18269
  3. data/etc/roots.pem +257 -573
  4. data/include/grpc/compression.h +1 -1
  5. data/include/grpc/event_engine/README.md +38 -0
  6. data/include/grpc/event_engine/endpoint_config.h +48 -0
  7. data/include/grpc/event_engine/event_engine.h +330 -0
  8. data/include/grpc/event_engine/port.h +41 -0
  9. data/include/grpc/event_engine/slice_allocator.h +66 -0
  10. data/include/grpc/grpc.h +38 -9
  11. data/include/grpc/grpc_security.h +291 -186
  12. data/include/grpc/grpc_security_constants.h +18 -0
  13. data/include/grpc/impl/codegen/README.md +22 -0
  14. data/include/grpc/impl/codegen/atm_windows.h +4 -0
  15. data/include/grpc/impl/codegen/byte_buffer.h +1 -1
  16. data/include/grpc/impl/codegen/grpc_types.h +60 -31
  17. data/include/grpc/impl/codegen/log.h +0 -2
  18. data/include/grpc/impl/codegen/port_platform.h +75 -87
  19. data/include/grpc/impl/codegen/sync_windows.h +4 -0
  20. data/include/grpc/module.modulemap +14 -14
  21. data/include/grpc/slice_buffer.h +3 -3
  22. data/include/grpc/support/sync.h +3 -3
  23. data/include/grpc/support/time.h +7 -7
  24. data/src/core/ext/filters/client_channel/backend_metric.cc +14 -13
  25. data/src/core/ext/filters/client_channel/backup_poller.cc +6 -5
  26. data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
  27. data/src/core/ext/filters/client_channel/client_channel.cc +2112 -2959
  28. data/src/core/ext/filters/client_channel/client_channel.h +514 -62
  29. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -4
  30. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
  31. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
  32. data/src/core/ext/filters/client_channel/config_selector.cc +58 -0
  33. data/src/core/ext/filters/client_channel/config_selector.h +146 -0
  34. data/src/core/ext/filters/client_channel/connector.h +1 -1
  35. data/src/core/ext/filters/client_channel/dynamic_filters.cc +190 -0
  36. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  37. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +26 -122
  38. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
  39. data/src/core/ext/filters/client_channel/health/health_check_client.cc +46 -35
  40. data/src/core/ext/filters/client_channel/health/health_check_client.h +34 -33
  41. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +39 -37
  42. data/src/core/ext/filters/client_channel/http_proxy.cc +42 -24
  43. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +48 -35
  44. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
  45. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -7
  46. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
  47. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
  48. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +301 -267
  49. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
  50. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
  51. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
  52. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -40
  53. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
  54. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
  55. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
  56. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  57. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +34 -37
  58. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +102 -51
  59. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +757 -0
  60. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +37 -0
  61. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +18 -24
  62. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +15 -37
  63. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +41 -34
  64. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +472 -145
  65. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +52 -24
  66. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
  67. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +787 -0
  68. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +700 -0
  69. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1372 -0
  70. data/src/core/ext/filters/client_channel/lb_policy.cc +11 -18
  71. data/src/core/ext/filters/client_channel/lb_policy.h +80 -53
  72. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
  73. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +16 -10
  74. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  75. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
  76. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
  77. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +71 -78
  78. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -33
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +11 -9
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +14 -12
  82. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +24 -20
  83. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +495 -79
  84. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +6 -1
  85. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
  86. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  87. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  88. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +45 -36
  89. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +40 -45
  90. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +8 -6
  91. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +384 -0
  92. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +38 -31
  93. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +883 -71
  94. data/src/core/ext/filters/client_channel/{xds/xds_channel_args.h → resolver/xds/xds_resolver.h} +9 -7
  95. data/src/core/ext/filters/client_channel/resolver.cc +7 -5
  96. data/src/core/ext/filters/client_channel/resolver.h +7 -15
  97. data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
  98. data/src/core/ext/filters/client_channel/resolver_registry.cc +49 -49
  99. data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
  100. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +50 -303
  101. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +26 -54
  102. data/src/core/ext/filters/client_channel/retry_filter.cc +2611 -0
  103. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  104. data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
  105. data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
  106. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
  107. data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
  108. data/src/core/ext/filters/client_channel/server_address.cc +129 -7
  109. data/src/core/ext/filters/client_channel/server_address.h +75 -21
  110. data/src/core/ext/filters/client_channel/service_config.cc +27 -21
  111. data/src/core/ext/filters/client_channel/service_config.h +11 -7
  112. data/src/core/ext/filters/client_channel/service_config_call_data.h +60 -2
  113. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +143 -0
  114. data/src/core/ext/filters/client_channel/service_config_parser.cc +14 -12
  115. data/src/core/ext/filters/client_channel/service_config_parser.h +12 -6
  116. data/src/core/ext/filters/client_channel/subchannel.cc +188 -236
  117. data/src/core/ext/filters/client_channel/subchannel.h +88 -113
  118. data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
  119. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
  120. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -10
  121. data/src/core/ext/filters/client_idle/client_idle_filter.cc +18 -17
  122. data/src/core/ext/filters/deadline/deadline_filter.cc +94 -86
  123. data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
  124. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +501 -0
  125. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
  126. data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
  127. data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
  128. data/src/core/ext/filters/http/client/http_client_filter.cc +39 -29
  129. data/src/core/ext/filters/http/client_authority_filter.cc +9 -9
  130. data/src/core/ext/filters/http/http_filters_plugin.cc +8 -4
  131. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  132. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +91 -50
  133. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +3 -1
  134. data/src/core/ext/filters/http/server/http_server_filter.cc +30 -26
  135. data/src/core/ext/filters/max_age/max_age_filter.cc +50 -44
  136. data/src/core/ext/filters/message_size/message_size_filter.cc +72 -92
  137. data/src/core/ext/filters/message_size/message_size_filter.h +8 -1
  138. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +5 -4
  139. data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
  140. data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
  141. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +90 -34
  142. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +22 -5
  143. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +23 -10
  144. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +23 -11
  145. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +38 -50
  146. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +803 -352
  147. data/src/core/ext/transport/chttp2/server/chttp2_server.h +16 -2
  148. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +14 -5
  149. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +22 -20
  150. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +67 -24
  151. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +8 -8
  152. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
  153. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
  154. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +457 -447
  155. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
  156. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  157. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  158. data/src/core/ext/transport/chttp2/transport/flow_control.cc +36 -33
  159. data/src/core/ext/transport/chttp2/transport/flow_control.h +34 -26
  160. data/src/core/ext/transport/chttp2/transport/frame_data.cc +26 -25
  161. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  162. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +21 -23
  163. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  164. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -14
  165. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  166. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +19 -20
  167. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  168. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  169. data/src/core/ext/transport/chttp2/transport/frame_settings.h +8 -7
  170. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +19 -24
  171. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  172. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
  173. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +681 -765
  174. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
  175. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +17 -20
  176. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  177. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  178. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  179. data/src/core/ext/transport/chttp2/transport/internal.h +57 -30
  180. data/src/core/ext/transport/chttp2/transport/parsing.cc +181 -180
  181. data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
  182. data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
  183. data/src/core/ext/transport/inproc/inproc_transport.cc +154 -88
  184. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
  185. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
  186. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -1
  187. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  188. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +10 -4
  189. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +243 -0
  190. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +865 -0
  191. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +371 -0
  192. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1452 -0
  193. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
  194. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +253 -0
  195. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +461 -0
  196. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1850 -0
  197. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +35 -0
  198. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +77 -0
  199. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +56 -0
  200. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +364 -0
  201. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +124 -0
  202. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +428 -0
  203. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +35 -0
  204. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +88 -0
  205. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +370 -0
  206. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1126 -0
  207. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +103 -0
  208. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +388 -0
  209. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
  210. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +78 -0
  211. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
  212. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +149 -0
  213. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +241 -0
  214. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +839 -0
  215. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
  216. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +767 -0
  217. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +36 -0
  218. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +88 -0
  219. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +239 -0
  220. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +982 -0
  221. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +27 -0
  222. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +65 -0
  223. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
  224. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
  225. data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +8 -8
  226. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +95 -0
  227. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +43 -0
  228. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +126 -0
  229. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
  230. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
  231. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +90 -0
  232. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +243 -0
  233. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
  234. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +305 -0
  235. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
  236. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +367 -0
  237. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +33 -0
  238. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +73 -0
  239. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +138 -0
  240. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +604 -0
  241. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +161 -0
  242. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +638 -0
  243. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
  244. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
  245. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +42 -0
  246. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +115 -0
  247. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
  248. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
  249. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
  250. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
  251. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +179 -0
  252. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +662 -0
  253. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +82 -0
  254. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +294 -0
  255. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +953 -0
  256. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +3862 -0
  257. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +60 -0
  258. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +159 -0
  259. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +49 -0
  260. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +122 -0
  261. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
  262. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +67 -0
  263. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
  264. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
  265. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +79 -0
  266. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +285 -0
  267. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -0
  268. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +117 -0
  269. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +404 -0
  270. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1671 -0
  271. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +19 -0
  272. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +35 -0
  273. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +116 -0
  274. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +475 -0
  275. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +73 -0
  276. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +219 -0
  277. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +146 -0
  278. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +621 -0
  279. data/src/core/ext/upb-generated/envoy/{api/v2/rds.upb.c → service/cluster/v3/cds.upb.c} +6 -9
  280. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +56 -0
  281. data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +6 -5
  282. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +56 -0
  283. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +146 -0
  284. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +499 -0
  285. data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +6 -10
  286. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +56 -0
  287. data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +6 -10
  288. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +56 -0
  289. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +54 -0
  290. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +151 -0
  291. data/src/core/ext/upb-generated/envoy/{api/v2/srds.upb.c → service/route/v3/rds.upb.c} +6 -7
  292. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +56 -0
  293. data/src/core/ext/upb-generated/envoy/{api/v2/cds.upb.c → service/route/v3/srds.upb.c} +6 -7
  294. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +56 -0
  295. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +121 -0
  296. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +438 -0
  297. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
  298. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
  299. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
  300. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +128 -0
  301. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
  302. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
  303. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
  304. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +84 -0
  305. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
  306. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +78 -0
  307. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +65 -0
  308. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +166 -0
  309. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +53 -0
  310. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +146 -0
  311. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
  312. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
  313. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
  314. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +207 -0
  315. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
  316. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +301 -0
  317. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
  318. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +283 -0
  319. data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
  320. data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +9 -9
  321. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +40 -0
  322. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +99 -0
  323. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +51 -0
  324. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +130 -0
  325. data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +7 -6
  326. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +68 -0
  327. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
  328. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
  329. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +830 -0
  330. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +251 -0
  331. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +871 -0
  332. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  333. data/src/core/ext/upb-generated/google/api/http.upb.h +52 -32
  334. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  335. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +12 -6
  336. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +106 -106
  337. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +688 -499
  338. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  339. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +12 -6
  340. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  341. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +8 -2
  342. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +5 -5
  343. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +55 -57
  344. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  345. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +12 -6
  346. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
  347. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +82 -28
  348. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  349. data/src/core/ext/upb-generated/google/rpc/status.upb.h +17 -10
  350. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +5 -5
  351. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +40 -45
  352. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +43 -43
  353. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +236 -184
  354. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
  355. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +29 -13
  356. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  357. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +19 -7
  358. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
  359. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +122 -62
  360. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  361. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +30 -12
  362. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -0
  363. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +64 -0
  364. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -1
  365. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
  366. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +12 -6
  367. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
  368. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +60 -0
  369. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +9 -9
  370. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +48 -68
  371. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
  372. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
  373. data/src/core/ext/upb-generated/validate/validate.upb.c +133 -117
  374. data/src/core/ext/upb-generated/validate/validate.upb.h +881 -645
  375. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +28 -0
  376. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -0
  377. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
  378. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +143 -0
  379. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
  380. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +84 -0
  381. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +36 -0
  382. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -0
  383. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
  384. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +166 -0
  385. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
  386. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +85 -0
  387. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
  388. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
  389. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +46 -0
  390. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  391. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
  392. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  393. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +252 -0
  394. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  395. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +424 -0
  396. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +120 -0
  397. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
  398. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  399. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +570 -0
  400. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
  401. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
  402. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  403. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +136 -0
  404. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  405. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
  406. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  407. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
  408. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  409. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +300 -0
  410. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +145 -0
  411. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +144 -0
  412. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
  413. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
  414. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  415. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
  416. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
  417. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
  418. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  419. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
  420. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
  421. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
  422. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  423. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +287 -0
  424. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +100 -0
  425. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +43 -0
  426. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  427. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
  428. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
  429. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
  430. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  431. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +72 -0
  432. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  433. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
  434. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
  435. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +107 -0
  436. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  437. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
  438. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
  439. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
  440. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  441. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
  442. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  443. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +205 -0
  444. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +60 -0
  445. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +201 -0
  446. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  447. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
  448. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
  449. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +67 -0
  450. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  451. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
  452. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  453. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
  454. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
  455. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +115 -0
  456. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +45 -0
  457. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +964 -0
  458. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +295 -0
  459. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
  460. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  461. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +61 -0
  462. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  463. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
  464. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
  465. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
  466. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  467. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +123 -0
  468. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  469. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +79 -0
  470. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
  471. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +571 -0
  472. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +125 -0
  473. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +44 -0
  474. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  475. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +178 -0
  476. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
  477. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +97 -0
  478. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  479. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +246 -0
  480. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
  481. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
  482. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
  483. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
  484. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  485. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +142 -0
  486. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +65 -0
  487. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +73 -0
  488. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
  489. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +72 -0
  490. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
  491. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +80 -0
  492. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  493. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +80 -0
  494. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
  495. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
  496. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
  497. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +163 -0
  498. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +55 -0
  499. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
  500. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
  501. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
  502. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  503. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
  504. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  505. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
  506. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  507. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
  508. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  509. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +76 -0
  510. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  511. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +69 -0
  512. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  513. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
  514. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  515. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
  516. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  517. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
  518. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  519. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
  520. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  521. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
  522. data/src/core/ext/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -10
  523. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
  524. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  525. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
  526. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  527. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
  528. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  529. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  530. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  531. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
  532. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  533. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +39 -0
  534. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  535. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
  536. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  537. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +40 -0
  538. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  539. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
  540. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  541. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
  542. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  543. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +40 -0
  544. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  545. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
  546. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  547. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
  548. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  549. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
  550. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  551. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
  552. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  553. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
  554. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  555. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
  556. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  557. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
  558. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  559. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
  560. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
  561. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +332 -0
  562. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  563. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -0
  564. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
  565. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +62 -0
  566. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
  567. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +45 -0
  568. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
  569. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +49 -0
  570. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
  571. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +67 -0
  572. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
  573. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +50 -0
  574. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
  575. data/src/core/ext/xds/certificate_provider_factory.h +61 -0
  576. data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
  577. data/src/core/ext/xds/certificate_provider_registry.h +57 -0
  578. data/src/core/ext/xds/certificate_provider_store.cc +87 -0
  579. data/src/core/ext/xds/certificate_provider_store.h +112 -0
  580. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
  581. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
  582. data/src/core/ext/xds/xds_api.cc +4124 -0
  583. data/src/core/ext/xds/xds_api.h +709 -0
  584. data/src/core/ext/xds/xds_bootstrap.cc +496 -0
  585. data/src/core/ext/xds/xds_bootstrap.h +115 -0
  586. data/src/core/ext/xds/xds_certificate_provider.cc +405 -0
  587. data/src/core/ext/xds/xds_certificate_provider.h +151 -0
  588. data/src/core/ext/xds/xds_channel_args.h +32 -0
  589. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +1056 -884
  590. data/src/core/ext/xds/xds_client.h +375 -0
  591. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +63 -19
  592. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +52 -23
  593. data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
  594. data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
  595. data/src/core/ext/xds/xds_http_filters.cc +115 -0
  596. data/src/core/ext/xds/xds_http_filters.h +133 -0
  597. data/src/core/ext/xds/xds_server_config_fetcher.cc +546 -0
  598. data/src/core/{ext/filters/client_channel → lib/address_utils}/parse_address.cc +129 -45
  599. data/src/core/lib/address_utils/parse_address.h +77 -0
  600. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +138 -19
  601. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +38 -7
  602. data/src/core/lib/channel/call_tracer.h +85 -0
  603. data/src/core/lib/channel/channel_args.cc +9 -8
  604. data/src/core/lib/channel/channel_args.h +0 -1
  605. data/src/core/lib/channel/channel_stack.cc +22 -9
  606. data/src/core/lib/channel/channel_stack.h +18 -10
  607. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  608. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  609. data/src/core/lib/channel/channel_trace.cc +6 -8
  610. data/src/core/lib/channel/channel_trace.h +1 -1
  611. data/src/core/lib/channel/channelz.cc +148 -99
  612. data/src/core/lib/channel/channelz.h +47 -24
  613. data/src/core/lib/channel/channelz_registry.cc +29 -12
  614. data/src/core/lib/channel/channelz_registry.h +3 -1
  615. data/src/core/lib/channel/connected_channel.cc +4 -4
  616. data/src/core/lib/channel/context.h +3 -0
  617. data/src/core/lib/channel/handshaker.cc +11 -52
  618. data/src/core/lib/channel/handshaker.h +8 -25
  619. data/src/core/lib/channel/status_util.cc +12 -2
  620. data/src/core/lib/channel/status_util.h +9 -0
  621. data/src/core/lib/compression/compression.cc +8 -4
  622. data/src/core/lib/compression/compression_args.cc +3 -2
  623. data/src/core/lib/compression/compression_internal.cc +10 -5
  624. data/src/core/lib/compression/compression_internal.h +2 -1
  625. data/src/core/lib/compression/stream_compression.h +1 -1
  626. data/src/core/lib/compression/stream_compression_gzip.h +1 -1
  627. data/src/core/lib/compression/stream_compression_identity.cc +1 -3
  628. data/src/core/lib/compression/stream_compression_identity.h +1 -1
  629. data/src/core/lib/debug/stats.h +3 -3
  630. data/src/core/lib/debug/stats_data.cc +1 -0
  631. data/src/core/lib/debug/stats_data.h +13 -13
  632. data/src/core/lib/event_engine/endpoint_config.cc +46 -0
  633. data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
  634. data/src/core/lib/event_engine/event_engine.cc +50 -0
  635. data/src/core/lib/event_engine/sockaddr.cc +40 -0
  636. data/src/core/lib/event_engine/sockaddr.h +44 -0
  637. data/src/core/lib/gpr/alloc.cc +3 -2
  638. data/src/core/lib/gpr/cpu_iphone.cc +10 -2
  639. data/src/core/lib/gpr/log.cc +59 -17
  640. data/src/core/lib/gpr/log_linux.cc +23 -9
  641. data/src/core/lib/gpr/log_posix.cc +19 -7
  642. data/src/core/lib/gpr/log_windows.cc +18 -4
  643. data/src/core/lib/gpr/murmur_hash.cc +5 -3
  644. data/src/core/lib/gpr/spinlock.h +10 -2
  645. data/src/core/lib/gpr/string.cc +33 -31
  646. data/src/core/lib/gpr/string.h +9 -8
  647. data/src/core/lib/gpr/sync.cc +4 -4
  648. data/src/core/lib/gpr/sync_abseil.cc +3 -6
  649. data/src/core/lib/gpr/sync_posix.cc +2 -8
  650. data/src/core/lib/gpr/sync_windows.cc +2 -2
  651. data/src/core/lib/gpr/time.cc +12 -12
  652. data/src/core/lib/gpr/time_precise.cc +5 -2
  653. data/src/core/lib/gpr/time_precise.h +6 -2
  654. data/src/core/lib/gpr/tls.h +4 -0
  655. data/src/core/lib/gpr/tls_msvc.h +2 -0
  656. data/src/core/lib/gpr/tls_stdcpp.h +48 -0
  657. data/src/core/lib/gpr/useful.h +5 -4
  658. data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
  659. data/src/core/lib/gprpp/arena.h +3 -2
  660. data/src/core/lib/gprpp/atomic.h +3 -3
  661. data/src/core/lib/gprpp/dual_ref_counted.h +331 -0
  662. data/src/core/lib/gprpp/examine_stack.cc +43 -0
  663. data/src/core/lib/gprpp/examine_stack.h +46 -0
  664. data/src/core/lib/gprpp/fork.cc +2 -2
  665. data/src/core/lib/gprpp/global_config_env.cc +8 -6
  666. data/src/core/lib/gprpp/manual_constructor.h +2 -2
  667. data/src/core/lib/gprpp/mpscq.cc +2 -2
  668. data/src/core/lib/gprpp/orphanable.h +7 -11
  669. data/src/core/lib/gprpp/ref_counted.h +105 -68
  670. data/src/core/lib/gprpp/ref_counted_ptr.h +168 -7
  671. data/src/core/lib/gprpp/stat.h +38 -0
  672. data/src/core/lib/gprpp/stat_posix.cc +49 -0
  673. data/src/core/lib/gprpp/stat_windows.cc +48 -0
  674. data/src/core/lib/gprpp/status_helper.cc +407 -0
  675. data/src/core/lib/gprpp/status_helper.h +183 -0
  676. data/src/core/lib/gprpp/sync.h +104 -43
  677. data/src/core/lib/gprpp/thd.h +3 -3
  678. data/src/core/lib/gprpp/thd_posix.cc +42 -37
  679. data/src/core/lib/gprpp/thd_windows.cc +3 -1
  680. data/src/core/lib/gprpp/time_util.cc +77 -0
  681. data/src/core/lib/gprpp/time_util.h +42 -0
  682. data/src/core/lib/http/httpcli.cc +25 -22
  683. data/src/core/lib/http/httpcli.h +2 -3
  684. data/src/core/lib/http/httpcli_security_connector.cc +19 -15
  685. data/src/core/lib/http/parser.cc +63 -43
  686. data/src/core/lib/http/parser.h +4 -4
  687. data/src/core/lib/iomgr/buffer_list.cc +8 -10
  688. data/src/core/lib/iomgr/buffer_list.h +5 -6
  689. data/src/core/lib/iomgr/call_combiner.cc +21 -15
  690. data/src/core/lib/iomgr/call_combiner.h +12 -14
  691. data/src/core/lib/iomgr/cfstream_handle.cc +6 -5
  692. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  693. data/src/core/lib/iomgr/closure.h +7 -6
  694. data/src/core/lib/iomgr/combiner.cc +16 -13
  695. data/src/core/lib/iomgr/combiner.h +2 -2
  696. data/src/core/lib/iomgr/endpoint.cc +6 -2
  697. data/src/core/lib/iomgr/endpoint.h +10 -6
  698. data/src/core/lib/iomgr/endpoint_cfstream.cc +46 -23
  699. data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
  700. data/src/core/lib/iomgr/endpoint_pair_posix.cc +10 -10
  701. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  702. data/src/core/lib/iomgr/error.cc +185 -73
  703. data/src/core/lib/iomgr/error.h +218 -107
  704. data/src/core/lib/iomgr/error_cfstream.cc +12 -10
  705. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  706. data/src/core/lib/iomgr/error_internal.h +6 -2
  707. data/src/core/lib/iomgr/ev_apple.cc +16 -13
  708. data/src/core/lib/iomgr/ev_apple.h +1 -1
  709. data/src/core/lib/iomgr/ev_epoll1_linux.cc +47 -41
  710. data/src/core/lib/iomgr/ev_epollex_linux.cc +92 -87
  711. data/src/core/lib/iomgr/ev_poll_posix.cc +41 -35
  712. data/src/core/lib/iomgr/ev_posix.cc +12 -11
  713. data/src/core/lib/iomgr/ev_posix.h +9 -9
  714. data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
  715. data/src/core/lib/iomgr/event_engine/closure.h +33 -0
  716. data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
  717. data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
  718. data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
  719. data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
  720. data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
  721. data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
  722. data/src/core/lib/iomgr/event_engine/promise.h +51 -0
  723. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
  724. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
  725. data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
  726. data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
  727. data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
  728. data/src/core/lib/iomgr/exec_ctx.cc +19 -7
  729. data/src/core/lib/iomgr/exec_ctx.h +20 -17
  730. data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
  731. data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
  732. data/src/core/lib/iomgr/executor/threadpool.h +6 -6
  733. data/src/core/lib/iomgr/executor.cc +10 -9
  734. data/src/core/lib/iomgr/executor.h +3 -3
  735. data/src/core/lib/iomgr/iomgr.cc +3 -3
  736. data/src/core/lib/iomgr/iomgr.h +1 -1
  737. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  738. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  739. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  740. data/src/core/lib/iomgr/iomgr_posix.cc +3 -2
  741. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -13
  742. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  743. data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
  744. data/src/core/lib/iomgr/load_file.cc +4 -4
  745. data/src/core/lib/iomgr/load_file.h +2 -2
  746. data/src/core/lib/iomgr/lockfree_event.cc +20 -15
  747. data/src/core/lib/iomgr/lockfree_event.h +2 -2
  748. data/src/core/lib/iomgr/pollset.cc +5 -5
  749. data/src/core/lib/iomgr/pollset.h +9 -9
  750. data/src/core/lib/iomgr/pollset_custom.cc +7 -7
  751. data/src/core/lib/iomgr/pollset_custom.h +3 -1
  752. data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
  753. data/src/core/lib/iomgr/pollset_uv.cc +3 -1
  754. data/src/core/lib/iomgr/pollset_uv.h +5 -1
  755. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  756. data/src/core/lib/iomgr/port.h +8 -26
  757. data/src/core/lib/iomgr/python_util.h +5 -5
  758. data/src/core/lib/iomgr/resolve_address.cc +12 -8
  759. data/src/core/lib/iomgr/resolve_address.h +12 -6
  760. data/src/core/lib/iomgr/resolve_address_custom.cc +23 -27
  761. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  762. data/src/core/lib/iomgr/resolve_address_posix.cc +4 -8
  763. data/src/core/lib/iomgr/resolve_address_windows.cc +12 -12
  764. data/src/core/lib/iomgr/resource_quota.cc +48 -42
  765. data/src/core/lib/iomgr/sockaddr.h +1 -0
  766. data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
  767. data/src/core/lib/iomgr/socket_mutator.cc +18 -4
  768. data/src/core/lib/iomgr/socket_mutator.h +26 -2
  769. data/src/core/lib/iomgr/socket_utils_common_posix.cc +120 -77
  770. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  771. data/src/core/lib/iomgr/socket_windows.cc +4 -5
  772. data/src/core/lib/iomgr/tcp_client.cc +3 -3
  773. data/src/core/lib/iomgr/tcp_client_cfstream.cc +13 -15
  774. data/src/core/lib/iomgr/tcp_client_custom.cc +17 -20
  775. data/src/core/lib/iomgr/tcp_client_posix.cc +48 -54
  776. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  777. data/src/core/lib/iomgr/tcp_client_windows.cc +16 -14
  778. data/src/core/lib/iomgr/tcp_custom.cc +67 -48
  779. data/src/core/lib/iomgr/tcp_custom.h +14 -13
  780. data/src/core/lib/iomgr/tcp_posix.cc +118 -94
  781. data/src/core/lib/iomgr/tcp_posix.h +8 -0
  782. data/src/core/lib/iomgr/tcp_server.cc +9 -10
  783. data/src/core/lib/iomgr/tcp_server.h +19 -16
  784. data/src/core/lib/iomgr/tcp_server_custom.cc +57 -58
  785. data/src/core/lib/iomgr/tcp_server_posix.cc +62 -61
  786. data/src/core/lib/iomgr/tcp_server_utils_posix.h +16 -16
  787. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +26 -25
  788. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +12 -17
  789. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  790. data/src/core/lib/iomgr/tcp_server_windows.cc +42 -41
  791. data/src/core/lib/iomgr/tcp_uv.cc +27 -25
  792. data/src/core/lib/iomgr/tcp_windows.cc +39 -23
  793. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  794. data/src/core/lib/iomgr/timer.h +6 -1
  795. data/src/core/lib/iomgr/timer_custom.cc +7 -6
  796. data/src/core/lib/iomgr/timer_custom.h +1 -1
  797. data/src/core/lib/iomgr/timer_generic.cc +24 -23
  798. data/src/core/lib/iomgr/timer_manager.cc +4 -4
  799. data/src/core/lib/iomgr/udp_server.cc +46 -45
  800. data/src/core/lib/iomgr/udp_server.h +6 -4
  801. data/src/core/lib/iomgr/unix_sockets_posix.cc +36 -30
  802. data/src/core/lib/iomgr/unix_sockets_posix.h +9 -2
  803. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +20 -7
  804. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  805. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
  806. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -6
  807. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  808. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  809. data/src/core/lib/iomgr/work_serializer.h +17 -1
  810. data/src/core/lib/json/json.h +13 -3
  811. data/src/core/lib/json/json_reader.cc +33 -31
  812. data/src/core/lib/json/json_util.cc +58 -0
  813. data/src/core/lib/json/json_util.h +204 -0
  814. data/src/core/lib/json/json_writer.cc +2 -1
  815. data/src/core/lib/matchers/matchers.cc +327 -0
  816. data/src/core/lib/matchers/matchers.h +161 -0
  817. data/src/core/lib/security/authorization/authorization_engine.h +44 -0
  818. data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
  819. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
  820. data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
  821. data/src/core/lib/security/authorization/evaluate_args.h +91 -0
  822. data/src/core/lib/security/context/security_context.cc +4 -3
  823. data/src/core/lib/security/context/security_context.h +3 -1
  824. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
  825. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  826. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  827. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  828. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  829. data/src/core/lib/security/credentials/credentials.cc +7 -7
  830. data/src/core/lib/security/credentials/credentials.h +12 -9
  831. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +417 -0
  832. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +82 -0
  833. data/src/core/lib/security/credentials/external/aws_request_signer.cc +214 -0
  834. data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
  835. data/src/core/lib/security/credentials/external/external_account_credentials.cc +500 -0
  836. data/src/core/lib/security/credentials/external/external_account_credentials.h +121 -0
  837. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +136 -0
  838. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +49 -0
  839. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +213 -0
  840. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +60 -0
  841. data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
  842. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  843. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -6
  844. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +95 -65
  845. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  846. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  847. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
  848. data/src/core/lib/security/credentials/jwt/json_token.cc +5 -5
  849. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +10 -7
  850. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +6 -5
  851. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +12 -9
  852. data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
  853. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  854. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +78 -92
  855. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +10 -9
  856. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +12 -12
  857. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  858. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +27 -6
  859. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +12 -2
  860. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +347 -0
  861. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +213 -0
  862. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +454 -0
  863. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +145 -0
  864. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +82 -150
  865. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +65 -185
  866. data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -13
  867. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -3
  868. data/src/core/lib/security/credentials/tls/tls_utils.cc +123 -0
  869. data/src/core/lib/security/credentials/tls/tls_utils.h +51 -0
  870. data/src/core/lib/security/credentials/xds/xds_credentials.cc +244 -0
  871. data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
  872. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +14 -4
  873. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +33 -28
  874. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
  875. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +97 -0
  876. data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
  877. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  878. data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
  879. data/src/core/lib/security/security_connector/local/local_security_connector.cc +25 -12
  880. data/src/core/lib/security/security_connector/security_connector.cc +6 -3
  881. data/src/core/lib/security/security_connector/security_connector.h +14 -7
  882. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +38 -21
  883. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +5 -0
  884. data/src/core/lib/security/security_connector/ssl_utils.cc +82 -33
  885. data/src/core/lib/security/security_connector/ssl_utils.h +29 -25
  886. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +380 -312
  887. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +141 -79
  888. data/src/core/lib/security/transport/client_auth_filter.cc +28 -19
  889. data/src/core/lib/security/transport/secure_endpoint.cc +13 -7
  890. data/src/core/lib/security/transport/security_handshaker.cc +81 -44
  891. data/src/core/lib/security/transport/server_auth_filter.cc +19 -12
  892. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  893. data/src/core/lib/security/transport/tsi_error.h +2 -1
  894. data/src/core/lib/security/util/json_util.cc +14 -15
  895. data/src/core/lib/security/util/json_util.h +2 -1
  896. data/src/core/lib/slice/slice.cc +57 -7
  897. data/src/core/lib/slice/slice_buffer.cc +2 -1
  898. data/src/core/lib/slice/slice_intern.cc +11 -13
  899. data/src/core/lib/slice/slice_internal.h +4 -2
  900. data/src/core/lib/surface/call.cc +164 -136
  901. data/src/core/lib/surface/call.h +15 -3
  902. data/src/core/lib/surface/call_details.cc +8 -8
  903. data/src/core/lib/surface/channel.cc +55 -63
  904. data/src/core/lib/surface/channel.h +24 -7
  905. data/src/core/lib/surface/channel_init.cc +1 -1
  906. data/src/core/lib/surface/channel_ping.cc +1 -1
  907. data/src/core/lib/surface/completion_queue.cc +96 -96
  908. data/src/core/lib/surface/completion_queue.h +18 -17
  909. data/src/core/lib/surface/completion_queue_factory.cc +1 -2
  910. data/src/core/lib/surface/init.cc +46 -32
  911. data/src/core/lib/surface/init.h +10 -1
  912. data/src/core/lib/surface/lame_client.cc +51 -58
  913. data/src/core/lib/surface/lame_client.h +5 -0
  914. data/src/core/lib/surface/server.cc +1181 -1365
  915. data/src/core/lib/surface/server.h +463 -70
  916. data/src/core/lib/surface/validate_metadata.cc +7 -7
  917. data/src/core/lib/surface/validate_metadata.h +6 -2
  918. data/src/core/lib/surface/version.cc +2 -2
  919. data/src/core/lib/transport/authority_override.cc +40 -0
  920. data/src/core/lib/transport/authority_override.h +37 -0
  921. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  922. data/src/core/lib/transport/bdp_estimator.h +2 -1
  923. data/src/core/lib/transport/byte_stream.cc +5 -5
  924. data/src/core/lib/transport/byte_stream.h +11 -11
  925. data/src/core/lib/transport/connectivity_state.cc +19 -14
  926. data/src/core/lib/transport/connectivity_state.h +26 -12
  927. data/src/core/lib/transport/error_utils.cc +33 -9
  928. data/src/core/lib/transport/error_utils.h +15 -3
  929. data/src/core/lib/transport/metadata.cc +16 -2
  930. data/src/core/lib/transport/metadata.h +2 -2
  931. data/src/core/lib/transport/metadata_batch.cc +76 -38
  932. data/src/core/lib/transport/metadata_batch.h +43 -21
  933. data/src/core/lib/transport/static_metadata.cc +296 -277
  934. data/src/core/lib/transport/static_metadata.h +80 -73
  935. data/src/core/lib/transport/status_metadata.cc +4 -3
  936. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  937. data/src/core/lib/transport/transport.cc +9 -6
  938. data/src/core/lib/transport/transport.h +26 -11
  939. data/src/core/lib/transport/transport_op_string.cc +6 -6
  940. data/src/core/lib/uri/uri_parser.cc +135 -258
  941. data/src/core/lib/uri/uri_parser.h +58 -20
  942. data/src/core/plugin_registry/grpc_plugin_registry.cc +61 -20
  943. data/src/core/tsi/alts/crypt/gsec.cc +5 -4
  944. data/src/core/tsi/alts/crypt/gsec.h +6 -0
  945. data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
  946. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +47 -42
  947. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +74 -53
  948. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  949. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  950. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +3 -3
  951. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
  952. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
  953. data/src/core/tsi/fake_transport_security.cc +17 -5
  954. data/src/core/tsi/local_transport_security.cc +5 -1
  955. data/src/core/tsi/local_transport_security.h +6 -7
  956. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  957. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
  958. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -2
  959. data/src/core/tsi/ssl_transport_security.cc +199 -73
  960. data/src/core/tsi/ssl_transport_security.h +23 -12
  961. data/src/core/tsi/transport_security.cc +10 -8
  962. data/src/core/tsi/transport_security_interface.h +6 -1
  963. data/src/ruby/bin/math_services_pb.rb +5 -5
  964. data/src/ruby/ext/grpc/extconf.rb +17 -4
  965. data/src/ruby/ext/grpc/rb_call.c +3 -2
  966. data/src/ruby/ext/grpc/rb_call.h +4 -0
  967. data/src/ruby/ext/grpc/rb_call_credentials.c +54 -10
  968. data/src/ruby/ext/grpc/rb_channel.c +10 -1
  969. data/src/ruby/ext/grpc/rb_channel_credentials.c +20 -1
  970. data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
  971. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  972. data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
  973. data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
  974. data/src/ruby/ext/grpc/rb_grpc.c +4 -0
  975. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +46 -18
  976. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +87 -45
  977. data/src/ruby/ext/grpc/rb_server.c +13 -1
  978. data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
  979. data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
  980. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
  981. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
  982. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
  983. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
  984. data/src/ruby/lib/grpc/generic/client_stub.rb +5 -3
  985. data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
  986. data/src/ruby/lib/grpc/version.rb +1 -1
  987. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +3 -3
  988. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +40 -0
  989. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +50 -16
  990. data/src/ruby/spec/call_spec.rb +1 -1
  991. data/src/ruby/spec/channel_credentials_spec.rb +42 -0
  992. data/src/ruby/spec/channel_spec.rb +17 -6
  993. data/src/ruby/spec/client_auth_spec.rb +27 -1
  994. data/src/ruby/spec/errors_spec.rb +1 -1
  995. data/src/ruby/spec/generic/active_call_spec.rb +21 -10
  996. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  997. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  998. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
  999. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +2 -0
  1000. data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
  1001. data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
  1002. data/src/ruby/spec/pb/codegen/package_option_spec.rb +27 -7
  1003. data/src/ruby/spec/server_credentials_spec.rb +25 -0
  1004. data/src/ruby/spec/server_spec.rb +22 -0
  1005. data/src/ruby/spec/user_agent_spec.rb +74 -0
  1006. data/third_party/abseil-cpp/absl/algorithm/container.h +1764 -0
  1007. data/third_party/abseil-cpp/absl/base/attributes.h +122 -41
  1008. data/third_party/abseil-cpp/absl/base/call_once.h +3 -10
  1009. data/third_party/abseil-cpp/absl/base/casts.h +9 -6
  1010. data/third_party/abseil-cpp/absl/base/config.h +97 -26
  1011. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +442 -335
  1012. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +169 -0
  1013. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  1014. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  1015. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
  1016. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
  1017. data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
  1018. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
  1019. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
  1020. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +31 -4
  1021. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +35 -33
  1022. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +17 -5
  1023. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +36 -40
  1024. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +33 -30
  1025. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  1026. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +11 -3
  1027. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  1028. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  1029. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  1030. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
  1031. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
  1032. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  1033. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  1034. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  1035. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
  1036. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  1037. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  1038. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
  1039. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  1040. data/third_party/abseil-cpp/absl/base/macros.h +47 -109
  1041. data/third_party/abseil-cpp/absl/base/optimization.h +69 -6
  1042. data/third_party/abseil-cpp/absl/base/options.h +31 -4
  1043. data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
  1044. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  1045. data/third_party/abseil-cpp/absl/base/thread_annotations.h +95 -40
  1046. data/third_party/abseil-cpp/absl/container/fixed_array.h +532 -0
  1047. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  1048. data/third_party/abseil-cpp/absl/container/inlined_vector.h +38 -39
  1049. data/third_party/abseil-cpp/absl/container/internal/common.h +206 -0
  1050. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +34 -9
  1051. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +460 -0
  1052. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +161 -0
  1053. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +208 -0
  1054. data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
  1055. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +274 -0
  1056. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +322 -0
  1057. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +31 -0
  1058. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +50 -0
  1059. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  1060. data/third_party/abseil-cpp/absl/container/internal/layout.h +743 -0
  1061. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  1062. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +61 -0
  1063. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1903 -0
  1064. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +139 -0
  1065. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
  1066. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1949 -0
  1067. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
  1068. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
  1069. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
  1070. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +199 -0
  1071. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +134 -0
  1072. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +80 -0
  1073. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +108 -0
  1074. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +253 -0
  1075. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
  1076. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +93 -0
  1077. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
  1078. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +147 -0
  1079. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +173 -0
  1080. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
  1081. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
  1082. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
  1083. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +36 -0
  1084. data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
  1085. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  1086. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1560 -0
  1087. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
  1088. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
  1089. data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
  1090. data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
  1091. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  1092. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
  1093. data/third_party/abseil-cpp/absl/hash/hash.h +325 -0
  1094. data/third_party/abseil-cpp/absl/hash/internal/city.cc +349 -0
  1095. data/third_party/abseil-cpp/absl/hash/internal/city.h +78 -0
  1096. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +70 -0
  1097. data/third_party/abseil-cpp/absl/hash/internal/hash.h +1045 -0
  1098. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  1099. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  1100. data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
  1101. data/third_party/abseil-cpp/absl/meta/type_traits.h +18 -10
  1102. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  1103. data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
  1104. data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
  1105. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  1106. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  1107. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +69 -0
  1108. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
  1109. data/third_party/abseil-cpp/absl/status/status.cc +452 -0
  1110. data/third_party/abseil-cpp/absl/status/status.h +878 -0
  1111. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +38 -0
  1112. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
  1113. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  1114. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  1115. data/third_party/abseil-cpp/absl/strings/charconv.cc +7 -7
  1116. data/third_party/abseil-cpp/absl/strings/cord.cc +1953 -0
  1117. data/third_party/abseil-cpp/absl/strings/cord.h +1394 -0
  1118. data/third_party/abseil-cpp/absl/strings/escaping.cc +13 -13
  1119. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
  1120. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  1121. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
  1122. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +8 -8
  1123. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  1124. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +543 -0
  1125. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  1126. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  1127. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  1128. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  1129. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +236 -136
  1130. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +150 -64
  1131. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +16 -2
  1132. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +29 -21
  1133. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +21 -14
  1134. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
  1135. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
  1136. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +1017 -87
  1137. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +17 -3
  1138. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
  1139. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +22 -6
  1140. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +27 -11
  1141. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  1142. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  1143. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  1144. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  1145. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  1146. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  1147. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  1148. data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
  1149. data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
  1150. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  1151. data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
  1152. data/third_party/abseil-cpp/absl/strings/str_split.h +39 -4
  1153. data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
  1154. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
  1155. data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
  1156. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
  1157. data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
  1158. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
  1159. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
  1160. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
  1161. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
  1162. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  1163. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +698 -0
  1164. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
  1165. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +156 -0
  1166. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
  1167. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
  1168. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +428 -0
  1169. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +155 -0
  1170. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2751 -0
  1171. data/third_party/abseil-cpp/absl/synchronization/mutex.h +1082 -0
  1172. data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
  1173. data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
  1174. data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
  1175. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  1176. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  1177. data/third_party/abseil-cpp/absl/time/duration.cc +93 -61
  1178. data/third_party/abseil-cpp/absl/time/format.cc +43 -36
  1179. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +33 -27
  1180. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
  1181. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
  1182. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
  1183. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
  1184. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
  1185. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
  1186. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
  1187. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +15 -8
  1188. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +2 -2
  1189. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
  1190. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  1191. data/third_party/abseil-cpp/absl/time/time.h +41 -40
  1192. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
  1193. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
  1194. data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
  1195. data/third_party/abseil-cpp/absl/types/optional.h +9 -9
  1196. data/third_party/abseil-cpp/absl/types/span.h +49 -36
  1197. data/third_party/abseil-cpp/absl/types/variant.h +866 -0
  1198. data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
  1199. data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
  1200. data/third_party/boringssl-with-bazel/err_data.c +763 -721
  1201. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +6 -6
  1202. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  1203. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +5 -5
  1204. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +6 -6
  1205. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +15 -20
  1206. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
  1207. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
  1208. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +23 -11
  1209. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +2 -2
  1210. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +16 -22
  1211. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +35 -0
  1212. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
  1213. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
  1214. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
  1215. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
  1216. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
  1217. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +40 -86
  1218. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +6 -17
  1219. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
  1220. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
  1221. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -2
  1222. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
  1223. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
  1224. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +158 -0
  1225. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
  1226. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
  1227. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +60 -45
  1228. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
  1229. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
  1230. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  1231. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +101 -3
  1232. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +120 -273
  1233. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
  1234. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
  1235. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
  1236. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
  1237. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  1238. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
  1239. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
  1240. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +25 -0
  1241. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +9 -43
  1242. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
  1243. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/is_fips.c → dsa/internal.h} +16 -11
  1244. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
  1245. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +12 -52
  1246. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -22
  1247. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  1248. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +13 -0
  1249. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +159 -0
  1250. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
  1251. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
  1252. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +4 -1
  1253. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
  1254. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +2 -3
  1255. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +21 -3
  1256. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
  1257. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
  1258. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +198 -37
  1259. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
  1260. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
  1261. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +9 -0
  1262. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  1263. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
  1264. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +16 -0
  1265. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -2
  1266. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +2 -5
  1267. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +13 -11
  1268. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +24 -23
  1269. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +20 -16
  1270. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -2
  1271. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
  1272. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  1273. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  1274. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
  1275. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
  1276. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  1277. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  1278. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  1279. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  1280. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  1281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  1282. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +25 -0
  1283. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +122 -43
  1284. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -14
  1285. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
  1286. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +56 -34
  1287. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +116 -60
  1288. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  1289. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +231 -11
  1290. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
  1291. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
  1292. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
  1293. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +584 -0
  1294. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  1295. data/third_party/boringssl-with-bazel/src/crypto/mem.c +43 -15
  1296. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  1297. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
  1298. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
  1299. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +131 -53
  1300. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +10 -7
  1301. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
  1302. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
  1303. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
  1304. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +5 -1
  1305. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
  1306. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
  1307. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  1308. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +110 -70
  1309. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +348 -423
  1310. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +217 -79
  1311. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  1312. data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +7 -7
  1313. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +10 -0
  1314. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
  1315. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
  1316. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
  1317. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +3 -3
  1318. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  1319. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -1
  1320. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
  1321. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
  1322. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  1323. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +24 -39
  1324. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +27 -21
  1325. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -1
  1326. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +52 -89
  1327. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +67 -12
  1328. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +9 -4
  1329. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
  1330. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +4 -4
  1331. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +71 -59
  1332. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
  1333. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +98 -25
  1334. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +9 -8
  1335. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
  1336. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  1337. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +13 -10
  1338. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
  1339. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +43 -17
  1340. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +28 -40
  1341. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
  1342. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +21 -172
  1343. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
  1344. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +25 -0
  1345. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  1346. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +68 -9
  1347. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +5 -2
  1348. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
  1349. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +12 -0
  1350. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
  1351. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
  1352. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +25 -24
  1353. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
  1354. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +32 -28
  1355. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +4 -6
  1356. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -1
  1357. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +42 -22
  1358. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
  1359. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
  1360. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +25 -36
  1361. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +2 -2
  1362. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +127 -41
  1363. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +8 -7
  1364. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +11 -14
  1365. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +25 -4
  1366. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
  1367. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +119 -0
  1368. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +746 -561
  1369. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
  1370. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +58 -10
  1371. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
  1372. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
  1373. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +23 -7
  1374. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  1375. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +21 -4
  1376. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
  1377. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +25 -5
  1378. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
  1379. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +62 -20
  1380. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +16 -2
  1381. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
  1382. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
  1383. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  1384. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +104 -51
  1385. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  1386. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
  1387. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  1388. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
  1389. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
  1390. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
  1391. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  1392. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
  1393. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
  1394. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
  1395. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +467 -125
  1396. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +28 -12
  1397. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +43 -24
  1398. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1456 -780
  1399. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
  1400. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +595 -441
  1401. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
  1402. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
  1403. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
  1404. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
  1405. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +336 -25
  1406. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +97 -53
  1407. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +202 -109
  1408. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +174 -30
  1409. data/third_party/boringssl-with-bazel/src/ssl/internal.h +504 -162
  1410. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
  1411. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -3
  1412. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
  1413. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +55 -15
  1414. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +7 -12
  1415. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +8 -9
  1416. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  1417. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +162 -60
  1418. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
  1419. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +26 -73
  1420. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
  1421. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +6 -5
  1422. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +12 -8
  1423. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +47 -28
  1424. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +1070 -566
  1425. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +66 -9
  1426. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +183 -76
  1427. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +169 -89
  1428. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +379 -140
  1429. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  1430. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
  1431. data/third_party/re2/re2/bitmap256.h +117 -0
  1432. data/third_party/re2/re2/bitstate.cc +385 -0
  1433. data/third_party/re2/re2/compile.cc +1279 -0
  1434. data/third_party/re2/re2/dfa.cc +2130 -0
  1435. data/third_party/re2/re2/filtered_re2.cc +121 -0
  1436. data/third_party/re2/re2/filtered_re2.h +109 -0
  1437. data/third_party/re2/re2/mimics_pcre.cc +197 -0
  1438. data/third_party/re2/re2/nfa.cc +713 -0
  1439. data/third_party/re2/re2/onepass.cc +623 -0
  1440. data/third_party/re2/re2/parse.cc +2464 -0
  1441. data/third_party/re2/re2/perl_groups.cc +119 -0
  1442. data/third_party/re2/re2/pod_array.h +55 -0
  1443. data/third_party/re2/re2/prefilter.cc +710 -0
  1444. data/third_party/re2/re2/prefilter.h +108 -0
  1445. data/third_party/re2/re2/prefilter_tree.cc +407 -0
  1446. data/third_party/re2/re2/prefilter_tree.h +139 -0
  1447. data/third_party/re2/re2/prog.cc +988 -0
  1448. data/third_party/re2/re2/prog.h +436 -0
  1449. data/third_party/re2/re2/re2.cc +1362 -0
  1450. data/third_party/re2/re2/re2.h +1002 -0
  1451. data/third_party/re2/re2/regexp.cc +980 -0
  1452. data/third_party/re2/re2/regexp.h +659 -0
  1453. data/third_party/re2/re2/set.cc +154 -0
  1454. data/third_party/re2/re2/set.h +80 -0
  1455. data/third_party/re2/re2/simplify.cc +657 -0
  1456. data/third_party/re2/re2/sparse_array.h +392 -0
  1457. data/third_party/re2/re2/sparse_set.h +264 -0
  1458. data/third_party/re2/re2/stringpiece.cc +65 -0
  1459. data/third_party/re2/re2/stringpiece.h +210 -0
  1460. data/third_party/re2/re2/tostring.cc +351 -0
  1461. data/third_party/re2/re2/unicode_casefold.cc +582 -0
  1462. data/third_party/re2/re2/unicode_casefold.h +78 -0
  1463. data/third_party/re2/re2/unicode_groups.cc +6269 -0
  1464. data/third_party/re2/re2/unicode_groups.h +67 -0
  1465. data/third_party/re2/re2/walker-inl.h +246 -0
  1466. data/third_party/re2/util/benchmark.h +156 -0
  1467. data/third_party/re2/util/flags.h +26 -0
  1468. data/third_party/re2/util/logging.h +109 -0
  1469. data/third_party/re2/util/malloc_counter.h +19 -0
  1470. data/third_party/re2/util/mix.h +41 -0
  1471. data/third_party/re2/util/mutex.h +148 -0
  1472. data/third_party/re2/util/pcre.cc +1025 -0
  1473. data/third_party/re2/util/pcre.h +681 -0
  1474. data/third_party/re2/util/rune.cc +260 -0
  1475. data/third_party/re2/util/strutil.cc +149 -0
  1476. data/third_party/re2/util/strutil.h +21 -0
  1477. data/third_party/re2/util/test.h +50 -0
  1478. data/third_party/re2/util/utf.h +44 -0
  1479. data/third_party/re2/util/util.h +42 -0
  1480. data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
  1481. data/third_party/upb/upb/decode.c +604 -511
  1482. data/third_party/upb/upb/decode.h +20 -1
  1483. data/third_party/upb/upb/decode.int.h +163 -0
  1484. data/third_party/upb/upb/decode_fast.c +1040 -0
  1485. data/third_party/upb/upb/decode_fast.h +126 -0
  1486. data/third_party/upb/upb/def.c +2178 -0
  1487. data/third_party/upb/upb/def.h +315 -0
  1488. data/third_party/upb/upb/def.hpp +439 -0
  1489. data/third_party/upb/upb/encode.c +311 -211
  1490. data/third_party/upb/upb/encode.h +27 -2
  1491. data/third_party/upb/upb/msg.c +215 -70
  1492. data/third_party/upb/upb/msg.h +558 -14
  1493. data/third_party/upb/upb/port_def.inc +105 -63
  1494. data/third_party/upb/upb/port_undef.inc +10 -7
  1495. data/third_party/upb/upb/reflection.c +408 -0
  1496. data/third_party/upb/upb/reflection.h +168 -0
  1497. data/third_party/upb/upb/table.c +73 -269
  1498. data/third_party/upb/upb/table.int.h +25 -57
  1499. data/third_party/upb/upb/text_encode.c +421 -0
  1500. data/third_party/upb/upb/text_encode.h +38 -0
  1501. data/third_party/upb/upb/upb.c +138 -135
  1502. data/third_party/upb/upb/upb.h +119 -146
  1503. data/third_party/upb/upb/upb.hpp +88 -0
  1504. data/third_party/upb/upb/upb.int.h +29 -0
  1505. data/third_party/xxhash/xxhash.h +5325 -0
  1506. metadata +698 -181
  1507. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -938
  1508. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -528
  1509. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -834
  1510. data/src/core/ext/filters/client_channel/parse_address.h +0 -53
  1511. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -484
  1512. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
  1513. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -348
  1514. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -123
  1515. data/src/core/ext/filters/client_channel/xds/xds_api.cc +0 -1906
  1516. data/src/core/ext/filters/client_channel/xds/xds_api.h +0 -280
  1517. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +0 -342
  1518. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +0 -88
  1519. data/src/core/ext/filters/client_channel/xds/xds_channel.h +0 -46
  1520. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +0 -106
  1521. data/src/core/ext/filters/client_channel/xds/xds_client.h +0 -309
  1522. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
  1523. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -35
  1524. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
  1525. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -418
  1526. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
  1527. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -197
  1528. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
  1529. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -378
  1530. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -53
  1531. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
  1532. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -218
  1533. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +0 -35
  1534. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
  1535. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +0 -55
  1536. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -305
  1537. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
  1538. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1447
  1539. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
  1540. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -328
  1541. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +0 -35
  1542. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -78
  1543. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
  1544. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -897
  1545. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
  1546. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -322
  1547. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
  1548. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -72
  1549. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
  1550. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -642
  1551. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
  1552. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -673
  1553. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +0 -36
  1554. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
  1555. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
  1556. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -518
  1557. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -89
  1558. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
  1559. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -392
  1560. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -53
  1561. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
  1562. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -33
  1563. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
  1564. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -266
  1565. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
  1566. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -324
  1567. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
  1568. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -240
  1569. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -53
  1570. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
  1571. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -33
  1572. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
  1573. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -527
  1574. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
  1575. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -112
  1576. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
  1577. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -399
  1578. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -53
  1579. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
  1580. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -33
  1581. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
  1582. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -3032
  1583. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
  1584. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -199
  1585. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
  1586. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -134
  1587. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -53
  1588. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
  1589. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -725
  1590. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
  1591. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1132
  1592. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +0 -33
  1593. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
  1594. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
  1595. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
  1596. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -50
  1597. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
  1598. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -134
  1599. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
  1600. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -144
  1601. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
  1602. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
  1603. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
  1604. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
  1605. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +0 -39
  1606. data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -87
  1607. data/src/core/ext/upb-generated/envoy/type/range.upb.c +0 -50
  1608. data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -112
  1609. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -62
  1610. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
  1611. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -249
  1612. data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
  1613. data/src/core/lib/gpr/arena.h +0 -47
  1614. data/src/core/lib/gprpp/map.h +0 -53
  1615. data/src/core/lib/iomgr/iomgr_posix.h +0 -26
  1616. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -87
  1617. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  1618. data/src/core/lib/security/transport/target_authority_table.cc +0 -75
  1619. data/src/core/lib/security/transport/target_authority_table.h +0 -40
  1620. data/src/core/lib/slice/slice_hash_table.h +0 -199
  1621. data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
  1622. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
  1623. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -218
  1624. data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
  1625. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
  1626. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
  1627. data/third_party/upb/upb/generated_util.h +0 -105
  1628. data/third_party/upb/upb/port.c +0 -26
@@ -30,7 +30,7 @@
30
30
  #include "src/core/lib/channel/channel_stack.h"
31
31
  #include "src/core/lib/gpr/time_precise.h"
32
32
  #include "src/core/lib/gprpp/arena.h"
33
- #include "src/core/lib/gprpp/map.h"
33
+ #include "src/core/lib/gprpp/dual_ref_counted.h"
34
34
  #include "src/core/lib/gprpp/ref_counted.h"
35
35
  #include "src/core/lib/gprpp/ref_counted_ptr.h"
36
36
  #include "src/core/lib/gprpp/sync.h"
@@ -39,34 +39,9 @@
39
39
  #include "src/core/lib/transport/connectivity_state.h"
40
40
  #include "src/core/lib/transport/metadata.h"
41
41
 
42
- // Channel arg containing a grpc_resolved_address to connect to.
42
+ // Channel arg containing a URI indicating the address to connect to.
43
43
  #define GRPC_ARG_SUBCHANNEL_ADDRESS "grpc.subchannel_address"
44
44
 
45
- // For debugging refcounting.
46
- #ifndef NDEBUG
47
- #define GRPC_SUBCHANNEL_REF(p, r) (p)->Ref(__FILE__, __LINE__, (r))
48
- #define GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(p, r) (p)->RefFromWeakRef()
49
- #define GRPC_SUBCHANNEL_UNREF(p, r) (p)->Unref(__FILE__, __LINE__, (r))
50
- #define GRPC_SUBCHANNEL_WEAK_REF(p, r) (p)->WeakRef(__FILE__, __LINE__, (r))
51
- #define GRPC_SUBCHANNEL_WEAK_UNREF(p, r) (p)->WeakUnref(__FILE__, __LINE__, (r))
52
- #define GRPC_SUBCHANNEL_REF_EXTRA_ARGS \
53
- const char *file, int line, const char *reason
54
- #define GRPC_SUBCHANNEL_REF_REASON reason
55
- #define GRPC_SUBCHANNEL_REF_MUTATE_EXTRA_ARGS \
56
- , GRPC_SUBCHANNEL_REF_EXTRA_ARGS, const char* purpose
57
- #define GRPC_SUBCHANNEL_REF_MUTATE_PURPOSE(x) , file, line, reason, x
58
- #else
59
- #define GRPC_SUBCHANNEL_REF(p, r) (p)->Ref()
60
- #define GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(p, r) (p)->RefFromWeakRef()
61
- #define GRPC_SUBCHANNEL_UNREF(p, r) (p)->Unref()
62
- #define GRPC_SUBCHANNEL_WEAK_REF(p, r) (p)->WeakRef()
63
- #define GRPC_SUBCHANNEL_WEAK_UNREF(p, r) (p)->WeakUnref()
64
- #define GRPC_SUBCHANNEL_REF_EXTRA_ARGS
65
- #define GRPC_SUBCHANNEL_REF_REASON ""
66
- #define GRPC_SUBCHANNEL_REF_MUTATE_EXTRA_ARGS
67
- #define GRPC_SUBCHANNEL_REF_MUTATE_PURPOSE(x)
68
- #endif
69
-
70
45
  namespace grpc_core {
71
46
 
72
47
  class SubchannelCall;
@@ -76,7 +51,7 @@ class ConnectedSubchannel : public RefCounted<ConnectedSubchannel> {
76
51
  ConnectedSubchannel(
77
52
  grpc_channel_stack* channel_stack, const grpc_channel_args* args,
78
53
  RefCountedPtr<channelz::SubchannelNode> channelz_subchannel);
79
- ~ConnectedSubchannel();
54
+ ~ConnectedSubchannel() override;
80
55
 
81
56
  void StartWatch(grpc_pollset_set* interested_parties,
82
57
  OrphanablePtr<ConnectivityStateWatcherInterface> watcher);
@@ -89,7 +64,7 @@ class ConnectedSubchannel : public RefCounted<ConnectedSubchannel> {
89
64
  return channelz_subchannel_.get();
90
65
  }
91
66
 
92
- size_t GetInitialCallSizeEstimate(size_t parent_data_size) const;
67
+ size_t GetInitialCallSizeEstimate() const;
93
68
 
94
69
  private:
95
70
  grpc_channel_stack* channel_stack_;
@@ -111,18 +86,13 @@ class SubchannelCall {
111
86
  Arena* arena;
112
87
  grpc_call_context_element* context;
113
88
  CallCombiner* call_combiner;
114
- size_t parent_data_size;
115
89
  };
116
- static RefCountedPtr<SubchannelCall> Create(Args args, grpc_error** error);
90
+ static RefCountedPtr<SubchannelCall> Create(Args args,
91
+ grpc_error_handle* error);
117
92
 
118
93
  // Continues processing a transport stream op batch.
119
94
  void StartTransportStreamOpBatch(grpc_transport_stream_op_batch* batch);
120
95
 
121
- // Returns a pointer to the parent data associated with the subchannel call.
122
- // The data will be of the size specified in \a parent_data_size field of
123
- // the args passed to \a ConnectedSubchannel::CreateCall().
124
- void* GetParentData();
125
-
126
96
  // Returns the call stack of the subchannel call.
127
97
  grpc_call_stack* GetCallStack();
128
98
 
@@ -139,26 +109,26 @@ class SubchannelCall {
139
109
  void Unref();
140
110
  void Unref(const DebugLocation& location, const char* reason);
141
111
 
142
- static void Destroy(void* arg, grpc_error* error);
143
-
144
112
  private:
145
113
  // Allow RefCountedPtr<> to access IncrementRefCount().
146
114
  template <typename T>
147
115
  friend class RefCountedPtr;
148
116
 
149
- SubchannelCall(Args args, grpc_error** error);
117
+ SubchannelCall(Args args, grpc_error_handle* error);
150
118
 
151
119
  // If channelz is enabled, intercepts recv_trailing so that we may check the
152
120
  // status and associate it to a subchannel.
153
121
  void MaybeInterceptRecvTrailingMetadata(
154
122
  grpc_transport_stream_op_batch* batch);
155
123
 
156
- static void RecvTrailingMetadataReady(void* arg, grpc_error* error);
124
+ static void RecvTrailingMetadataReady(void* arg, grpc_error_handle error);
157
125
 
158
126
  // Interface of RefCounted<>.
159
127
  void IncrementRefCount();
160
128
  void IncrementRefCount(const DebugLocation& location, const char* reason);
161
129
 
130
+ static void Destroy(void* arg, grpc_error_handle error);
131
+
162
132
  RefCountedPtr<ConnectedSubchannel> connected_subchannel_;
163
133
  grpc_closure* after_call_stack_destroy_ = nullptr;
164
134
  // State needed to support channelz interception of recv trailing metadata.
@@ -175,17 +145,18 @@ class SubchannelCall {
175
145
  // different from the SubchannelInterface that is exposed to LB policy
176
146
  // implementations. The client channel provides an adaptor class
177
147
  // (SubchannelWrapper) that "converts" between the two.
178
- class Subchannel {
148
+ class Subchannel : public DualRefCounted<Subchannel> {
179
149
  public:
180
150
  class ConnectivityStateWatcherInterface
181
151
  : public RefCounted<ConnectivityStateWatcherInterface> {
182
152
  public:
183
153
  struct ConnectivityStateChange {
184
154
  grpc_connectivity_state state;
155
+ absl::Status status;
185
156
  RefCountedPtr<ConnectedSubchannel> connected_subchannel;
186
157
  };
187
158
 
188
- virtual ~ConnectivityStateWatcherInterface() = default;
159
+ ~ConnectivityStateWatcherInterface() override = default;
189
160
 
190
161
  // Will be invoked whenever the subchannel's connectivity state
191
162
  // changes. There will be only one invocation of this method on a
@@ -210,32 +181,29 @@ class Subchannel {
210
181
  ConnectivityStateChange PopConnectivityStateChange();
211
182
 
212
183
  private:
184
+ Mutex mu_; // protects the queue
213
185
  // Keeps track of the updates that the watcher instance must be notified of.
214
186
  // TODO(yashkt): This is currently needed to send the state updates in the
215
187
  // right order when asynchronously notifying. This will no longer be
216
188
  // necessary when we have access to EventManager.
217
- std::deque<ConnectivityStateChange> connectivity_state_queue_;
218
- Mutex mu_; // protects the queue
189
+ std::deque<ConnectivityStateChange> connectivity_state_queue_
190
+ ABSL_GUARDED_BY(&mu_);
219
191
  };
220
192
 
193
+ // Creates a subchannel given \a connector and \a args.
194
+ static RefCountedPtr<Subchannel> Create(
195
+ OrphanablePtr<SubchannelConnector> connector,
196
+ const grpc_channel_args* args);
197
+
221
198
  // The ctor and dtor are not intended to use directly.
222
- Subchannel(SubchannelKey* key, OrphanablePtr<SubchannelConnector> connector,
199
+ Subchannel(SubchannelKey key, OrphanablePtr<SubchannelConnector> connector,
223
200
  const grpc_channel_args* args);
224
- ~Subchannel();
201
+ ~Subchannel() override;
225
202
 
226
- // Creates a subchannel given \a connector and \a args.
227
- static Subchannel* Create(OrphanablePtr<SubchannelConnector> connector,
228
- const grpc_channel_args* args);
229
-
230
- // Strong and weak refcounting.
231
- Subchannel* Ref(GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
232
- void Unref(GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
233
- Subchannel* WeakRef(GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
234
- void WeakUnref(GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
235
- // Attempts to return a strong ref when only the weak refcount is guaranteed
236
- // non-zero. If the strong refcount is zero, does not alter the refcount and
237
- // returns null.
238
- Subchannel* RefFromWeakRef();
203
+ // Throttles keepalive time to \a new_keepalive_time iff \a new_keepalive_time
204
+ // is larger than the subchannel's current keepalive time. The updated value
205
+ // will have an affect when the subchannel creates a new ConnectedSubchannel.
206
+ void ThrottleKeepaliveTime(int new_keepalive_time) ABSL_LOCKS_EXCLUDED(mu_);
239
207
 
240
208
  // Gets the string representing the subchannel address.
241
209
  // Caller doesn't take ownership.
@@ -251,8 +219,9 @@ class Subchannel {
251
219
  // service name.
252
220
  // If the return value is GRPC_CHANNEL_READY, also sets *connected_subchannel.
253
221
  grpc_connectivity_state CheckConnectivityState(
254
- const char* health_check_service_name,
255
- RefCountedPtr<ConnectedSubchannel>* connected_subchannel);
222
+ const absl::optional<std::string>& health_check_service_name,
223
+ RefCountedPtr<ConnectedSubchannel>* connected_subchannel)
224
+ ABSL_LOCKS_EXCLUDED(mu_);
256
225
 
257
226
  // Starts watching the subchannel's connectivity state.
258
227
  // The first callback to the watcher will be delivered when the
@@ -264,23 +233,28 @@ class Subchannel {
264
233
  // destroyed or when CancelConnectivityStateWatch() is called.
265
234
  void WatchConnectivityState(
266
235
  grpc_connectivity_state initial_state,
267
- grpc_core::UniquePtr<char> health_check_service_name,
268
- RefCountedPtr<ConnectivityStateWatcherInterface> watcher);
236
+ const absl::optional<std::string>& health_check_service_name,
237
+ RefCountedPtr<ConnectivityStateWatcherInterface> watcher)
238
+ ABSL_LOCKS_EXCLUDED(mu_);
269
239
 
270
240
  // Cancels a connectivity state watch.
271
241
  // If the watcher has already been destroyed, this is a no-op.
272
- void CancelConnectivityStateWatch(const char* health_check_service_name,
273
- ConnectivityStateWatcherInterface* watcher);
242
+ void CancelConnectivityStateWatch(
243
+ const absl::optional<std::string>& health_check_service_name,
244
+ ConnectivityStateWatcherInterface* watcher) ABSL_LOCKS_EXCLUDED(mu_);
274
245
 
275
246
  // Attempt to connect to the backend. Has no effect if already connected.
276
- void AttemptToConnect();
247
+ void AttemptToConnect() ABSL_LOCKS_EXCLUDED(mu_);
277
248
 
278
249
  // Resets the connection backoff of the subchannel.
279
250
  // TODO(roth): Move connection backoff out of subchannels and up into LB
280
251
  // policy code (probably by adding a SubchannelGroup between
281
252
  // SubchannelList and SubchannelData), at which point this method can
282
253
  // go away.
283
- void ResetBackoff();
254
+ void ResetBackoff() ABSL_LOCKS_EXCLUDED(mu_);
255
+
256
+ // Tears down any existing connection, and arranges for destruction
257
+ void Orphan() override ABSL_LOCKS_EXCLUDED(mu_);
284
258
 
285
259
  // Returns a new channel arg encoding the subchannel address as a URI
286
260
  // string. Caller is responsible for freeing the string.
@@ -306,7 +280,8 @@ class Subchannel {
306
280
  void RemoveWatcherLocked(ConnectivityStateWatcherInterface* watcher);
307
281
 
308
282
  // Notifies all watchers in the list about a change to state.
309
- void NotifyLocked(Subchannel* subchannel, grpc_connectivity_state state);
283
+ void NotifyLocked(Subchannel* subchannel, grpc_connectivity_state state,
284
+ const absl::Status& status);
310
285
 
311
286
  void Clear() { watchers_.clear(); }
312
287
 
@@ -332,24 +307,27 @@ class Subchannel {
332
307
  class HealthWatcherMap {
333
308
  public:
334
309
  void AddWatcherLocked(
335
- Subchannel* subchannel, grpc_connectivity_state initial_state,
336
- grpc_core::UniquePtr<char> health_check_service_name,
310
+ WeakRefCountedPtr<Subchannel> subchannel,
311
+ grpc_connectivity_state initial_state,
312
+ const std::string& health_check_service_name,
337
313
  RefCountedPtr<ConnectivityStateWatcherInterface> watcher);
338
- void RemoveWatcherLocked(const char* health_check_service_name,
314
+ void RemoveWatcherLocked(const std::string& health_check_service_name,
339
315
  ConnectivityStateWatcherInterface* watcher);
340
316
 
341
317
  // Notifies the watcher when the subchannel's state changes.
342
- void NotifyLocked(grpc_connectivity_state state);
318
+ void NotifyLocked(grpc_connectivity_state state, const absl::Status& status)
319
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(&Subchannel::mu_);
343
320
 
344
321
  grpc_connectivity_state CheckConnectivityStateLocked(
345
- Subchannel* subchannel, const char* health_check_service_name);
322
+ Subchannel* subchannel, const std::string& health_check_service_name)
323
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(&Subchannel::mu_);
346
324
 
347
325
  void ShutdownLocked();
348
326
 
349
327
  private:
350
328
  class HealthWatcher;
351
329
 
352
- std::map<const char*, OrphanablePtr<HealthWatcher>, StringLess> map_;
330
+ std::map<std::string, OrphanablePtr<HealthWatcher>> map_;
353
331
  };
354
332
 
355
333
  class ConnectedSubchannelStateWatcher;
@@ -357,69 +335,66 @@ class Subchannel {
357
335
  class AsyncWatcherNotifierLocked;
358
336
 
359
337
  // Sets the subchannel's connectivity state to \a state.
360
- void SetConnectivityStateLocked(grpc_connectivity_state state);
338
+ void SetConnectivityStateLocked(grpc_connectivity_state state,
339
+ const absl::Status& status)
340
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
361
341
 
362
342
  // Methods for connection.
363
- void MaybeStartConnectingLocked();
364
- static void OnRetryAlarm(void* arg, grpc_error* error);
365
- void ContinueConnectingLocked();
366
- static void OnConnectingFinished(void* arg, grpc_error* error);
367
- bool PublishTransportLocked();
368
- void Disconnect();
369
-
370
- gpr_atm RefMutate(gpr_atm delta,
371
- int barrier GRPC_SUBCHANNEL_REF_MUTATE_EXTRA_ARGS);
343
+ void MaybeStartConnectingLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
344
+ static void OnRetryAlarm(void* arg, grpc_error_handle error)
345
+ ABSL_LOCKS_EXCLUDED(mu_);
346
+ void ContinueConnectingLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
347
+ static void OnConnectingFinished(void* arg, grpc_error_handle error)
348
+ ABSL_LOCKS_EXCLUDED(mu_);
349
+ bool PublishTransportLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
372
350
 
373
351
  // The subchannel pool this subchannel is in.
374
352
  RefCountedPtr<SubchannelPoolInterface> subchannel_pool_;
375
353
  // TODO(juanlishen): Consider using args_ as key_ directly.
376
354
  // Subchannel key that identifies this subchannel in the subchannel pool.
377
- SubchannelKey* key_;
355
+ const SubchannelKey key_;
378
356
  // Channel args.
379
357
  grpc_channel_args* args_;
380
358
  // pollset_set tracking who's interested in a connection being setup.
381
359
  grpc_pollset_set* pollset_set_;
382
- // Protects the other members.
383
- Mutex mu_;
384
- // Refcount
385
- // - lower INTERNAL_REF_BITS bits are for internal references:
386
- // these do not keep the subchannel open.
387
- // - upper remaining bits are for public references: these do
388
- // keep the subchannel open
389
- gpr_atm ref_pair_;
390
-
391
- // Connection states.
360
+ // Channelz tracking.
361
+ RefCountedPtr<channelz::SubchannelNode> channelz_node_;
362
+
363
+ // Connection state.
392
364
  OrphanablePtr<SubchannelConnector> connector_;
393
- // Set during connection.
394
365
  SubchannelConnector::Result connecting_result_;
395
366
  grpc_closure on_connecting_finished_;
367
+
368
+ // Protects the other members.
369
+ Mutex mu_;
370
+
396
371
  // Active connection, or null.
397
- RefCountedPtr<ConnectedSubchannel> connected_subchannel_;
398
- bool connecting_ = false;
399
- bool disconnected_ = false;
372
+ RefCountedPtr<ConnectedSubchannel> connected_subchannel_ ABSL_GUARDED_BY(mu_);
373
+ bool connecting_ ABSL_GUARDED_BY(mu_) = false;
374
+ bool disconnected_ ABSL_GUARDED_BY(mu_) = false;
400
375
 
401
376
  // Connectivity state tracking.
402
- grpc_connectivity_state state_ = GRPC_CHANNEL_IDLE;
377
+ grpc_connectivity_state state_ ABSL_GUARDED_BY(mu_) = GRPC_CHANNEL_IDLE;
378
+ absl::Status status_ ABSL_GUARDED_BY(mu_);
403
379
  // The list of watchers without a health check service name.
404
- ConnectivityStateWatcherList watcher_list_;
380
+ ConnectivityStateWatcherList watcher_list_ ABSL_GUARDED_BY(mu_);
405
381
  // The map of watchers with health check service names.
406
- HealthWatcherMap health_watcher_map_;
382
+ HealthWatcherMap health_watcher_map_ ABSL_GUARDED_BY(mu_);
407
383
 
408
384
  // Backoff state.
409
- BackOff backoff_;
410
- grpc_millis next_attempt_deadline_;
411
- grpc_millis min_connect_timeout_ms_;
412
- bool backoff_begun_ = false;
385
+ BackOff backoff_ ABSL_GUARDED_BY(mu_);
386
+ grpc_millis next_attempt_deadline_ ABSL_GUARDED_BY(mu_);
387
+ grpc_millis min_connect_timeout_ms_ ABSL_GUARDED_BY(mu_);
388
+ bool backoff_begun_ ABSL_GUARDED_BY(mu_) = false;
413
389
 
414
390
  // Retry alarm.
415
- grpc_timer retry_alarm_;
416
- grpc_closure on_retry_alarm_;
417
- bool have_retry_alarm_ = false;
391
+ grpc_timer retry_alarm_ ABSL_GUARDED_BY(mu_);
392
+ grpc_closure on_retry_alarm_ ABSL_GUARDED_BY(mu_);
393
+ bool have_retry_alarm_ ABSL_GUARDED_BY(mu_) = false;
418
394
  // reset_backoff() was called while alarm was pending.
419
- bool retry_immediately_ = false;
420
-
421
- // Channelz tracking.
422
- RefCountedPtr<channelz::SubchannelNode> channelz_node_;
395
+ bool retry_immediately_ ABSL_GUARDED_BY(mu_) = false;
396
+ // Keepalive time period (-1 for unset)
397
+ int keepalive_time_ ABSL_GUARDED_BY(mu_) = -1;
423
398
  };
424
399
 
425
400
  } // namespace grpc_core
@@ -21,8 +21,11 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include <grpc/impl/codegen/connectivity_state.h>
25
+ #include <grpc/impl/codegen/grpc_types.h>
26
+
24
27
  #include "src/core/lib/gprpp/ref_counted.h"
25
- #include "src/core/lib/gprpp/ref_counted_ptr.h"
28
+ #include "src/core/lib/iomgr/pollset_set.h"
26
29
 
27
30
  namespace grpc_core {
28
31
 
@@ -44,11 +47,10 @@ class SubchannelInterface : public RefCounted<SubchannelInterface> {
44
47
  virtual grpc_pollset_set* interested_parties() = 0;
45
48
  };
46
49
 
47
- template <typename TraceFlagT = TraceFlag>
48
- explicit SubchannelInterface(TraceFlagT* trace_flag = nullptr)
49
- : RefCounted<SubchannelInterface>(trace_flag) {}
50
+ explicit SubchannelInterface(const char* trace = nullptr)
51
+ : RefCounted<SubchannelInterface>(trace) {}
50
52
 
51
- virtual ~SubchannelInterface() = default;
53
+ ~SubchannelInterface() override = default;
52
54
 
53
55
  // Returns the current connectivity state of the subchannel.
54
56
  virtual grpc_connectivity_state CheckConnectivityState() = 0;
@@ -89,6 +91,40 @@ class SubchannelInterface : public RefCounted<SubchannelInterface> {
89
91
  virtual const grpc_channel_args* channel_args() = 0;
90
92
  };
91
93
 
94
+ // A class that delegates to another subchannel, to be used in cases
95
+ // where an LB policy needs to wrap a subchannel.
96
+ class DelegatingSubchannel : public SubchannelInterface {
97
+ public:
98
+ explicit DelegatingSubchannel(RefCountedPtr<SubchannelInterface> subchannel)
99
+ : wrapped_subchannel_(std::move(subchannel)) {}
100
+
101
+ RefCountedPtr<SubchannelInterface> wrapped_subchannel() const {
102
+ return wrapped_subchannel_;
103
+ }
104
+
105
+ grpc_connectivity_state CheckConnectivityState() override {
106
+ return wrapped_subchannel_->CheckConnectivityState();
107
+ }
108
+ void WatchConnectivityState(
109
+ grpc_connectivity_state initial_state,
110
+ std::unique_ptr<ConnectivityStateWatcherInterface> watcher) override {
111
+ return wrapped_subchannel_->WatchConnectivityState(initial_state,
112
+ std::move(watcher));
113
+ }
114
+ void CancelConnectivityStateWatch(
115
+ ConnectivityStateWatcherInterface* watcher) override {
116
+ return wrapped_subchannel_->CancelConnectivityStateWatch(watcher);
117
+ }
118
+ void AttemptToConnect() override { wrapped_subchannel_->AttemptToConnect(); }
119
+ void ResetBackoff() override { wrapped_subchannel_->ResetBackoff(); }
120
+ const grpc_channel_args* channel_args() override {
121
+ return wrapped_subchannel_->channel_args();
122
+ }
123
+
124
+ private:
125
+ RefCountedPtr<SubchannelInterface> wrapped_subchannel_;
126
+ };
127
+
92
128
  } // namespace grpc_core
93
129
 
94
130
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SUBCHANNEL_INTERFACE_H */
@@ -44,13 +44,27 @@ SubchannelKey::SubchannelKey(const SubchannelKey& other) {
44
44
  }
45
45
 
46
46
  SubchannelKey& SubchannelKey::operator=(const SubchannelKey& other) {
47
+ if (&other == this) {
48
+ return *this;
49
+ }
47
50
  grpc_channel_args_destroy(const_cast<grpc_channel_args*>(args_));
48
51
  Init(other.args_, grpc_channel_args_copy);
49
52
  return *this;
50
53
  }
51
54
 
52
- int SubchannelKey::Cmp(const SubchannelKey& other) const {
53
- return grpc_channel_args_compare(args_, other.args_);
55
+ SubchannelKey::SubchannelKey(SubchannelKey&& other) noexcept {
56
+ args_ = other.args_;
57
+ other.args_ = nullptr;
58
+ }
59
+
60
+ SubchannelKey& SubchannelKey::operator=(SubchannelKey&& other) noexcept {
61
+ args_ = other.args_;
62
+ other.args_ = nullptr;
63
+ return *this;
64
+ }
65
+
66
+ bool SubchannelKey::operator<(const SubchannelKey& other) const {
67
+ return grpc_channel_args_compare(args_, other.args_) < 0;
54
68
  }
55
69
 
56
70
  void SubchannelKey::Init(
@@ -23,6 +23,7 @@
23
23
 
24
24
  #include "src/core/lib/avl/avl.h"
25
25
  #include "src/core/lib/channel/channel_args.h"
26
+ #include "src/core/lib/debug/trace.h"
26
27
  #include "src/core/lib/gprpp/ref_counted.h"
27
28
 
28
29
  namespace grpc_core {
@@ -40,11 +41,11 @@ class SubchannelKey {
40
41
  // Copyable.
41
42
  SubchannelKey(const SubchannelKey& other);
42
43
  SubchannelKey& operator=(const SubchannelKey& other);
43
- // Not movable.
44
- SubchannelKey(SubchannelKey&&) = delete;
45
- SubchannelKey& operator=(SubchannelKey&&) = delete;
44
+ // Movable
45
+ SubchannelKey(SubchannelKey&&) noexcept;
46
+ SubchannelKey& operator=(SubchannelKey&&) noexcept;
46
47
 
47
- int Cmp(const SubchannelKey& other) const;
48
+ bool operator<(const SubchannelKey& other) const;
48
49
 
49
50
  private:
50
51
  // Initializes the subchannel key with the given \a args and the function to
@@ -62,21 +63,26 @@ class SubchannelKey {
62
63
  // shut down safely. See https://github.com/grpc/grpc/issues/12560.
63
64
  class SubchannelPoolInterface : public RefCounted<SubchannelPoolInterface> {
64
65
  public:
65
- SubchannelPoolInterface() : RefCounted(&grpc_subchannel_pool_trace) {}
66
- virtual ~SubchannelPoolInterface() {}
66
+ SubchannelPoolInterface()
67
+ : RefCounted(GRPC_TRACE_FLAG_ENABLED(grpc_subchannel_pool_trace)
68
+ ? "SubchannelPoolInterface"
69
+ : nullptr) {}
70
+ ~SubchannelPoolInterface() override {}
67
71
 
68
72
  // Registers a subchannel against a key. Returns the subchannel registered
69
73
  // with \a key, which may be different from \a constructed because we reuse
70
74
  // (instead of update) any existing subchannel already registered with \a key.
71
- virtual Subchannel* RegisterSubchannel(SubchannelKey* key,
72
- Subchannel* constructed) = 0;
75
+ virtual RefCountedPtr<Subchannel> RegisterSubchannel(
76
+ const SubchannelKey& key, RefCountedPtr<Subchannel> constructed) = 0;
73
77
 
74
78
  // Removes the registered subchannel found by \a key.
75
- virtual void UnregisterSubchannel(SubchannelKey* key) = 0;
79
+ virtual void UnregisterSubchannel(const SubchannelKey& key,
80
+ Subchannel* subchannel) = 0;
76
81
 
77
82
  // Finds the subchannel registered for the given subchannel key. Returns NULL
78
83
  // if no such channel exists. Thread-safe.
79
- virtual Subchannel* FindSubchannel(SubchannelKey* key) = 0;
84
+ virtual RefCountedPtr<Subchannel> FindSubchannel(
85
+ const SubchannelKey& key) = 0;
80
86
 
81
87
  // Creates a channel arg from \a subchannel pool.
82
88
  static grpc_arg CreateChannelArg(SubchannelPoolInterface* subchannel_pool);
@@ -126,8 +126,8 @@ grpc_millis GetClientIdleTimeout(const grpc_channel_args* args) {
126
126
 
127
127
  class ChannelData {
128
128
  public:
129
- static grpc_error* Init(grpc_channel_element* elem,
130
- grpc_channel_element_args* args);
129
+ static grpc_error_handle Init(grpc_channel_element* elem,
130
+ grpc_channel_element_args* args);
131
131
  static void Destroy(grpc_channel_element* elem);
132
132
 
133
133
  static void StartTransportOp(grpc_channel_element* elem,
@@ -139,11 +139,12 @@ class ChannelData {
139
139
 
140
140
  private:
141
141
  ChannelData(grpc_channel_element* elem, grpc_channel_element_args* args,
142
- grpc_error** error);
142
+ grpc_error_handle* error);
143
143
  ~ChannelData() = default;
144
144
 
145
- static void IdleTimerCallback(void* arg, grpc_error* error);
146
- static void IdleTransportOpCompleteCallback(void* arg, grpc_error* error);
145
+ static void IdleTimerCallback(void* arg, grpc_error_handle error);
146
+ static void IdleTransportOpCompleteCallback(void* arg,
147
+ grpc_error_handle error);
147
148
 
148
149
  void StartIdleTimer();
149
150
 
@@ -170,9 +171,9 @@ class ChannelData {
170
171
  grpc_closure idle_transport_op_complete_callback_;
171
172
  };
172
173
 
173
- grpc_error* ChannelData::Init(grpc_channel_element* elem,
174
- grpc_channel_element_args* args) {
175
- grpc_error* error = GRPC_ERROR_NONE;
174
+ grpc_error_handle ChannelData::Init(grpc_channel_element* elem,
175
+ grpc_channel_element_args* args) {
176
+ grpc_error_handle error = GRPC_ERROR_NONE;
176
177
  new (elem->channel_data) ChannelData(elem, args, &error);
177
178
  return error;
178
179
  }
@@ -186,8 +187,8 @@ void ChannelData::StartTransportOp(grpc_channel_element* elem,
186
187
  grpc_transport_op* op) {
187
188
  ChannelData* chand = static_cast<ChannelData*>(elem->channel_data);
188
189
  // Catch the disconnect_with_error transport op.
189
- if (op->disconnect_with_error != nullptr) {
190
- // IncreaseCallCount() introduces a dummy call and prevent the timer from
190
+ if (op->disconnect_with_error != GRPC_ERROR_NONE) {
191
+ // IncreaseCallCount() introduces a phony call and prevent the timer from
191
192
  // being reset by other threads.
192
193
  chand->IncreaseCallCount();
193
194
  // If the timer has been set, cancel the timer.
@@ -283,7 +284,7 @@ void ChannelData::DecreaseCallCount() {
283
284
 
284
285
  ChannelData::ChannelData(grpc_channel_element* elem,
285
286
  grpc_channel_element_args* args,
286
- grpc_error** /*error*/)
287
+ grpc_error_handle* /*error*/)
287
288
  : elem_(elem),
288
289
  channel_stack_(args->channel_stack),
289
290
  client_idle_timeout_(GetClientIdleTimeout(args->channel_args)) {
@@ -303,7 +304,7 @@ ChannelData::ChannelData(grpc_channel_element* elem,
303
304
  grpc_schedule_on_exec_ctx);
304
305
  }
305
306
 
306
- void ChannelData::IdleTimerCallback(void* arg, grpc_error* error) {
307
+ void ChannelData::IdleTimerCallback(void* arg, grpc_error_handle error) {
307
308
  GRPC_IDLE_FILTER_LOG("timer alarms");
308
309
  ChannelData* chand = static_cast<ChannelData*>(arg);
309
310
  if (error != GRPC_ERROR_NONE) {
@@ -352,7 +353,7 @@ void ChannelData::IdleTimerCallback(void* arg, grpc_error* error) {
352
353
  }
353
354
 
354
355
  void ChannelData::IdleTransportOpCompleteCallback(void* arg,
355
- grpc_error* /*error*/) {
356
+ grpc_error_handle /*error*/) {
356
357
  ChannelData* chand = static_cast<ChannelData*>(arg);
357
358
  GRPC_CHANNEL_STACK_UNREF(chand->channel_stack_, "idle transport op");
358
359
  }
@@ -381,15 +382,15 @@ void ChannelData::EnterIdle() {
381
382
 
382
383
  class CallData {
383
384
  public:
384
- static grpc_error* Init(grpc_call_element* elem,
385
- const grpc_call_element_args* args);
385
+ static grpc_error_handle Init(grpc_call_element* elem,
386
+ const grpc_call_element_args* args);
386
387
  static void Destroy(grpc_call_element* elem,
387
388
  const grpc_call_final_info* final_info,
388
389
  grpc_closure* then_schedule_closure);
389
390
  };
390
391
 
391
- grpc_error* CallData::Init(grpc_call_element* elem,
392
- const grpc_call_element_args* /*args*/) {
392
+ grpc_error_handle CallData::Init(grpc_call_element* elem,
393
+ const grpc_call_element_args* /*args*/) {
393
394
  ChannelData* chand = static_cast<ChannelData*>(elem->channel_data);
394
395
  chand->IncreaseCallCount();
395
396
  return GRPC_ERROR_NONE;