grpc 1.50.0.pre1-x86_64-linux → 1.52.0.pre2-x86_64-linux

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 (2569) hide show
  1. checksums.yaml +4 -4
  2. data/grpc_c.32-msvcrt.ruby +0 -0
  3. data/grpc_c.64-msvcrt.ruby +0 -0
  4. data/grpc_c.64-ucrt.ruby +0 -0
  5. data/src/ruby/ext/grpc/{ext-export-truffleruby.clang → ext-export-truffleruby-with-ruby-abi-version.clang} +0 -0
  6. data/src/ruby/ext/grpc/{ext-export-truffleruby.gcc → ext-export-truffleruby-with-ruby-abi-version.gcc} +0 -0
  7. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
  8. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
  9. data/src/ruby/ext/grpc/ext-export.clang +0 -1
  10. data/src/ruby/ext/grpc/ext-export.gcc +1 -2
  11. data/src/ruby/ext/grpc/extconf.rb +47 -2
  12. data/src/ruby/ext/grpc/rb_call.c +1 -0
  13. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  14. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  15. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  16. data/src/ruby/ext/grpc/rb_grpc.c +1 -0
  17. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -38
  18. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -59
  19. data/src/ruby/lib/grpc/2.7/grpc_c.so +0 -0
  20. data/src/ruby/lib/grpc/3.0/grpc_c.so +0 -0
  21. data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
  22. data/src/ruby/lib/grpc/{grpc_c.so → 3.2/grpc_c.so} +0 -0
  23. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
  24. data/src/ruby/lib/grpc/version.rb +1 -1
  25. data/src/ruby/spec/channel_spec.rb +0 -43
  26. data/src/ruby/spec/client_server_spec.rb +20 -8
  27. data/src/ruby/spec/generic/active_call_spec.rb +12 -3
  28. metadata +26 -2562
  29. data/.yardopts +0 -1
  30. data/Makefile +0 -3169
  31. data/include/grpc/byte_buffer.h +0 -27
  32. data/include/grpc/byte_buffer_reader.h +0 -26
  33. data/include/grpc/census.h +0 -40
  34. data/include/grpc/compression.h +0 -75
  35. data/include/grpc/event_engine/README.md +0 -38
  36. data/include/grpc/event_engine/endpoint_config.h +0 -49
  37. data/include/grpc/event_engine/event_engine.h +0 -446
  38. data/include/grpc/event_engine/internal/memory_allocator_impl.h +0 -68
  39. data/include/grpc/event_engine/memory_allocator.h +0 -211
  40. data/include/grpc/event_engine/memory_request.h +0 -57
  41. data/include/grpc/event_engine/port.h +0 -39
  42. data/include/grpc/event_engine/slice.h +0 -286
  43. data/include/grpc/event_engine/slice_buffer.h +0 -118
  44. data/include/grpc/fork.h +0 -26
  45. data/include/grpc/grpc.h +0 -605
  46. data/include/grpc/grpc_cronet.h +0 -38
  47. data/include/grpc/grpc_posix.h +0 -63
  48. data/include/grpc/grpc_security.h +0 -1270
  49. data/include/grpc/grpc_security_constants.h +0 -152
  50. data/include/grpc/impl/codegen/README.md +0 -22
  51. data/include/grpc/impl/codegen/atm.h +0 -97
  52. data/include/grpc/impl/codegen/atm_gcc_atomic.h +0 -84
  53. data/include/grpc/impl/codegen/atm_gcc_sync.h +0 -85
  54. data/include/grpc/impl/codegen/atm_windows.h +0 -132
  55. data/include/grpc/impl/codegen/byte_buffer.h +0 -103
  56. data/include/grpc/impl/codegen/byte_buffer_reader.h +0 -44
  57. data/include/grpc/impl/codegen/compression_types.h +0 -109
  58. data/include/grpc/impl/codegen/connectivity_state.h +0 -47
  59. data/include/grpc/impl/codegen/fork.h +0 -50
  60. data/include/grpc/impl/codegen/gpr_slice.h +0 -71
  61. data/include/grpc/impl/codegen/gpr_types.h +0 -62
  62. data/include/grpc/impl/codegen/grpc_types.h +0 -818
  63. data/include/grpc/impl/codegen/log.h +0 -112
  64. data/include/grpc/impl/codegen/port_platform.h +0 -782
  65. data/include/grpc/impl/codegen/propagation_bits.h +0 -54
  66. data/include/grpc/impl/codegen/slice.h +0 -132
  67. data/include/grpc/impl/codegen/status.h +0 -156
  68. data/include/grpc/impl/codegen/sync.h +0 -68
  69. data/include/grpc/impl/codegen/sync_abseil.h +0 -38
  70. data/include/grpc/impl/codegen/sync_custom.h +0 -40
  71. data/include/grpc/impl/codegen/sync_generic.h +0 -51
  72. data/include/grpc/impl/codegen/sync_posix.h +0 -54
  73. data/include/grpc/impl/codegen/sync_windows.h +0 -42
  74. data/include/grpc/load_reporting.h +0 -48
  75. data/include/grpc/module.modulemap +0 -64
  76. data/include/grpc/slice.h +0 -161
  77. data/include/grpc/slice_buffer.h +0 -84
  78. data/include/grpc/status.h +0 -26
  79. data/include/grpc/support/alloc.h +0 -52
  80. data/include/grpc/support/atm.h +0 -26
  81. data/include/grpc/support/atm_gcc_atomic.h +0 -26
  82. data/include/grpc/support/atm_gcc_sync.h +0 -26
  83. data/include/grpc/support/atm_windows.h +0 -26
  84. data/include/grpc/support/cpu.h +0 -44
  85. data/include/grpc/support/log.h +0 -26
  86. data/include/grpc/support/log_windows.h +0 -38
  87. data/include/grpc/support/port_platform.h +0 -24
  88. data/include/grpc/support/string_util.h +0 -51
  89. data/include/grpc/support/sync.h +0 -282
  90. data/include/grpc/support/sync_abseil.h +0 -26
  91. data/include/grpc/support/sync_custom.h +0 -26
  92. data/include/grpc/support/sync_generic.h +0 -26
  93. data/include/grpc/support/sync_posix.h +0 -26
  94. data/include/grpc/support/sync_windows.h +0 -26
  95. data/include/grpc/support/thd_id.h +0 -44
  96. data/include/grpc/support/time.h +0 -92
  97. data/include/grpc/support/workaround_list.h +0 -31
  98. data/src/core/ext/filters/census/grpc_context.cc +0 -42
  99. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +0 -309
  100. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +0 -141
  101. data/src/core/ext/filters/channel_idle/idle_filter_state.cc +0 -96
  102. data/src/core/ext/filters/channel_idle/idle_filter_state.h +0 -68
  103. data/src/core/ext/filters/client_channel/backend_metric.cc +0 -84
  104. data/src/core/ext/filters/client_channel/backend_metric.h +0 -47
  105. data/src/core/ext/filters/client_channel/backup_poller.cc +0 -187
  106. data/src/core/ext/filters/client_channel/backup_poller.h +0 -40
  107. data/src/core/ext/filters/client_channel/channel_connectivity.cc +0 -242
  108. data/src/core/ext/filters/client_channel/client_channel.cc +0 -3208
  109. data/src/core/ext/filters/client_channel/client_channel.h +0 -627
  110. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +0 -94
  111. data/src/core/ext/filters/client_channel/client_channel_channelz.h +0 -85
  112. data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -32
  113. data/src/core/ext/filters/client_channel/client_channel_factory.h +0 -46
  114. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +0 -42
  115. data/src/core/ext/filters/client_channel/config_selector.cc +0 -60
  116. data/src/core/ext/filters/client_channel/config_selector.h +0 -155
  117. data/src/core/ext/filters/client_channel/connector.h +0 -84
  118. data/src/core/ext/filters/client_channel/dynamic_filters.cc +0 -202
  119. data/src/core/ext/filters/client_channel/dynamic_filters.h +0 -109
  120. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +0 -65
  121. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +0 -63
  122. data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -176
  123. data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
  124. data/src/core/ext/filters/client_channel/http_proxy.cc +0 -201
  125. data/src/core/ext/filters/client_channel/http_proxy.h +0 -52
  126. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +0 -101
  127. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +0 -103
  128. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +0 -49
  129. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +0 -320
  130. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +0 -89
  131. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +0 -149
  132. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +0 -30
  133. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +0 -1942
  134. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -40
  135. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -89
  136. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -41
  137. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +0 -92
  138. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +0 -82
  139. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +0 -202
  140. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +0 -76
  141. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +0 -416
  142. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +0 -57
  143. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +0 -1140
  144. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +0 -94
  145. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +0 -545
  146. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +0 -954
  147. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +0 -891
  148. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +0 -47
  149. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +0 -2513
  150. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +0 -531
  151. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +0 -439
  152. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +0 -775
  153. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +0 -772
  154. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +0 -66
  155. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +0 -29
  156. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +0 -800
  157. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +0 -731
  158. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +0 -1300
  159. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +0 -60
  160. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +0 -59
  161. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +0 -149
  162. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +0 -877
  163. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +0 -91
  164. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +0 -116
  165. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +0 -883
  166. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +0 -1206
  167. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +0 -137
  168. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +0 -29
  169. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +0 -35
  170. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
  171. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +0 -30
  172. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +0 -203
  173. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +0 -370
  174. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -110
  175. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +0 -464
  176. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +0 -259
  177. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +0 -123
  178. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +0 -193
  179. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +0 -1130
  180. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +0 -30
  181. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -188
  182. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +0 -108
  183. data/src/core/ext/filters/client_channel/retry_filter.cc +0 -2683
  184. data/src/core/ext/filters/client_channel/retry_filter.h +0 -31
  185. data/src/core/ext/filters/client_channel/retry_service_config.cc +0 -324
  186. data/src/core/ext/filters/client_channel/retry_service_config.h +0 -108
  187. data/src/core/ext/filters/client_channel/retry_throttle.cc +0 -141
  188. data/src/core/ext/filters/client_channel/retry_throttle.h +0 -91
  189. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +0 -174
  190. data/src/core/ext/filters/client_channel/subchannel.cc +0 -978
  191. data/src/core/ext/filters/client_channel/subchannel.h +0 -435
  192. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +0 -38
  193. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +0 -66
  194. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +0 -100
  195. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +0 -471
  196. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +0 -222
  197. data/src/core/ext/filters/deadline/deadline_filter.cc +0 -401
  198. data/src/core/ext/filters/deadline/deadline_filter.h +0 -93
  199. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +0 -279
  200. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +0 -75
  201. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -187
  202. data/src/core/ext/filters/fault_injection/service_config_parser.h +0 -104
  203. data/src/core/ext/filters/http/client/http_client_filter.cc +0 -159
  204. data/src/core/ext/filters/http/client/http_client_filter.h +0 -61
  205. data/src/core/ext/filters/http/client_authority_filter.cc +0 -90
  206. data/src/core/ext/filters/http/client_authority_filter.h +0 -56
  207. data/src/core/ext/filters/http/http_filters_plugin.cc +0 -97
  208. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -332
  209. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -52
  210. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -322
  211. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +0 -32
  212. data/src/core/ext/filters/http/server/http_server_filter.cc +0 -160
  213. data/src/core/ext/filters/http/server/http_server_filter.h +0 -63
  214. data/src/core/ext/filters/message_size/message_size_filter.cc +0 -404
  215. data/src/core/ext/filters/message_size/message_size_filter.h +0 -83
  216. data/src/core/ext/filters/rbac/rbac_filter.cc +0 -174
  217. data/src/core/ext/filters/rbac/rbac_filter.h +0 -84
  218. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +0 -621
  219. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +0 -85
  220. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +0 -62
  221. data/src/core/ext/filters/server_config_selector/server_config_selector.h +0 -85
  222. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +0 -161
  223. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +0 -33
  224. data/src/core/ext/transport/chttp2/alpn/alpn.cc +0 -45
  225. data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -36
  226. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +0 -438
  227. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -77
  228. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +0 -1109
  229. data/src/core/ext/transport/chttp2/server/chttp2_server.h +0 -47
  230. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +0 -252
  231. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +0 -58
  232. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +0 -232
  233. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +0 -42
  234. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +0 -3004
  235. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -77
  236. data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
  237. data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
  238. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +0 -287
  239. data/src/core/ext/transport/chttp2/transport/decode_huff.h +0 -1018
  240. data/src/core/ext/transport/chttp2/transport/flow_control.cc +0 -411
  241. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -385
  242. data/src/core/ext/transport/chttp2/transport/frame.h +0 -43
  243. data/src/core/ext/transport/chttp2/transport/frame_data.cc +0 -155
  244. data/src/core/ext/transport/chttp2/transport/frame_data.h +0 -60
  245. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +0 -190
  246. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +0 -65
  247. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +0 -136
  248. data/src/core/ext/transport/chttp2/transport/frame_ping.h +0 -49
  249. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +0 -127
  250. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +0 -54
  251. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +0 -243
  252. data/src/core/ext/transport/chttp2/transport/frame_settings.h +0 -66
  253. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +0 -121
  254. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +0 -46
  255. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +0 -47
  256. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +0 -668
  257. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +0 -236
  258. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -88
  259. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +0 -80
  260. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +0 -1390
  261. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +0 -142
  262. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +0 -246
  263. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +0 -137
  264. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +0 -62
  265. data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -60
  266. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +0 -92
  267. data/src/core/ext/transport/chttp2/transport/huffsyms.h +0 -32
  268. data/src/core/ext/transport/chttp2/transport/internal.h +0 -787
  269. data/src/core/ext/transport/chttp2/transport/parsing.cc +0 -731
  270. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +0 -216
  271. data/src/core/ext/transport/chttp2/transport/stream_map.cc +0 -177
  272. data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -68
  273. data/src/core/ext/transport/chttp2/transport/varint.cc +0 -62
  274. data/src/core/ext/transport/chttp2/transport/varint.h +0 -73
  275. data/src/core/ext/transport/chttp2/transport/writing.cc +0 -683
  276. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  277. data/src/core/ext/transport/inproc/inproc_transport.cc +0 -1292
  278. data/src/core/ext/transport/inproc/inproc_transport.h +0 -34
  279. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +0 -117
  280. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +0 -502
  281. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +0 -121
  282. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +0 -569
  283. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +0 -125
  284. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +0 -516
  285. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +0 -352
  286. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +0 -1768
  287. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +0 -56
  288. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +0 -159
  289. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +0 -64
  290. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +0 -189
  291. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +0 -46
  292. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +0 -128
  293. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +0 -43
  294. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +0 -106
  295. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +0 -43
  296. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +0 -101
  297. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +0 -106
  298. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +0 -613
  299. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +0 -48
  300. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +0 -107
  301. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +0 -60
  302. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +0 -81
  303. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +0 -53
  304. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +0 -103
  305. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +0 -270
  306. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +0 -1300
  307. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +0 -413
  308. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +0 -2251
  309. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +0 -95
  310. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +0 -394
  311. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +0 -544
  312. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +0 -3066
  313. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +0 -48
  314. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +0 -107
  315. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +0 -89
  316. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +0 -549
  317. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +0 -299
  318. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +0 -1437
  319. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +0 -145
  320. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +0 -664
  321. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +0 -49
  322. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +0 -120
  323. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +0 -421
  324. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +0 -1891
  325. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +0 -163
  326. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +0 -806
  327. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +0 -47
  328. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +0 -104
  329. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +0 -47
  330. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +0 -107
  331. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +0 -58
  332. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +0 -159
  333. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +0 -269
  334. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +0 -1329
  335. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +0 -220
  336. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +0 -1255
  337. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +0 -49
  338. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +0 -126
  339. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +0 -323
  340. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +0 -1759
  341. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +0 -40
  342. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +0 -88
  343. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +0 -60
  344. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +0 -177
  345. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +0 -47
  346. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +0 -148
  347. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +0 -56
  348. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +0 -182
  349. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +0 -48
  350. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +0 -122
  351. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +0 -106
  352. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +0 -360
  353. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +0 -144
  354. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +0 -647
  355. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +0 -129
  356. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +0 -588
  357. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +0 -46
  358. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +0 -98
  359. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +0 -189
  360. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +0 -1041
  361. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +0 -186
  362. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +0 -969
  363. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +0 -63
  364. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +0 -238
  365. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +0 -59
  366. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +0 -186
  367. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +0 -53
  368. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +0 -140
  369. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +0 -165
  370. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +0 -748
  371. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +0 -174
  372. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +0 -757
  373. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +0 -221
  374. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +0 -1094
  375. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +0 -86
  376. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +0 -402
  377. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +0 -1096
  378. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +0 -6440
  379. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +0 -79
  380. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +0 -267
  381. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +0 -241
  382. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +0 -1191
  383. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +0 -44
  384. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +0 -92
  385. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +0 -49
  386. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +0 -107
  387. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +0 -63
  388. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +0 -175
  389. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +0 -52
  390. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +0 -138
  391. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +0 -63
  392. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +0 -254
  393. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -46
  394. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +0 -98
  395. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +0 -47
  396. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +0 -98
  397. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +0 -69
  398. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +0 -221
  399. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +0 -33
  400. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +0 -43
  401. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +0 -71
  402. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +0 -226
  403. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +0 -54
  404. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +0 -150
  405. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +0 -42
  406. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +0 -89
  407. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +0 -96
  408. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +0 -395
  409. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +0 -94
  410. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +0 -445
  411. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +0 -71
  412. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +0 -237
  413. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +0 -55
  414. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +0 -172
  415. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +0 -471
  416. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +0 -2731
  417. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +0 -52
  418. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +0 -168
  419. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +0 -46
  420. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +0 -98
  421. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -28
  422. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +0 -38
  423. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +0 -177
  424. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +0 -932
  425. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +0 -88
  426. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +0 -320
  427. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +0 -191
  428. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +0 -1063
  429. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +0 -62
  430. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +0 -168
  431. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +0 -38
  432. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +0 -74
  433. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +0 -280
  434. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +0 -1375
  435. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +0 -68
  436. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +0 -218
  437. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +0 -138
  438. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +0 -651
  439. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +0 -48
  440. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +0 -116
  441. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +0 -76
  442. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +0 -265
  443. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +0 -74
  444. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +0 -230
  445. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +0 -62
  446. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +0 -196
  447. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +0 -49
  448. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +0 -121
  449. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +0 -48
  450. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +0 -117
  451. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +0 -47
  452. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +0 -104
  453. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +0 -80
  454. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +0 -246
  455. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +0 -67
  456. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +0 -226
  457. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +0 -60
  458. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +0 -178
  459. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +0 -78
  460. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +0 -306
  461. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +0 -107
  462. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +0 -457
  463. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +0 -107
  464. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +0 -439
  465. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +0 -66
  466. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +0 -213
  467. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +0 -26
  468. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +0 -39
  469. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +0 -42
  470. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +0 -143
  471. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +0 -54
  472. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +0 -147
  473. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +0 -66
  474. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +0 -208
  475. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +0 -63
  476. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +0 -202
  477. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +0 -26
  478. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +0 -41
  479. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +0 -43
  480. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +0 -101
  481. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +0 -51
  482. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +0 -131
  483. data/src/core/ext/upb-generated/google/api/annotations.upb.c +0 -40
  484. data/src/core/ext/upb-generated/google/api/annotations.upb.h +0 -53
  485. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +0 -271
  486. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +0 -1280
  487. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +0 -283
  488. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +0 -1386
  489. data/src/core/ext/upb-generated/google/api/http.upb.c +0 -81
  490. data/src/core/ext/upb-generated/google/api/http.upb.h +0 -343
  491. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +0 -46
  492. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +0 -115
  493. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +0 -40
  494. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +0 -92
  495. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +0 -578
  496. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +0 -3217
  497. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +0 -40
  498. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +0 -92
  499. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +0 -35
  500. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +0 -74
  501. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +0 -95
  502. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +0 -329
  503. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +0 -40
  504. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +0 -92
  505. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +0 -127
  506. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +0 -475
  507. data/src/core/ext/upb-generated/google/rpc/status.upb.c +0 -46
  508. data/src/core/ext/upb-generated/google/rpc/status.upb.h +0 -115
  509. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +0 -84
  510. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +0 -335
  511. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +0 -63
  512. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +0 -188
  513. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +0 -240
  514. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +0 -1173
  515. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +0 -57
  516. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +0 -182
  517. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +0 -50
  518. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +0 -139
  519. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +0 -161
  520. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +0 -705
  521. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +0 -70
  522. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +0 -216
  523. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +0 -175
  524. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +0 -792
  525. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +0 -110
  526. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +0 -290
  527. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +0 -55
  528. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +0 -112
  529. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +0 -38
  530. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +0 -46
  531. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +0 -54
  532. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +0 -119
  533. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +0 -53
  534. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +0 -103
  535. data/src/core/ext/upb-generated/validate/validate.upb.c +0 -560
  536. data/src/core/ext/upb-generated/validate/validate.upb.h +0 -4105
  537. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +0 -110
  538. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +0 -290
  539. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +0 -55
  540. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +0 -112
  541. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +0 -38
  542. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +0 -46
  543. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +0 -105
  544. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +0 -306
  545. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +0 -53
  546. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +0 -103
  547. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +0 -41
  548. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +0 -83
  549. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +0 -66
  550. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +0 -208
  551. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +0 -56
  552. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +0 -119
  553. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +0 -46
  554. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +0 -107
  555. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +0 -49
  556. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +0 -131
  557. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +0 -68
  558. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +0 -248
  559. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +0 -49
  560. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +0 -125
  561. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +0 -73
  562. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +0 -191
  563. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +0 -47
  564. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +0 -113
  565. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +0 -207
  566. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +0 -914
  567. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +0 -52
  568. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +0 -151
  569. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +0 -65
  570. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +0 -226
  571. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +0 -46
  572. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +0 -107
  573. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +0 -84
  574. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +0 -55
  575. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +0 -127
  576. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +0 -50
  577. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +0 -102
  578. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -55
  579. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +0 -256
  580. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +0 -115
  581. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +0 -43
  582. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +0 -40
  583. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +0 -56
  584. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +0 -40
  585. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +0 -49
  586. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +0 -35
  587. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +0 -46
  588. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +0 -35
  589. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +0 -46
  590. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +0 -35
  591. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +0 -142
  592. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +0 -40
  593. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +0 -51
  594. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +0 -35
  595. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +0 -48
  596. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +0 -30
  597. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +0 -38
  598. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +0 -35
  599. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +0 -222
  600. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +0 -105
  601. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +0 -397
  602. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +0 -120
  603. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +0 -98
  604. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +0 -45
  605. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +0 -559
  606. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +0 -155
  607. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +0 -51
  608. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +0 -35
  609. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +0 -138
  610. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +0 -35
  611. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +0 -206
  612. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +0 -105
  613. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +0 -112
  614. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +0 -65
  615. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +0 -54
  616. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +0 -35
  617. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +0 -270
  618. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +0 -150
  619. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +0 -168
  620. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +0 -65
  621. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +0 -53
  622. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +0 -35
  623. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +0 -47
  624. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +0 -35
  625. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +0 -53
  626. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +0 -40
  627. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +0 -235
  628. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +0 -100
  629. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +0 -228
  630. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +0 -75
  631. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +0 -53
  632. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +0 -35
  633. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +0 -300
  634. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +0 -110
  635. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +0 -41
  636. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +0 -35
  637. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +0 -55
  638. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +0 -40
  639. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +0 -57
  640. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +0 -35
  641. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +0 -70
  642. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +0 -35
  643. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +0 -49
  644. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +0 -35
  645. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +0 -99
  646. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +0 -50
  647. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +0 -128
  648. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +0 -60
  649. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +0 -136
  650. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +0 -55
  651. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +0 -48
  652. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +0 -35
  653. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +0 -220
  654. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +0 -65
  655. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +0 -190
  656. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +0 -65
  657. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +0 -88
  658. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +0 -35
  659. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +0 -71
  660. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +0 -40
  661. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +0 -69
  662. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +0 -35
  663. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +0 -125
  664. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +0 -70
  665. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +0 -134
  666. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +0 -75
  667. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +0 -194
  668. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +0 -75
  669. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +0 -112
  670. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -40
  671. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +0 -939
  672. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +0 -305
  673. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +0 -77
  674. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +0 -45
  675. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +0 -199
  676. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +0 -90
  677. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +0 -54
  678. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +0 -35
  679. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +0 -57
  680. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +0 -35
  681. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +0 -57
  682. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +0 -40
  683. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +0 -72
  684. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +0 -35
  685. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +0 -99
  686. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +0 -35
  687. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +0 -47
  688. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +0 -35
  689. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +0 -52
  690. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +0 -35
  691. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +0 -71
  692. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +0 -40
  693. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +0 -61
  694. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +0 -30
  695. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +0 -75
  696. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +0 -40
  697. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +0 -77
  698. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +0 -35
  699. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +0 -50
  700. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +0 -35
  701. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +0 -92
  702. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +0 -55
  703. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +0 -117
  704. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +0 -45
  705. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +0 -80
  706. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +0 -40
  707. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +0 -78
  708. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +0 -35
  709. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +0 -562
  710. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +0 -130
  711. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +0 -48
  712. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +0 -30
  713. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +0 -213
  714. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +0 -65
  715. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +0 -91
  716. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +0 -45
  717. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +0 -254
  718. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +0 -65
  719. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +0 -58
  720. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +0 -40
  721. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +0 -58
  722. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +0 -35
  723. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +0 -197
  724. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +0 -100
  725. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +0 -76
  726. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +0 -40
  727. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +0 -153
  728. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +0 -55
  729. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +0 -46
  730. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +0 -35
  731. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +0 -56
  732. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +0 -50
  733. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +0 -52
  734. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +0 -50
  735. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +0 -61
  736. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +0 -40
  737. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +0 -54
  738. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +0 -35
  739. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +0 -52
  740. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +0 -35
  741. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +0 -51
  742. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +0 -35
  743. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +0 -71
  744. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +0 -45
  745. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +0 -65
  746. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +0 -40
  747. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +0 -58
  748. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +0 -40
  749. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +0 -75
  750. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +0 -45
  751. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +0 -78
  752. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +0 -65
  753. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +0 -85
  754. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +0 -55
  755. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +0 -53
  756. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +0 -45
  757. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +0 -36
  758. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +0 -30
  759. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +0 -94
  760. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +0 -35
  761. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +0 -54
  762. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +0 -40
  763. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +0 -48
  764. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +0 -45
  765. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +0 -69
  766. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +0 -40
  767. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +0 -38
  768. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +0 -30
  769. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +0 -44
  770. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +0 -35
  771. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +0 -57
  772. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +0 -35
  773. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +0 -40
  774. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +0 -30
  775. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +0 -154
  776. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +0 -95
  777. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +0 -153
  778. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +0 -100
  779. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +0 -52
  780. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +0 -45
  781. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +0 -39
  782. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +0 -35
  783. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +0 -34
  784. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +0 -35
  785. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +0 -331
  786. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +0 -165
  787. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +0 -35
  788. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +0 -35
  789. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +0 -32
  790. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +0 -35
  791. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +0 -54
  792. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +0 -50
  793. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +0 -35
  794. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +0 -35
  795. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +0 -45
  796. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +0 -75
  797. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +0 -37
  798. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +0 -35
  799. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -67
  800. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -50
  801. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -99
  802. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +0 -75
  803. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +0 -62
  804. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +0 -45
  805. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +0 -47
  806. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +0 -35
  807. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +0 -34
  808. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +0 -30
  809. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +0 -46
  810. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +0 -35
  811. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +0 -39
  812. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +0 -35
  813. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +0 -283
  814. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +0 -145
  815. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +0 -63
  816. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +0 -45
  817. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +0 -47
  818. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +0 -35
  819. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +0 -35
  820. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +0 -30
  821. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +0 -64
  822. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +0 -50
  823. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +0 -40
  824. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +0 -35
  825. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +0 -38
  826. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +0 -35
  827. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +0 -56
  828. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +0 -40
  829. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +0 -39
  830. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +0 -40
  831. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +0 -41
  832. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +0 -35
  833. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +0 -45
  834. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +0 -35
  835. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +0 -61
  836. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +0 -40
  837. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +0 -46
  838. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +0 -35
  839. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +0 -126
  840. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +0 -80
  841. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +0 -40
  842. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +0 -40
  843. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +0 -52
  844. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +0 -40
  845. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +0 -40
  846. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +0 -35
  847. data/src/core/ext/xds/certificate_provider_store.cc +0 -159
  848. data/src/core/ext/xds/certificate_provider_store.h +0 -138
  849. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +0 -153
  850. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +0 -77
  851. data/src/core/ext/xds/upb_utils.h +0 -45
  852. data/src/core/ext/xds/xds_api.cc +0 -699
  853. data/src/core/ext/xds/xds_api.h +0 -196
  854. data/src/core/ext/xds/xds_bootstrap.cc +0 -38
  855. data/src/core/ext/xds/xds_bootstrap.h +0 -89
  856. data/src/core/ext/xds/xds_bootstrap_grpc.cc +0 -370
  857. data/src/core/ext/xds/xds_bootstrap_grpc.h +0 -169
  858. data/src/core/ext/xds/xds_certificate_provider.cc +0 -419
  859. data/src/core/ext/xds/xds_certificate_provider.h +0 -183
  860. data/src/core/ext/xds/xds_channel_args.h +0 -32
  861. data/src/core/ext/xds/xds_channel_stack_modifier.cc +0 -120
  862. data/src/core/ext/xds/xds_channel_stack_modifier.h +0 -65
  863. data/src/core/ext/xds/xds_client.cc +0 -2000
  864. data/src/core/ext/xds/xds_client.h +0 -336
  865. data/src/core/ext/xds/xds_client_grpc.cc +0 -229
  866. data/src/core/ext/xds/xds_client_grpc.h +0 -79
  867. data/src/core/ext/xds/xds_client_stats.cc +0 -159
  868. data/src/core/ext/xds/xds_client_stats.h +0 -242
  869. data/src/core/ext/xds/xds_cluster.cc +0 -551
  870. data/src/core/ext/xds/xds_cluster.h +0 -120
  871. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +0 -149
  872. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +0 -73
  873. data/src/core/ext/xds/xds_common_types.cc +0 -434
  874. data/src/core/ext/xds/xds_common_types.h +0 -102
  875. data/src/core/ext/xds/xds_endpoint.cc +0 -383
  876. data/src/core/ext/xds/xds_endpoint.h +0 -142
  877. data/src/core/ext/xds/xds_http_fault_filter.cc +0 -222
  878. data/src/core/ext/xds/xds_http_fault_filter.h +0 -66
  879. data/src/core/ext/xds/xds_http_filters.cc +0 -129
  880. data/src/core/ext/xds/xds_http_filters.h +0 -133
  881. data/src/core/ext/xds/xds_http_rbac_filter.cc +0 -560
  882. data/src/core/ext/xds/xds_http_rbac_filter.h +0 -61
  883. data/src/core/ext/xds/xds_lb_policy_registry.cc +0 -290
  884. data/src/core/ext/xds/xds_lb_policy_registry.h +0 -72
  885. data/src/core/ext/xds/xds_listener.cc +0 -1102
  886. data/src/core/ext/xds/xds_listener.h +0 -228
  887. data/src/core/ext/xds/xds_resource_type.cc +0 -33
  888. data/src/core/ext/xds/xds_resource_type.h +0 -112
  889. data/src/core/ext/xds/xds_resource_type_impl.h +0 -91
  890. data/src/core/ext/xds/xds_route_config.cc +0 -1152
  891. data/src/core/ext/xds/xds_route_config.h +0 -241
  892. data/src/core/ext/xds/xds_routing.cc +0 -263
  893. data/src/core/ext/xds/xds_routing.h +0 -104
  894. data/src/core/ext/xds/xds_server_config_fetcher.cc +0 -1360
  895. data/src/core/ext/xds/xds_transport.h +0 -86
  896. data/src/core/ext/xds/xds_transport_grpc.cc +0 -357
  897. data/src/core/ext/xds/xds_transport_grpc.h +0 -135
  898. data/src/core/lib/address_utils/parse_address.cc +0 -339
  899. data/src/core/lib/address_utils/parse_address.h +0 -86
  900. data/src/core/lib/address_utils/sockaddr_utils.cc +0 -443
  901. data/src/core/lib/address_utils/sockaddr_utils.h +0 -100
  902. data/src/core/lib/avl/avl.h +0 -482
  903. data/src/core/lib/backoff/backoff.cc +0 -47
  904. data/src/core/lib/backoff/backoff.h +0 -89
  905. data/src/core/lib/channel/call_finalization.h +0 -88
  906. data/src/core/lib/channel/call_tracer.h +0 -94
  907. data/src/core/lib/channel/channel_args.cc +0 -626
  908. data/src/core/lib/channel/channel_args.h +0 -529
  909. data/src/core/lib/channel/channel_args_preconditioning.cc +0 -43
  910. data/src/core/lib/channel/channel_args_preconditioning.h +0 -62
  911. data/src/core/lib/channel/channel_fwd.h +0 -26
  912. data/src/core/lib/channel/channel_stack.cc +0 -311
  913. data/src/core/lib/channel/channel_stack.h +0 -381
  914. data/src/core/lib/channel/channel_stack_builder.cc +0 -54
  915. data/src/core/lib/channel/channel_stack_builder.h +0 -112
  916. data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -95
  917. data/src/core/lib/channel/channel_stack_builder_impl.h +0 -46
  918. data/src/core/lib/channel/channel_trace.cc +0 -184
  919. data/src/core/lib/channel/channel_trace.h +0 -138
  920. data/src/core/lib/channel/channelz.cc +0 -583
  921. data/src/core/lib/channel/channelz.h +0 -374
  922. data/src/core/lib/channel/channelz_registry.cc +0 -277
  923. data/src/core/lib/channel/channelz_registry.h +0 -100
  924. data/src/core/lib/channel/connected_channel.cc +0 -241
  925. data/src/core/lib/channel/connected_channel.h +0 -36
  926. data/src/core/lib/channel/context.h +0 -63
  927. data/src/core/lib/channel/promise_based_filter.cc +0 -1262
  928. data/src/core/lib/channel/promise_based_filter.h +0 -571
  929. data/src/core/lib/channel/status_util.cc +0 -138
  930. data/src/core/lib/channel/status_util.h +0 -74
  931. data/src/core/lib/compression/compression.cc +0 -96
  932. data/src/core/lib/compression/compression_internal.cc +0 -249
  933. data/src/core/lib/compression/compression_internal.h +0 -93
  934. data/src/core/lib/compression/message_compress.cc +0 -194
  935. data/src/core/lib/compression/message_compress.h +0 -39
  936. data/src/core/lib/config/core_configuration.cc +0 -111
  937. data/src/core/lib/config/core_configuration.h +0 -243
  938. data/src/core/lib/debug/stats.cc +0 -165
  939. data/src/core/lib/debug/stats.h +0 -70
  940. data/src/core/lib/debug/stats_data.cc +0 -190
  941. data/src/core/lib/debug/stats_data.h +0 -151
  942. data/src/core/lib/debug/trace.cc +0 -153
  943. data/src/core/lib/debug/trace.h +0 -133
  944. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +0 -40
  945. data/src/core/lib/event_engine/channel_args_endpoint_config.h +0 -49
  946. data/src/core/lib/event_engine/default_event_engine.cc +0 -71
  947. data/src/core/lib/event_engine/default_event_engine.h +0 -37
  948. data/src/core/lib/event_engine/default_event_engine_factory.cc +0 -50
  949. data/src/core/lib/event_engine/default_event_engine_factory.h +0 -33
  950. data/src/core/lib/event_engine/executor/executor.h +0 -38
  951. data/src/core/lib/event_engine/executor/threaded_executor.cc +0 -36
  952. data/src/core/lib/event_engine/executor/threaded_executor.h +0 -44
  953. data/src/core/lib/event_engine/forkable.cc +0 -101
  954. data/src/core/lib/event_engine/forkable.h +0 -61
  955. data/src/core/lib/event_engine/handle_containers.h +0 -67
  956. data/src/core/lib/event_engine/memory_allocator.cc +0 -74
  957. data/src/core/lib/event_engine/poller.h +0 -56
  958. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +0 -142
  959. data/src/core/lib/event_engine/posix_engine/posix_engine.h +0 -121
  960. data/src/core/lib/event_engine/posix_engine/timer.cc +0 -311
  961. data/src/core/lib/event_engine/posix_engine/timer.h +0 -193
  962. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +0 -107
  963. data/src/core/lib/event_engine/posix_engine/timer_heap.h +0 -56
  964. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +0 -311
  965. data/src/core/lib/event_engine/posix_engine/timer_manager.h +0 -142
  966. data/src/core/lib/event_engine/resolved_address.cc +0 -41
  967. data/src/core/lib/event_engine/slice.cc +0 -102
  968. data/src/core/lib/event_engine/slice_buffer.cc +0 -50
  969. data/src/core/lib/event_engine/socket_notifier.h +0 -55
  970. data/src/core/lib/event_engine/thread_pool.cc +0 -195
  971. data/src/core/lib/event_engine/thread_pool.h +0 -114
  972. data/src/core/lib/event_engine/time_util.cc +0 -30
  973. data/src/core/lib/event_engine/time_util.h +0 -32
  974. data/src/core/lib/event_engine/trace.cc +0 -18
  975. data/src/core/lib/event_engine/trace.h +0 -30
  976. data/src/core/lib/event_engine/utils.cc +0 -44
  977. data/src/core/lib/event_engine/utils.h +0 -36
  978. data/src/core/lib/event_engine/windows/iocp.cc +0 -155
  979. data/src/core/lib/event_engine/windows/iocp.h +0 -69
  980. data/src/core/lib/event_engine/windows/win_socket.cc +0 -196
  981. data/src/core/lib/event_engine/windows/win_socket.h +0 -120
  982. data/src/core/lib/event_engine/windows/windows_engine.cc +0 -159
  983. data/src/core/lib/event_engine/windows/windows_engine.h +0 -120
  984. data/src/core/lib/experiments/config.cc +0 -146
  985. data/src/core/lib/experiments/config.h +0 -43
  986. data/src/core/lib/experiments/experiments.cc +0 -75
  987. data/src/core/lib/experiments/experiments.h +0 -56
  988. data/src/core/lib/gpr/alloc.cc +0 -68
  989. data/src/core/lib/gpr/alloc.h +0 -28
  990. data/src/core/lib/gpr/atm.cc +0 -35
  991. data/src/core/lib/gpr/cpu_iphone.cc +0 -44
  992. data/src/core/lib/gpr/cpu_linux.cc +0 -82
  993. data/src/core/lib/gpr/cpu_posix.cc +0 -83
  994. data/src/core/lib/gpr/cpu_windows.cc +0 -33
  995. data/src/core/lib/gpr/log.cc +0 -145
  996. data/src/core/lib/gpr/log_android.cc +0 -77
  997. data/src/core/lib/gpr/log_linux.cc +0 -114
  998. data/src/core/lib/gpr/log_posix.cc +0 -110
  999. data/src/core/lib/gpr/log_windows.cc +0 -115
  1000. data/src/core/lib/gpr/murmur_hash.cc +0 -82
  1001. data/src/core/lib/gpr/murmur_hash.h +0 -29
  1002. data/src/core/lib/gpr/spinlock.h +0 -53
  1003. data/src/core/lib/gpr/string.cc +0 -343
  1004. data/src/core/lib/gpr/string.h +0 -112
  1005. data/src/core/lib/gpr/string_posix.cc +0 -72
  1006. data/src/core/lib/gpr/string_util_windows.cc +0 -55
  1007. data/src/core/lib/gpr/string_windows.cc +0 -69
  1008. data/src/core/lib/gpr/sync.cc +0 -124
  1009. data/src/core/lib/gpr/sync_abseil.cc +0 -100
  1010. data/src/core/lib/gpr/sync_posix.cc +0 -157
  1011. data/src/core/lib/gpr/sync_windows.cc +0 -120
  1012. data/src/core/lib/gpr/time.cc +0 -267
  1013. data/src/core/lib/gpr/time_posix.cc +0 -177
  1014. data/src/core/lib/gpr/time_precise.cc +0 -168
  1015. data/src/core/lib/gpr/time_precise.h +0 -70
  1016. data/src/core/lib/gpr/time_windows.cc +0 -102
  1017. data/src/core/lib/gpr/tls.h +0 -156
  1018. data/src/core/lib/gpr/tmpfile.h +0 -32
  1019. data/src/core/lib/gpr/tmpfile_msys.cc +0 -58
  1020. data/src/core/lib/gpr/tmpfile_posix.cc +0 -69
  1021. data/src/core/lib/gpr/tmpfile_windows.cc +0 -67
  1022. data/src/core/lib/gpr/useful.h +0 -171
  1023. data/src/core/lib/gpr/wrap_memcpy.cc +0 -43
  1024. data/src/core/lib/gprpp/atomic_utils.h +0 -47
  1025. data/src/core/lib/gprpp/bitset.h +0 -201
  1026. data/src/core/lib/gprpp/chunked_vector.h +0 -257
  1027. data/src/core/lib/gprpp/construct_destruct.h +0 -40
  1028. data/src/core/lib/gprpp/cpp_impl_of.h +0 -49
  1029. data/src/core/lib/gprpp/debug_location.h +0 -87
  1030. data/src/core/lib/gprpp/dual_ref_counted.h +0 -327
  1031. data/src/core/lib/gprpp/env.h +0 -53
  1032. data/src/core/lib/gprpp/env_linux.cc +0 -80
  1033. data/src/core/lib/gprpp/env_posix.cc +0 -47
  1034. data/src/core/lib/gprpp/env_windows.cc +0 -56
  1035. data/src/core/lib/gprpp/examine_stack.cc +0 -43
  1036. data/src/core/lib/gprpp/examine_stack.h +0 -45
  1037. data/src/core/lib/gprpp/fork.cc +0 -233
  1038. data/src/core/lib/gprpp/fork.h +0 -95
  1039. data/src/core/lib/gprpp/global_config.h +0 -93
  1040. data/src/core/lib/gprpp/global_config_custom.h +0 -29
  1041. data/src/core/lib/gprpp/global_config_env.cc +0 -139
  1042. data/src/core/lib/gprpp/global_config_env.h +0 -133
  1043. data/src/core/lib/gprpp/global_config_generic.h +0 -40
  1044. data/src/core/lib/gprpp/host_port.cc +0 -114
  1045. data/src/core/lib/gprpp/host_port.h +0 -56
  1046. data/src/core/lib/gprpp/manual_constructor.h +0 -146
  1047. data/src/core/lib/gprpp/match.h +0 -75
  1048. data/src/core/lib/gprpp/memory.h +0 -53
  1049. data/src/core/lib/gprpp/mpscq.cc +0 -108
  1050. data/src/core/lib/gprpp/mpscq.h +0 -99
  1051. data/src/core/lib/gprpp/no_destruct.h +0 -94
  1052. data/src/core/lib/gprpp/notification.h +0 -67
  1053. data/src/core/lib/gprpp/orphanable.h +0 -122
  1054. data/src/core/lib/gprpp/overload.h +0 -59
  1055. data/src/core/lib/gprpp/packed_table.h +0 -40
  1056. data/src/core/lib/gprpp/ref_counted.h +0 -349
  1057. data/src/core/lib/gprpp/ref_counted_ptr.h +0 -337
  1058. data/src/core/lib/gprpp/single_set_ptr.h +0 -87
  1059. data/src/core/lib/gprpp/sorted_pack.h +0 -98
  1060. data/src/core/lib/gprpp/stat.h +0 -36
  1061. data/src/core/lib/gprpp/stat_posix.cc +0 -54
  1062. data/src/core/lib/gprpp/stat_windows.cc +0 -48
  1063. data/src/core/lib/gprpp/status_helper.cc +0 -454
  1064. data/src/core/lib/gprpp/status_helper.h +0 -191
  1065. data/src/core/lib/gprpp/sync.h +0 -200
  1066. data/src/core/lib/gprpp/table.h +0 -451
  1067. data/src/core/lib/gprpp/tchar.cc +0 -49
  1068. data/src/core/lib/gprpp/tchar.h +0 -33
  1069. data/src/core/lib/gprpp/thd.h +0 -171
  1070. data/src/core/lib/gprpp/thd_posix.cc +0 -211
  1071. data/src/core/lib/gprpp/thd_windows.cc +0 -173
  1072. data/src/core/lib/gprpp/time.cc +0 -235
  1073. data/src/core/lib/gprpp/time.h +0 -356
  1074. data/src/core/lib/gprpp/time_averaged_stats.cc +0 -60
  1075. data/src/core/lib/gprpp/time_averaged_stats.h +0 -79
  1076. data/src/core/lib/gprpp/time_util.cc +0 -81
  1077. data/src/core/lib/gprpp/time_util.h +0 -42
  1078. data/src/core/lib/gprpp/unique_type_name.h +0 -104
  1079. data/src/core/lib/gprpp/validation_errors.cc +0 -61
  1080. data/src/core/lib/gprpp/validation_errors.h +0 -110
  1081. data/src/core/lib/gprpp/work_serializer.cc +0 -247
  1082. data/src/core/lib/gprpp/work_serializer.h +0 -86
  1083. data/src/core/lib/handshaker/proxy_mapper.h +0 -53
  1084. data/src/core/lib/handshaker/proxy_mapper_registry.cc +0 -71
  1085. data/src/core/lib/handshaker/proxy_mapper_registry.h +0 -75
  1086. data/src/core/lib/http/format_request.cc +0 -137
  1087. data/src/core/lib/http/format_request.h +0 -38
  1088. data/src/core/lib/http/httpcli.cc +0 -397
  1089. data/src/core/lib/http/httpcli.h +0 -271
  1090. data/src/core/lib/http/httpcli_security_connector.cc +0 -215
  1091. data/src/core/lib/http/httpcli_ssl_credentials.h +0 -39
  1092. data/src/core/lib/http/parser.cc +0 -462
  1093. data/src/core/lib/http/parser.h +0 -130
  1094. data/src/core/lib/iomgr/block_annotate.h +0 -57
  1095. data/src/core/lib/iomgr/buffer_list.cc +0 -307
  1096. data/src/core/lib/iomgr/buffer_list.h +0 -163
  1097. data/src/core/lib/iomgr/call_combiner.cc +0 -257
  1098. data/src/core/lib/iomgr/call_combiner.h +0 -215
  1099. data/src/core/lib/iomgr/cfstream_handle.cc +0 -210
  1100. data/src/core/lib/iomgr/cfstream_handle.h +0 -90
  1101. data/src/core/lib/iomgr/closure.h +0 -266
  1102. data/src/core/lib/iomgr/combiner.cc +0 -330
  1103. data/src/core/lib/iomgr/combiner.h +0 -89
  1104. data/src/core/lib/iomgr/dualstack_socket_posix.cc +0 -48
  1105. data/src/core/lib/iomgr/dynamic_annotations.h +0 -67
  1106. data/src/core/lib/iomgr/endpoint.cc +0 -67
  1107. data/src/core/lib/iomgr/endpoint.h +0 -109
  1108. data/src/core/lib/iomgr/endpoint_cfstream.cc +0 -375
  1109. data/src/core/lib/iomgr/endpoint_cfstream.h +0 -49
  1110. data/src/core/lib/iomgr/endpoint_pair.h +0 -34
  1111. data/src/core/lib/iomgr/endpoint_pair_posix.cc +0 -81
  1112. data/src/core/lib/iomgr/endpoint_pair_windows.cc +0 -86
  1113. data/src/core/lib/iomgr/error.cc +0 -217
  1114. data/src/core/lib/iomgr/error.h +0 -299
  1115. data/src/core/lib/iomgr/error_cfstream.cc +0 -54
  1116. data/src/core/lib/iomgr/error_cfstream.h +0 -31
  1117. data/src/core/lib/iomgr/ev_apple.cc +0 -360
  1118. data/src/core/lib/iomgr/ev_apple.h +0 -43
  1119. data/src/core/lib/iomgr/ev_epoll1_linux.cc +0 -1367
  1120. data/src/core/lib/iomgr/ev_epoll1_linux.h +0 -31
  1121. data/src/core/lib/iomgr/ev_poll_posix.cc +0 -1448
  1122. data/src/core/lib/iomgr/ev_poll_posix.h +0 -29
  1123. data/src/core/lib/iomgr/ev_posix.cc +0 -375
  1124. data/src/core/lib/iomgr/ev_posix.h +0 -209
  1125. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  1126. data/src/core/lib/iomgr/exec_ctx.cc +0 -133
  1127. data/src/core/lib/iomgr/exec_ctx.h +0 -334
  1128. data/src/core/lib/iomgr/executor.cc +0 -451
  1129. data/src/core/lib/iomgr/executor.h +0 -119
  1130. data/src/core/lib/iomgr/fork_posix.cc +0 -120
  1131. data/src/core/lib/iomgr/fork_windows.cc +0 -41
  1132. data/src/core/lib/iomgr/gethostname.h +0 -26
  1133. data/src/core/lib/iomgr/gethostname_fallback.cc +0 -30
  1134. data/src/core/lib/iomgr/gethostname_host_name_max.cc +0 -40
  1135. data/src/core/lib/iomgr/gethostname_sysconf.cc +0 -40
  1136. data/src/core/lib/iomgr/grpc_if_nametoindex.h +0 -30
  1137. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +0 -42
  1138. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +0 -38
  1139. data/src/core/lib/iomgr/internal_errqueue.cc +0 -59
  1140. data/src/core/lib/iomgr/internal_errqueue.h +0 -186
  1141. data/src/core/lib/iomgr/iocp_windows.cc +0 -157
  1142. data/src/core/lib/iomgr/iocp_windows.h +0 -48
  1143. data/src/core/lib/iomgr/iomgr.cc +0 -200
  1144. data/src/core/lib/iomgr/iomgr.h +0 -60
  1145. data/src/core/lib/iomgr/iomgr_fwd.h +0 -26
  1146. data/src/core/lib/iomgr/iomgr_internal.cc +0 -53
  1147. data/src/core/lib/iomgr/iomgr_internal.h +0 -74
  1148. data/src/core/lib/iomgr/iomgr_posix.cc +0 -91
  1149. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -201
  1150. data/src/core/lib/iomgr/iomgr_windows.cc +0 -105
  1151. data/src/core/lib/iomgr/load_file.cc +0 -81
  1152. data/src/core/lib/iomgr/load_file.h +0 -35
  1153. data/src/core/lib/iomgr/lockfree_event.cc +0 -261
  1154. data/src/core/lib/iomgr/lockfree_event.h +0 -72
  1155. data/src/core/lib/iomgr/nameser.h +0 -106
  1156. data/src/core/lib/iomgr/polling_entity.cc +0 -96
  1157. data/src/core/lib/iomgr/polling_entity.h +0 -74
  1158. data/src/core/lib/iomgr/pollset.cc +0 -56
  1159. data/src/core/lib/iomgr/pollset.h +0 -99
  1160. data/src/core/lib/iomgr/pollset_set.cc +0 -55
  1161. data/src/core/lib/iomgr/pollset_set.h +0 -53
  1162. data/src/core/lib/iomgr/pollset_set_windows.cc +0 -52
  1163. data/src/core/lib/iomgr/pollset_set_windows.h +0 -26
  1164. data/src/core/lib/iomgr/pollset_windows.cc +0 -243
  1165. data/src/core/lib/iomgr/pollset_windows.h +0 -70
  1166. data/src/core/lib/iomgr/port.h +0 -238
  1167. data/src/core/lib/iomgr/python_util.h +0 -47
  1168. data/src/core/lib/iomgr/resolve_address.cc +0 -44
  1169. data/src/core/lib/iomgr/resolve_address.h +0 -117
  1170. data/src/core/lib/iomgr/resolve_address_impl.h +0 -59
  1171. data/src/core/lib/iomgr/resolve_address_posix.cc +0 -215
  1172. data/src/core/lib/iomgr/resolve_address_posix.h +0 -64
  1173. data/src/core/lib/iomgr/resolve_address_windows.cc +0 -199
  1174. data/src/core/lib/iomgr/resolve_address_windows.h +0 -64
  1175. data/src/core/lib/iomgr/resolved_address.h +0 -39
  1176. data/src/core/lib/iomgr/sockaddr.h +0 -32
  1177. data/src/core/lib/iomgr/sockaddr_posix.h +0 -57
  1178. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +0 -63
  1179. data/src/core/lib/iomgr/sockaddr_windows.h +0 -57
  1180. data/src/core/lib/iomgr/socket_factory_posix.cc +0 -95
  1181. data/src/core/lib/iomgr/socket_factory_posix.h +0 -69
  1182. data/src/core/lib/iomgr/socket_mutator.cc +0 -97
  1183. data/src/core/lib/iomgr/socket_mutator.h +0 -84
  1184. data/src/core/lib/iomgr/socket_utils.h +0 -47
  1185. data/src/core/lib/iomgr/socket_utils_common_posix.cc +0 -477
  1186. data/src/core/lib/iomgr/socket_utils_linux.cc +0 -42
  1187. data/src/core/lib/iomgr/socket_utils_posix.cc +0 -140
  1188. data/src/core/lib/iomgr/socket_utils_posix.h +0 -255
  1189. data/src/core/lib/iomgr/socket_utils_windows.cc +0 -47
  1190. data/src/core/lib/iomgr/socket_windows.cc +0 -202
  1191. data/src/core/lib/iomgr/socket_windows.h +0 -125
  1192. data/src/core/lib/iomgr/tcp_client.cc +0 -40
  1193. data/src/core/lib/iomgr/tcp_client.h +0 -66
  1194. data/src/core/lib/iomgr/tcp_client_cfstream.cc +0 -211
  1195. data/src/core/lib/iomgr/tcp_client_posix.cc +0 -473
  1196. data/src/core/lib/iomgr/tcp_client_posix.h +0 -72
  1197. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -243
  1198. data/src/core/lib/iomgr/tcp_posix.cc +0 -2075
  1199. data/src/core/lib/iomgr/tcp_posix.h +0 -67
  1200. data/src/core/lib/iomgr/tcp_server.cc +0 -78
  1201. data/src/core/lib/iomgr/tcp_server.h +0 -150
  1202. data/src/core/lib/iomgr/tcp_server_posix.cc +0 -653
  1203. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -129
  1204. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +0 -227
  1205. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +0 -179
  1206. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +0 -36
  1207. data/src/core/lib/iomgr/tcp_server_windows.cc +0 -568
  1208. data/src/core/lib/iomgr/tcp_windows.cc +0 -534
  1209. data/src/core/lib/iomgr/tcp_windows.h +0 -52
  1210. data/src/core/lib/iomgr/timer.cc +0 -46
  1211. data/src/core/lib/iomgr/timer.h +0 -136
  1212. data/src/core/lib/iomgr/timer_generic.cc +0 -735
  1213. data/src/core/lib/iomgr/timer_generic.h +0 -40
  1214. data/src/core/lib/iomgr/timer_heap.cc +0 -134
  1215. data/src/core/lib/iomgr/timer_heap.h +0 -43
  1216. data/src/core/lib/iomgr/timer_manager.cc +0 -363
  1217. data/src/core/lib/iomgr/timer_manager.h +0 -41
  1218. data/src/core/lib/iomgr/unix_sockets_posix.cc +0 -96
  1219. data/src/core/lib/iomgr/unix_sockets_posix.h +0 -46
  1220. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +0 -53
  1221. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +0 -80
  1222. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +0 -39
  1223. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +0 -99
  1224. data/src/core/lib/iomgr/wakeup_fd_pipe.h +0 -28
  1225. data/src/core/lib/iomgr/wakeup_fd_posix.cc +0 -73
  1226. data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -96
  1227. data/src/core/lib/json/json.h +0 -246
  1228. data/src/core/lib/json/json_args.h +0 -34
  1229. data/src/core/lib/json/json_object_loader.cc +0 -202
  1230. data/src/core/lib/json/json_object_loader.h +0 -598
  1231. data/src/core/lib/json/json_reader.cc +0 -929
  1232. data/src/core/lib/json/json_util.cc +0 -106
  1233. data/src/core/lib/json/json_util.h +0 -163
  1234. data/src/core/lib/json/json_writer.cc +0 -340
  1235. data/src/core/lib/load_balancing/lb_policy.cc +0 -93
  1236. data/src/core/lib/load_balancing/lb_policy.h +0 -435
  1237. data/src/core/lib/load_balancing/lb_policy_factory.h +0 -49
  1238. data/src/core/lib/load_balancing/lb_policy_registry.cc +0 -141
  1239. data/src/core/lib/load_balancing/lb_policy_registry.h +0 -82
  1240. data/src/core/lib/load_balancing/subchannel_interface.h +0 -140
  1241. data/src/core/lib/matchers/matchers.cc +0 -330
  1242. data/src/core/lib/matchers/matchers.h +0 -162
  1243. data/src/core/lib/promise/activity.cc +0 -120
  1244. data/src/core/lib/promise/activity.h +0 -581
  1245. data/src/core/lib/promise/arena_promise.h +0 -201
  1246. data/src/core/lib/promise/call_push_pull.h +0 -148
  1247. data/src/core/lib/promise/context.h +0 -85
  1248. data/src/core/lib/promise/detail/basic_seq.h +0 -516
  1249. data/src/core/lib/promise/detail/promise_factory.h +0 -187
  1250. data/src/core/lib/promise/detail/promise_like.h +0 -85
  1251. data/src/core/lib/promise/detail/status.h +0 -50
  1252. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +0 -48
  1253. data/src/core/lib/promise/intra_activity_waiter.h +0 -49
  1254. data/src/core/lib/promise/latch.h +0 -103
  1255. data/src/core/lib/promise/loop.h +0 -136
  1256. data/src/core/lib/promise/map.h +0 -87
  1257. data/src/core/lib/promise/poll.h +0 -66
  1258. data/src/core/lib/promise/promise.h +0 -96
  1259. data/src/core/lib/promise/race.h +0 -83
  1260. data/src/core/lib/promise/seq.h +0 -108
  1261. data/src/core/lib/promise/sleep.cc +0 -89
  1262. data/src/core/lib/promise/sleep.h +0 -85
  1263. data/src/core/lib/promise/try_seq.h +0 -177
  1264. data/src/core/lib/resolver/resolver.cc +0 -37
  1265. data/src/core/lib/resolver/resolver.h +0 -138
  1266. data/src/core/lib/resolver/resolver_factory.h +0 -77
  1267. data/src/core/lib/resolver/resolver_registry.cc +0 -149
  1268. data/src/core/lib/resolver/resolver_registry.h +0 -123
  1269. data/src/core/lib/resolver/server_address.cc +0 -180
  1270. data/src/core/lib/resolver/server_address.h +0 -147
  1271. data/src/core/lib/resource_quota/api.cc +0 -105
  1272. data/src/core/lib/resource_quota/api.h +0 -49
  1273. data/src/core/lib/resource_quota/arena.cc +0 -119
  1274. data/src/core/lib/resource_quota/arena.h +0 -163
  1275. data/src/core/lib/resource_quota/memory_quota.cc +0 -602
  1276. data/src/core/lib/resource_quota/memory_quota.h +0 -530
  1277. data/src/core/lib/resource_quota/periodic_update.cc +0 -78
  1278. data/src/core/lib/resource_quota/periodic_update.h +0 -71
  1279. data/src/core/lib/resource_quota/resource_quota.cc +0 -33
  1280. data/src/core/lib/resource_quota/resource_quota.h +0 -74
  1281. data/src/core/lib/resource_quota/thread_quota.cc +0 -45
  1282. data/src/core/lib/resource_quota/thread_quota.h +0 -61
  1283. data/src/core/lib/resource_quota/trace.cc +0 -19
  1284. data/src/core/lib/resource_quota/trace.h +0 -24
  1285. data/src/core/lib/security/authorization/authorization_engine.h +0 -44
  1286. data/src/core/lib/security/authorization/authorization_policy_provider.h +0 -47
  1287. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +0 -50
  1288. data/src/core/lib/security/authorization/evaluate_args.cc +0 -221
  1289. data/src/core/lib/security/authorization/evaluate_args.h +0 -95
  1290. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +0 -66
  1291. data/src/core/lib/security/authorization/grpc_authorization_engine.h +0 -69
  1292. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +0 -120
  1293. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +0 -61
  1294. data/src/core/lib/security/authorization/matchers.cc +0 -238
  1295. data/src/core/lib/security/authorization/matchers.h +0 -218
  1296. data/src/core/lib/security/authorization/rbac_policy.cc +0 -446
  1297. data/src/core/lib/security/authorization/rbac_policy.h +0 -178
  1298. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +0 -66
  1299. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +0 -60
  1300. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +0 -70
  1301. data/src/core/lib/security/context/security_context.cc +0 -330
  1302. data/src/core/lib/security/context/security_context.h +0 -171
  1303. data/src/core/lib/security/credentials/alts/alts_credentials.cc +0 -119
  1304. data/src/core/lib/security/credentials/alts/alts_credentials.h +0 -123
  1305. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +0 -72
  1306. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +0 -57
  1307. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +0 -68
  1308. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +0 -33
  1309. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +0 -102
  1310. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +0 -125
  1311. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +0 -46
  1312. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +0 -75
  1313. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +0 -56
  1314. data/src/core/lib/security/credentials/call_creds_util.cc +0 -97
  1315. data/src/core/lib/security/credentials/call_creds_util.h +0 -43
  1316. data/src/core/lib/security/credentials/channel_creds_registry.h +0 -103
  1317. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +0 -81
  1318. data/src/core/lib/security/credentials/composite/composite_credentials.cc +0 -171
  1319. data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -132
  1320. data/src/core/lib/security/credentials/credentials.cc +0 -159
  1321. data/src/core/lib/security/credentials/credentials.h +0 -298
  1322. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +0 -524
  1323. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +0 -100
  1324. data/src/core/lib/security/credentials/external/aws_request_signer.cc +0 -223
  1325. data/src/core/lib/security/credentials/external/aws_request_signer.h +0 -72
  1326. data/src/core/lib/security/credentials/external/external_account_credentials.cc +0 -572
  1327. data/src/core/lib/security/credentials/external/external_account_credentials.h +0 -129
  1328. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -142
  1329. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +0 -55
  1330. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +0 -246
  1331. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +0 -71
  1332. data/src/core/lib/security/credentials/fake/fake_credentials.cc +0 -112
  1333. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -96
  1334. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +0 -40
  1335. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -500
  1336. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -100
  1337. data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -82
  1338. data/src/core/lib/security/credentials/iam/iam_credentials.h +0 -65
  1339. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +0 -73
  1340. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +0 -61
  1341. data/src/core/lib/security/credentials/jwt/json_token.cc +0 -298
  1342. data/src/core/lib/security/credentials/jwt/json_token.h +0 -76
  1343. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +0 -183
  1344. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +0 -107
  1345. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -957
  1346. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +0 -124
  1347. data/src/core/lib/security/credentials/local/local_credentials.cc +0 -71
  1348. data/src/core/lib/security/credentials/local/local_credentials.h +0 -77
  1349. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +0 -751
  1350. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +0 -220
  1351. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -214
  1352. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +0 -125
  1353. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +0 -381
  1354. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -131
  1355. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +0 -348
  1356. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +0 -223
  1357. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +0 -484
  1358. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -206
  1359. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +0 -241
  1360. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +0 -168
  1361. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +0 -122
  1362. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +0 -117
  1363. data/src/core/lib/security/credentials/tls/tls_credentials.cc +0 -150
  1364. data/src/core/lib/security/credentials/tls/tls_credentials.h +0 -71
  1365. data/src/core/lib/security/credentials/tls/tls_utils.cc +0 -127
  1366. data/src/core/lib/security/credentials/tls/tls_utils.h +0 -51
  1367. data/src/core/lib/security/credentials/xds/xds_credentials.cc +0 -236
  1368. data/src/core/lib/security/credentials/xds/xds_credentials.h +0 -114
  1369. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +0 -317
  1370. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +0 -79
  1371. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +0 -322
  1372. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -43
  1373. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +0 -120
  1374. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +0 -108
  1375. data/src/core/lib/security/security_connector/load_system_roots.h +0 -33
  1376. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +0 -35
  1377. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +0 -178
  1378. data/src/core/lib/security/security_connector/load_system_roots_supported.h +0 -46
  1379. data/src/core/lib/security/security_connector/local/local_security_connector.cc +0 -310
  1380. data/src/core/lib/security/security_connector/local/local_security_connector.h +0 -63
  1381. data/src/core/lib/security/security_connector/security_connector.cc +0 -127
  1382. data/src/core/lib/security/security_connector/security_connector.h +0 -201
  1383. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +0 -463
  1384. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +0 -83
  1385. data/src/core/lib/security/security_connector/ssl_utils.cc +0 -627
  1386. data/src/core/lib/security/security_connector/ssl_utils.h +0 -187
  1387. data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
  1388. data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -30
  1389. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +0 -834
  1390. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +0 -286
  1391. data/src/core/lib/security/transport/auth_filters.h +0 -76
  1392. data/src/core/lib/security/transport/client_auth_filter.cc +0 -227
  1393. data/src/core/lib/security/transport/secure_endpoint.cc +0 -568
  1394. data/src/core/lib/security/transport/secure_endpoint.h +0 -43
  1395. data/src/core/lib/security/transport/security_handshaker.cc +0 -673
  1396. data/src/core/lib/security/transport/security_handshaker.h +0 -51
  1397. data/src/core/lib/security/transport/server_auth_filter.cc +0 -360
  1398. data/src/core/lib/security/transport/tsi_error.cc +0 -28
  1399. data/src/core/lib/security/transport/tsi_error.h +0 -30
  1400. data/src/core/lib/security/util/json_util.cc +0 -71
  1401. data/src/core/lib/security/util/json_util.h +0 -43
  1402. data/src/core/lib/service_config/service_config.h +0 -89
  1403. data/src/core/lib/service_config/service_config_call_data.h +0 -76
  1404. data/src/core/lib/service_config/service_config_impl.cc +0 -238
  1405. data/src/core/lib/service_config/service_config_impl.h +0 -128
  1406. data/src/core/lib/service_config/service_config_parser.cc +0 -98
  1407. data/src/core/lib/service_config/service_config_parser.h +0 -101
  1408. data/src/core/lib/slice/b64.cc +0 -239
  1409. data/src/core/lib/slice/b64.h +0 -52
  1410. data/src/core/lib/slice/percent_encoding.cc +0 -150
  1411. data/src/core/lib/slice/percent_encoding.h +0 -54
  1412. data/src/core/lib/slice/slice.cc +0 -496
  1413. data/src/core/lib/slice/slice.h +0 -389
  1414. data/src/core/lib/slice/slice_api.cc +0 -39
  1415. data/src/core/lib/slice/slice_buffer.cc +0 -473
  1416. data/src/core/lib/slice/slice_buffer.h +0 -137
  1417. data/src/core/lib/slice/slice_buffer_api.cc +0 -35
  1418. data/src/core/lib/slice/slice_internal.h +0 -105
  1419. data/src/core/lib/slice/slice_refcount.cc +0 -35
  1420. data/src/core/lib/slice/slice_refcount.h +0 -45
  1421. data/src/core/lib/slice/slice_refcount_base.h +0 -60
  1422. data/src/core/lib/slice/slice_string_helpers.cc +0 -28
  1423. data/src/core/lib/slice/slice_string_helpers.h +0 -31
  1424. data/src/core/lib/surface/api_trace.cc +0 -25
  1425. data/src/core/lib/surface/api_trace.h +0 -53
  1426. data/src/core/lib/surface/builtins.cc +0 -54
  1427. data/src/core/lib/surface/builtins.h +0 -26
  1428. data/src/core/lib/surface/byte_buffer.cc +0 -98
  1429. data/src/core/lib/surface/byte_buffer_reader.cc +0 -101
  1430. data/src/core/lib/surface/call.cc +0 -1916
  1431. data/src/core/lib/surface/call.h +0 -135
  1432. data/src/core/lib/surface/call_details.cc +0 -41
  1433. data/src/core/lib/surface/call_log_batch.cc +0 -117
  1434. data/src/core/lib/surface/call_test_only.h +0 -46
  1435. data/src/core/lib/surface/channel.cc +0 -442
  1436. data/src/core/lib/surface/channel.h +0 -206
  1437. data/src/core/lib/surface/channel_init.cc +0 -55
  1438. data/src/core/lib/surface/channel_init.h +0 -84
  1439. data/src/core/lib/surface/channel_ping.cc +0 -69
  1440. data/src/core/lib/surface/channel_stack_type.cc +0 -57
  1441. data/src/core/lib/surface/channel_stack_type.h +0 -45
  1442. data/src/core/lib/surface/completion_queue.cc +0 -1425
  1443. data/src/core/lib/surface/completion_queue.h +0 -100
  1444. data/src/core/lib/surface/completion_queue_factory.cc +0 -94
  1445. data/src/core/lib/surface/completion_queue_factory.h +0 -37
  1446. data/src/core/lib/surface/event_string.cc +0 -56
  1447. data/src/core/lib/surface/event_string.h +0 -31
  1448. data/src/core/lib/surface/init.cc +0 -260
  1449. data/src/core/lib/surface/init.h +0 -25
  1450. data/src/core/lib/surface/init_internally.cc +0 -24
  1451. data/src/core/lib/surface/init_internally.h +0 -28
  1452. data/src/core/lib/surface/lame_client.cc +0 -152
  1453. data/src/core/lib/surface/lame_client.h +0 -71
  1454. data/src/core/lib/surface/metadata_array.cc +0 -38
  1455. data/src/core/lib/surface/server.cc +0 -1577
  1456. data/src/core/lib/surface/server.h +0 -526
  1457. data/src/core/lib/surface/validate_metadata.cc +0 -123
  1458. data/src/core/lib/surface/validate_metadata.h +0 -48
  1459. data/src/core/lib/surface/version.cc +0 -28
  1460. data/src/core/lib/transport/bdp_estimator.cc +0 -86
  1461. data/src/core/lib/transport/bdp_estimator.h +0 -94
  1462. data/src/core/lib/transport/connectivity_state.cc +0 -189
  1463. data/src/core/lib/transport/connectivity_state.h +0 -144
  1464. data/src/core/lib/transport/error_utils.cc +0 -165
  1465. data/src/core/lib/transport/error_utils.h +0 -63
  1466. data/src/core/lib/transport/handshaker.cc +0 -225
  1467. data/src/core/lib/transport/handshaker.h +0 -167
  1468. data/src/core/lib/transport/handshaker_factory.h +0 -48
  1469. data/src/core/lib/transport/handshaker_registry.cc +0 -55
  1470. data/src/core/lib/transport/handshaker_registry.h +0 -70
  1471. data/src/core/lib/transport/http2_errors.h +0 -41
  1472. data/src/core/lib/transport/http_connect_handshaker.cc +0 -401
  1473. data/src/core/lib/transport/http_connect_handshaker.h +0 -42
  1474. data/src/core/lib/transport/metadata_batch.cc +0 -291
  1475. data/src/core/lib/transport/metadata_batch.h +0 -1310
  1476. data/src/core/lib/transport/parsed_metadata.cc +0 -39
  1477. data/src/core/lib/transport/parsed_metadata.h +0 -409
  1478. data/src/core/lib/transport/pid_controller.cc +0 -51
  1479. data/src/core/lib/transport/pid_controller.h +0 -116
  1480. data/src/core/lib/transport/status_conversion.cc +0 -92
  1481. data/src/core/lib/transport/status_conversion.h +0 -38
  1482. data/src/core/lib/transport/tcp_connect_handshaker.cc +0 -251
  1483. data/src/core/lib/transport/tcp_connect_handshaker.h +0 -39
  1484. data/src/core/lib/transport/timeout_encoding.cc +0 -284
  1485. data/src/core/lib/transport/timeout_encoding.h +0 -72
  1486. data/src/core/lib/transport/transport.cc +0 -239
  1487. data/src/core/lib/transport/transport.h +0 -594
  1488. data/src/core/lib/transport/transport_fwd.h +0 -20
  1489. data/src/core/lib/transport/transport_impl.h +0 -95
  1490. data/src/core/lib/transport/transport_op_string.cc +0 -146
  1491. data/src/core/lib/uri/uri_parser.cc +0 -373
  1492. data/src/core/lib/uri/uri_parser.h +0 -101
  1493. data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -117
  1494. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -73
  1495. data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -690
  1496. data/src/core/tsi/alts/crypt/gsec.cc +0 -190
  1497. data/src/core/tsi/alts/crypt/gsec.h +0 -459
  1498. data/src/core/tsi/alts/frame_protector/alts_counter.cc +0 -118
  1499. data/src/core/tsi/alts/frame_protector/alts_counter.h +0 -98
  1500. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +0 -66
  1501. data/src/core/tsi/alts/frame_protector/alts_crypter.h +0 -255
  1502. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +0 -408
  1503. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +0 -55
  1504. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +0 -114
  1505. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +0 -114
  1506. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +0 -105
  1507. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +0 -103
  1508. data/src/core/tsi/alts/frame_protector/frame_handler.cc +0 -219
  1509. data/src/core/tsi/alts/frame_protector/frame_handler.h +0 -236
  1510. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +0 -927
  1511. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +0 -160
  1512. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +0 -91
  1513. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +0 -73
  1514. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +0 -720
  1515. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +0 -104
  1516. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +0 -89
  1517. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +0 -64
  1518. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +0 -53
  1519. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +0 -223
  1520. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +0 -171
  1521. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +0 -226
  1522. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +0 -54
  1523. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +0 -144
  1524. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +0 -49
  1525. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +0 -91
  1526. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +0 -174
  1527. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +0 -99
  1528. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +0 -478
  1529. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +0 -199
  1530. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +0 -315
  1531. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +0 -57
  1532. data/src/core/tsi/fake_transport_security.cc +0 -844
  1533. data/src/core/tsi/fake_transport_security.h +0 -53
  1534. data/src/core/tsi/local_transport_security.cc +0 -174
  1535. data/src/core/tsi/local_transport_security.h +0 -47
  1536. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +0 -141
  1537. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +0 -81
  1538. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -71
  1539. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +0 -59
  1540. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -179
  1541. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -99
  1542. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +0 -77
  1543. data/src/core/tsi/ssl_transport_security.cc +0 -2441
  1544. data/src/core/tsi/ssl_transport_security.h +0 -405
  1545. data/src/core/tsi/ssl_types.h +0 -42
  1546. data/src/core/tsi/transport_security.cc +0 -396
  1547. data/src/core/tsi/transport_security.h +0 -143
  1548. data/src/core/tsi/transport_security_grpc.cc +0 -74
  1549. data/src/core/tsi/transport_security_grpc.h +0 -83
  1550. data/src/core/tsi/transport_security_interface.h +0 -521
  1551. data/src/ruby/lib/grpc/2.6/grpc_c.so +0 -0
  1552. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +0 -159
  1553. data/third_party/abseil-cpp/absl/algorithm/container.h +0 -1774
  1554. data/third_party/abseil-cpp/absl/base/attributes.h +0 -762
  1555. data/third_party/abseil-cpp/absl/base/call_once.h +0 -219
  1556. data/third_party/abseil-cpp/absl/base/casts.h +0 -180
  1557. data/third_party/abseil-cpp/absl/base/config.h +0 -913
  1558. data/third_party/abseil-cpp/absl/base/const_init.h +0 -76
  1559. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +0 -471
  1560. data/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +0 -200
  1561. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -77
  1562. data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +0 -159
  1563. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +0 -169
  1564. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +0 -398
  1565. data/third_party/abseil-cpp/absl/base/internal/endian.h +0 -282
  1566. data/third_party/abseil-cpp/absl/base/internal/errno_saver.h +0 -43
  1567. data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +0 -50
  1568. data/third_party/abseil-cpp/absl/base/internal/hide_ptr.h +0 -51
  1569. data/third_party/abseil-cpp/absl/base/internal/identity.h +0 -37
  1570. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -107
  1571. data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
  1572. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +0 -620
  1573. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +0 -126
  1574. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +0 -134
  1575. data/third_party/abseil-cpp/absl/base/internal/per_thread_tls.h +0 -52
  1576. data/third_party/abseil-cpp/absl/base/internal/prefetch.h +0 -138
  1577. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +0 -249
  1578. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +0 -196
  1579. data/third_party/abseil-cpp/absl/base/internal/scheduling_mode.h +0 -58
  1580. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -232
  1581. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +0 -256
  1582. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +0 -35
  1583. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +0 -71
  1584. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +0 -46
  1585. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc +0 -81
  1586. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +0 -95
  1587. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +0 -37
  1588. data/third_party/abseil-cpp/absl/base/internal/strerror.cc +0 -88
  1589. data/third_party/abseil-cpp/absl/base/internal/strerror.h +0 -39
  1590. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +0 -507
  1591. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +0 -74
  1592. data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +0 -271
  1593. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +0 -156
  1594. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +0 -265
  1595. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +0 -212
  1596. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.h +0 -75
  1597. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +0 -68
  1598. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -82
  1599. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -153
  1600. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +0 -133
  1601. data/third_party/abseil-cpp/absl/base/log_severity.cc +0 -55
  1602. data/third_party/abseil-cpp/absl/base/log_severity.h +0 -172
  1603. data/third_party/abseil-cpp/absl/base/macros.h +0 -158
  1604. data/third_party/abseil-cpp/absl/base/optimization.h +0 -252
  1605. data/third_party/abseil-cpp/absl/base/options.h +0 -238
  1606. data/third_party/abseil-cpp/absl/base/policy_checks.h +0 -111
  1607. data/third_party/abseil-cpp/absl/base/port.h +0 -25
  1608. data/third_party/abseil-cpp/absl/base/thread_annotations.h +0 -335
  1609. data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -529
  1610. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +0 -613
  1611. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -510
  1612. data/third_party/abseil-cpp/absl/container/inlined_vector.h +0 -866
  1613. data/third_party/abseil-cpp/absl/container/internal/common.h +0 -207
  1614. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +0 -290
  1615. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +0 -442
  1616. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +0 -163
  1617. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -208
  1618. data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +0 -85
  1619. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +0 -238
  1620. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -299
  1621. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +0 -31
  1622. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +0 -953
  1623. data/third_party/abseil-cpp/absl/container/internal/layout.h +0 -743
  1624. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +0 -198
  1625. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +0 -71
  1626. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +0 -2365
  1627. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +0 -96
  1628. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +0 -32
  1629. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +0 -1959
  1630. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +0 -71
  1631. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +0 -387
  1632. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +0 -139
  1633. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +0 -204
  1634. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +0 -139
  1635. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +0 -88
  1636. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +0 -110
  1637. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +0 -108
  1638. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +0 -258
  1639. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +0 -236
  1640. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +0 -24
  1641. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +0 -93
  1642. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +0 -369
  1643. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +0 -153
  1644. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -204
  1645. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +0 -158
  1646. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +0 -142
  1647. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +0 -231
  1648. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +0 -43
  1649. data/third_party/abseil-cpp/absl/debugging/symbolize.h +0 -99
  1650. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +0 -101
  1651. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +0 -1613
  1652. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +0 -72
  1653. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +0 -40
  1654. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +0 -81
  1655. data/third_party/abseil-cpp/absl/functional/any_invocable.h +0 -313
  1656. data/third_party/abseil-cpp/absl/functional/bind_front.h +0 -193
  1657. data/third_party/abseil-cpp/absl/functional/function_ref.h +0 -143
  1658. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +0 -857
  1659. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +0 -95
  1660. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +0 -106
  1661. data/third_party/abseil-cpp/absl/hash/hash.h +0 -421
  1662. data/third_party/abseil-cpp/absl/hash/internal/city.cc +0 -349
  1663. data/third_party/abseil-cpp/absl/hash/internal/city.h +0 -78
  1664. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +0 -69
  1665. data/third_party/abseil-cpp/absl/hash/internal/hash.h +0 -1291
  1666. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -123
  1667. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -50
  1668. data/third_party/abseil-cpp/absl/memory/memory.h +0 -699
  1669. data/third_party/abseil-cpp/absl/meta/type_traits.h +0 -797
  1670. data/third_party/abseil-cpp/absl/numeric/bits.h +0 -178
  1671. data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -385
  1672. data/third_party/abseil-cpp/absl/numeric/int128.h +0 -1165
  1673. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +0 -296
  1674. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +0 -311
  1675. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +0 -358
  1676. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +0 -55
  1677. data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +0 -93
  1678. data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h +0 -130
  1679. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +0 -245
  1680. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +0 -200
  1681. data/third_party/abseil-cpp/absl/random/beta_distribution.h +0 -427
  1682. data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +0 -98
  1683. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +0 -247
  1684. data/third_party/abseil-cpp/absl/random/distributions.h +0 -452
  1685. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +0 -165
  1686. data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +0 -104
  1687. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +0 -275
  1688. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +0 -95
  1689. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +0 -269
  1690. data/third_party/abseil-cpp/absl/random/internal/fastmath.h +0 -57
  1691. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +0 -144
  1692. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +0 -245
  1693. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +0 -161
  1694. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +0 -308
  1695. data/third_party/abseil-cpp/absl/random/internal/platform.h +0 -171
  1696. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +0 -253
  1697. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
  1698. data/third_party/abseil-cpp/absl/random/internal/randen.cc +0 -91
  1699. data/third_party/abseil-cpp/absl/random/internal/randen.h +0 -96
  1700. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +0 -225
  1701. data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +0 -33
  1702. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +0 -264
  1703. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +0 -526
  1704. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +0 -50
  1705. data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +0 -462
  1706. data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +0 -471
  1707. data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +0 -40
  1708. data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +0 -88
  1709. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +0 -165
  1710. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +0 -267
  1711. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +0 -104
  1712. data/third_party/abseil-cpp/absl/random/internal/traits.h +0 -149
  1713. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +0 -244
  1714. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +0 -96
  1715. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +0 -256
  1716. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +0 -261
  1717. data/third_party/abseil-cpp/absl/random/random.h +0 -189
  1718. data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +0 -46
  1719. data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +0 -55
  1720. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +0 -29
  1721. data/third_party/abseil-cpp/absl/random/seed_sequences.h +0 -111
  1722. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +0 -275
  1723. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +0 -202
  1724. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +0 -272
  1725. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +0 -86
  1726. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +0 -396
  1727. data/third_party/abseil-cpp/absl/status/status.cc +0 -616
  1728. data/third_party/abseil-cpp/absl/status/status.h +0 -892
  1729. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +0 -38
  1730. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +0 -51
  1731. data/third_party/abseil-cpp/absl/status/statusor.cc +0 -103
  1732. data/third_party/abseil-cpp/absl/status/statusor.h +0 -776
  1733. data/third_party/abseil-cpp/absl/strings/ascii.cc +0 -200
  1734. data/third_party/abseil-cpp/absl/strings/ascii.h +0 -242
  1735. data/third_party/abseil-cpp/absl/strings/charconv.cc +0 -984
  1736. data/third_party/abseil-cpp/absl/strings/charconv.h +0 -120
  1737. data/third_party/abseil-cpp/absl/strings/cord.cc +0 -1328
  1738. data/third_party/abseil-cpp/absl/strings/cord.h +0 -1642
  1739. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +0 -188
  1740. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +0 -44
  1741. data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +0 -30
  1742. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +0 -572
  1743. data/third_party/abseil-cpp/absl/strings/escaping.cc +0 -949
  1744. data/third_party/abseil-cpp/absl/strings/escaping.h +0 -164
  1745. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +0 -156
  1746. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +0 -359
  1747. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +0 -423
  1748. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +0 -504
  1749. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.h +0 -99
  1750. data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +0 -63
  1751. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +0 -77
  1752. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +0 -655
  1753. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -1228
  1754. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +0 -924
  1755. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +0 -187
  1756. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +0 -267
  1757. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +0 -69
  1758. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +0 -212
  1759. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +0 -62
  1760. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +0 -50
  1761. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +0 -54
  1762. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +0 -102
  1763. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +0 -187
  1764. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +0 -773
  1765. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +0 -607
  1766. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +0 -118
  1767. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +0 -96
  1768. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +0 -85
  1769. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +0 -139
  1770. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +0 -131
  1771. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -418
  1772. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +0 -298
  1773. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +0 -88
  1774. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +0 -71
  1775. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +0 -123
  1776. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +0 -181
  1777. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +0 -58
  1778. data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +0 -112
  1779. data/third_party/abseil-cpp/absl/strings/internal/memutil.h +0 -148
  1780. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +0 -36
  1781. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +0 -89
  1782. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +0 -119
  1783. data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +0 -248
  1784. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +0 -488
  1785. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +0 -526
  1786. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +0 -258
  1787. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +0 -248
  1788. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +0 -338
  1789. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -74
  1790. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +0 -448
  1791. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +0 -1423
  1792. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +0 -37
  1793. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +0 -72
  1794. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +0 -97
  1795. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +0 -339
  1796. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +0 -359
  1797. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -317
  1798. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +0 -430
  1799. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -72
  1800. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +0 -53
  1801. data/third_party/abseil-cpp/absl/strings/internal/utf8.h +0 -50
  1802. data/third_party/abseil-cpp/absl/strings/match.cc +0 -43
  1803. data/third_party/abseil-cpp/absl/strings/match.h +0 -100
  1804. data/third_party/abseil-cpp/absl/strings/numbers.cc +0 -1093
  1805. data/third_party/abseil-cpp/absl/strings/numbers.h +0 -303
  1806. data/third_party/abseil-cpp/absl/strings/str_cat.cc +0 -246
  1807. data/third_party/abseil-cpp/absl/strings/str_cat.h +0 -415
  1808. data/third_party/abseil-cpp/absl/strings/str_format.h +0 -812
  1809. data/third_party/abseil-cpp/absl/strings/str_join.h +0 -287
  1810. data/third_party/abseil-cpp/absl/strings/str_replace.cc +0 -82
  1811. data/third_party/abseil-cpp/absl/strings/str_replace.h +0 -219
  1812. data/third_party/abseil-cpp/absl/strings/str_split.cc +0 -139
  1813. data/third_party/abseil-cpp/absl/strings/str_split.h +0 -547
  1814. data/third_party/abseil-cpp/absl/strings/string_view.cc +0 -219
  1815. data/third_party/abseil-cpp/absl/strings/string_view.h +0 -711
  1816. data/third_party/abseil-cpp/absl/strings/strip.h +0 -93
  1817. data/third_party/abseil-cpp/absl/strings/substitute.cc +0 -172
  1818. data/third_party/abseil-cpp/absl/strings/substitute.h +0 -729
  1819. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +0 -52
  1820. data/third_party/abseil-cpp/absl/synchronization/barrier.h +0 -79
  1821. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +0 -67
  1822. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +0 -101
  1823. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +0 -143
  1824. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -56
  1825. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +0 -154
  1826. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +0 -698
  1827. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +0 -141
  1828. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +0 -156
  1829. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -102
  1830. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +0 -110
  1831. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -403
  1832. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +0 -161
  1833. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +0 -2786
  1834. data/third_party/abseil-cpp/absl/synchronization/mutex.h +0 -1090
  1835. data/third_party/abseil-cpp/absl/synchronization/notification.cc +0 -78
  1836. data/third_party/abseil-cpp/absl/synchronization/notification.h +0 -124
  1837. data/third_party/abseil-cpp/absl/time/civil_time.cc +0 -173
  1838. data/third_party/abseil-cpp/absl/time/civil_time.h +0 -538
  1839. data/third_party/abseil-cpp/absl/time/clock.cc +0 -585
  1840. data/third_party/abseil-cpp/absl/time/clock.h +0 -74
  1841. data/third_party/abseil-cpp/absl/time/duration.cc +0 -955
  1842. data/third_party/abseil-cpp/absl/time/format.cc +0 -160
  1843. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +0 -332
  1844. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +0 -632
  1845. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +0 -459
  1846. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +0 -102
  1847. data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +0 -94
  1848. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +0 -140
  1849. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +0 -52
  1850. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +0 -1029
  1851. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +0 -45
  1852. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +0 -77
  1853. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +0 -113
  1854. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +0 -93
  1855. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +0 -1027
  1856. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +0 -137
  1857. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +0 -315
  1858. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +0 -55
  1859. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +0 -236
  1860. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +0 -159
  1861. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +0 -132
  1862. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +0 -122
  1863. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +0 -115
  1864. data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +0 -31
  1865. data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +0 -24
  1866. data/third_party/abseil-cpp/absl/time/time.cc +0 -500
  1867. data/third_party/abseil-cpp/absl/time/time.h +0 -1620
  1868. data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -48
  1869. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
  1870. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -64
  1871. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
  1872. data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -404
  1873. data/third_party/abseil-cpp/absl/types/internal/span.h +0 -128
  1874. data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1646
  1875. data/third_party/abseil-cpp/absl/types/optional.h +0 -779
  1876. data/third_party/abseil-cpp/absl/types/span.h +0 -727
  1877. data/third_party/abseil-cpp/absl/types/variant.h +0 -866
  1878. data/third_party/abseil-cpp/absl/utility/utility.h +0 -350
  1879. data/third_party/address_sorting/address_sorting.c +0 -375
  1880. data/third_party/address_sorting/address_sorting_internal.h +0 -70
  1881. data/third_party/address_sorting/address_sorting_posix.c +0 -98
  1882. data/third_party/address_sorting/address_sorting_windows.c +0 -95
  1883. data/third_party/address_sorting/include/address_sorting/address_sorting.h +0 -115
  1884. data/third_party/boringssl-with-bazel/err_data.c +0 -1493
  1885. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +0 -284
  1886. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +0 -122
  1887. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -91
  1888. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +0 -87
  1889. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
  1890. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +0 -266
  1891. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +0 -88
  1892. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +0 -420
  1893. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +0 -298
  1894. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +0 -299
  1895. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +0 -77
  1896. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
  1897. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +0 -650
  1898. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +0 -266
  1899. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +0 -212
  1900. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +0 -163
  1901. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +0 -264
  1902. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
  1903. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -452
  1904. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +0 -80
  1905. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +0 -101
  1906. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
  1907. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +0 -102
  1908. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +0 -91
  1909. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +0 -224
  1910. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +0 -969
  1911. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +0 -710
  1912. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +0 -233
  1913. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +0 -332
  1914. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -131
  1915. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +0 -281
  1916. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
  1917. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +0 -482
  1918. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +0 -702
  1919. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +0 -324
  1920. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +0 -541
  1921. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -275
  1922. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +0 -311
  1923. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c +0 -192
  1924. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +0 -111
  1925. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +0 -483
  1926. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -115
  1927. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +0 -192
  1928. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +0 -122
  1929. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +0 -156
  1930. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +0 -57
  1931. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +0 -470
  1932. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +0 -172
  1933. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +0 -52
  1934. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +0 -266
  1935. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +0 -728
  1936. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +0 -711
  1937. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +0 -96
  1938. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +0 -155
  1939. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -175
  1940. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +0 -45
  1941. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +0 -127
  1942. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +0 -152
  1943. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesccm.c +0 -447
  1944. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +0 -283
  1945. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +0 -891
  1946. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +0 -343
  1947. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +0 -85
  1948. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +0 -462
  1949. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +0 -87
  1950. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +0 -601
  1951. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +0 -226
  1952. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +0 -338
  1953. data/third_party/boringssl-with-bazel/src/crypto/cmac/cmac.c +0 -278
  1954. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +0 -821
  1955. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -127
  1956. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +0 -31
  1957. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-fuchsia.c +0 -55
  1958. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-linux.c +0 -62
  1959. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +0 -41
  1960. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +0 -229
  1961. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.h +0 -201
  1962. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +0 -38
  1963. data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +0 -291
  1964. data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
  1965. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +0 -226
  1966. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +0 -2159
  1967. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +0 -7872
  1968. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +0 -146
  1969. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +0 -539
  1970. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +0 -160
  1971. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +0 -272
  1972. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -268
  1973. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +0 -967
  1974. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -390
  1975. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +0 -34
  1976. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +0 -559
  1977. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +0 -95
  1978. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +0 -385
  1979. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -56
  1980. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +0 -124
  1981. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +0 -267
  1982. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.c +0 -99
  1983. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +0 -857
  1984. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +0 -58
  1985. data/third_party/boringssl-with-bazel/src/crypto/evp/digestsign.c +0 -231
  1986. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +0 -456
  1987. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +0 -547
  1988. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +0 -484
  1989. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +0 -269
  1990. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +0 -277
  1991. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +0 -286
  1992. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +0 -255
  1993. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +0 -104
  1994. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +0 -221
  1995. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +0 -648
  1996. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +0 -194
  1997. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +0 -110
  1998. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +0 -248
  1999. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +0 -146
  2000. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +0 -489
  2001. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +0 -211
  2002. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +0 -151
  2003. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +0 -261
  2004. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -108
  2005. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +0 -1282
  2006. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +0 -238
  2007. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +0 -236
  2008. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +0 -122
  2009. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +0 -266
  2010. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c +0 -316
  2011. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -541
  2012. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +0 -438
  2013. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +0 -230
  2014. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +0 -200
  2015. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -236
  2016. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +0 -902
  2017. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +0 -87
  2018. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +0 -1288
  2019. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -378
  2020. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +0 -326
  2021. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +0 -711
  2022. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +0 -715
  2023. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c +0 -146
  2024. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +0 -502
  2025. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +0 -186
  2026. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +0 -749
  2027. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -1064
  2028. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +0 -341
  2029. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +0 -226
  2030. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +0 -104
  2031. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +0 -364
  2032. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +0 -498
  2033. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +0 -284
  2034. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +0 -648
  2035. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +0 -1473
  2036. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_des.c +0 -237
  2037. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +0 -128
  2038. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +0 -89
  2039. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +0 -784
  2040. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +0 -238
  2041. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +0 -217
  2042. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +0 -456
  2043. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +0 -282
  2044. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +0 -304
  2045. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +0 -112
  2046. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +0 -195
  2047. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +0 -1268
  2048. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -472
  2049. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +0 -524
  2050. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +0 -100
  2051. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -772
  2052. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +0 -328
  2053. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +0 -1180
  2054. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +0 -9497
  2055. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +0 -633
  2056. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.h +0 -153
  2057. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +0 -740
  2058. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +0 -297
  2059. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +0 -175
  2060. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +0 -357
  2061. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +0 -270
  2062. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +0 -255
  2063. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -270
  2064. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +0 -122
  2065. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +0 -338
  2066. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +0 -39
  2067. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +0 -32
  2068. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +0 -228
  2069. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +0 -240
  2070. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h +0 -37
  2071. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +0 -284
  2072. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +0 -178
  2073. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +0 -203
  2074. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +0 -201
  2075. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +0 -733
  2076. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +0 -304
  2077. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +0 -420
  2078. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +0 -97
  2079. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +0 -91
  2080. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +0 -202
  2081. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +0 -137
  2082. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +0 -49
  2083. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +0 -64
  2084. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +0 -184
  2085. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -457
  2086. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +0 -401
  2087. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -243
  2088. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +0 -131
  2089. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +0 -695
  2090. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +0 -935
  2091. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +0 -1416
  2092. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +0 -79
  2093. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +0 -874
  2094. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +0 -53
  2095. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
  2096. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +0 -357
  2097. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +0 -321
  2098. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +0 -508
  2099. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +0 -39
  2100. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +0 -165
  2101. data/third_party/boringssl-with-bazel/src/crypto/hkdf/hkdf.c +0 -112
  2102. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +0 -618
  2103. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +0 -2198
  2104. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +0 -68
  2105. data/third_party/boringssl-with-bazel/src/crypto/internal.h +0 -959
  2106. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +0 -253
  2107. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +0 -353
  2108. data/third_party/boringssl-with-bazel/src/crypto/mem.c +0 -410
  2109. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +0 -553
  2110. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +0 -11585
  2111. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c +0 -122
  2112. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -252
  2113. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -358
  2114. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -769
  2115. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +0 -87
  2116. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -255
  2117. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -214
  2118. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -65
  2119. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -65
  2120. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +0 -58
  2121. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +0 -193
  2122. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -526
  2123. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -137
  2124. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +0 -316
  2125. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -530
  2126. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +0 -1383
  2127. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +0 -41
  2128. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +0 -321
  2129. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +0 -307
  2130. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +0 -860
  2131. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +0 -49
  2132. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +0 -257
  2133. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +0 -56
  2134. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +0 -46
  2135. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +0 -34
  2136. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +0 -34
  2137. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +0 -74
  2138. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +0 -73
  2139. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c +0 -98
  2140. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -67
  2141. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +0 -53
  2142. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +0 -324
  2143. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c +0 -22
  2144. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +0 -82
  2145. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +0 -425
  2146. data/third_party/boringssl-with-bazel/src/crypto/thread.c +0 -110
  2147. data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -59
  2148. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -182
  2149. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +0 -260
  2150. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +0 -318
  2151. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +0 -1399
  2152. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +0 -858
  2153. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +0 -766
  2154. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +0 -96
  2155. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +0 -128
  2156. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +0 -118
  2157. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +0 -163
  2158. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +0 -826
  2159. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +0 -459
  2160. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -277
  2161. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +0 -83
  2162. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -404
  2163. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +0 -246
  2164. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +0 -400
  2165. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +0 -130
  2166. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +0 -246
  2167. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -365
  2168. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +0 -116
  2169. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -90
  2170. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -358
  2171. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +0 -461
  2172. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +0 -106
  2173. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +0 -103
  2174. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +0 -212
  2175. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -830
  2176. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +0 -199
  2177. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +0 -304
  2178. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +0 -240
  2179. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +0 -331
  2180. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +0 -204
  2181. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +0 -281
  2182. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -2456
  2183. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +0 -651
  2184. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +0 -284
  2185. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +0 -388
  2186. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +0 -84
  2187. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +0 -137
  2188. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +0 -153
  2189. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -386
  2190. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +0 -98
  2191. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +0 -565
  2192. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +0 -77
  2193. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +0 -98
  2194. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +0 -544
  2195. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +0 -106
  2196. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -217
  2197. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +0 -106
  2198. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +0 -94
  2199. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +0 -80
  2200. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +0 -71
  2201. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +0 -394
  2202. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +0 -201
  2203. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +0 -138
  2204. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +0 -289
  2205. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
  2206. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
  2207. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
  2208. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
  2209. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
  2210. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
  2211. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +0 -226
  2212. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +0 -72
  2213. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +0 -640
  2214. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +0 -133
  2215. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +0 -144
  2216. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +0 -468
  2217. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +0 -500
  2218. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +0 -563
  2219. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +0 -106
  2220. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +0 -148
  2221. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +0 -266
  2222. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +0 -121
  2223. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +0 -218
  2224. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +0 -91
  2225. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +0 -379
  2226. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +0 -558
  2227. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +0 -68
  2228. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
  2229. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
  2230. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +0 -139
  2231. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +0 -154
  2232. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +0 -230
  2233. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +0 -929
  2234. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +0 -156
  2235. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +0 -1437
  2236. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -480
  2237. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +0 -207
  2238. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +0 -240
  2239. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +0 -2039
  2240. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +0 -18
  2241. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -718
  2242. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -627
  2243. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +0 -198
  2244. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +0 -939
  2245. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +0 -62
  2246. data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +0 -93
  2247. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +0 -1057
  2248. data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +0 -137
  2249. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +0 -18
  2250. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +0 -586
  2251. data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +0 -96
  2252. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +0 -41
  2253. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -673
  2254. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +0 -91
  2255. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +0 -183
  2256. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +0 -202
  2257. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +0 -169
  2258. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +0 -201
  2259. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +0 -183
  2260. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +0 -353
  2261. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +0 -348
  2262. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +0 -443
  2263. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +0 -16
  2264. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +0 -18
  2265. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +0 -442
  2266. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +0 -357
  2267. data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +0 -118
  2268. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +0 -236
  2269. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +0 -109
  2270. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +0 -466
  2271. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +0 -1083
  2272. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +0 -99
  2273. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +0 -203
  2274. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +0 -68
  2275. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +0 -186
  2276. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +0 -350
  2277. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +0 -102
  2278. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +0 -16
  2279. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +0 -81
  2280. data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +0 -108
  2281. data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +0 -109
  2282. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +0 -184
  2283. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +0 -4259
  2284. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +0 -256
  2285. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +0 -18
  2286. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +0 -18
  2287. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +0 -70
  2288. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +0 -18
  2289. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +0 -18
  2290. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -483
  2291. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +0 -18
  2292. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +0 -239
  2293. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +0 -282
  2294. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +0 -49
  2295. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +0 -108
  2296. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +0 -114
  2297. data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +0 -96
  2298. data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +0 -108
  2299. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +0 -855
  2300. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +0 -16
  2301. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +0 -294
  2302. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +0 -37
  2303. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +0 -222
  2304. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +0 -18
  2305. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +0 -5624
  2306. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +0 -333
  2307. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +0 -542
  2308. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +0 -191
  2309. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +0 -647
  2310. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +0 -310
  2311. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -90
  2312. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -2419
  2313. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +0 -18
  2314. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +0 -1021
  2315. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +0 -192
  2316. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -835
  2317. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +0 -268
  2318. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +0 -273
  2319. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +0 -232
  2320. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +0 -200
  2321. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +0 -353
  2322. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +0 -1084
  2323. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +0 -4325
  2324. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +0 -986
  2325. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +0 -758
  2326. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +0 -1986
  2327. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +0 -1956
  2328. data/third_party/boringssl-with-bazel/src/ssl/internal.h +0 -3953
  2329. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +0 -730
  2330. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -219
  2331. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +0 -453
  2332. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +0 -432
  2333. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +0 -896
  2334. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +0 -306
  2335. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +0 -1014
  2336. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +0 -1717
  2337. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +0 -585
  2338. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +0 -400
  2339. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +0 -3072
  2340. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +0 -837
  2341. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +0 -1342
  2342. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +0 -233
  2343. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +0 -272
  2344. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +0 -402
  2345. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +0 -1363
  2346. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +0 -384
  2347. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +0 -733
  2348. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +0 -1122
  2349. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +0 -582
  2350. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +0 -1349
  2351. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +0 -319
  2352. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +0 -705
  2353. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +0 -981
  2354. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +0 -619
  2355. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +0 -3147
  2356. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +0 -1226
  2357. data/third_party/cares/ares_build.h +0 -223
  2358. data/third_party/cares/cares/include/ares.h +0 -742
  2359. data/third_party/cares/cares/include/ares_dns.h +0 -112
  2360. data/third_party/cares/cares/include/ares_rules.h +0 -125
  2361. data/third_party/cares/cares/include/ares_version.h +0 -24
  2362. data/third_party/cares/cares/src/lib/ares__close_sockets.c +0 -61
  2363. data/third_party/cares/cares/src/lib/ares__get_hostent.c +0 -260
  2364. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +0 -260
  2365. data/third_party/cares/cares/src/lib/ares__read_line.c +0 -73
  2366. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +0 -264
  2367. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +0 -499
  2368. data/third_party/cares/cares/src/lib/ares__timeval.c +0 -111
  2369. data/third_party/cares/cares/src/lib/ares_android.c +0 -444
  2370. data/third_party/cares/cares/src/lib/ares_android.h +0 -27
  2371. data/third_party/cares/cares/src/lib/ares_cancel.c +0 -63
  2372. data/third_party/cares/cares/src/lib/ares_create_query.c +0 -197
  2373. data/third_party/cares/cares/src/lib/ares_data.c +0 -240
  2374. data/third_party/cares/cares/src/lib/ares_data.h +0 -74
  2375. data/third_party/cares/cares/src/lib/ares_destroy.c +0 -113
  2376. data/third_party/cares/cares/src/lib/ares_expand_name.c +0 -300
  2377. data/third_party/cares/cares/src/lib/ares_expand_string.c +0 -67
  2378. data/third_party/cares/cares/src/lib/ares_fds.c +0 -59
  2379. data/third_party/cares/cares/src/lib/ares_free_hostent.c +0 -43
  2380. data/third_party/cares/cares/src/lib/ares_free_string.c +0 -25
  2381. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +0 -59
  2382. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +0 -772
  2383. data/third_party/cares/cares/src/lib/ares_getenv.c +0 -28
  2384. data/third_party/cares/cares/src/lib/ares_getenv.h +0 -26
  2385. data/third_party/cares/cares/src/lib/ares_gethostbyaddr.c +0 -287
  2386. data/third_party/cares/cares/src/lib/ares_gethostbyname.c +0 -534
  2387. data/third_party/cares/cares/src/lib/ares_getnameinfo.c +0 -447
  2388. data/third_party/cares/cares/src/lib/ares_getsock.c +0 -66
  2389. data/third_party/cares/cares/src/lib/ares_inet_net_pton.h +0 -25
  2390. data/third_party/cares/cares/src/lib/ares_init.c +0 -2654
  2391. data/third_party/cares/cares/src/lib/ares_iphlpapi.h +0 -221
  2392. data/third_party/cares/cares/src/lib/ares_ipv6.h +0 -85
  2393. data/third_party/cares/cares/src/lib/ares_library_init.c +0 -200
  2394. data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
  2395. data/third_party/cares/cares/src/lib/ares_llist.c +0 -63
  2396. data/third_party/cares/cares/src/lib/ares_llist.h +0 -39
  2397. data/third_party/cares/cares/src/lib/ares_mkquery.c +0 -24
  2398. data/third_party/cares/cares/src/lib/ares_nameser.h +0 -482
  2399. data/third_party/cares/cares/src/lib/ares_nowarn.c +0 -260
  2400. data/third_party/cares/cares/src/lib/ares_nowarn.h +0 -61
  2401. data/third_party/cares/cares/src/lib/ares_options.c +0 -406
  2402. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +0 -209
  2403. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +0 -212
  2404. data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +0 -199
  2405. data/third_party/cares/cares/src/lib/ares_parse_mx_reply.c +0 -164
  2406. data/third_party/cares/cares/src/lib/ares_parse_naptr_reply.c +0 -183
  2407. data/third_party/cares/cares/src/lib/ares_parse_ns_reply.c +0 -177
  2408. data/third_party/cares/cares/src/lib/ares_parse_ptr_reply.c +0 -228
  2409. data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +0 -179
  2410. data/third_party/cares/cares/src/lib/ares_parse_srv_reply.c +0 -168
  2411. data/third_party/cares/cares/src/lib/ares_parse_txt_reply.c +0 -214
  2412. data/third_party/cares/cares/src/lib/ares_platform.c +0 -11042
  2413. data/third_party/cares/cares/src/lib/ares_platform.h +0 -43
  2414. data/third_party/cares/cares/src/lib/ares_private.h +0 -423
  2415. data/third_party/cares/cares/src/lib/ares_process.c +0 -1548
  2416. data/third_party/cares/cares/src/lib/ares_query.c +0 -180
  2417. data/third_party/cares/cares/src/lib/ares_search.c +0 -321
  2418. data/third_party/cares/cares/src/lib/ares_send.c +0 -131
  2419. data/third_party/cares/cares/src/lib/ares_setup.h +0 -220
  2420. data/third_party/cares/cares/src/lib/ares_strcasecmp.c +0 -66
  2421. data/third_party/cares/cares/src/lib/ares_strcasecmp.h +0 -30
  2422. data/third_party/cares/cares/src/lib/ares_strdup.c +0 -49
  2423. data/third_party/cares/cares/src/lib/ares_strdup.h +0 -24
  2424. data/third_party/cares/cares/src/lib/ares_strerror.c +0 -56
  2425. data/third_party/cares/cares/src/lib/ares_strsplit.c +0 -178
  2426. data/third_party/cares/cares/src/lib/ares_strsplit.h +0 -43
  2427. data/third_party/cares/cares/src/lib/ares_timeout.c +0 -88
  2428. data/third_party/cares/cares/src/lib/ares_version.c +0 -11
  2429. data/third_party/cares/cares/src/lib/ares_writev.c +0 -79
  2430. data/third_party/cares/cares/src/lib/ares_writev.h +0 -36
  2431. data/third_party/cares/cares/src/lib/bitncmp.c +0 -59
  2432. data/third_party/cares/cares/src/lib/bitncmp.h +0 -26
  2433. data/third_party/cares/cares/src/lib/config-dos.h +0 -115
  2434. data/third_party/cares/cares/src/lib/config-win32.h +0 -351
  2435. data/third_party/cares/cares/src/lib/inet_net_pton.c +0 -444
  2436. data/third_party/cares/cares/src/lib/inet_ntop.c +0 -201
  2437. data/third_party/cares/cares/src/lib/setup_once.h +0 -554
  2438. data/third_party/cares/cares/src/lib/windows_port.c +0 -22
  2439. data/third_party/cares/config_darwin/ares_config.h +0 -428
  2440. data/third_party/cares/config_freebsd/ares_config.h +0 -505
  2441. data/third_party/cares/config_linux/ares_config.h +0 -461
  2442. data/third_party/cares/config_openbsd/ares_config.h +0 -505
  2443. data/third_party/re2/re2/bitmap256.h +0 -117
  2444. data/third_party/re2/re2/bitstate.cc +0 -385
  2445. data/third_party/re2/re2/compile.cc +0 -1261
  2446. data/third_party/re2/re2/dfa.cc +0 -2118
  2447. data/third_party/re2/re2/filtered_re2.cc +0 -137
  2448. data/third_party/re2/re2/filtered_re2.h +0 -114
  2449. data/third_party/re2/re2/mimics_pcre.cc +0 -197
  2450. data/third_party/re2/re2/nfa.cc +0 -713
  2451. data/third_party/re2/re2/onepass.cc +0 -623
  2452. data/third_party/re2/re2/parse.cc +0 -2483
  2453. data/third_party/re2/re2/perl_groups.cc +0 -119
  2454. data/third_party/re2/re2/pod_array.h +0 -55
  2455. data/third_party/re2/re2/prefilter.cc +0 -711
  2456. data/third_party/re2/re2/prefilter.h +0 -108
  2457. data/third_party/re2/re2/prefilter_tree.cc +0 -407
  2458. data/third_party/re2/re2/prefilter_tree.h +0 -139
  2459. data/third_party/re2/re2/prog.cc +0 -1166
  2460. data/third_party/re2/re2/prog.h +0 -455
  2461. data/third_party/re2/re2/re2.cc +0 -1331
  2462. data/third_party/re2/re2/re2.h +0 -1017
  2463. data/third_party/re2/re2/regexp.cc +0 -987
  2464. data/third_party/re2/re2/regexp.h +0 -665
  2465. data/third_party/re2/re2/set.cc +0 -176
  2466. data/third_party/re2/re2/set.h +0 -85
  2467. data/third_party/re2/re2/simplify.cc +0 -665
  2468. data/third_party/re2/re2/sparse_array.h +0 -392
  2469. data/third_party/re2/re2/sparse_set.h +0 -264
  2470. data/third_party/re2/re2/stringpiece.cc +0 -65
  2471. data/third_party/re2/re2/stringpiece.h +0 -210
  2472. data/third_party/re2/re2/tostring.cc +0 -351
  2473. data/third_party/re2/re2/unicode_casefold.cc +0 -582
  2474. data/third_party/re2/re2/unicode_casefold.h +0 -78
  2475. data/third_party/re2/re2/unicode_groups.cc +0 -6269
  2476. data/third_party/re2/re2/unicode_groups.h +0 -67
  2477. data/third_party/re2/re2/walker-inl.h +0 -246
  2478. data/third_party/re2/util/benchmark.h +0 -156
  2479. data/third_party/re2/util/flags.h +0 -26
  2480. data/third_party/re2/util/logging.h +0 -109
  2481. data/third_party/re2/util/malloc_counter.h +0 -19
  2482. data/third_party/re2/util/mix.h +0 -41
  2483. data/third_party/re2/util/mutex.h +0 -148
  2484. data/third_party/re2/util/pcre.cc +0 -1025
  2485. data/third_party/re2/util/pcre.h +0 -681
  2486. data/third_party/re2/util/rune.cc +0 -260
  2487. data/third_party/re2/util/strutil.cc +0 -149
  2488. data/third_party/re2/util/strutil.h +0 -21
  2489. data/third_party/re2/util/test.h +0 -50
  2490. data/third_party/re2/util/utf.h +0 -44
  2491. data/third_party/re2/util/util.h +0 -42
  2492. data/third_party/upb/third_party/utf8_range/naive.c +0 -92
  2493. data/third_party/upb/third_party/utf8_range/range2-neon.c +0 -157
  2494. data/third_party/upb/third_party/utf8_range/range2-sse.c +0 -170
  2495. data/third_party/upb/third_party/utf8_range/utf8_range.h +0 -9
  2496. data/third_party/upb/upb/arena.c +0 -277
  2497. data/third_party/upb/upb/arena.h +0 -225
  2498. data/third_party/upb/upb/array.c +0 -114
  2499. data/third_party/upb/upb/array.h +0 -83
  2500. data/third_party/upb/upb/collections.h +0 -36
  2501. data/third_party/upb/upb/decode.c +0 -1221
  2502. data/third_party/upb/upb/decode.h +0 -95
  2503. data/third_party/upb/upb/decode_fast.c +0 -1055
  2504. data/third_party/upb/upb/decode_fast.h +0 -153
  2505. data/third_party/upb/upb/def.c +0 -3269
  2506. data/third_party/upb/upb/def.h +0 -416
  2507. data/third_party/upb/upb/def.hpp +0 -441
  2508. data/third_party/upb/upb/encode.c +0 -613
  2509. data/third_party/upb/upb/encode.h +0 -81
  2510. data/third_party/upb/upb/extension_registry.c +0 -93
  2511. data/third_party/upb/upb/extension_registry.h +0 -84
  2512. data/third_party/upb/upb/internal/decode.h +0 -211
  2513. data/third_party/upb/upb/internal/table.h +0 -385
  2514. data/third_party/upb/upb/internal/upb.h +0 -68
  2515. data/third_party/upb/upb/internal/vsnprintf_compat.h +0 -52
  2516. data/third_party/upb/upb/json_decode.c +0 -1512
  2517. data/third_party/upb/upb/json_decode.h +0 -47
  2518. data/third_party/upb/upb/json_encode.c +0 -780
  2519. data/third_party/upb/upb/json_encode.h +0 -65
  2520. data/third_party/upb/upb/map.c +0 -108
  2521. data/third_party/upb/upb/map.h +0 -117
  2522. data/third_party/upb/upb/message_value.h +0 -66
  2523. data/third_party/upb/upb/mini_table.c +0 -1147
  2524. data/third_party/upb/upb/mini_table.h +0 -189
  2525. data/third_party/upb/upb/mini_table.hpp +0 -112
  2526. data/third_party/upb/upb/msg.c +0 -368
  2527. data/third_party/upb/upb/msg.h +0 -71
  2528. data/third_party/upb/upb/msg_internal.h +0 -837
  2529. data/third_party/upb/upb/port_def.inc +0 -262
  2530. data/third_party/upb/upb/port_undef.inc +0 -63
  2531. data/third_party/upb/upb/reflection.c +0 -323
  2532. data/third_party/upb/upb/reflection.h +0 -110
  2533. data/third_party/upb/upb/reflection.hpp +0 -37
  2534. data/third_party/upb/upb/status.c +0 -86
  2535. data/third_party/upb/upb/status.h +0 -66
  2536. data/third_party/upb/upb/table.c +0 -926
  2537. data/third_party/upb/upb/table_internal.h +0 -36
  2538. data/third_party/upb/upb/text_encode.c +0 -473
  2539. data/third_party/upb/upb/text_encode.h +0 -64
  2540. data/third_party/upb/upb/upb.c +0 -76
  2541. data/third_party/upb/upb/upb.h +0 -184
  2542. data/third_party/upb/upb/upb.hpp +0 -115
  2543. data/third_party/xxhash/xxhash.h +0 -5580
  2544. data/third_party/zlib/adler32.c +0 -186
  2545. data/third_party/zlib/compress.c +0 -86
  2546. data/third_party/zlib/crc32.c +0 -1116
  2547. data/third_party/zlib/crc32.h +0 -9446
  2548. data/third_party/zlib/deflate.c +0 -2211
  2549. data/third_party/zlib/deflate.h +0 -346
  2550. data/third_party/zlib/gzclose.c +0 -25
  2551. data/third_party/zlib/gzguts.h +0 -219
  2552. data/third_party/zlib/gzlib.c +0 -639
  2553. data/third_party/zlib/gzread.c +0 -652
  2554. data/third_party/zlib/gzwrite.c +0 -677
  2555. data/third_party/zlib/infback.c +0 -641
  2556. data/third_party/zlib/inffast.c +0 -323
  2557. data/third_party/zlib/inffast.h +0 -11
  2558. data/third_party/zlib/inffixed.h +0 -94
  2559. data/third_party/zlib/inflate.c +0 -1592
  2560. data/third_party/zlib/inflate.h +0 -126
  2561. data/third_party/zlib/inftrees.c +0 -304
  2562. data/third_party/zlib/inftrees.h +0 -62
  2563. data/third_party/zlib/trees.c +0 -1182
  2564. data/third_party/zlib/trees.h +0 -128
  2565. data/third_party/zlib/uncompr.c +0 -93
  2566. data/third_party/zlib/zconf.h +0 -534
  2567. data/third_party/zlib/zlib.h +0 -1935
  2568. data/third_party/zlib/zutil.c +0 -325
  2569. data/third_party/zlib/zutil.h +0 -274
@@ -1,3208 +0,0 @@
1
- //
2
- // Copyright 2015 gRPC authors.
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- //
16
-
17
- #include <grpc/support/port_platform.h>
18
-
19
- #include "src/core/ext/filters/client_channel/client_channel.h"
20
-
21
- #include <inttypes.h>
22
- #include <limits.h>
23
-
24
- #include <algorithm>
25
- #include <functional>
26
- #include <new>
27
- #include <set>
28
- #include <vector>
29
-
30
- #include "absl/memory/memory.h"
31
- #include "absl/status/status.h"
32
- #include "absl/status/statusor.h"
33
- #include "absl/strings/cord.h"
34
- #include "absl/strings/numbers.h"
35
- #include "absl/strings/str_cat.h"
36
- #include "absl/strings/str_join.h"
37
- #include "absl/strings/string_view.h"
38
- #include "absl/types/optional.h"
39
- #include "absl/types/variant.h"
40
-
41
- #include <grpc/impl/codegen/gpr_types.h>
42
- #include <grpc/slice.h>
43
- #include <grpc/status.h>
44
- #include <grpc/support/log.h>
45
- #include <grpc/support/string_util.h>
46
-
47
- #include "src/core/ext/filters/client_channel/backend_metric.h"
48
- #include "src/core/ext/filters/client_channel/backup_poller.h"
49
- #include "src/core/ext/filters/client_channel/client_channel_channelz.h"
50
- #include "src/core/ext/filters/client_channel/config_selector.h"
51
- #include "src/core/ext/filters/client_channel/dynamic_filters.h"
52
- #include "src/core/ext/filters/client_channel/global_subchannel_pool.h"
53
- #include "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h"
54
- #include "src/core/ext/filters/client_channel/local_subchannel_pool.h"
55
- #include "src/core/ext/filters/client_channel/resolver_result_parsing.h"
56
- #include "src/core/ext/filters/client_channel/retry_filter.h"
57
- #include "src/core/ext/filters/client_channel/subchannel.h"
58
- #include "src/core/ext/filters/client_channel/subchannel_interface_internal.h"
59
- #include "src/core/ext/filters/deadline/deadline_filter.h"
60
- #include "src/core/lib/channel/channel_args.h"
61
- #include "src/core/lib/channel/channel_stack.h"
62
- #include "src/core/lib/channel/channel_trace.h"
63
- #include "src/core/lib/channel/status_util.h"
64
- #include "src/core/lib/config/core_configuration.h"
65
- #include "src/core/lib/debug/trace.h"
66
- #include "src/core/lib/gpr/useful.h"
67
- #include "src/core/lib/gprpp/debug_location.h"
68
- #include "src/core/lib/gprpp/sync.h"
69
- #include "src/core/lib/gprpp/work_serializer.h"
70
- #include "src/core/lib/handshaker/proxy_mapper_registry.h"
71
- #include "src/core/lib/iomgr/exec_ctx.h"
72
- #include "src/core/lib/iomgr/polling_entity.h"
73
- #include "src/core/lib/iomgr/pollset_set.h"
74
- #include "src/core/lib/json/json.h"
75
- #include "src/core/lib/load_balancing/lb_policy_registry.h"
76
- #include "src/core/lib/load_balancing/subchannel_interface.h"
77
- #include "src/core/lib/resolver/resolver_registry.h"
78
- #include "src/core/lib/resolver/server_address.h"
79
- #include "src/core/lib/service_config/service_config_call_data.h"
80
- #include "src/core/lib/service_config/service_config_impl.h"
81
- #include "src/core/lib/slice/slice_internal.h"
82
- #include "src/core/lib/slice/slice_refcount.h"
83
- #include "src/core/lib/surface/channel.h"
84
- #include "src/core/lib/transport/connectivity_state.h"
85
- #include "src/core/lib/transport/error_utils.h"
86
- #include "src/core/lib/transport/metadata_batch.h"
87
-
88
- //
89
- // Client channel filter
90
- //
91
-
92
- #define GRPC_ARG_HEALTH_CHECK_SERVICE_NAME \
93
- "grpc.internal.health_check_service_name"
94
-
95
- namespace grpc_core {
96
-
97
- using internal::ClientChannelMethodParsedConfig;
98
-
99
- TraceFlag grpc_client_channel_trace(false, "client_channel");
100
- TraceFlag grpc_client_channel_call_trace(false, "client_channel_call");
101
- TraceFlag grpc_client_channel_lb_call_trace(false, "client_channel_lb_call");
102
-
103
- //
104
- // ClientChannel::CallData definition
105
- //
106
-
107
- class ClientChannel::CallData {
108
- public:
109
- static grpc_error_handle Init(grpc_call_element* elem,
110
- const grpc_call_element_args* args);
111
- static void Destroy(grpc_call_element* elem,
112
- const grpc_call_final_info* final_info,
113
- grpc_closure* then_schedule_closure);
114
- static void StartTransportStreamOpBatch(
115
- grpc_call_element* elem, grpc_transport_stream_op_batch* batch);
116
- static void SetPollent(grpc_call_element* elem, grpc_polling_entity* pollent);
117
-
118
- // Invoked by channel for queued calls when name resolution is completed.
119
- static void CheckResolution(void* arg, grpc_error_handle error);
120
- // Helper function for applying the service config to a call while
121
- // holding ClientChannel::resolution_mu_.
122
- // Returns true if the service config has been applied to the call, in which
123
- // case the caller must invoke ResolutionDone() or AsyncResolutionDone()
124
- // with the returned error.
125
- bool CheckResolutionLocked(grpc_call_element* elem, grpc_error_handle* error)
126
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::resolution_mu_);
127
- // Schedules a callback to continue processing the call once
128
- // resolution is complete. The callback will not run until after this
129
- // method returns.
130
- void AsyncResolutionDone(grpc_call_element* elem, grpc_error_handle error);
131
-
132
- private:
133
- class ResolverQueuedCallCanceller;
134
-
135
- CallData(grpc_call_element* elem, const ClientChannel& chand,
136
- const grpc_call_element_args& args);
137
- ~CallData();
138
-
139
- // Returns the index into pending_batches_ to be used for batch.
140
- static size_t GetBatchIndex(grpc_transport_stream_op_batch* batch);
141
- void PendingBatchesAdd(grpc_call_element* elem,
142
- grpc_transport_stream_op_batch* batch);
143
- static void FailPendingBatchInCallCombiner(void* arg,
144
- grpc_error_handle error);
145
- // A predicate type and some useful implementations for PendingBatchesFail().
146
- typedef bool (*YieldCallCombinerPredicate)(
147
- const CallCombinerClosureList& closures);
148
- static bool YieldCallCombiner(const CallCombinerClosureList& /*closures*/) {
149
- return true;
150
- }
151
- static bool NoYieldCallCombiner(const CallCombinerClosureList& /*closures*/) {
152
- return false;
153
- }
154
- static bool YieldCallCombinerIfPendingBatchesFound(
155
- const CallCombinerClosureList& closures) {
156
- return closures.size() > 0;
157
- }
158
- // Fails all pending batches.
159
- // If yield_call_combiner_predicate returns true, assumes responsibility for
160
- // yielding the call combiner.
161
- void PendingBatchesFail(
162
- grpc_call_element* elem, grpc_error_handle error,
163
- YieldCallCombinerPredicate yield_call_combiner_predicate);
164
- static void ResumePendingBatchInCallCombiner(void* arg,
165
- grpc_error_handle ignored);
166
- // Resumes all pending batches on lb_call_.
167
- void PendingBatchesResume(grpc_call_element* elem);
168
-
169
- // Applies service config to the call. Must be invoked once we know
170
- // that the resolver has returned results to the channel.
171
- // If an error is returned, the error indicates the status with which
172
- // the call should be failed.
173
- grpc_error_handle ApplyServiceConfigToCallLocked(
174
- grpc_call_element* elem, grpc_metadata_batch* initial_metadata)
175
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::resolution_mu_);
176
- // Invoked when the resolver result is applied to the caller, on both
177
- // success or failure.
178
- static void ResolutionDone(void* arg, grpc_error_handle error);
179
- // Removes the call (if present) from the channel's list of calls queued
180
- // for name resolution.
181
- void MaybeRemoveCallFromResolverQueuedCallsLocked(grpc_call_element* elem)
182
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::resolution_mu_);
183
- // Adds the call (if not already present) to the channel's list of
184
- // calls queued for name resolution.
185
- void MaybeAddCallToResolverQueuedCallsLocked(grpc_call_element* elem)
186
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::resolution_mu_);
187
-
188
- static void RecvTrailingMetadataReadyForConfigSelectorCommitCallback(
189
- void* arg, grpc_error_handle error);
190
-
191
- void CreateDynamicCall(grpc_call_element* elem);
192
-
193
- // State for handling deadlines.
194
- // The code in deadline_filter.c requires this to be the first field.
195
- // TODO(roth): This is slightly sub-optimal in that grpc_deadline_state
196
- // and this struct both independently store pointers to the call stack
197
- // and call combiner. If/when we have time, find a way to avoid this
198
- // without breaking the grpc_deadline_state abstraction.
199
- grpc_deadline_state deadline_state_;
200
-
201
- grpc_slice path_; // Request path.
202
- gpr_cycle_counter call_start_time_;
203
- Timestamp deadline_;
204
- Arena* arena_;
205
- grpc_call_stack* owning_call_;
206
- CallCombiner* call_combiner_;
207
- grpc_call_context_element* call_context_;
208
-
209
- grpc_polling_entity* pollent_ = nullptr;
210
-
211
- grpc_closure resolution_done_closure_;
212
-
213
- // Accessed while holding ClientChannel::resolution_mu_.
214
- bool service_config_applied_ ABSL_GUARDED_BY(&ClientChannel::resolution_mu_) =
215
- false;
216
- bool queued_pending_resolver_result_
217
- ABSL_GUARDED_BY(&ClientChannel::resolution_mu_) = false;
218
- ClientChannel::ResolverQueuedCall resolver_queued_call_
219
- ABSL_GUARDED_BY(&ClientChannel::resolution_mu_);
220
- ResolverQueuedCallCanceller* resolver_call_canceller_
221
- ABSL_GUARDED_BY(&ClientChannel::resolution_mu_) = nullptr;
222
-
223
- grpc_closure* original_recv_trailing_metadata_ready_ = nullptr;
224
- grpc_closure recv_trailing_metadata_ready_;
225
-
226
- RefCountedPtr<DynamicFilters> dynamic_filters_;
227
- RefCountedPtr<DynamicFilters::Call> dynamic_call_;
228
-
229
- // Batches are added to this list when received from above.
230
- // They are removed when we are done handling the batch (i.e., when
231
- // either we have invoked all of the batch's callbacks or we have
232
- // passed the batch down to the LB call and are not intercepting any of
233
- // its callbacks).
234
- grpc_transport_stream_op_batch* pending_batches_[MAX_PENDING_BATCHES] = {};
235
-
236
- // Set when we get a cancel_stream op.
237
- grpc_error_handle cancel_error_ = GRPC_ERROR_NONE;
238
- };
239
-
240
- //
241
- // Filter vtable
242
- //
243
-
244
- const grpc_channel_filter ClientChannel::kFilterVtable = {
245
- ClientChannel::CallData::StartTransportStreamOpBatch,
246
- nullptr,
247
- ClientChannel::StartTransportOp,
248
- sizeof(ClientChannel::CallData),
249
- ClientChannel::CallData::Init,
250
- ClientChannel::CallData::SetPollent,
251
- ClientChannel::CallData::Destroy,
252
- sizeof(ClientChannel),
253
- ClientChannel::Init,
254
- grpc_channel_stack_no_post_init,
255
- ClientChannel::Destroy,
256
- ClientChannel::GetChannelInfo,
257
- "client-channel",
258
- };
259
-
260
- //
261
- // dynamic termination filter
262
- //
263
-
264
- namespace {
265
-
266
- class DynamicTerminationFilter {
267
- public:
268
- class CallData;
269
-
270
- static const grpc_channel_filter kFilterVtable;
271
-
272
- static grpc_error_handle Init(grpc_channel_element* elem,
273
- grpc_channel_element_args* args) {
274
- GPR_ASSERT(args->is_last);
275
- GPR_ASSERT(elem->filter == &kFilterVtable);
276
- new (elem->channel_data) DynamicTerminationFilter(args->channel_args);
277
- return GRPC_ERROR_NONE;
278
- }
279
-
280
- static void Destroy(grpc_channel_element* elem) {
281
- auto* chand = static_cast<DynamicTerminationFilter*>(elem->channel_data);
282
- chand->~DynamicTerminationFilter();
283
- }
284
-
285
- // Will never be called.
286
- static void StartTransportOp(grpc_channel_element* /*elem*/,
287
- grpc_transport_op* /*op*/) {}
288
- static void GetChannelInfo(grpc_channel_element* /*elem*/,
289
- const grpc_channel_info* /*info*/) {}
290
-
291
- private:
292
- explicit DynamicTerminationFilter(const grpc_channel_args* args)
293
- : chand_(grpc_channel_args_find_pointer<ClientChannel>(
294
- args, GRPC_ARG_CLIENT_CHANNEL)) {}
295
-
296
- ClientChannel* chand_;
297
- };
298
-
299
- class DynamicTerminationFilter::CallData {
300
- public:
301
- static grpc_error_handle Init(grpc_call_element* elem,
302
- const grpc_call_element_args* args) {
303
- new (elem->call_data) CallData(*args);
304
- return GRPC_ERROR_NONE;
305
- }
306
-
307
- static void Destroy(grpc_call_element* elem,
308
- const grpc_call_final_info* /*final_info*/,
309
- grpc_closure* then_schedule_closure) {
310
- auto* calld = static_cast<CallData*>(elem->call_data);
311
- RefCountedPtr<SubchannelCall> subchannel_call;
312
- if (GPR_LIKELY(calld->lb_call_ != nullptr)) {
313
- subchannel_call = calld->lb_call_->subchannel_call();
314
- }
315
- calld->~CallData();
316
- if (GPR_LIKELY(subchannel_call != nullptr)) {
317
- subchannel_call->SetAfterCallStackDestroy(then_schedule_closure);
318
- } else {
319
- // TODO(yashkt) : This can potentially be a Closure::Run
320
- ExecCtx::Run(DEBUG_LOCATION, then_schedule_closure, GRPC_ERROR_NONE);
321
- }
322
- }
323
-
324
- static void StartTransportStreamOpBatch(
325
- grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
326
- auto* calld = static_cast<CallData*>(elem->call_data);
327
- calld->lb_call_->StartTransportStreamOpBatch(batch);
328
- }
329
-
330
- static void SetPollent(grpc_call_element* elem,
331
- grpc_polling_entity* pollent) {
332
- auto* calld = static_cast<CallData*>(elem->call_data);
333
- auto* chand = static_cast<DynamicTerminationFilter*>(elem->channel_data);
334
- ClientChannel* client_channel = chand->chand_;
335
- grpc_call_element_args args = {calld->owning_call_, nullptr,
336
- calld->call_context_, calld->path_,
337
- /*start_time=*/0, calld->deadline_,
338
- calld->arena_, calld->call_combiner_};
339
- auto* service_config_call_data =
340
- static_cast<ClientChannelServiceConfigCallData*>(
341
- calld->call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
342
- calld->lb_call_ = client_channel->CreateLoadBalancedCall(
343
- args, pollent, nullptr,
344
- service_config_call_data->call_dispatch_controller(),
345
- /*is_transparent_retry=*/false);
346
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
347
- gpr_log(GPR_INFO,
348
- "chand=%p dynamic_termination_calld=%p: create lb_call=%p", chand,
349
- client_channel, calld->lb_call_.get());
350
- }
351
- }
352
-
353
- private:
354
- explicit CallData(const grpc_call_element_args& args)
355
- : path_(grpc_slice_ref_internal(args.path)),
356
- deadline_(args.deadline),
357
- arena_(args.arena),
358
- owning_call_(args.call_stack),
359
- call_combiner_(args.call_combiner),
360
- call_context_(args.context) {}
361
-
362
- ~CallData() { grpc_slice_unref_internal(path_); }
363
-
364
- grpc_slice path_; // Request path.
365
- Timestamp deadline_;
366
- Arena* arena_;
367
- grpc_call_stack* owning_call_;
368
- CallCombiner* call_combiner_;
369
- grpc_call_context_element* call_context_;
370
-
371
- OrphanablePtr<ClientChannel::LoadBalancedCall> lb_call_;
372
- };
373
-
374
- const grpc_channel_filter DynamicTerminationFilter::kFilterVtable = {
375
- DynamicTerminationFilter::CallData::StartTransportStreamOpBatch,
376
- nullptr,
377
- DynamicTerminationFilter::StartTransportOp,
378
- sizeof(DynamicTerminationFilter::CallData),
379
- DynamicTerminationFilter::CallData::Init,
380
- DynamicTerminationFilter::CallData::SetPollent,
381
- DynamicTerminationFilter::CallData::Destroy,
382
- sizeof(DynamicTerminationFilter),
383
- DynamicTerminationFilter::Init,
384
- grpc_channel_stack_no_post_init,
385
- DynamicTerminationFilter::Destroy,
386
- DynamicTerminationFilter::GetChannelInfo,
387
- "dynamic_filter_termination",
388
- };
389
-
390
- } // namespace
391
-
392
- //
393
- // ClientChannel::ResolverResultHandler
394
- //
395
-
396
- class ClientChannel::ResolverResultHandler : public Resolver::ResultHandler {
397
- public:
398
- explicit ResolverResultHandler(ClientChannel* chand) : chand_(chand) {
399
- GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ResolverResultHandler");
400
- }
401
-
402
- ~ResolverResultHandler() override {
403
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
404
- gpr_log(GPR_INFO, "chand=%p: resolver shutdown complete", chand_);
405
- }
406
- GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "ResolverResultHandler");
407
- }
408
-
409
- void ReportResult(Resolver::Result result) override
410
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
411
- chand_->OnResolverResultChangedLocked(std::move(result));
412
- }
413
-
414
- private:
415
- ClientChannel* chand_;
416
- };
417
-
418
- //
419
- // ClientChannel::SubchannelWrapper
420
- //
421
-
422
- // This class is a wrapper for Subchannel that hides details of the
423
- // channel's implementation (such as the health check service name and
424
- // connected subchannel) from the LB policy API.
425
- //
426
- // Note that no synchronization is needed here, because even if the
427
- // underlying subchannel is shared between channels, this wrapper will only
428
- // be used within one channel, so it will always be synchronized by the
429
- // control plane work_serializer.
430
- class ClientChannel::SubchannelWrapper : public SubchannelInterface {
431
- public:
432
- SubchannelWrapper(ClientChannel* chand, RefCountedPtr<Subchannel> subchannel,
433
- absl::optional<std::string> health_check_service_name)
434
- : SubchannelInterface(GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)
435
- ? "SubchannelWrapper"
436
- : nullptr),
437
- chand_(chand),
438
- subchannel_(std::move(subchannel)),
439
- health_check_service_name_(std::move(health_check_service_name)) {
440
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
441
- gpr_log(GPR_INFO,
442
- "chand=%p: creating subchannel wrapper %p for subchannel %p",
443
- chand, this, subchannel_.get());
444
- }
445
- GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "SubchannelWrapper");
446
- if (chand_->channelz_node_ != nullptr) {
447
- auto* subchannel_node = subchannel_->channelz_node();
448
- if (subchannel_node != nullptr) {
449
- auto it = chand_->subchannel_refcount_map_.find(subchannel_.get());
450
- if (it == chand_->subchannel_refcount_map_.end()) {
451
- chand_->channelz_node_->AddChildSubchannel(subchannel_node->uuid());
452
- it = chand_->subchannel_refcount_map_.emplace(subchannel_.get(), 0)
453
- .first;
454
- }
455
- ++it->second;
456
- }
457
- }
458
- chand_->subchannel_wrappers_.insert(this);
459
- }
460
-
461
- ~SubchannelWrapper() override {
462
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
463
- gpr_log(GPR_INFO,
464
- "chand=%p: destroying subchannel wrapper %p for subchannel %p",
465
- chand_, this, subchannel_.get());
466
- }
467
- chand_->subchannel_wrappers_.erase(this);
468
- if (chand_->channelz_node_ != nullptr) {
469
- auto* subchannel_node = subchannel_->channelz_node();
470
- if (subchannel_node != nullptr) {
471
- auto it = chand_->subchannel_refcount_map_.find(subchannel_.get());
472
- GPR_ASSERT(it != chand_->subchannel_refcount_map_.end());
473
- --it->second;
474
- if (it->second == 0) {
475
- chand_->channelz_node_->RemoveChildSubchannel(
476
- subchannel_node->uuid());
477
- chand_->subchannel_refcount_map_.erase(it);
478
- }
479
- }
480
- }
481
- GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "SubchannelWrapper");
482
- }
483
-
484
- void WatchConnectivityState(
485
- std::unique_ptr<ConnectivityStateWatcherInterface> watcher) override
486
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
487
- auto& watcher_wrapper = watcher_map_[watcher.get()];
488
- GPR_ASSERT(watcher_wrapper == nullptr);
489
- watcher_wrapper = new WatcherWrapper(std::move(watcher),
490
- Ref(DEBUG_LOCATION, "WatcherWrapper"));
491
- subchannel_->WatchConnectivityState(
492
- health_check_service_name_,
493
- RefCountedPtr<Subchannel::ConnectivityStateWatcherInterface>(
494
- watcher_wrapper));
495
- }
496
-
497
- void CancelConnectivityStateWatch(ConnectivityStateWatcherInterface* watcher)
498
- override ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
499
- auto it = watcher_map_.find(watcher);
500
- GPR_ASSERT(it != watcher_map_.end());
501
- subchannel_->CancelConnectivityStateWatch(health_check_service_name_,
502
- it->second);
503
- watcher_map_.erase(it);
504
- }
505
-
506
- RefCountedPtr<ConnectedSubchannel> connected_subchannel() const {
507
- return subchannel_->connected_subchannel();
508
- }
509
-
510
- void RequestConnection() override { subchannel_->RequestConnection(); }
511
-
512
- void ResetBackoff() override { subchannel_->ResetBackoff(); }
513
-
514
- void AddDataWatcher(std::unique_ptr<DataWatcherInterface> watcher) override
515
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
516
- std::unique_ptr<InternalSubchannelDataWatcherInterface> internal_watcher(
517
- static_cast<InternalSubchannelDataWatcherInterface*>(
518
- watcher.release()));
519
- internal_watcher->SetSubchannel(subchannel_.get());
520
- data_watchers_.push_back(std::move(internal_watcher));
521
- }
522
-
523
- ChannelArgs channel_args() override { return subchannel_->channel_args(); }
524
-
525
- void ThrottleKeepaliveTime(int new_keepalive_time) {
526
- subchannel_->ThrottleKeepaliveTime(new_keepalive_time);
527
- }
528
-
529
- private:
530
- // Subchannel and SubchannelInterface have different interfaces for
531
- // their respective ConnectivityStateWatcherInterface classes.
532
- // The one in Subchannel updates the ConnectedSubchannel along with
533
- // the state, whereas the one in SubchannelInterface does not expose
534
- // the ConnectedSubchannel.
535
- //
536
- // This wrapper provides a bridge between the two. It implements
537
- // Subchannel::ConnectivityStateWatcherInterface and wraps
538
- // the instance of SubchannelInterface::ConnectivityStateWatcherInterface
539
- // that was passed in by the LB policy. We pass an instance of this
540
- // class to the underlying Subchannel, and when we get updates from
541
- // the subchannel, we pass those on to the wrapped watcher to return
542
- // the update to the LB policy. This allows us to set the connected
543
- // subchannel before passing the result back to the LB policy.
544
- class WatcherWrapper : public Subchannel::ConnectivityStateWatcherInterface {
545
- public:
546
- WatcherWrapper(
547
- std::unique_ptr<SubchannelInterface::ConnectivityStateWatcherInterface>
548
- watcher,
549
- RefCountedPtr<SubchannelWrapper> parent)
550
- : watcher_(std::move(watcher)), parent_(std::move(parent)) {}
551
-
552
- ~WatcherWrapper() override {
553
- auto* parent = parent_.release(); // ref owned by lambda
554
- parent->chand_->work_serializer_->Run(
555
- [parent]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
556
- *parent_->chand_->work_serializer_) {
557
- parent->Unref(DEBUG_LOCATION, "WatcherWrapper");
558
- },
559
- DEBUG_LOCATION);
560
- }
561
-
562
- void OnConnectivityStateChange() override {
563
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
564
- gpr_log(GPR_INFO,
565
- "chand=%p: connectivity change for subchannel wrapper %p "
566
- "subchannel %p; hopping into work_serializer",
567
- parent_->chand_, parent_.get(), parent_->subchannel_.get());
568
- }
569
- Ref().release(); // ref owned by lambda
570
- parent_->chand_->work_serializer_->Run(
571
- [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
572
- *parent_->chand_->work_serializer_) {
573
- ApplyUpdateInControlPlaneWorkSerializer();
574
- Unref();
575
- },
576
- DEBUG_LOCATION);
577
- }
578
-
579
- grpc_pollset_set* interested_parties() override {
580
- SubchannelInterface::ConnectivityStateWatcherInterface* watcher =
581
- watcher_.get();
582
- if (watcher_ == nullptr) watcher = replacement_->watcher_.get();
583
- return watcher->interested_parties();
584
- }
585
-
586
- WatcherWrapper* MakeReplacement() {
587
- auto* replacement = new WatcherWrapper(std::move(watcher_), parent_);
588
- replacement_ = replacement;
589
- return replacement;
590
- }
591
-
592
- private:
593
- void ApplyUpdateInControlPlaneWorkSerializer()
594
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*parent_->chand_->work_serializer_) {
595
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
596
- gpr_log(GPR_INFO,
597
- "chand=%p: processing connectivity change in work serializer "
598
- "for subchannel wrapper %p subchannel %p "
599
- "watcher=%p",
600
- parent_->chand_, parent_.get(), parent_->subchannel_.get(),
601
- watcher_.get());
602
- }
603
- ConnectivityStateChange state_change = PopConnectivityStateChange();
604
- absl::optional<absl::Cord> keepalive_throttling =
605
- state_change.status.GetPayload(kKeepaliveThrottlingKey);
606
- if (keepalive_throttling.has_value()) {
607
- int new_keepalive_time = -1;
608
- if (absl::SimpleAtoi(std::string(keepalive_throttling.value()),
609
- &new_keepalive_time)) {
610
- if (new_keepalive_time > parent_->chand_->keepalive_time_) {
611
- parent_->chand_->keepalive_time_ = new_keepalive_time;
612
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
613
- gpr_log(GPR_INFO, "chand=%p: throttling keepalive time to %d",
614
- parent_->chand_, parent_->chand_->keepalive_time_);
615
- }
616
- // Propagate the new keepalive time to all subchannels. This is so
617
- // that new transports created by any subchannel (and not just the
618
- // subchannel that received the GOAWAY), use the new keepalive time.
619
- for (auto* subchannel_wrapper :
620
- parent_->chand_->subchannel_wrappers_) {
621
- subchannel_wrapper->ThrottleKeepaliveTime(new_keepalive_time);
622
- }
623
- }
624
- } else {
625
- gpr_log(GPR_ERROR, "chand=%p: Illegal keepalive throttling value %s",
626
- parent_->chand_,
627
- std::string(keepalive_throttling.value()).c_str());
628
- }
629
- }
630
- // Ignore update if the parent WatcherWrapper has been replaced
631
- // since this callback was scheduled.
632
- if (watcher_ != nullptr) {
633
- // Propagate status only in state TF.
634
- // We specifically want to avoid propagating the status for
635
- // state IDLE that the real subchannel gave us only for the
636
- // purpose of keepalive propagation.
637
- if (state_change.state != GRPC_CHANNEL_TRANSIENT_FAILURE) {
638
- state_change.status = absl::OkStatus();
639
- }
640
- watcher_->OnConnectivityStateChange(state_change.state,
641
- state_change.status);
642
- }
643
- }
644
-
645
- std::unique_ptr<SubchannelInterface::ConnectivityStateWatcherInterface>
646
- watcher_;
647
- RefCountedPtr<SubchannelWrapper> parent_;
648
- WatcherWrapper* replacement_ = nullptr;
649
- };
650
-
651
- ClientChannel* chand_;
652
- RefCountedPtr<Subchannel> subchannel_;
653
- absl::optional<std::string> health_check_service_name_;
654
- // Maps from the address of the watcher passed to us by the LB policy
655
- // to the address of the WrapperWatcher that we passed to the underlying
656
- // subchannel. This is needed so that when the LB policy calls
657
- // CancelConnectivityStateWatch() with its watcher, we know the
658
- // corresponding WrapperWatcher to cancel on the underlying subchannel.
659
- std::map<ConnectivityStateWatcherInterface*, WatcherWrapper*> watcher_map_
660
- ABSL_GUARDED_BY(*chand_->work_serializer_);
661
- std::vector<std::unique_ptr<InternalSubchannelDataWatcherInterface>>
662
- data_watchers_ ABSL_GUARDED_BY(*chand_->work_serializer_);
663
- };
664
-
665
- //
666
- // ClientChannel::ExternalConnectivityWatcher
667
- //
668
-
669
- ClientChannel::ExternalConnectivityWatcher::ExternalConnectivityWatcher(
670
- ClientChannel* chand, grpc_polling_entity pollent,
671
- grpc_connectivity_state* state, grpc_closure* on_complete,
672
- grpc_closure* watcher_timer_init)
673
- : chand_(chand),
674
- pollent_(pollent),
675
- initial_state_(*state),
676
- state_(state),
677
- on_complete_(on_complete),
678
- watcher_timer_init_(watcher_timer_init) {
679
- grpc_polling_entity_add_to_pollset_set(&pollent_,
680
- chand_->interested_parties_);
681
- GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ExternalConnectivityWatcher");
682
- {
683
- MutexLock lock(&chand_->external_watchers_mu_);
684
- // Will be deleted when the watch is complete.
685
- GPR_ASSERT(chand->external_watchers_[on_complete] == nullptr);
686
- // Store a ref to the watcher in the external_watchers_ map.
687
- chand->external_watchers_[on_complete] =
688
- Ref(DEBUG_LOCATION, "AddWatcherToExternalWatchersMapLocked");
689
- }
690
- // Pass the ref from creating the object to Start().
691
- chand_->work_serializer_->Run(
692
- [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
693
- // The ref is passed to AddWatcherLocked().
694
- AddWatcherLocked();
695
- },
696
- DEBUG_LOCATION);
697
- }
698
-
699
- ClientChannel::ExternalConnectivityWatcher::~ExternalConnectivityWatcher() {
700
- grpc_polling_entity_del_from_pollset_set(&pollent_,
701
- chand_->interested_parties_);
702
- GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_,
703
- "ExternalConnectivityWatcher");
704
- }
705
-
706
- void ClientChannel::ExternalConnectivityWatcher::
707
- RemoveWatcherFromExternalWatchersMap(ClientChannel* chand,
708
- grpc_closure* on_complete,
709
- bool cancel) {
710
- RefCountedPtr<ExternalConnectivityWatcher> watcher;
711
- {
712
- MutexLock lock(&chand->external_watchers_mu_);
713
- auto it = chand->external_watchers_.find(on_complete);
714
- if (it != chand->external_watchers_.end()) {
715
- watcher = std::move(it->second);
716
- chand->external_watchers_.erase(it);
717
- }
718
- }
719
- // watcher->Cancel() will hop into the WorkSerializer, so we have to unlock
720
- // the mutex before calling it.
721
- if (watcher != nullptr && cancel) watcher->Cancel();
722
- }
723
-
724
- void ClientChannel::ExternalConnectivityWatcher::Notify(
725
- grpc_connectivity_state state, const absl::Status& /* status */) {
726
- bool done = false;
727
- if (!done_.compare_exchange_strong(done, true, std::memory_order_relaxed,
728
- std::memory_order_relaxed)) {
729
- return; // Already done.
730
- }
731
- // Remove external watcher.
732
- ExternalConnectivityWatcher::RemoveWatcherFromExternalWatchersMap(
733
- chand_, on_complete_, /*cancel=*/false);
734
- // Report new state to the user.
735
- *state_ = state;
736
- ExecCtx::Run(DEBUG_LOCATION, on_complete_, GRPC_ERROR_NONE);
737
- // Hop back into the work_serializer to clean up.
738
- // Not needed in state SHUTDOWN, because the tracker will
739
- // automatically remove all watchers in that case.
740
- // Note: The callback takes a ref in case the ref inside the state tracker
741
- // gets removed before the callback runs via a SHUTDOWN notification.
742
- if (state != GRPC_CHANNEL_SHUTDOWN) {
743
- Ref(DEBUG_LOCATION, "RemoveWatcherLocked()").release();
744
- chand_->work_serializer_->Run(
745
- [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
746
- RemoveWatcherLocked();
747
- Unref(DEBUG_LOCATION, "RemoveWatcherLocked()");
748
- },
749
- DEBUG_LOCATION);
750
- }
751
- }
752
-
753
- void ClientChannel::ExternalConnectivityWatcher::Cancel() {
754
- bool done = false;
755
- if (!done_.compare_exchange_strong(done, true, std::memory_order_relaxed,
756
- std::memory_order_relaxed)) {
757
- return; // Already done.
758
- }
759
- ExecCtx::Run(DEBUG_LOCATION, on_complete_, GRPC_ERROR_CANCELLED);
760
- // Hop back into the work_serializer to clean up.
761
- // Note: The callback takes a ref in case the ref inside the state tracker
762
- // gets removed before the callback runs via a SHUTDOWN notification.
763
- Ref(DEBUG_LOCATION, "RemoveWatcherLocked()").release();
764
- chand_->work_serializer_->Run(
765
- [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
766
- RemoveWatcherLocked();
767
- Unref(DEBUG_LOCATION, "RemoveWatcherLocked()");
768
- },
769
- DEBUG_LOCATION);
770
- }
771
-
772
- void ClientChannel::ExternalConnectivityWatcher::AddWatcherLocked() {
773
- Closure::Run(DEBUG_LOCATION, watcher_timer_init_, GRPC_ERROR_NONE);
774
- // Add new watcher. Pass the ref of the object from creation to OrphanablePtr.
775
- chand_->state_tracker_.AddWatcher(
776
- initial_state_, OrphanablePtr<ConnectivityStateWatcherInterface>(this));
777
- }
778
-
779
- void ClientChannel::ExternalConnectivityWatcher::RemoveWatcherLocked() {
780
- chand_->state_tracker_.RemoveWatcher(this);
781
- }
782
-
783
- //
784
- // ClientChannel::ConnectivityWatcherAdder
785
- //
786
-
787
- class ClientChannel::ConnectivityWatcherAdder {
788
- public:
789
- ConnectivityWatcherAdder(
790
- ClientChannel* chand, grpc_connectivity_state initial_state,
791
- OrphanablePtr<AsyncConnectivityStateWatcherInterface> watcher)
792
- : chand_(chand),
793
- initial_state_(initial_state),
794
- watcher_(std::move(watcher)) {
795
- GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ConnectivityWatcherAdder");
796
- chand_->work_serializer_->Run(
797
- [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
798
- AddWatcherLocked();
799
- },
800
- DEBUG_LOCATION);
801
- }
802
-
803
- private:
804
- void AddWatcherLocked()
805
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
806
- chand_->state_tracker_.AddWatcher(initial_state_, std::move(watcher_));
807
- GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_, "ConnectivityWatcherAdder");
808
- delete this;
809
- }
810
-
811
- ClientChannel* chand_;
812
- grpc_connectivity_state initial_state_;
813
- OrphanablePtr<AsyncConnectivityStateWatcherInterface> watcher_;
814
- };
815
-
816
- //
817
- // ClientChannel::ConnectivityWatcherRemover
818
- //
819
-
820
- class ClientChannel::ConnectivityWatcherRemover {
821
- public:
822
- ConnectivityWatcherRemover(ClientChannel* chand,
823
- AsyncConnectivityStateWatcherInterface* watcher)
824
- : chand_(chand), watcher_(watcher) {
825
- GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ConnectivityWatcherRemover");
826
- chand_->work_serializer_->Run(
827
- [this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
828
- RemoveWatcherLocked();
829
- },
830
- DEBUG_LOCATION);
831
- }
832
-
833
- private:
834
- void RemoveWatcherLocked()
835
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
836
- chand_->state_tracker_.RemoveWatcher(watcher_);
837
- GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_,
838
- "ConnectivityWatcherRemover");
839
- delete this;
840
- }
841
-
842
- ClientChannel* chand_;
843
- AsyncConnectivityStateWatcherInterface* watcher_;
844
- };
845
-
846
- //
847
- // ClientChannel::ClientChannelControlHelper
848
- //
849
-
850
- class ClientChannel::ClientChannelControlHelper
851
- : public LoadBalancingPolicy::ChannelControlHelper {
852
- public:
853
- explicit ClientChannelControlHelper(ClientChannel* chand) : chand_(chand) {
854
- GRPC_CHANNEL_STACK_REF(chand_->owning_stack_, "ClientChannelControlHelper");
855
- }
856
-
857
- ~ClientChannelControlHelper() override {
858
- GRPC_CHANNEL_STACK_UNREF(chand_->owning_stack_,
859
- "ClientChannelControlHelper");
860
- }
861
-
862
- RefCountedPtr<SubchannelInterface> CreateSubchannel(
863
- ServerAddress address, const ChannelArgs& args) override
864
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
865
- if (chand_->resolver_ == nullptr) return nullptr; // Shutting down.
866
- // Determine health check service name.
867
- absl::optional<std::string> health_check_service_name;
868
- if (!args.GetBool(GRPC_ARG_INHIBIT_HEALTH_CHECKING).value_or(false)) {
869
- health_check_service_name =
870
- args.GetOwnedString(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME);
871
- }
872
- // Construct channel args for subchannel.
873
- ChannelArgs subchannel_args = ClientChannel::MakeSubchannelArgs(
874
- args, address.args(), chand_->subchannel_pool_,
875
- chand_->default_authority_);
876
- // Create subchannel.
877
- RefCountedPtr<Subchannel> subchannel =
878
- chand_->client_channel_factory_->CreateSubchannel(address.address(),
879
- subchannel_args);
880
- if (subchannel == nullptr) return nullptr;
881
- // Make sure the subchannel has updated keepalive time.
882
- subchannel->ThrottleKeepaliveTime(chand_->keepalive_time_);
883
- // Create and return wrapper for the subchannel.
884
- return MakeRefCounted<SubchannelWrapper>(
885
- chand_, std::move(subchannel), std::move(health_check_service_name));
886
- }
887
-
888
- void UpdateState(
889
- grpc_connectivity_state state, const absl::Status& status,
890
- std::unique_ptr<LoadBalancingPolicy::SubchannelPicker> picker) override
891
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
892
- if (chand_->resolver_ == nullptr) return; // Shutting down.
893
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
894
- const char* extra = GRPC_ERROR_IS_NONE(chand_->disconnect_error_)
895
- ? ""
896
- : " (ignoring -- channel shutting down)";
897
- gpr_log(GPR_INFO, "chand=%p: update: state=%s status=(%s) picker=%p%s",
898
- chand_, ConnectivityStateName(state), status.ToString().c_str(),
899
- picker.get(), extra);
900
- }
901
- // Do update only if not shutting down.
902
- if (GRPC_ERROR_IS_NONE(chand_->disconnect_error_)) {
903
- chand_->UpdateStateAndPickerLocked(state, status, "helper",
904
- std::move(picker));
905
- }
906
- }
907
-
908
- void RequestReresolution() override
909
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
910
- if (chand_->resolver_ == nullptr) return; // Shutting down.
911
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
912
- gpr_log(GPR_INFO, "chand=%p: started name re-resolving", chand_);
913
- }
914
- chand_->resolver_->RequestReresolutionLocked();
915
- }
916
-
917
- absl::string_view GetAuthority() override {
918
- return chand_->default_authority_;
919
- }
920
-
921
- void AddTraceEvent(TraceSeverity severity, absl::string_view message) override
922
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand_->work_serializer_) {
923
- if (chand_->resolver_ == nullptr) return; // Shutting down.
924
- if (chand_->channelz_node_ != nullptr) {
925
- chand_->channelz_node_->AddTraceEvent(
926
- ConvertSeverityEnum(severity),
927
- grpc_slice_from_copied_buffer(message.data(), message.size()));
928
- }
929
- }
930
-
931
- private:
932
- static channelz::ChannelTrace::Severity ConvertSeverityEnum(
933
- TraceSeverity severity) {
934
- if (severity == TRACE_INFO) return channelz::ChannelTrace::Info;
935
- if (severity == TRACE_WARNING) return channelz::ChannelTrace::Warning;
936
- return channelz::ChannelTrace::Error;
937
- }
938
-
939
- ClientChannel* chand_;
940
- };
941
-
942
- //
943
- // ClientChannel implementation
944
- //
945
-
946
- ClientChannel* ClientChannel::GetFromChannel(Channel* channel) {
947
- grpc_channel_element* elem =
948
- grpc_channel_stack_last_element(channel->channel_stack());
949
- if (elem->filter != &kFilterVtable) return nullptr;
950
- return static_cast<ClientChannel*>(elem->channel_data);
951
- }
952
-
953
- grpc_error_handle ClientChannel::Init(grpc_channel_element* elem,
954
- grpc_channel_element_args* args) {
955
- GPR_ASSERT(args->is_last);
956
- GPR_ASSERT(elem->filter == &kFilterVtable);
957
- grpc_error_handle error = GRPC_ERROR_NONE;
958
- new (elem->channel_data) ClientChannel(args, &error);
959
- return error;
960
- }
961
-
962
- void ClientChannel::Destroy(grpc_channel_element* elem) {
963
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
964
- chand->~ClientChannel();
965
- }
966
-
967
- namespace {
968
-
969
- RefCountedPtr<SubchannelPoolInterface> GetSubchannelPool(
970
- const ChannelArgs& args) {
971
- if (args.GetBool(GRPC_ARG_USE_LOCAL_SUBCHANNEL_POOL).value_or(false)) {
972
- return MakeRefCounted<LocalSubchannelPool>();
973
- }
974
- return GlobalSubchannelPool::instance();
975
- }
976
-
977
- } // namespace
978
-
979
- ClientChannel::ClientChannel(grpc_channel_element_args* args,
980
- grpc_error_handle* error)
981
- : channel_args_(ChannelArgs::FromC(args->channel_args)),
982
- deadline_checking_enabled_(grpc_deadline_checking_enabled(channel_args_)),
983
- owning_stack_(args->channel_stack),
984
- client_channel_factory_(channel_args_.GetObject<ClientChannelFactory>()),
985
- channelz_node_(channel_args_.GetObject<channelz::ChannelNode>()),
986
- interested_parties_(grpc_pollset_set_create()),
987
- service_config_parser_index_(
988
- internal::ClientChannelServiceConfigParser::ParserIndex()),
989
- work_serializer_(std::make_shared<WorkSerializer>()),
990
- state_tracker_("client_channel", GRPC_CHANNEL_IDLE),
991
- subchannel_pool_(GetSubchannelPool(channel_args_)) {
992
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
993
- gpr_log(GPR_INFO, "chand=%p: creating client_channel for channel stack %p",
994
- this, owning_stack_);
995
- }
996
- // Start backup polling.
997
- grpc_client_channel_start_backup_polling(interested_parties_);
998
- // Check client channel factory.
999
- if (client_channel_factory_ == nullptr) {
1000
- *error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
1001
- "Missing client channel factory in args for client channel filter");
1002
- return;
1003
- }
1004
- // Get default service config. If none is specified via the client API,
1005
- // we use an empty config.
1006
- absl::optional<absl::string_view> service_config_json =
1007
- channel_args_.GetString(GRPC_ARG_SERVICE_CONFIG);
1008
- if (!service_config_json.has_value()) service_config_json = "{}";
1009
- *error = GRPC_ERROR_NONE;
1010
- auto service_config =
1011
- ServiceConfigImpl::Create(channel_args_, *service_config_json);
1012
- if (!service_config.ok()) {
1013
- *error = absl_status_to_grpc_error(service_config.status());
1014
- return;
1015
- }
1016
- default_service_config_ = std::move(*service_config);
1017
- // Get URI to resolve, using proxy mapper if needed.
1018
- absl::optional<std::string> server_uri =
1019
- channel_args_.GetOwnedString(GRPC_ARG_SERVER_URI);
1020
- if (!server_uri.has_value()) {
1021
- *error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
1022
- "target URI channel arg missing or wrong type in client channel "
1023
- "filter");
1024
- return;
1025
- }
1026
- uri_to_resolve_ = CoreConfiguration::Get()
1027
- .proxy_mapper_registry()
1028
- .MapName(*server_uri, &channel_args_)
1029
- .value_or(*server_uri);
1030
- // Make sure the URI to resolve is valid, so that we know that
1031
- // resolver creation will succeed later.
1032
- if (!CoreConfiguration::Get().resolver_registry().IsValidTarget(
1033
- uri_to_resolve_)) {
1034
- *error = GRPC_ERROR_CREATE_FROM_CPP_STRING(
1035
- absl::StrCat("the target uri is not valid: ", uri_to_resolve_));
1036
- return;
1037
- }
1038
- // Strip out service config channel arg, so that it doesn't affect
1039
- // subchannel uniqueness when the args flow down to that layer.
1040
- channel_args_ = channel_args_.Remove(GRPC_ARG_SERVICE_CONFIG);
1041
- // Set initial keepalive time.
1042
- auto keepalive_arg = channel_args_.GetInt(GRPC_ARG_KEEPALIVE_TIME_MS);
1043
- if (keepalive_arg.has_value()) {
1044
- keepalive_time_ = Clamp(*keepalive_arg, 1, INT_MAX);
1045
- } else {
1046
- keepalive_time_ = -1; // unset
1047
- }
1048
- // Set default authority.
1049
- absl::optional<std::string> default_authority =
1050
- channel_args_.GetOwnedString(GRPC_ARG_DEFAULT_AUTHORITY);
1051
- if (!default_authority.has_value()) {
1052
- default_authority_ =
1053
- CoreConfiguration::Get().resolver_registry().GetDefaultAuthority(
1054
- *server_uri);
1055
- } else {
1056
- default_authority_ = std::move(*default_authority);
1057
- }
1058
- // Success.
1059
- *error = GRPC_ERROR_NONE;
1060
- }
1061
-
1062
- ClientChannel::~ClientChannel() {
1063
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1064
- gpr_log(GPR_INFO, "chand=%p: destroying channel", this);
1065
- }
1066
- DestroyResolverAndLbPolicyLocked();
1067
- // Stop backup polling.
1068
- grpc_client_channel_stop_backup_polling(interested_parties_);
1069
- grpc_pollset_set_destroy(interested_parties_);
1070
- GRPC_ERROR_UNREF(disconnect_error_);
1071
- }
1072
-
1073
- OrphanablePtr<ClientChannel::LoadBalancedCall>
1074
- ClientChannel::CreateLoadBalancedCall(
1075
- const grpc_call_element_args& args, grpc_polling_entity* pollent,
1076
- grpc_closure* on_call_destruction_complete,
1077
- ConfigSelector::CallDispatchController* call_dispatch_controller,
1078
- bool is_transparent_retry) {
1079
- return OrphanablePtr<LoadBalancedCall>(args.arena->New<LoadBalancedCall>(
1080
- this, args, pollent, on_call_destruction_complete,
1081
- call_dispatch_controller, is_transparent_retry));
1082
- }
1083
-
1084
- ChannelArgs ClientChannel::MakeSubchannelArgs(
1085
- const ChannelArgs& channel_args, const ChannelArgs& address_args,
1086
- const RefCountedPtr<SubchannelPoolInterface>& subchannel_pool,
1087
- const std::string& channel_default_authority) {
1088
- // Note that we start with the channel-level args and then apply the
1089
- // per-address args, so that if a value is present in both, the one
1090
- // in the channel-level args is used. This is particularly important
1091
- // for the GRPC_ARG_DEFAULT_AUTHORITY arg, which we want to allow
1092
- // resolvers to set on a per-address basis only if the application
1093
- // did not explicitly set it at the channel level.
1094
- return channel_args.UnionWith(address_args)
1095
- .SetObject(subchannel_pool)
1096
- // If we haven't already set the default authority arg (i.e., it
1097
- // was not explicitly set by the application nor overridden by
1098
- // the resolver), add it from the channel's default.
1099
- .SetIfUnset(GRPC_ARG_DEFAULT_AUTHORITY, channel_default_authority)
1100
- // Remove channel args that should not affect subchannel
1101
- // uniqueness.
1102
- .Remove(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME)
1103
- .Remove(GRPC_ARG_INHIBIT_HEALTH_CHECKING)
1104
- .Remove(GRPC_ARG_CHANNELZ_CHANNEL_NODE);
1105
- }
1106
-
1107
- namespace {
1108
-
1109
- RefCountedPtr<LoadBalancingPolicy::Config> ChooseLbPolicy(
1110
- const Resolver::Result& resolver_result,
1111
- const internal::ClientChannelGlobalParsedConfig* parsed_service_config) {
1112
- // Prefer the LB policy config found in the service config.
1113
- if (parsed_service_config->parsed_lb_config() != nullptr) {
1114
- return parsed_service_config->parsed_lb_config();
1115
- }
1116
- // Try the deprecated LB policy name from the service config.
1117
- // If not, try the setting from channel args.
1118
- absl::optional<absl::string_view> policy_name;
1119
- if (!parsed_service_config->parsed_deprecated_lb_policy().empty()) {
1120
- policy_name = parsed_service_config->parsed_deprecated_lb_policy();
1121
- } else {
1122
- policy_name = resolver_result.args.GetString(GRPC_ARG_LB_POLICY_NAME);
1123
- bool requires_config = false;
1124
- if (policy_name.has_value() &&
1125
- (!CoreConfiguration::Get()
1126
- .lb_policy_registry()
1127
- .LoadBalancingPolicyExists(*policy_name, &requires_config) ||
1128
- requires_config)) {
1129
- if (requires_config) {
1130
- gpr_log(GPR_ERROR,
1131
- "LB policy: %s passed through channel_args must not "
1132
- "require a config. Using pick_first instead.",
1133
- std::string(*policy_name).c_str());
1134
- } else {
1135
- gpr_log(GPR_ERROR,
1136
- "LB policy: %s passed through channel_args does not exist. "
1137
- "Using pick_first instead.",
1138
- std::string(*policy_name).c_str());
1139
- }
1140
- policy_name = "pick_first";
1141
- }
1142
- }
1143
- // Use pick_first if nothing was specified and we didn't select grpclb
1144
- // above.
1145
- if (!policy_name.has_value()) policy_name = "pick_first";
1146
- // Now that we have the policy name, construct an empty config for it.
1147
- Json config_json = Json::Array{Json::Object{
1148
- {std::string(*policy_name), Json::Object{}},
1149
- }};
1150
- auto lb_policy_config =
1151
- CoreConfiguration::Get().lb_policy_registry().ParseLoadBalancingConfig(
1152
- config_json);
1153
- // The policy name came from one of three places:
1154
- // - The deprecated loadBalancingPolicy field in the service config,
1155
- // in which case the code in ClientChannelServiceConfigParser
1156
- // already verified that the policy does not require a config.
1157
- // - One of the hard-coded values here, all of which are known to not
1158
- // require a config.
1159
- // - A channel arg, in which case we check that the specified policy exists
1160
- // and accepts an empty config. If not, we revert to using pick_first
1161
- // lb_policy
1162
- GPR_ASSERT(lb_policy_config.ok());
1163
- return std::move(*lb_policy_config);
1164
- }
1165
-
1166
- } // namespace
1167
-
1168
- void ClientChannel::OnResolverResultChangedLocked(Resolver::Result result) {
1169
- // Handle race conditions.
1170
- if (resolver_ == nullptr) return;
1171
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1172
- gpr_log(GPR_INFO, "chand=%p: got resolver result", this);
1173
- }
1174
- // Grab resolver result health callback.
1175
- auto resolver_callback = std::move(result.result_health_callback);
1176
- absl::Status resolver_result_status;
1177
- // We only want to trace the address resolution in the follow cases:
1178
- // (a) Address resolution resulted in service config change.
1179
- // (b) Address resolution that causes number of backends to go from
1180
- // zero to non-zero.
1181
- // (c) Address resolution that causes number of backends to go from
1182
- // non-zero to zero.
1183
- // (d) Address resolution that causes a new LB policy to be created.
1184
- //
1185
- // We track a list of strings to eventually be concatenated and traced.
1186
- std::vector<const char*> trace_strings;
1187
- const bool resolution_contains_addresses =
1188
- result.addresses.ok() && !result.addresses->empty();
1189
- if (!resolution_contains_addresses &&
1190
- previous_resolution_contained_addresses_) {
1191
- trace_strings.push_back("Address list became empty");
1192
- } else if (resolution_contains_addresses &&
1193
- !previous_resolution_contained_addresses_) {
1194
- trace_strings.push_back("Address list became non-empty");
1195
- }
1196
- previous_resolution_contained_addresses_ = resolution_contains_addresses;
1197
- std::string service_config_error_string_storage;
1198
- if (!result.service_config.ok()) {
1199
- service_config_error_string_storage =
1200
- result.service_config.status().ToString();
1201
- trace_strings.push_back(service_config_error_string_storage.c_str());
1202
- }
1203
- // Choose the service config.
1204
- RefCountedPtr<ServiceConfig> service_config;
1205
- RefCountedPtr<ConfigSelector> config_selector;
1206
- if (!result.service_config.ok()) {
1207
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1208
- gpr_log(GPR_INFO, "chand=%p: resolver returned service config error: %s",
1209
- this, result.service_config.status().ToString().c_str());
1210
- }
1211
- // If the service config was invalid, then fallback to the
1212
- // previously returned service config.
1213
- if (saved_service_config_ != nullptr) {
1214
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1215
- gpr_log(GPR_INFO,
1216
- "chand=%p: resolver returned invalid service config. "
1217
- "Continuing to use previous service config.",
1218
- this);
1219
- }
1220
- service_config = saved_service_config_;
1221
- config_selector = saved_config_selector_;
1222
- } else {
1223
- // We received a service config error and we don't have a
1224
- // previous service config to fall back to. Put the channel into
1225
- // TRANSIENT_FAILURE.
1226
- OnResolverErrorLocked(result.service_config.status());
1227
- trace_strings.push_back("no valid service config");
1228
- resolver_result_status =
1229
- absl::UnavailableError("no valid service config");
1230
- }
1231
- } else if (*result.service_config == nullptr) {
1232
- // Resolver did not return any service config.
1233
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1234
- gpr_log(GPR_INFO,
1235
- "chand=%p: resolver returned no service config. Using default "
1236
- "service config for channel.",
1237
- this);
1238
- }
1239
- service_config = default_service_config_;
1240
- } else {
1241
- // Use ServiceConfig and ConfigSelector returned by resolver.
1242
- service_config = std::move(*result.service_config);
1243
- config_selector = result.args.GetObjectRef<ConfigSelector>();
1244
- }
1245
- // Note: The only case in which service_config is null here is if the resolver
1246
- // returned a service config error and we don't have a previous service
1247
- // config to fall back to.
1248
- if (service_config != nullptr) {
1249
- // Extract global config for client channel.
1250
- const internal::ClientChannelGlobalParsedConfig* parsed_service_config =
1251
- static_cast<const internal::ClientChannelGlobalParsedConfig*>(
1252
- service_config->GetGlobalParsedConfig(
1253
- service_config_parser_index_));
1254
- // Choose LB policy config.
1255
- RefCountedPtr<LoadBalancingPolicy::Config> lb_policy_config =
1256
- ChooseLbPolicy(result, parsed_service_config);
1257
- // Check if the ServiceConfig has changed.
1258
- const bool service_config_changed =
1259
- saved_service_config_ == nullptr ||
1260
- service_config->json_string() != saved_service_config_->json_string();
1261
- // Check if the ConfigSelector has changed.
1262
- const bool config_selector_changed = !ConfigSelector::Equals(
1263
- saved_config_selector_.get(), config_selector.get());
1264
- // If either has changed, apply the global parameters now.
1265
- if (service_config_changed || config_selector_changed) {
1266
- // Update service config in control plane.
1267
- UpdateServiceConfigInControlPlaneLocked(
1268
- std::move(service_config), std::move(config_selector),
1269
- std::string(lb_policy_config->name()));
1270
- } else if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1271
- gpr_log(GPR_INFO, "chand=%p: service config not changed", this);
1272
- }
1273
- // Create or update LB policy, as needed.
1274
- resolver_result_status = CreateOrUpdateLbPolicyLocked(
1275
- std::move(lb_policy_config),
1276
- parsed_service_config->health_check_service_name(), std::move(result));
1277
- if (service_config_changed || config_selector_changed) {
1278
- // Start using new service config for calls.
1279
- // This needs to happen after the LB policy has been updated, since
1280
- // the ConfigSelector may need the LB policy to know about new
1281
- // destinations before it can send RPCs to those destinations.
1282
- UpdateServiceConfigInDataPlaneLocked();
1283
- // TODO(ncteisen): might be worth somehow including a snippet of the
1284
- // config in the trace, at the risk of bloating the trace logs.
1285
- trace_strings.push_back("Service config changed");
1286
- }
1287
- }
1288
- // Invoke resolver callback if needed.
1289
- if (resolver_callback != nullptr) {
1290
- resolver_callback(std::move(resolver_result_status));
1291
- }
1292
- // Add channel trace event.
1293
- if (!trace_strings.empty()) {
1294
- std::string message =
1295
- absl::StrCat("Resolution event: ", absl::StrJoin(trace_strings, ", "));
1296
- if (channelz_node_ != nullptr) {
1297
- channelz_node_->AddTraceEvent(channelz::ChannelTrace::Severity::Info,
1298
- grpc_slice_from_cpp_string(message));
1299
- }
1300
- }
1301
- }
1302
-
1303
- void ClientChannel::OnResolverErrorLocked(absl::Status status) {
1304
- if (resolver_ == nullptr) return;
1305
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1306
- gpr_log(GPR_INFO, "chand=%p: resolver transient failure: %s", this,
1307
- status.ToString().c_str());
1308
- }
1309
- // If we already have an LB policy from a previous resolution
1310
- // result, then we continue to let it set the connectivity state.
1311
- // Otherwise, we go into TRANSIENT_FAILURE.
1312
- if (lb_policy_ == nullptr) {
1313
- grpc_error_handle error = absl_status_to_grpc_error(status);
1314
- {
1315
- MutexLock lock(&resolution_mu_);
1316
- // Update resolver transient failure.
1317
- resolver_transient_failure_error_ =
1318
- MaybeRewriteIllegalStatusCode(status, "resolver");
1319
- // Process calls that were queued waiting for the resolver result.
1320
- for (ResolverQueuedCall* call = resolver_queued_calls_; call != nullptr;
1321
- call = call->next) {
1322
- grpc_call_element* elem = call->elem;
1323
- CallData* calld = static_cast<CallData*>(elem->call_data);
1324
- grpc_error_handle error = GRPC_ERROR_NONE;
1325
- if (calld->CheckResolutionLocked(elem, &error)) {
1326
- calld->AsyncResolutionDone(elem, error);
1327
- }
1328
- }
1329
- }
1330
- GRPC_ERROR_UNREF(error);
1331
- // Update connectivity state.
1332
- UpdateStateAndPickerLocked(
1333
- GRPC_CHANNEL_TRANSIENT_FAILURE, status, "resolver failure",
1334
- absl::make_unique<LoadBalancingPolicy::TransientFailurePicker>(status));
1335
- }
1336
- }
1337
-
1338
- absl::Status ClientChannel::CreateOrUpdateLbPolicyLocked(
1339
- RefCountedPtr<LoadBalancingPolicy::Config> lb_policy_config,
1340
- const absl::optional<std::string>& health_check_service_name,
1341
- Resolver::Result result) {
1342
- // Construct update.
1343
- LoadBalancingPolicy::UpdateArgs update_args;
1344
- update_args.addresses = std::move(result.addresses);
1345
- update_args.config = std::move(lb_policy_config);
1346
- update_args.resolution_note = std::move(result.resolution_note);
1347
- // Remove the config selector from channel args so that we're not holding
1348
- // unnecessary refs that cause it to be destroyed somewhere other than in the
1349
- // WorkSerializer.
1350
- update_args.args = result.args.Remove(GRPC_ARG_CONFIG_SELECTOR);
1351
- // Add health check service name to channel args.
1352
- if (health_check_service_name.has_value()) {
1353
- update_args.args = update_args.args.Set(GRPC_ARG_HEALTH_CHECK_SERVICE_NAME,
1354
- *health_check_service_name);
1355
- }
1356
- // Create policy if needed.
1357
- if (lb_policy_ == nullptr) {
1358
- lb_policy_ = CreateLbPolicyLocked(update_args.args);
1359
- }
1360
- // Update the policy.
1361
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1362
- gpr_log(GPR_INFO, "chand=%p: Updating child policy %p", this,
1363
- lb_policy_.get());
1364
- }
1365
- return lb_policy_->UpdateLocked(std::move(update_args));
1366
- }
1367
-
1368
- // Creates a new LB policy.
1369
- OrphanablePtr<LoadBalancingPolicy> ClientChannel::CreateLbPolicyLocked(
1370
- const ChannelArgs& args) {
1371
- LoadBalancingPolicy::Args lb_policy_args;
1372
- lb_policy_args.work_serializer = work_serializer_;
1373
- lb_policy_args.channel_control_helper =
1374
- absl::make_unique<ClientChannelControlHelper>(this);
1375
- lb_policy_args.args = args;
1376
- OrphanablePtr<LoadBalancingPolicy> lb_policy =
1377
- MakeOrphanable<ChildPolicyHandler>(std::move(lb_policy_args),
1378
- &grpc_client_channel_trace);
1379
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1380
- gpr_log(GPR_INFO, "chand=%p: created new LB policy %p", this,
1381
- lb_policy.get());
1382
- }
1383
- grpc_pollset_set_add_pollset_set(lb_policy->interested_parties(),
1384
- interested_parties_);
1385
- return lb_policy;
1386
- }
1387
-
1388
- void ClientChannel::AddResolverQueuedCall(ResolverQueuedCall* call,
1389
- grpc_polling_entity* pollent) {
1390
- // Add call to queued calls list.
1391
- call->next = resolver_queued_calls_;
1392
- resolver_queued_calls_ = call;
1393
- // Add call's pollent to channel's interested_parties, so that I/O
1394
- // can be done under the call's CQ.
1395
- grpc_polling_entity_add_to_pollset_set(pollent, interested_parties_);
1396
- }
1397
-
1398
- void ClientChannel::RemoveResolverQueuedCall(ResolverQueuedCall* to_remove,
1399
- grpc_polling_entity* pollent) {
1400
- // Remove call's pollent from channel's interested_parties.
1401
- grpc_polling_entity_del_from_pollset_set(pollent, interested_parties_);
1402
- // Remove from queued calls list.
1403
- for (ResolverQueuedCall** call = &resolver_queued_calls_; *call != nullptr;
1404
- call = &(*call)->next) {
1405
- if (*call == to_remove) {
1406
- *call = to_remove->next;
1407
- return;
1408
- }
1409
- }
1410
- }
1411
-
1412
- void ClientChannel::UpdateServiceConfigInControlPlaneLocked(
1413
- RefCountedPtr<ServiceConfig> service_config,
1414
- RefCountedPtr<ConfigSelector> config_selector, std::string lb_policy_name) {
1415
- std::string service_config_json(service_config->json_string());
1416
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1417
- gpr_log(GPR_INFO, "chand=%p: using service config: \"%s\"", this,
1418
- service_config_json.c_str());
1419
- }
1420
- // Save service config.
1421
- saved_service_config_ = std::move(service_config);
1422
- // Swap out the data used by GetChannelInfo().
1423
- {
1424
- MutexLock lock(&info_mu_);
1425
- info_lb_policy_name_ = std::move(lb_policy_name);
1426
- info_service_config_json_ = std::move(service_config_json);
1427
- }
1428
- // Save config selector.
1429
- saved_config_selector_ = std::move(config_selector);
1430
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1431
- gpr_log(GPR_INFO, "chand=%p: using ConfigSelector %p", this,
1432
- saved_config_selector_.get());
1433
- }
1434
- }
1435
-
1436
- void ClientChannel::UpdateServiceConfigInDataPlaneLocked() {
1437
- // Grab ref to service config.
1438
- RefCountedPtr<ServiceConfig> service_config = saved_service_config_;
1439
- // Grab ref to config selector. Use default if resolver didn't supply one.
1440
- RefCountedPtr<ConfigSelector> config_selector = saved_config_selector_;
1441
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1442
- gpr_log(GPR_INFO, "chand=%p: switching to ConfigSelector %p", this,
1443
- saved_config_selector_.get());
1444
- }
1445
- if (config_selector == nullptr) {
1446
- config_selector =
1447
- MakeRefCounted<DefaultConfigSelector>(saved_service_config_);
1448
- }
1449
- ChannelArgs new_args = config_selector->ModifyChannelArgs(
1450
- channel_args_.SetObject(this).SetObject(service_config));
1451
- bool enable_retries =
1452
- !new_args.WantMinimalStack() &&
1453
- new_args.GetBool(GRPC_ARG_ENABLE_RETRIES).value_or(true);
1454
- // Construct dynamic filter stack.
1455
- std::vector<const grpc_channel_filter*> filters =
1456
- config_selector->GetFilters();
1457
- if (enable_retries) {
1458
- filters.push_back(&kRetryFilterVtable);
1459
- } else {
1460
- filters.push_back(&DynamicTerminationFilter::kFilterVtable);
1461
- }
1462
- RefCountedPtr<DynamicFilters> dynamic_filters =
1463
- DynamicFilters::Create(new_args.ToC().get(), std::move(filters));
1464
- GPR_ASSERT(dynamic_filters != nullptr);
1465
- // Grab data plane lock to update service config.
1466
- //
1467
- // We defer unreffing the old values (and deallocating memory) until
1468
- // after releasing the lock to keep the critical section small.
1469
- {
1470
- MutexLock lock(&resolution_mu_);
1471
- resolver_transient_failure_error_ = absl::OkStatus();
1472
- // Update service config.
1473
- received_service_config_data_ = true;
1474
- // Old values will be unreffed after lock is released.
1475
- service_config_.swap(service_config);
1476
- config_selector_.swap(config_selector);
1477
- dynamic_filters_.swap(dynamic_filters);
1478
- // Process calls that were queued waiting for the resolver result.
1479
- for (ResolverQueuedCall* call = resolver_queued_calls_; call != nullptr;
1480
- call = call->next) {
1481
- // If there are a lot of queued calls here, resuming them all may cause us
1482
- // to stay inside C-core for a long period of time. All of that work would
1483
- // be done using the same ExecCtx instance and therefore the same cached
1484
- // value of "now". The longer it takes to finish all of this work and exit
1485
- // from C-core, the more stale the cached value of "now" may become. This
1486
- // can cause problems whereby (e.g.) we calculate a timer deadline based
1487
- // on the stale value, which results in the timer firing too early. To
1488
- // avoid this, we invalidate the cached value for each call we process.
1489
- ExecCtx::Get()->InvalidateNow();
1490
- grpc_call_element* elem = call->elem;
1491
- CallData* calld = static_cast<CallData*>(elem->call_data);
1492
- grpc_error_handle error = GRPC_ERROR_NONE;
1493
- if (calld->CheckResolutionLocked(elem, &error)) {
1494
- calld->AsyncResolutionDone(elem, error);
1495
- }
1496
- }
1497
- }
1498
- // Old values will be unreffed after lock is released when they go out
1499
- // of scope.
1500
- }
1501
-
1502
- void ClientChannel::CreateResolverLocked() {
1503
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1504
- gpr_log(GPR_INFO, "chand=%p: starting name resolution", this);
1505
- }
1506
- resolver_ = CoreConfiguration::Get().resolver_registry().CreateResolver(
1507
- uri_to_resolve_.c_str(), channel_args_, interested_parties_,
1508
- work_serializer_, absl::make_unique<ResolverResultHandler>(this));
1509
- // Since the validity of the args was checked when the channel was created,
1510
- // CreateResolver() must return a non-null result.
1511
- GPR_ASSERT(resolver_ != nullptr);
1512
- UpdateStateAndPickerLocked(
1513
- GRPC_CHANNEL_CONNECTING, absl::Status(), "started resolving",
1514
- absl::make_unique<LoadBalancingPolicy::QueuePicker>(nullptr));
1515
- resolver_->StartLocked();
1516
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1517
- gpr_log(GPR_INFO, "chand=%p: created resolver=%p", this, resolver_.get());
1518
- }
1519
- }
1520
-
1521
- void ClientChannel::DestroyResolverAndLbPolicyLocked() {
1522
- if (resolver_ != nullptr) {
1523
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1524
- gpr_log(GPR_INFO, "chand=%p: shutting down resolver=%p", this,
1525
- resolver_.get());
1526
- }
1527
- resolver_.reset();
1528
- if (lb_policy_ != nullptr) {
1529
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1530
- gpr_log(GPR_INFO, "chand=%p: shutting down lb_policy=%p", this,
1531
- lb_policy_.get());
1532
- }
1533
- grpc_pollset_set_del_pollset_set(lb_policy_->interested_parties(),
1534
- interested_parties_);
1535
- lb_policy_.reset();
1536
- }
1537
- }
1538
- }
1539
-
1540
- void ClientChannel::UpdateStateAndPickerLocked(
1541
- grpc_connectivity_state state, const absl::Status& status,
1542
- const char* reason,
1543
- std::unique_ptr<LoadBalancingPolicy::SubchannelPicker> picker) {
1544
- // Special case for IDLE and SHUTDOWN states.
1545
- if (picker == nullptr || state == GRPC_CHANNEL_SHUTDOWN) {
1546
- saved_service_config_.reset();
1547
- saved_config_selector_.reset();
1548
- // Acquire resolution lock to update config selector and associated state.
1549
- // To minimize lock contention, we wait to unref these objects until
1550
- // after we release the lock.
1551
- RefCountedPtr<ServiceConfig> service_config_to_unref;
1552
- RefCountedPtr<ConfigSelector> config_selector_to_unref;
1553
- RefCountedPtr<DynamicFilters> dynamic_filters_to_unref;
1554
- {
1555
- MutexLock lock(&resolution_mu_);
1556
- received_service_config_data_ = false;
1557
- service_config_to_unref = std::move(service_config_);
1558
- config_selector_to_unref = std::move(config_selector_);
1559
- dynamic_filters_to_unref = std::move(dynamic_filters_);
1560
- }
1561
- }
1562
- // Update connectivity state.
1563
- state_tracker_.SetState(state, status, reason);
1564
- if (channelz_node_ != nullptr) {
1565
- channelz_node_->SetConnectivityState(state);
1566
- channelz_node_->AddTraceEvent(
1567
- channelz::ChannelTrace::Severity::Info,
1568
- grpc_slice_from_static_string(
1569
- channelz::ChannelNode::GetChannelConnectivityStateChangeString(
1570
- state)));
1571
- }
1572
- // Grab data plane lock to update the picker.
1573
- {
1574
- MutexLock lock(&data_plane_mu_);
1575
- // Swap out the picker.
1576
- // Note: Original value will be destroyed after the lock is released.
1577
- picker_.swap(picker);
1578
- // Re-process queued picks.
1579
- for (LbQueuedCall* call = lb_queued_calls_; call != nullptr;
1580
- call = call->next) {
1581
- // If there are a lot of queued calls here, resuming them all may cause us
1582
- // to stay inside C-core for a long period of time. All of that work would
1583
- // be done using the same ExecCtx instance and therefore the same cached
1584
- // value of "now". The longer it takes to finish all of this work and exit
1585
- // from C-core, the more stale the cached value of "now" may become. This
1586
- // can cause problems whereby (e.g.) we calculate a timer deadline based
1587
- // on the stale value, which results in the timer firing too early. To
1588
- // avoid this, we invalidate the cached value for each call we process.
1589
- ExecCtx::Get()->InvalidateNow();
1590
- grpc_error_handle error = GRPC_ERROR_NONE;
1591
- if (call->lb_call->PickSubchannelLocked(&error)) {
1592
- call->lb_call->AsyncPickDone(error);
1593
- }
1594
- }
1595
- }
1596
- }
1597
-
1598
- namespace {
1599
-
1600
- // TODO(roth): Remove this in favor of the gprpp Match() function once
1601
- // we can do that without breaking lock annotations.
1602
- template <typename T>
1603
- T HandlePickResult(
1604
- LoadBalancingPolicy::PickResult* result,
1605
- std::function<T(LoadBalancingPolicy::PickResult::Complete*)> complete_func,
1606
- std::function<T(LoadBalancingPolicy::PickResult::Queue*)> queue_func,
1607
- std::function<T(LoadBalancingPolicy::PickResult::Fail*)> fail_func,
1608
- std::function<T(LoadBalancingPolicy::PickResult::Drop*)> drop_func) {
1609
- auto* complete_pick =
1610
- absl::get_if<LoadBalancingPolicy::PickResult::Complete>(&result->result);
1611
- if (complete_pick != nullptr) {
1612
- return complete_func(complete_pick);
1613
- }
1614
- auto* queue_pick =
1615
- absl::get_if<LoadBalancingPolicy::PickResult::Queue>(&result->result);
1616
- if (queue_pick != nullptr) {
1617
- return queue_func(queue_pick);
1618
- }
1619
- auto* fail_pick =
1620
- absl::get_if<LoadBalancingPolicy::PickResult::Fail>(&result->result);
1621
- if (fail_pick != nullptr) {
1622
- return fail_func(fail_pick);
1623
- }
1624
- auto* drop_pick =
1625
- absl::get_if<LoadBalancingPolicy::PickResult::Drop>(&result->result);
1626
- GPR_ASSERT(drop_pick != nullptr);
1627
- return drop_func(drop_pick);
1628
- }
1629
-
1630
- } // namespace
1631
-
1632
- grpc_error_handle ClientChannel::DoPingLocked(grpc_transport_op* op) {
1633
- if (state_tracker_.state() != GRPC_CHANNEL_READY) {
1634
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("channel not connected");
1635
- }
1636
- LoadBalancingPolicy::PickResult result;
1637
- {
1638
- MutexLock lock(&data_plane_mu_);
1639
- result = picker_->Pick(LoadBalancingPolicy::PickArgs());
1640
- }
1641
- return HandlePickResult<grpc_error_handle>(
1642
- &result,
1643
- // Complete pick.
1644
- [op](LoadBalancingPolicy::PickResult::Complete* complete_pick)
1645
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*ClientChannel::work_serializer_) {
1646
- SubchannelWrapper* subchannel = static_cast<SubchannelWrapper*>(
1647
- complete_pick->subchannel.get());
1648
- RefCountedPtr<ConnectedSubchannel> connected_subchannel =
1649
- subchannel->connected_subchannel();
1650
- if (connected_subchannel == nullptr) {
1651
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
1652
- "LB pick for ping not connected");
1653
- }
1654
- connected_subchannel->Ping(op->send_ping.on_initiate,
1655
- op->send_ping.on_ack);
1656
- return GRPC_ERROR_NONE;
1657
- },
1658
- // Queue pick.
1659
- [](LoadBalancingPolicy::PickResult::Queue* /*queue_pick*/) {
1660
- return GRPC_ERROR_CREATE_FROM_STATIC_STRING("LB picker queued call");
1661
- },
1662
- // Fail pick.
1663
- [](LoadBalancingPolicy::PickResult::Fail* fail_pick) {
1664
- return absl_status_to_grpc_error(fail_pick->status);
1665
- },
1666
- // Drop pick.
1667
- [](LoadBalancingPolicy::PickResult::Drop* drop_pick) {
1668
- return absl_status_to_grpc_error(drop_pick->status);
1669
- });
1670
- }
1671
-
1672
- void ClientChannel::StartTransportOpLocked(grpc_transport_op* op) {
1673
- // Connectivity watch.
1674
- if (op->start_connectivity_watch != nullptr) {
1675
- state_tracker_.AddWatcher(op->start_connectivity_watch_state,
1676
- std::move(op->start_connectivity_watch));
1677
- }
1678
- if (op->stop_connectivity_watch != nullptr) {
1679
- state_tracker_.RemoveWatcher(op->stop_connectivity_watch);
1680
- }
1681
- // Ping.
1682
- if (op->send_ping.on_initiate != nullptr || op->send_ping.on_ack != nullptr) {
1683
- grpc_error_handle error = DoPingLocked(op);
1684
- if (!GRPC_ERROR_IS_NONE(error)) {
1685
- ExecCtx::Run(DEBUG_LOCATION, op->send_ping.on_initiate,
1686
- GRPC_ERROR_REF(error));
1687
- ExecCtx::Run(DEBUG_LOCATION, op->send_ping.on_ack, error);
1688
- }
1689
- op->bind_pollset = nullptr;
1690
- op->send_ping.on_initiate = nullptr;
1691
- op->send_ping.on_ack = nullptr;
1692
- }
1693
- // Reset backoff.
1694
- if (op->reset_connect_backoff) {
1695
- if (lb_policy_ != nullptr) {
1696
- lb_policy_->ResetBackoffLocked();
1697
- }
1698
- }
1699
- // Disconnect or enter IDLE.
1700
- if (!GRPC_ERROR_IS_NONE(op->disconnect_with_error)) {
1701
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_trace)) {
1702
- gpr_log(GPR_INFO, "chand=%p: disconnect_with_error: %s", this,
1703
- grpc_error_std_string(op->disconnect_with_error).c_str());
1704
- }
1705
- DestroyResolverAndLbPolicyLocked();
1706
- intptr_t value;
1707
- if (grpc_error_get_int(op->disconnect_with_error,
1708
- GRPC_ERROR_INT_CHANNEL_CONNECTIVITY_STATE, &value) &&
1709
- static_cast<grpc_connectivity_state>(value) == GRPC_CHANNEL_IDLE) {
1710
- if (GRPC_ERROR_IS_NONE(disconnect_error_)) {
1711
- // Enter IDLE state.
1712
- UpdateStateAndPickerLocked(GRPC_CHANNEL_IDLE, absl::Status(),
1713
- "channel entering IDLE", nullptr);
1714
- }
1715
- GRPC_ERROR_UNREF(op->disconnect_with_error);
1716
- } else {
1717
- // Disconnect.
1718
- GPR_ASSERT(GRPC_ERROR_IS_NONE(disconnect_error_));
1719
- disconnect_error_ = op->disconnect_with_error;
1720
- UpdateStateAndPickerLocked(
1721
- GRPC_CHANNEL_SHUTDOWN, absl::Status(), "shutdown from API",
1722
- absl::make_unique<LoadBalancingPolicy::TransientFailurePicker>(
1723
- grpc_error_to_absl_status(op->disconnect_with_error)));
1724
- }
1725
- }
1726
- GRPC_CHANNEL_STACK_UNREF(owning_stack_, "start_transport_op");
1727
- ExecCtx::Run(DEBUG_LOCATION, op->on_consumed, GRPC_ERROR_NONE);
1728
- }
1729
-
1730
- void ClientChannel::StartTransportOp(grpc_channel_element* elem,
1731
- grpc_transport_op* op) {
1732
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
1733
- GPR_ASSERT(op->set_accept_stream == false);
1734
- // Handle bind_pollset.
1735
- if (op->bind_pollset != nullptr) {
1736
- grpc_pollset_set_add_pollset(chand->interested_parties_, op->bind_pollset);
1737
- }
1738
- // Pop into control plane work_serializer for remaining ops.
1739
- GRPC_CHANNEL_STACK_REF(chand->owning_stack_, "start_transport_op");
1740
- chand->work_serializer_->Run(
1741
- [chand, op]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand->work_serializer_) {
1742
- chand->StartTransportOpLocked(op);
1743
- },
1744
- DEBUG_LOCATION);
1745
- }
1746
-
1747
- void ClientChannel::GetChannelInfo(grpc_channel_element* elem,
1748
- const grpc_channel_info* info) {
1749
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
1750
- MutexLock lock(&chand->info_mu_);
1751
- if (info->lb_policy_name != nullptr) {
1752
- *info->lb_policy_name = gpr_strdup(chand->info_lb_policy_name_.c_str());
1753
- }
1754
- if (info->service_config_json != nullptr) {
1755
- *info->service_config_json =
1756
- gpr_strdup(chand->info_service_config_json_.c_str());
1757
- }
1758
- }
1759
-
1760
- void ClientChannel::AddLbQueuedCall(LbQueuedCall* call,
1761
- grpc_polling_entity* pollent) {
1762
- // Add call to queued picks list.
1763
- call->next = lb_queued_calls_;
1764
- lb_queued_calls_ = call;
1765
- // Add call's pollent to channel's interested_parties, so that I/O
1766
- // can be done under the call's CQ.
1767
- grpc_polling_entity_add_to_pollset_set(pollent, interested_parties_);
1768
- }
1769
-
1770
- void ClientChannel::RemoveLbQueuedCall(LbQueuedCall* to_remove,
1771
- grpc_polling_entity* pollent) {
1772
- // Remove call's pollent from channel's interested_parties.
1773
- grpc_polling_entity_del_from_pollset_set(pollent, interested_parties_);
1774
- // Remove from queued picks list.
1775
- for (LbQueuedCall** call = &lb_queued_calls_; *call != nullptr;
1776
- call = &(*call)->next) {
1777
- if (*call == to_remove) {
1778
- *call = to_remove->next;
1779
- return;
1780
- }
1781
- }
1782
- }
1783
-
1784
- void ClientChannel::TryToConnectLocked() {
1785
- if (lb_policy_ != nullptr) {
1786
- lb_policy_->ExitIdleLocked();
1787
- } else if (resolver_ == nullptr) {
1788
- CreateResolverLocked();
1789
- }
1790
- GRPC_CHANNEL_STACK_UNREF(owning_stack_, "TryToConnect");
1791
- }
1792
-
1793
- grpc_connectivity_state ClientChannel::CheckConnectivityState(
1794
- bool try_to_connect) {
1795
- // state_tracker_ is guarded by work_serializer_, which we're not
1796
- // holding here. But the one method of state_tracker_ that *is*
1797
- // thread-safe to call without external synchronization is the state()
1798
- // method, so we can disable thread-safety analysis for this one read.
1799
- grpc_connectivity_state out = ABSL_TS_UNCHECKED_READ(state_tracker_).state();
1800
- if (out == GRPC_CHANNEL_IDLE && try_to_connect) {
1801
- GRPC_CHANNEL_STACK_REF(owning_stack_, "TryToConnect");
1802
- work_serializer_->Run([this]() ABSL_EXCLUSIVE_LOCKS_REQUIRED(
1803
- *work_serializer_) { TryToConnectLocked(); },
1804
- DEBUG_LOCATION);
1805
- }
1806
- return out;
1807
- }
1808
-
1809
- void ClientChannel::AddConnectivityWatcher(
1810
- grpc_connectivity_state initial_state,
1811
- OrphanablePtr<AsyncConnectivityStateWatcherInterface> watcher) {
1812
- new ConnectivityWatcherAdder(this, initial_state, std::move(watcher));
1813
- }
1814
-
1815
- void ClientChannel::RemoveConnectivityWatcher(
1816
- AsyncConnectivityStateWatcherInterface* watcher) {
1817
- new ConnectivityWatcherRemover(this, watcher);
1818
- }
1819
-
1820
- //
1821
- // CallData implementation
1822
- //
1823
-
1824
- ClientChannel::CallData::CallData(grpc_call_element* elem,
1825
- const ClientChannel& chand,
1826
- const grpc_call_element_args& args)
1827
- : deadline_state_(elem, args,
1828
- GPR_LIKELY(chand.deadline_checking_enabled_)
1829
- ? args.deadline
1830
- : Timestamp::InfFuture()),
1831
- path_(grpc_slice_ref_internal(args.path)),
1832
- call_start_time_(args.start_time),
1833
- deadline_(args.deadline),
1834
- arena_(args.arena),
1835
- owning_call_(args.call_stack),
1836
- call_combiner_(args.call_combiner),
1837
- call_context_(args.context) {
1838
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
1839
- gpr_log(GPR_INFO, "chand=%p calld=%p: created call", &chand, this);
1840
- }
1841
- }
1842
-
1843
- ClientChannel::CallData::~CallData() {
1844
- grpc_slice_unref_internal(path_);
1845
- GRPC_ERROR_UNREF(cancel_error_);
1846
- // Make sure there are no remaining pending batches.
1847
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
1848
- GPR_ASSERT(pending_batches_[i] == nullptr);
1849
- }
1850
- }
1851
-
1852
- grpc_error_handle ClientChannel::CallData::Init(
1853
- grpc_call_element* elem, const grpc_call_element_args* args) {
1854
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
1855
- new (elem->call_data) CallData(elem, *chand, *args);
1856
- return GRPC_ERROR_NONE;
1857
- }
1858
-
1859
- void ClientChannel::CallData::Destroy(
1860
- grpc_call_element* elem, const grpc_call_final_info* /*final_info*/,
1861
- grpc_closure* then_schedule_closure) {
1862
- CallData* calld = static_cast<CallData*>(elem->call_data);
1863
- RefCountedPtr<DynamicFilters::Call> dynamic_call =
1864
- std::move(calld->dynamic_call_);
1865
- calld->~CallData();
1866
- if (GPR_LIKELY(dynamic_call != nullptr)) {
1867
- dynamic_call->SetAfterCallStackDestroy(then_schedule_closure);
1868
- } else {
1869
- // TODO(yashkt) : This can potentially be a Closure::Run
1870
- ExecCtx::Run(DEBUG_LOCATION, then_schedule_closure, GRPC_ERROR_NONE);
1871
- }
1872
- }
1873
-
1874
- void ClientChannel::CallData::StartTransportStreamOpBatch(
1875
- grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
1876
- CallData* calld = static_cast<CallData*>(elem->call_data);
1877
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
1878
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace) &&
1879
- !GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
1880
- gpr_log(GPR_INFO, "chand=%p calld=%p: batch started from above: %s", chand,
1881
- calld, grpc_transport_stream_op_batch_string(batch).c_str());
1882
- }
1883
- if (GPR_LIKELY(chand->deadline_checking_enabled_)) {
1884
- grpc_deadline_state_client_start_transport_stream_op_batch(elem, batch);
1885
- }
1886
- // Intercept recv_trailing_metadata to call CallDispatchController::Commit(),
1887
- // in case we wind up failing the call before we get down to the retry
1888
- // or LB call layer.
1889
- if (batch->recv_trailing_metadata) {
1890
- calld->original_recv_trailing_metadata_ready_ =
1891
- batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready;
1892
- GRPC_CLOSURE_INIT(&calld->recv_trailing_metadata_ready_,
1893
- RecvTrailingMetadataReadyForConfigSelectorCommitCallback,
1894
- elem, nullptr);
1895
- batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready =
1896
- &calld->recv_trailing_metadata_ready_;
1897
- }
1898
- // If we already have a dynamic call, pass the batch down to it.
1899
- // Note that once we have done so, we do not need to acquire the channel's
1900
- // resolution mutex, which is more efficient (especially for streaming calls).
1901
- if (calld->dynamic_call_ != nullptr) {
1902
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
1903
- gpr_log(GPR_INFO, "chand=%p calld=%p: starting batch on dynamic_call=%p",
1904
- chand, calld, calld->dynamic_call_.get());
1905
- }
1906
- calld->dynamic_call_->StartTransportStreamOpBatch(batch);
1907
- return;
1908
- }
1909
- // We do not yet have a dynamic call.
1910
- //
1911
- // If we've previously been cancelled, immediately fail any new batches.
1912
- if (GPR_UNLIKELY(!GRPC_ERROR_IS_NONE(calld->cancel_error_))) {
1913
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
1914
- gpr_log(GPR_INFO, "chand=%p calld=%p: failing batch with error: %s",
1915
- chand, calld,
1916
- grpc_error_std_string(calld->cancel_error_).c_str());
1917
- }
1918
- // Note: This will release the call combiner.
1919
- grpc_transport_stream_op_batch_finish_with_failure(
1920
- batch, GRPC_ERROR_REF(calld->cancel_error_), calld->call_combiner_);
1921
- return;
1922
- }
1923
- // Handle cancellation.
1924
- if (GPR_UNLIKELY(batch->cancel_stream)) {
1925
- // Stash a copy of cancel_error in our call data, so that we can use
1926
- // it for subsequent operations. This ensures that if the call is
1927
- // cancelled before any batches are passed down (e.g., if the deadline
1928
- // is in the past when the call starts), we can return the right
1929
- // error to the caller when the first batch does get passed down.
1930
- GRPC_ERROR_UNREF(calld->cancel_error_);
1931
- calld->cancel_error_ =
1932
- GRPC_ERROR_REF(batch->payload->cancel_stream.cancel_error);
1933
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
1934
- gpr_log(GPR_INFO, "chand=%p calld=%p: recording cancel_error=%s", chand,
1935
- calld, grpc_error_std_string(calld->cancel_error_).c_str());
1936
- }
1937
- // Fail all pending batches.
1938
- calld->PendingBatchesFail(elem, GRPC_ERROR_REF(calld->cancel_error_),
1939
- NoYieldCallCombiner);
1940
- // Note: This will release the call combiner.
1941
- grpc_transport_stream_op_batch_finish_with_failure(
1942
- batch, GRPC_ERROR_REF(calld->cancel_error_), calld->call_combiner_);
1943
- return;
1944
- }
1945
- // Add the batch to the pending list.
1946
- calld->PendingBatchesAdd(elem, batch);
1947
- // For batches containing a send_initial_metadata op, acquire the
1948
- // channel's resolution mutex to apply the service config to the call,
1949
- // after which we will create a dynamic call.
1950
- if (GPR_LIKELY(batch->send_initial_metadata)) {
1951
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
1952
- gpr_log(GPR_INFO,
1953
- "chand=%p calld=%p: grabbing resolution mutex to apply service "
1954
- "config",
1955
- chand, calld);
1956
- }
1957
- CheckResolution(elem, GRPC_ERROR_NONE);
1958
- } else {
1959
- // For all other batches, release the call combiner.
1960
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
1961
- gpr_log(GPR_INFO,
1962
- "chand=%p calld=%p: saved batch, yielding call combiner", chand,
1963
- calld);
1964
- }
1965
- GRPC_CALL_COMBINER_STOP(calld->call_combiner_,
1966
- "batch does not include send_initial_metadata");
1967
- }
1968
- }
1969
-
1970
- void ClientChannel::CallData::SetPollent(grpc_call_element* elem,
1971
- grpc_polling_entity* pollent) {
1972
- CallData* calld = static_cast<CallData*>(elem->call_data);
1973
- calld->pollent_ = pollent;
1974
- }
1975
-
1976
- //
1977
- // pending_batches management
1978
- //
1979
-
1980
- size_t ClientChannel::CallData::GetBatchIndex(
1981
- grpc_transport_stream_op_batch* batch) {
1982
- // Note: It is important the send_initial_metadata be the first entry
1983
- // here, since the code in ApplyServiceConfigToCallLocked() and
1984
- // CheckResolutionLocked() assumes it will be.
1985
- if (batch->send_initial_metadata) return 0;
1986
- if (batch->send_message) return 1;
1987
- if (batch->send_trailing_metadata) return 2;
1988
- if (batch->recv_initial_metadata) return 3;
1989
- if (batch->recv_message) return 4;
1990
- if (batch->recv_trailing_metadata) return 5;
1991
- GPR_UNREACHABLE_CODE(return (size_t)-1);
1992
- }
1993
-
1994
- // This is called via the call combiner, so access to calld is synchronized.
1995
- void ClientChannel::CallData::PendingBatchesAdd(
1996
- grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
1997
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
1998
- const size_t idx = GetBatchIndex(batch);
1999
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2000
- gpr_log(GPR_INFO,
2001
- "chand=%p calld=%p: adding pending batch at index %" PRIuPTR, chand,
2002
- this, idx);
2003
- }
2004
- grpc_transport_stream_op_batch*& pending = pending_batches_[idx];
2005
- GPR_ASSERT(pending == nullptr);
2006
- pending = batch;
2007
- }
2008
-
2009
- // This is called via the call combiner, so access to calld is synchronized.
2010
- void ClientChannel::CallData::FailPendingBatchInCallCombiner(
2011
- void* arg, grpc_error_handle error) {
2012
- grpc_transport_stream_op_batch* batch =
2013
- static_cast<grpc_transport_stream_op_batch*>(arg);
2014
- CallData* calld = static_cast<CallData*>(batch->handler_private.extra_arg);
2015
- // Note: This will release the call combiner.
2016
- grpc_transport_stream_op_batch_finish_with_failure(
2017
- batch, GRPC_ERROR_REF(error), calld->call_combiner_);
2018
- }
2019
-
2020
- // This is called via the call combiner, so access to calld is synchronized.
2021
- void ClientChannel::CallData::PendingBatchesFail(
2022
- grpc_call_element* elem, grpc_error_handle error,
2023
- YieldCallCombinerPredicate yield_call_combiner_predicate) {
2024
- GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
2025
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2026
- size_t num_batches = 0;
2027
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2028
- if (pending_batches_[i] != nullptr) ++num_batches;
2029
- }
2030
- gpr_log(GPR_INFO,
2031
- "chand=%p calld=%p: failing %" PRIuPTR " pending batches: %s",
2032
- elem->channel_data, this, num_batches,
2033
- grpc_error_std_string(error).c_str());
2034
- }
2035
- CallCombinerClosureList closures;
2036
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2037
- grpc_transport_stream_op_batch*& batch = pending_batches_[i];
2038
- if (batch != nullptr) {
2039
- batch->handler_private.extra_arg = this;
2040
- GRPC_CLOSURE_INIT(&batch->handler_private.closure,
2041
- FailPendingBatchInCallCombiner, batch,
2042
- grpc_schedule_on_exec_ctx);
2043
- closures.Add(&batch->handler_private.closure, GRPC_ERROR_REF(error),
2044
- "PendingBatchesFail");
2045
- batch = nullptr;
2046
- }
2047
- }
2048
- if (yield_call_combiner_predicate(closures)) {
2049
- closures.RunClosures(call_combiner_);
2050
- } else {
2051
- closures.RunClosuresWithoutYielding(call_combiner_);
2052
- }
2053
- GRPC_ERROR_UNREF(error);
2054
- }
2055
-
2056
- // This is called via the call combiner, so access to calld is synchronized.
2057
- void ClientChannel::CallData::ResumePendingBatchInCallCombiner(
2058
- void* arg, grpc_error_handle /*ignored*/) {
2059
- grpc_transport_stream_op_batch* batch =
2060
- static_cast<grpc_transport_stream_op_batch*>(arg);
2061
- auto* elem =
2062
- static_cast<grpc_call_element*>(batch->handler_private.extra_arg);
2063
- auto* calld = static_cast<CallData*>(elem->call_data);
2064
- // Note: This will release the call combiner.
2065
- calld->dynamic_call_->StartTransportStreamOpBatch(batch);
2066
- }
2067
-
2068
- // This is called via the call combiner, so access to calld is synchronized.
2069
- void ClientChannel::CallData::PendingBatchesResume(grpc_call_element* elem) {
2070
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
2071
- // Retries not enabled; send down batches as-is.
2072
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2073
- size_t num_batches = 0;
2074
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2075
- if (pending_batches_[i] != nullptr) ++num_batches;
2076
- }
2077
- gpr_log(GPR_INFO,
2078
- "chand=%p calld=%p: starting %" PRIuPTR
2079
- " pending batches on dynamic_call=%p",
2080
- chand, this, num_batches, dynamic_call_.get());
2081
- }
2082
- CallCombinerClosureList closures;
2083
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2084
- grpc_transport_stream_op_batch*& batch = pending_batches_[i];
2085
- if (batch != nullptr) {
2086
- batch->handler_private.extra_arg = elem;
2087
- GRPC_CLOSURE_INIT(&batch->handler_private.closure,
2088
- ResumePendingBatchInCallCombiner, batch, nullptr);
2089
- closures.Add(&batch->handler_private.closure, GRPC_ERROR_NONE,
2090
- "resuming pending batch from client channel call");
2091
- batch = nullptr;
2092
- }
2093
- }
2094
- // Note: This will release the call combiner.
2095
- closures.RunClosures(call_combiner_);
2096
- }
2097
-
2098
- //
2099
- // name resolution
2100
- //
2101
-
2102
- // A class to handle the call combiner cancellation callback for a
2103
- // queued pick.
2104
- class ClientChannel::CallData::ResolverQueuedCallCanceller {
2105
- public:
2106
- explicit ResolverQueuedCallCanceller(grpc_call_element* elem) : elem_(elem) {
2107
- auto* calld = static_cast<CallData*>(elem->call_data);
2108
- GRPC_CALL_STACK_REF(calld->owning_call_, "ResolverQueuedCallCanceller");
2109
- GRPC_CLOSURE_INIT(&closure_, &CancelLocked, this,
2110
- grpc_schedule_on_exec_ctx);
2111
- calld->call_combiner_->SetNotifyOnCancel(&closure_);
2112
- }
2113
-
2114
- private:
2115
- static void CancelLocked(void* arg, grpc_error_handle error) {
2116
- auto* self = static_cast<ResolverQueuedCallCanceller*>(arg);
2117
- auto* chand = static_cast<ClientChannel*>(self->elem_->channel_data);
2118
- auto* calld = static_cast<CallData*>(self->elem_->call_data);
2119
- {
2120
- MutexLock lock(&chand->resolution_mu_);
2121
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2122
- gpr_log(GPR_INFO,
2123
- "chand=%p calld=%p: cancelling resolver queued pick: "
2124
- "error=%s self=%p calld->resolver_pick_canceller=%p",
2125
- chand, calld, grpc_error_std_string(error).c_str(), self,
2126
- calld->resolver_call_canceller_);
2127
- }
2128
- if (calld->resolver_call_canceller_ == self &&
2129
- !GRPC_ERROR_IS_NONE(error)) {
2130
- // Remove pick from list of queued picks.
2131
- calld->MaybeRemoveCallFromResolverQueuedCallsLocked(self->elem_);
2132
- // Fail pending batches on the call.
2133
- calld->PendingBatchesFail(self->elem_, GRPC_ERROR_REF(error),
2134
- YieldCallCombinerIfPendingBatchesFound);
2135
- }
2136
- }
2137
- GRPC_CALL_STACK_UNREF(calld->owning_call_, "ResolvingQueuedCallCanceller");
2138
- delete self;
2139
- }
2140
-
2141
- grpc_call_element* elem_;
2142
- grpc_closure closure_;
2143
- };
2144
-
2145
- void ClientChannel::CallData::MaybeRemoveCallFromResolverQueuedCallsLocked(
2146
- grpc_call_element* elem) {
2147
- if (!queued_pending_resolver_result_) return;
2148
- auto* chand = static_cast<ClientChannel*>(elem->channel_data);
2149
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2150
- gpr_log(GPR_INFO,
2151
- "chand=%p calld=%p: removing from resolver queued picks list",
2152
- chand, this);
2153
- }
2154
- chand->RemoveResolverQueuedCall(&resolver_queued_call_, pollent_);
2155
- queued_pending_resolver_result_ = false;
2156
- // Lame the call combiner canceller.
2157
- resolver_call_canceller_ = nullptr;
2158
- }
2159
-
2160
- void ClientChannel::CallData::MaybeAddCallToResolverQueuedCallsLocked(
2161
- grpc_call_element* elem) {
2162
- if (queued_pending_resolver_result_) return;
2163
- auto* chand = static_cast<ClientChannel*>(elem->channel_data);
2164
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2165
- gpr_log(GPR_INFO, "chand=%p calld=%p: adding to resolver queued picks list",
2166
- chand, this);
2167
- }
2168
- queued_pending_resolver_result_ = true;
2169
- resolver_queued_call_.elem = elem;
2170
- chand->AddResolverQueuedCall(&resolver_queued_call_, pollent_);
2171
- // Register call combiner cancellation callback.
2172
- resolver_call_canceller_ = new ResolverQueuedCallCanceller(elem);
2173
- }
2174
-
2175
- grpc_error_handle ClientChannel::CallData::ApplyServiceConfigToCallLocked(
2176
- grpc_call_element* elem, grpc_metadata_batch* initial_metadata) {
2177
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
2178
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2179
- gpr_log(GPR_INFO, "chand=%p calld=%p: applying service config to call",
2180
- chand, this);
2181
- }
2182
- ConfigSelector* config_selector = chand->config_selector_.get();
2183
- if (config_selector != nullptr) {
2184
- // Use the ConfigSelector to determine the config for the call.
2185
- ConfigSelector::CallConfig call_config =
2186
- config_selector->GetCallConfig({&path_, initial_metadata, arena_});
2187
- if (!call_config.status.ok()) {
2188
- return absl_status_to_grpc_error(MaybeRewriteIllegalStatusCode(
2189
- std::move(call_config.status), "ConfigSelector"));
2190
- }
2191
- // Create a ClientChannelServiceConfigCallData for the call. This stores
2192
- // a ref to the ServiceConfig and caches the right set of parsed configs
2193
- // to use for the call. The ClientChannelServiceConfigCallData will store
2194
- // itself in the call context, so that it can be accessed by filters
2195
- // below us in the stack, and it will be cleaned up when the call ends.
2196
- auto* service_config_call_data =
2197
- arena_->New<ClientChannelServiceConfigCallData>(
2198
- std::move(call_config.service_config), call_config.method_configs,
2199
- std::move(call_config.call_attributes),
2200
- call_config.call_dispatch_controller, call_context_);
2201
- // Apply our own method params to the call.
2202
- auto* method_params = static_cast<ClientChannelMethodParsedConfig*>(
2203
- service_config_call_data->GetMethodParsedConfig(
2204
- chand->service_config_parser_index_));
2205
- if (method_params != nullptr) {
2206
- // If the deadline from the service config is shorter than the one
2207
- // from the client API, reset the deadline timer.
2208
- if (chand->deadline_checking_enabled_ &&
2209
- method_params->timeout() != Duration::Zero()) {
2210
- const Timestamp per_method_deadline =
2211
- Timestamp::FromCycleCounterRoundUp(call_start_time_) +
2212
- method_params->timeout();
2213
- if (per_method_deadline < deadline_) {
2214
- deadline_ = per_method_deadline;
2215
- grpc_deadline_state_reset(elem, deadline_);
2216
- }
2217
- }
2218
- // If the service config set wait_for_ready and the application
2219
- // did not explicitly set it, use the value from the service config.
2220
- auto* wait_for_ready =
2221
- pending_batches_[0]
2222
- ->payload->send_initial_metadata.send_initial_metadata
2223
- ->GetOrCreatePointer(WaitForReady());
2224
- if (method_params->wait_for_ready().has_value() &&
2225
- !wait_for_ready->explicitly_set) {
2226
- wait_for_ready->value = method_params->wait_for_ready().value();
2227
- }
2228
- }
2229
- // Set the dynamic filter stack.
2230
- dynamic_filters_ = chand->dynamic_filters_;
2231
- }
2232
- return GRPC_ERROR_NONE;
2233
- }
2234
-
2235
- void ClientChannel::CallData::
2236
- RecvTrailingMetadataReadyForConfigSelectorCommitCallback(
2237
- void* arg, grpc_error_handle error) {
2238
- auto* elem = static_cast<grpc_call_element*>(arg);
2239
- auto* chand = static_cast<ClientChannel*>(elem->channel_data);
2240
- auto* calld = static_cast<CallData*>(elem->call_data);
2241
- auto* service_config_call_data =
2242
- static_cast<ClientChannelServiceConfigCallData*>(
2243
- calld->call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
2244
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2245
- gpr_log(GPR_INFO,
2246
- "chand=%p calld=%p: got recv_trailing_metadata_ready: error=%s "
2247
- "service_config_call_data=%p",
2248
- chand, calld, grpc_error_std_string(error).c_str(),
2249
- service_config_call_data);
2250
- }
2251
- if (service_config_call_data != nullptr) {
2252
- service_config_call_data->call_dispatch_controller()->Commit();
2253
- }
2254
- // Chain to original callback.
2255
- Closure::Run(DEBUG_LOCATION, calld->original_recv_trailing_metadata_ready_,
2256
- GRPC_ERROR_REF(error));
2257
- }
2258
-
2259
- void ClientChannel::CallData::AsyncResolutionDone(grpc_call_element* elem,
2260
- grpc_error_handle error) {
2261
- // TODO(roth): Does this callback need to hold a ref to the call stack?
2262
- GRPC_CLOSURE_INIT(&resolution_done_closure_, ResolutionDone, elem, nullptr);
2263
- ExecCtx::Run(DEBUG_LOCATION, &resolution_done_closure_, error);
2264
- }
2265
-
2266
- void ClientChannel::CallData::ResolutionDone(void* arg,
2267
- grpc_error_handle error) {
2268
- grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
2269
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
2270
- CallData* calld = static_cast<CallData*>(elem->call_data);
2271
- if (!GRPC_ERROR_IS_NONE(error)) {
2272
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2273
- gpr_log(GPR_INFO,
2274
- "chand=%p calld=%p: error applying config to call: error=%s",
2275
- chand, calld, grpc_error_std_string(error).c_str());
2276
- }
2277
- calld->PendingBatchesFail(elem, GRPC_ERROR_REF(error), YieldCallCombiner);
2278
- return;
2279
- }
2280
- calld->CreateDynamicCall(elem);
2281
- }
2282
-
2283
- void ClientChannel::CallData::CheckResolution(void* arg,
2284
- grpc_error_handle error) {
2285
- grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
2286
- CallData* calld = static_cast<CallData*>(elem->call_data);
2287
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
2288
- bool resolution_complete;
2289
- {
2290
- MutexLock lock(&chand->resolution_mu_);
2291
- resolution_complete = calld->CheckResolutionLocked(elem, &error);
2292
- }
2293
- if (resolution_complete) {
2294
- ResolutionDone(elem, error);
2295
- GRPC_ERROR_UNREF(error);
2296
- }
2297
- }
2298
-
2299
- bool ClientChannel::CallData::CheckResolutionLocked(grpc_call_element* elem,
2300
- grpc_error_handle* error) {
2301
- ClientChannel* chand = static_cast<ClientChannel*>(elem->channel_data);
2302
- // If we're still in IDLE, we need to start resolving.
2303
- if (GPR_UNLIKELY(chand->CheckConnectivityState(false) == GRPC_CHANNEL_IDLE)) {
2304
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2305
- gpr_log(GPR_INFO, "chand=%p calld=%p: triggering exit idle", chand, this);
2306
- }
2307
- // Bounce into the control plane work serializer to start resolving,
2308
- // in case we are still in IDLE state. Since we are holding on to the
2309
- // resolution mutex here, we offload it on the ExecCtx so that we don't
2310
- // deadlock with ourselves.
2311
- GRPC_CHANNEL_STACK_REF(chand->owning_stack_, "CheckResolutionLocked");
2312
- ExecCtx::Run(
2313
- DEBUG_LOCATION,
2314
- GRPC_CLOSURE_CREATE(
2315
- [](void* arg, grpc_error_handle /*error*/) {
2316
- auto* chand = static_cast<ClientChannel*>(arg);
2317
- chand->work_serializer_->Run(
2318
- [chand]()
2319
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*chand->work_serializer_) {
2320
- chand->CheckConnectivityState(/*try_to_connect=*/true);
2321
- GRPC_CHANNEL_STACK_UNREF(chand->owning_stack_,
2322
- "CheckResolutionLocked");
2323
- },
2324
- DEBUG_LOCATION);
2325
- },
2326
- chand, nullptr),
2327
- GRPC_ERROR_NONE);
2328
- }
2329
- // Get send_initial_metadata batch and flags.
2330
- auto& send_initial_metadata =
2331
- pending_batches_[0]->payload->send_initial_metadata;
2332
- grpc_metadata_batch* initial_metadata_batch =
2333
- send_initial_metadata.send_initial_metadata;
2334
- // If we don't yet have a resolver result, we need to queue the call
2335
- // until we get one.
2336
- if (GPR_UNLIKELY(!chand->received_service_config_data_)) {
2337
- // If the resolver returned transient failure before returning the
2338
- // first service config, fail any non-wait_for_ready calls.
2339
- absl::Status resolver_error = chand->resolver_transient_failure_error_;
2340
- if (!resolver_error.ok() &&
2341
- !initial_metadata_batch->GetOrCreatePointer(WaitForReady())->value) {
2342
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2343
- gpr_log(GPR_INFO, "chand=%p calld=%p: resolution failed, failing call",
2344
- chand, this);
2345
- }
2346
- MaybeRemoveCallFromResolverQueuedCallsLocked(elem);
2347
- *error = absl_status_to_grpc_error(resolver_error);
2348
- return true;
2349
- }
2350
- // Either the resolver has not yet returned a result, or it has
2351
- // returned transient failure but the call is wait_for_ready. In
2352
- // either case, queue the call.
2353
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2354
- gpr_log(GPR_INFO, "chand=%p calld=%p: queuing to wait for resolution",
2355
- chand, this);
2356
- }
2357
- MaybeAddCallToResolverQueuedCallsLocked(elem);
2358
- return false;
2359
- }
2360
- // Apply service config to call if not yet applied.
2361
- if (GPR_LIKELY(!service_config_applied_)) {
2362
- service_config_applied_ = true;
2363
- *error = ApplyServiceConfigToCallLocked(elem, initial_metadata_batch);
2364
- }
2365
- MaybeRemoveCallFromResolverQueuedCallsLocked(elem);
2366
- return true;
2367
- }
2368
-
2369
- void ClientChannel::CallData::CreateDynamicCall(grpc_call_element* elem) {
2370
- auto* chand = static_cast<ClientChannel*>(elem->channel_data);
2371
- DynamicFilters::Call::Args args = {std::move(dynamic_filters_),
2372
- pollent_,
2373
- path_,
2374
- call_start_time_,
2375
- deadline_,
2376
- arena_,
2377
- call_context_,
2378
- call_combiner_};
2379
- grpc_error_handle error = GRPC_ERROR_NONE;
2380
- DynamicFilters* channel_stack = args.channel_stack.get();
2381
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2382
- gpr_log(
2383
- GPR_INFO,
2384
- "chand=%p calld=%p: creating dynamic call stack on channel_stack=%p",
2385
- chand, this, channel_stack);
2386
- }
2387
- dynamic_call_ = channel_stack->CreateCall(std::move(args), &error);
2388
- if (!GRPC_ERROR_IS_NONE(error)) {
2389
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_call_trace)) {
2390
- gpr_log(GPR_INFO,
2391
- "chand=%p calld=%p: failed to create dynamic call: error=%s",
2392
- chand, this, grpc_error_std_string(error).c_str());
2393
- }
2394
- PendingBatchesFail(elem, error, YieldCallCombiner);
2395
- return;
2396
- }
2397
- PendingBatchesResume(elem);
2398
- }
2399
-
2400
- //
2401
- // ClientChannel::LoadBalancedCall::Metadata
2402
- //
2403
-
2404
- class ClientChannel::LoadBalancedCall::Metadata
2405
- : public LoadBalancingPolicy::MetadataInterface {
2406
- public:
2407
- explicit Metadata(grpc_metadata_batch* batch) : batch_(batch) {}
2408
-
2409
- void Add(absl::string_view key, absl::string_view value) override {
2410
- if (batch_ == nullptr) return;
2411
- // Gross, egregious hack to support legacy grpclb behavior.
2412
- // TODO(ctiller): Use a promise context for this once that plumbing is done.
2413
- if (key == GrpcLbClientStatsMetadata::key()) {
2414
- batch_->Set(
2415
- GrpcLbClientStatsMetadata(),
2416
- const_cast<GrpcLbClientStats*>(
2417
- reinterpret_cast<const GrpcLbClientStats*>(value.data())));
2418
- return;
2419
- }
2420
- batch_->Append(key, Slice::FromStaticString(value),
2421
- [key](absl::string_view error, const Slice& value) {
2422
- gpr_log(GPR_ERROR, "%s",
2423
- absl::StrCat(error, " key:", key,
2424
- " value:", value.as_string_view())
2425
- .c_str());
2426
- });
2427
- }
2428
-
2429
- std::vector<std::pair<std::string, std::string>> TestOnlyCopyToVector()
2430
- override {
2431
- if (batch_ == nullptr) return {};
2432
- Encoder encoder;
2433
- batch_->Encode(&encoder);
2434
- return encoder.Take();
2435
- }
2436
-
2437
- absl::optional<absl::string_view> Lookup(absl::string_view key,
2438
- std::string* buffer) const override {
2439
- if (batch_ == nullptr) return absl::nullopt;
2440
- return batch_->GetStringValue(key, buffer);
2441
- }
2442
-
2443
- private:
2444
- class Encoder {
2445
- public:
2446
- void Encode(const Slice& key, const Slice& value) {
2447
- out_.emplace_back(std::string(key.as_string_view()),
2448
- std::string(value.as_string_view()));
2449
- }
2450
-
2451
- template <class Which>
2452
- void Encode(Which, const typename Which::ValueType& value) {
2453
- auto value_slice = Which::Encode(value);
2454
- out_.emplace_back(std::string(Which::key()),
2455
- std::string(value_slice.as_string_view()));
2456
- }
2457
-
2458
- void Encode(GrpcTimeoutMetadata,
2459
- const typename GrpcTimeoutMetadata::ValueType&) {}
2460
- void Encode(HttpPathMetadata, const Slice&) {}
2461
- void Encode(HttpMethodMetadata,
2462
- const typename HttpMethodMetadata::ValueType&) {}
2463
-
2464
- std::vector<std::pair<std::string, std::string>> Take() {
2465
- return std::move(out_);
2466
- }
2467
-
2468
- private:
2469
- std::vector<std::pair<std::string, std::string>> out_;
2470
- };
2471
-
2472
- grpc_metadata_batch* batch_;
2473
- };
2474
-
2475
- //
2476
- // ClientChannel::LoadBalancedCall::LbCallState
2477
- //
2478
-
2479
- absl::string_view
2480
- ClientChannel::LoadBalancedCall::LbCallState::GetCallAttribute(
2481
- UniqueTypeName type) {
2482
- auto* service_config_call_data = static_cast<ServiceConfigCallData*>(
2483
- lb_call_->call_context_[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value);
2484
- auto& call_attributes = service_config_call_data->call_attributes();
2485
- auto it = call_attributes.find(type);
2486
- if (it == call_attributes.end()) return absl::string_view();
2487
- return it->second;
2488
- }
2489
-
2490
- //
2491
- // ClientChannel::LoadBalancedCall::BackendMetricAccessor
2492
- //
2493
-
2494
- class ClientChannel::LoadBalancedCall::BackendMetricAccessor
2495
- : public LoadBalancingPolicy::BackendMetricAccessor {
2496
- public:
2497
- explicit BackendMetricAccessor(LoadBalancedCall* lb_call)
2498
- : lb_call_(lb_call) {}
2499
-
2500
- const BackendMetricData* GetBackendMetricData() override {
2501
- if (lb_call_->backend_metric_data_ == nullptr &&
2502
- lb_call_->recv_trailing_metadata_ != nullptr) {
2503
- if (const auto* md = lb_call_->recv_trailing_metadata_->get_pointer(
2504
- EndpointLoadMetricsBinMetadata())) {
2505
- BackendMetricAllocator allocator(lb_call_->arena_);
2506
- lb_call_->backend_metric_data_ =
2507
- ParseBackendMetricData(md->as_string_view(), &allocator);
2508
- }
2509
- }
2510
- return lb_call_->backend_metric_data_;
2511
- }
2512
-
2513
- private:
2514
- class BackendMetricAllocator : public BackendMetricAllocatorInterface {
2515
- public:
2516
- explicit BackendMetricAllocator(Arena* arena) : arena_(arena) {}
2517
-
2518
- BackendMetricData* AllocateBackendMetricData() override {
2519
- return arena_->New<BackendMetricData>();
2520
- }
2521
-
2522
- char* AllocateString(size_t size) override {
2523
- return static_cast<char*>(arena_->Alloc(size));
2524
- }
2525
-
2526
- private:
2527
- Arena* arena_;
2528
- };
2529
-
2530
- LoadBalancedCall* lb_call_;
2531
- };
2532
-
2533
- //
2534
- // ClientChannel::LoadBalancedCall
2535
- //
2536
-
2537
- namespace {
2538
-
2539
- CallTracer::CallAttemptTracer* GetCallAttemptTracer(
2540
- grpc_call_context_element* context, bool is_transparent_retry) {
2541
- auto* call_tracer =
2542
- static_cast<CallTracer*>(context[GRPC_CONTEXT_CALL_TRACER].value);
2543
- if (call_tracer == nullptr) return nullptr;
2544
- return call_tracer->StartNewAttempt(is_transparent_retry);
2545
- }
2546
-
2547
- } // namespace
2548
-
2549
- ClientChannel::LoadBalancedCall::LoadBalancedCall(
2550
- ClientChannel* chand, const grpc_call_element_args& args,
2551
- grpc_polling_entity* pollent, grpc_closure* on_call_destruction_complete,
2552
- ConfigSelector::CallDispatchController* call_dispatch_controller,
2553
- bool is_transparent_retry)
2554
- : InternallyRefCounted(
2555
- GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)
2556
- ? "LoadBalancedCall"
2557
- : nullptr),
2558
- chand_(chand),
2559
- path_(grpc_slice_ref_internal(args.path)),
2560
- deadline_(args.deadline),
2561
- arena_(args.arena),
2562
- owning_call_(args.call_stack),
2563
- call_combiner_(args.call_combiner),
2564
- call_context_(args.context),
2565
- pollent_(pollent),
2566
- on_call_destruction_complete_(on_call_destruction_complete),
2567
- call_dispatch_controller_(call_dispatch_controller),
2568
- call_attempt_tracer_(
2569
- GetCallAttemptTracer(args.context, is_transparent_retry)) {
2570
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2571
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: created", chand_, this);
2572
- }
2573
- }
2574
-
2575
- ClientChannel::LoadBalancedCall::~LoadBalancedCall() {
2576
- GRPC_ERROR_UNREF(cancel_error_);
2577
- GRPC_ERROR_UNREF(failure_error_);
2578
- if (backend_metric_data_ != nullptr) {
2579
- backend_metric_data_->BackendMetricData::~BackendMetricData();
2580
- }
2581
- // Make sure there are no remaining pending batches.
2582
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2583
- GPR_ASSERT(pending_batches_[i] == nullptr);
2584
- }
2585
- if (on_call_destruction_complete_ != nullptr) {
2586
- ExecCtx::Run(DEBUG_LOCATION, on_call_destruction_complete_,
2587
- GRPC_ERROR_NONE);
2588
- }
2589
- }
2590
-
2591
- void ClientChannel::LoadBalancedCall::Orphan() {
2592
- // If the recv_trailing_metadata op was never started, then notify
2593
- // about call completion here, as best we can. We assume status
2594
- // CANCELLED in this case.
2595
- if (recv_trailing_metadata_ == nullptr) {
2596
- RecordCallCompletion(absl::CancelledError("call cancelled"));
2597
- }
2598
- // Compute latency and report it to the tracer.
2599
- if (call_attempt_tracer_ != nullptr) {
2600
- gpr_timespec latency =
2601
- gpr_cycle_counter_sub(gpr_get_cycle_counter(), lb_call_start_time_);
2602
- call_attempt_tracer_->RecordEnd(latency);
2603
- }
2604
- Unref();
2605
- }
2606
-
2607
- size_t ClientChannel::LoadBalancedCall::GetBatchIndex(
2608
- grpc_transport_stream_op_batch* batch) {
2609
- // Note: It is important the send_initial_metadata be the first entry
2610
- // here, since the code in PickSubchannelLocked() assumes it will be.
2611
- if (batch->send_initial_metadata) return 0;
2612
- if (batch->send_message) return 1;
2613
- if (batch->send_trailing_metadata) return 2;
2614
- if (batch->recv_initial_metadata) return 3;
2615
- if (batch->recv_message) return 4;
2616
- if (batch->recv_trailing_metadata) return 5;
2617
- GPR_UNREACHABLE_CODE(return (size_t)-1);
2618
- }
2619
-
2620
- // This is called via the call combiner, so access to calld is synchronized.
2621
- void ClientChannel::LoadBalancedCall::PendingBatchesAdd(
2622
- grpc_transport_stream_op_batch* batch) {
2623
- const size_t idx = GetBatchIndex(batch);
2624
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2625
- gpr_log(GPR_INFO,
2626
- "chand=%p lb_call=%p: adding pending batch at index %" PRIuPTR,
2627
- chand_, this, idx);
2628
- }
2629
- GPR_ASSERT(pending_batches_[idx] == nullptr);
2630
- pending_batches_[idx] = batch;
2631
- }
2632
-
2633
- // This is called via the call combiner, so access to calld is synchronized.
2634
- void ClientChannel::LoadBalancedCall::FailPendingBatchInCallCombiner(
2635
- void* arg, grpc_error_handle error) {
2636
- grpc_transport_stream_op_batch* batch =
2637
- static_cast<grpc_transport_stream_op_batch*>(arg);
2638
- auto* self = static_cast<LoadBalancedCall*>(batch->handler_private.extra_arg);
2639
- // Note: This will release the call combiner.
2640
- grpc_transport_stream_op_batch_finish_with_failure(
2641
- batch, GRPC_ERROR_REF(error), self->call_combiner_);
2642
- }
2643
-
2644
- // This is called via the call combiner, so access to calld is synchronized.
2645
- void ClientChannel::LoadBalancedCall::PendingBatchesFail(
2646
- grpc_error_handle error,
2647
- YieldCallCombinerPredicate yield_call_combiner_predicate) {
2648
- GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
2649
- GRPC_ERROR_UNREF(failure_error_);
2650
- failure_error_ = error;
2651
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2652
- size_t num_batches = 0;
2653
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2654
- if (pending_batches_[i] != nullptr) ++num_batches;
2655
- }
2656
- gpr_log(GPR_INFO,
2657
- "chand=%p lb_call=%p: failing %" PRIuPTR " pending batches: %s",
2658
- chand_, this, num_batches, grpc_error_std_string(error).c_str());
2659
- }
2660
- CallCombinerClosureList closures;
2661
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2662
- grpc_transport_stream_op_batch*& batch = pending_batches_[i];
2663
- if (batch != nullptr) {
2664
- batch->handler_private.extra_arg = this;
2665
- GRPC_CLOSURE_INIT(&batch->handler_private.closure,
2666
- FailPendingBatchInCallCombiner, batch,
2667
- grpc_schedule_on_exec_ctx);
2668
- closures.Add(&batch->handler_private.closure, GRPC_ERROR_REF(error),
2669
- "PendingBatchesFail");
2670
- batch = nullptr;
2671
- }
2672
- }
2673
- if (yield_call_combiner_predicate(closures)) {
2674
- closures.RunClosures(call_combiner_);
2675
- } else {
2676
- closures.RunClosuresWithoutYielding(call_combiner_);
2677
- }
2678
- }
2679
-
2680
- // This is called via the call combiner, so access to calld is synchronized.
2681
- void ClientChannel::LoadBalancedCall::ResumePendingBatchInCallCombiner(
2682
- void* arg, grpc_error_handle /*ignored*/) {
2683
- grpc_transport_stream_op_batch* batch =
2684
- static_cast<grpc_transport_stream_op_batch*>(arg);
2685
- SubchannelCall* subchannel_call =
2686
- static_cast<SubchannelCall*>(batch->handler_private.extra_arg);
2687
- // Note: This will release the call combiner.
2688
- subchannel_call->StartTransportStreamOpBatch(batch);
2689
- }
2690
-
2691
- // This is called via the call combiner, so access to calld is synchronized.
2692
- void ClientChannel::LoadBalancedCall::PendingBatchesResume() {
2693
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2694
- size_t num_batches = 0;
2695
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2696
- if (pending_batches_[i] != nullptr) ++num_batches;
2697
- }
2698
- gpr_log(GPR_INFO,
2699
- "chand=%p lb_call=%p: starting %" PRIuPTR
2700
- " pending batches on subchannel_call=%p",
2701
- chand_, this, num_batches, subchannel_call_.get());
2702
- }
2703
- CallCombinerClosureList closures;
2704
- for (size_t i = 0; i < GPR_ARRAY_SIZE(pending_batches_); ++i) {
2705
- grpc_transport_stream_op_batch*& batch = pending_batches_[i];
2706
- if (batch != nullptr) {
2707
- batch->handler_private.extra_arg = subchannel_call_.get();
2708
- GRPC_CLOSURE_INIT(&batch->handler_private.closure,
2709
- ResumePendingBatchInCallCombiner, batch,
2710
- grpc_schedule_on_exec_ctx);
2711
- closures.Add(&batch->handler_private.closure, GRPC_ERROR_NONE,
2712
- "resuming pending batch from LB call");
2713
- batch = nullptr;
2714
- }
2715
- }
2716
- // Note: This will release the call combiner.
2717
- closures.RunClosures(call_combiner_);
2718
- }
2719
-
2720
- void ClientChannel::LoadBalancedCall::StartTransportStreamOpBatch(
2721
- grpc_transport_stream_op_batch* batch) {
2722
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace) ||
2723
- GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) {
2724
- gpr_log(GPR_INFO,
2725
- "chand=%p lb_call=%p: batch started from above: %s, "
2726
- "call_attempt_tracer_=%p",
2727
- chand_, this, grpc_transport_stream_op_batch_string(batch).c_str(),
2728
- call_attempt_tracer_);
2729
- }
2730
- // Handle call tracing.
2731
- if (call_attempt_tracer_ != nullptr) {
2732
- // Record send ops in tracer.
2733
- if (batch->cancel_stream) {
2734
- call_attempt_tracer_->RecordCancel(
2735
- GRPC_ERROR_REF(batch->payload->cancel_stream.cancel_error));
2736
- }
2737
- if (batch->send_initial_metadata) {
2738
- call_attempt_tracer_->RecordSendInitialMetadata(
2739
- batch->payload->send_initial_metadata.send_initial_metadata);
2740
- peer_string_ = batch->payload->send_initial_metadata.peer_string;
2741
- original_send_initial_metadata_on_complete_ = batch->on_complete;
2742
- GRPC_CLOSURE_INIT(&send_initial_metadata_on_complete_,
2743
- SendInitialMetadataOnComplete, this, nullptr);
2744
- batch->on_complete = &send_initial_metadata_on_complete_;
2745
- }
2746
- if (batch->send_message) {
2747
- call_attempt_tracer_->RecordSendMessage(
2748
- *batch->payload->send_message.send_message);
2749
- }
2750
- if (batch->send_trailing_metadata) {
2751
- call_attempt_tracer_->RecordSendTrailingMetadata(
2752
- batch->payload->send_trailing_metadata.send_trailing_metadata);
2753
- }
2754
- // Intercept recv ops.
2755
- if (batch->recv_initial_metadata) {
2756
- recv_initial_metadata_ =
2757
- batch->payload->recv_initial_metadata.recv_initial_metadata;
2758
- original_recv_initial_metadata_ready_ =
2759
- batch->payload->recv_initial_metadata.recv_initial_metadata_ready;
2760
- GRPC_CLOSURE_INIT(&recv_initial_metadata_ready_, RecvInitialMetadataReady,
2761
- this, nullptr);
2762
- batch->payload->recv_initial_metadata.recv_initial_metadata_ready =
2763
- &recv_initial_metadata_ready_;
2764
- }
2765
- if (batch->recv_message) {
2766
- recv_message_ = batch->payload->recv_message.recv_message;
2767
- original_recv_message_ready_ =
2768
- batch->payload->recv_message.recv_message_ready;
2769
- GRPC_CLOSURE_INIT(&recv_message_ready_, RecvMessageReady, this, nullptr);
2770
- batch->payload->recv_message.recv_message_ready = &recv_message_ready_;
2771
- }
2772
- }
2773
- // Intercept recv_trailing_metadata even if there is no call tracer,
2774
- // since we may need to notify the LB policy about trailing metadata.
2775
- if (batch->recv_trailing_metadata) {
2776
- recv_trailing_metadata_ =
2777
- batch->payload->recv_trailing_metadata.recv_trailing_metadata;
2778
- transport_stream_stats_ =
2779
- batch->payload->recv_trailing_metadata.collect_stats;
2780
- original_recv_trailing_metadata_ready_ =
2781
- batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready;
2782
- GRPC_CLOSURE_INIT(&recv_trailing_metadata_ready_, RecvTrailingMetadataReady,
2783
- this, nullptr);
2784
- batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready =
2785
- &recv_trailing_metadata_ready_;
2786
- }
2787
- // If we've already gotten a subchannel call, pass the batch down to it.
2788
- // Note that once we have picked a subchannel, we do not need to acquire
2789
- // the channel's data plane mutex, which is more efficient (especially for
2790
- // streaming calls).
2791
- if (subchannel_call_ != nullptr) {
2792
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2793
- gpr_log(GPR_INFO,
2794
- "chand=%p lb_call=%p: starting batch on subchannel_call=%p",
2795
- chand_, this, subchannel_call_.get());
2796
- }
2797
- subchannel_call_->StartTransportStreamOpBatch(batch);
2798
- return;
2799
- }
2800
- // We do not yet have a subchannel call.
2801
- //
2802
- // If we've previously been cancelled, immediately fail any new batches.
2803
- if (GPR_UNLIKELY(!GRPC_ERROR_IS_NONE(cancel_error_))) {
2804
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2805
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: failing batch with error: %s",
2806
- chand_, this, grpc_error_std_string(cancel_error_).c_str());
2807
- }
2808
- // Note: This will release the call combiner.
2809
- grpc_transport_stream_op_batch_finish_with_failure(
2810
- batch, GRPC_ERROR_REF(cancel_error_), call_combiner_);
2811
- return;
2812
- }
2813
- // Handle cancellation.
2814
- if (GPR_UNLIKELY(batch->cancel_stream)) {
2815
- // Stash a copy of cancel_error in our call data, so that we can use
2816
- // it for subsequent operations. This ensures that if the call is
2817
- // cancelled before any batches are passed down (e.g., if the deadline
2818
- // is in the past when the call starts), we can return the right
2819
- // error to the caller when the first batch does get passed down.
2820
- GRPC_ERROR_UNREF(cancel_error_);
2821
- cancel_error_ = GRPC_ERROR_REF(batch->payload->cancel_stream.cancel_error);
2822
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2823
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: recording cancel_error=%s",
2824
- chand_, this, grpc_error_std_string(cancel_error_).c_str());
2825
- }
2826
- // Fail all pending batches.
2827
- PendingBatchesFail(GRPC_ERROR_REF(cancel_error_), NoYieldCallCombiner);
2828
- // Note: This will release the call combiner.
2829
- grpc_transport_stream_op_batch_finish_with_failure(
2830
- batch, GRPC_ERROR_REF(cancel_error_), call_combiner_);
2831
- return;
2832
- }
2833
- // Add the batch to the pending list.
2834
- PendingBatchesAdd(batch);
2835
- // For batches containing a send_initial_metadata op, acquire the
2836
- // channel's data plane mutex to pick a subchannel.
2837
- if (GPR_LIKELY(batch->send_initial_metadata)) {
2838
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2839
- gpr_log(GPR_INFO,
2840
- "chand=%p lb_call=%p: grabbing data plane mutex to perform pick",
2841
- chand_, this);
2842
- }
2843
- PickSubchannel(this, GRPC_ERROR_NONE);
2844
- } else {
2845
- // For all other batches, release the call combiner.
2846
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2847
- gpr_log(GPR_INFO,
2848
- "chand=%p lb_call=%p: saved batch, yielding call combiner",
2849
- chand_, this);
2850
- }
2851
- GRPC_CALL_COMBINER_STOP(call_combiner_,
2852
- "batch does not include send_initial_metadata");
2853
- }
2854
- }
2855
-
2856
- void ClientChannel::LoadBalancedCall::SendInitialMetadataOnComplete(
2857
- void* arg, grpc_error_handle error) {
2858
- auto* self = static_cast<LoadBalancedCall*>(arg);
2859
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2860
- gpr_log(GPR_INFO,
2861
- "chand=%p lb_call=%p: got on_complete for send_initial_metadata: "
2862
- "error=%s",
2863
- self->chand_, self, grpc_error_std_string(error).c_str());
2864
- }
2865
- self->call_attempt_tracer_->RecordOnDoneSendInitialMetadata(
2866
- self->peer_string_);
2867
- Closure::Run(DEBUG_LOCATION,
2868
- self->original_send_initial_metadata_on_complete_,
2869
- GRPC_ERROR_REF(error));
2870
- }
2871
-
2872
- void ClientChannel::LoadBalancedCall::RecvInitialMetadataReady(
2873
- void* arg, grpc_error_handle error) {
2874
- auto* self = static_cast<LoadBalancedCall*>(arg);
2875
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2876
- gpr_log(GPR_INFO,
2877
- "chand=%p lb_call=%p: got recv_initial_metadata_ready: error=%s",
2878
- self->chand_, self, grpc_error_std_string(error).c_str());
2879
- }
2880
- if (GRPC_ERROR_IS_NONE(error)) {
2881
- // recv_initial_metadata_flags is not populated for clients
2882
- self->call_attempt_tracer_->RecordReceivedInitialMetadata(
2883
- self->recv_initial_metadata_, 0 /* recv_initial_metadata_flags */);
2884
- }
2885
- Closure::Run(DEBUG_LOCATION, self->original_recv_initial_metadata_ready_,
2886
- GRPC_ERROR_REF(error));
2887
- }
2888
-
2889
- void ClientChannel::LoadBalancedCall::RecvMessageReady(
2890
- void* arg, grpc_error_handle error) {
2891
- auto* self = static_cast<LoadBalancedCall*>(arg);
2892
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2893
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: got recv_message_ready: error=%s",
2894
- self->chand_, self, grpc_error_std_string(error).c_str());
2895
- }
2896
- if (self->recv_message_->has_value()) {
2897
- self->call_attempt_tracer_->RecordReceivedMessage(**self->recv_message_);
2898
- }
2899
- Closure::Run(DEBUG_LOCATION, self->original_recv_message_ready_,
2900
- GRPC_ERROR_REF(error));
2901
- }
2902
-
2903
- void ClientChannel::LoadBalancedCall::RecvTrailingMetadataReady(
2904
- void* arg, grpc_error_handle error) {
2905
- auto* self = static_cast<LoadBalancedCall*>(arg);
2906
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2907
- gpr_log(GPR_INFO,
2908
- "chand=%p lb_call=%p: got recv_trailing_metadata_ready: error=%s "
2909
- "call_attempt_tracer_=%p lb_subchannel_call_tracker_=%p "
2910
- "failure_error_=%s",
2911
- self->chand_, self, grpc_error_std_string(error).c_str(),
2912
- self->call_attempt_tracer_, self->lb_subchannel_call_tracker_.get(),
2913
- grpc_error_std_string(self->failure_error_).c_str());
2914
- }
2915
- // Check if we have a tracer or an LB callback to invoke.
2916
- if (self->call_attempt_tracer_ != nullptr ||
2917
- self->lb_subchannel_call_tracker_ != nullptr) {
2918
- // Get the call's status.
2919
- absl::Status status;
2920
- if (!GRPC_ERROR_IS_NONE(error)) {
2921
- // Get status from error.
2922
- grpc_status_code code;
2923
- std::string message;
2924
- grpc_error_get_status(error, self->deadline_, &code, &message,
2925
- /*http_error=*/nullptr, /*error_string=*/nullptr);
2926
- status = absl::Status(static_cast<absl::StatusCode>(code), message);
2927
- } else {
2928
- // Get status from headers.
2929
- const auto& md = *self->recv_trailing_metadata_;
2930
- grpc_status_code code =
2931
- md.get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN);
2932
- if (code != GRPC_STATUS_OK) {
2933
- absl::string_view message;
2934
- if (const auto* grpc_message = md.get_pointer(GrpcMessageMetadata())) {
2935
- message = grpc_message->as_string_view();
2936
- }
2937
- status = absl::Status(static_cast<absl::StatusCode>(code), message);
2938
- }
2939
- }
2940
- self->RecordCallCompletion(status);
2941
- }
2942
- // Chain to original callback.
2943
- if (!GRPC_ERROR_IS_NONE(self->failure_error_)) {
2944
- error = self->failure_error_;
2945
- self->failure_error_ = GRPC_ERROR_NONE;
2946
- } else {
2947
- error = GRPC_ERROR_REF(error);
2948
- }
2949
- Closure::Run(DEBUG_LOCATION, self->original_recv_trailing_metadata_ready_,
2950
- error);
2951
- }
2952
-
2953
- void ClientChannel::LoadBalancedCall::RecordCallCompletion(
2954
- absl::Status status) {
2955
- // If we have a tracer, notify it.
2956
- if (call_attempt_tracer_ != nullptr) {
2957
- call_attempt_tracer_->RecordReceivedTrailingMetadata(
2958
- status, recv_trailing_metadata_, transport_stream_stats_);
2959
- }
2960
- // If the LB policy requested a callback for trailing metadata, invoke
2961
- // the callback.
2962
- if (lb_subchannel_call_tracker_ != nullptr) {
2963
- Metadata trailing_metadata(recv_trailing_metadata_);
2964
- BackendMetricAccessor backend_metric_accessor(this);
2965
- LoadBalancingPolicy::SubchannelCallTrackerInterface::FinishArgs args = {
2966
- status, &trailing_metadata, &backend_metric_accessor};
2967
- lb_subchannel_call_tracker_->Finish(args);
2968
- lb_subchannel_call_tracker_.reset();
2969
- }
2970
- }
2971
-
2972
- void ClientChannel::LoadBalancedCall::CreateSubchannelCall() {
2973
- SubchannelCall::Args call_args = {
2974
- std::move(connected_subchannel_), pollent_, path_.Ref(), /*start_time=*/0,
2975
- deadline_, arena_,
2976
- // TODO(roth): When we implement hedging support, we will probably
2977
- // need to use a separate call context for each subchannel call.
2978
- call_context_, call_combiner_};
2979
- grpc_error_handle error = GRPC_ERROR_NONE;
2980
- subchannel_call_ = SubchannelCall::Create(std::move(call_args), &error);
2981
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
2982
- gpr_log(GPR_INFO,
2983
- "chand=%p lb_call=%p: create subchannel_call=%p: error=%s", chand_,
2984
- this, subchannel_call_.get(), grpc_error_std_string(error).c_str());
2985
- }
2986
- if (on_call_destruction_complete_ != nullptr) {
2987
- subchannel_call_->SetAfterCallStackDestroy(on_call_destruction_complete_);
2988
- on_call_destruction_complete_ = nullptr;
2989
- }
2990
- if (GPR_UNLIKELY(!GRPC_ERROR_IS_NONE(error))) {
2991
- PendingBatchesFail(error, YieldCallCombiner);
2992
- } else {
2993
- PendingBatchesResume();
2994
- }
2995
- }
2996
-
2997
- // A class to handle the call combiner cancellation callback for a
2998
- // queued pick.
2999
- // TODO(roth): When we implement hedging support, we won't be able to
3000
- // register a call combiner cancellation closure for each LB pick,
3001
- // because there may be multiple LB picks happening in parallel.
3002
- // Instead, we will probably need to maintain a list in the CallData
3003
- // object of pending LB picks to be cancelled when the closure runs.
3004
- class ClientChannel::LoadBalancedCall::LbQueuedCallCanceller {
3005
- public:
3006
- explicit LbQueuedCallCanceller(RefCountedPtr<LoadBalancedCall> lb_call)
3007
- : lb_call_(std::move(lb_call)) {
3008
- GRPC_CALL_STACK_REF(lb_call_->owning_call_, "LbQueuedCallCanceller");
3009
- GRPC_CLOSURE_INIT(&closure_, &CancelLocked, this, nullptr);
3010
- lb_call_->call_combiner_->SetNotifyOnCancel(&closure_);
3011
- }
3012
-
3013
- private:
3014
- static void CancelLocked(void* arg, grpc_error_handle error) {
3015
- auto* self = static_cast<LbQueuedCallCanceller*>(arg);
3016
- auto* lb_call = self->lb_call_.get();
3017
- auto* chand = lb_call->chand_;
3018
- {
3019
- MutexLock lock(&chand->data_plane_mu_);
3020
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3021
- gpr_log(GPR_INFO,
3022
- "chand=%p lb_call=%p: cancelling queued pick: "
3023
- "error=%s self=%p calld->pick_canceller=%p",
3024
- chand, lb_call, grpc_error_std_string(error).c_str(), self,
3025
- lb_call->lb_call_canceller_);
3026
- }
3027
- if (lb_call->lb_call_canceller_ == self && !GRPC_ERROR_IS_NONE(error)) {
3028
- lb_call->call_dispatch_controller_->Commit();
3029
- // Remove pick from list of queued picks.
3030
- lb_call->MaybeRemoveCallFromLbQueuedCallsLocked();
3031
- // Fail pending batches on the call.
3032
- lb_call->PendingBatchesFail(GRPC_ERROR_REF(error),
3033
- YieldCallCombinerIfPendingBatchesFound);
3034
- }
3035
- }
3036
- GRPC_CALL_STACK_UNREF(lb_call->owning_call_, "LbQueuedCallCanceller");
3037
- delete self;
3038
- }
3039
-
3040
- RefCountedPtr<LoadBalancedCall> lb_call_;
3041
- grpc_closure closure_;
3042
- };
3043
-
3044
- void ClientChannel::LoadBalancedCall::MaybeRemoveCallFromLbQueuedCallsLocked() {
3045
- if (!queued_pending_lb_pick_) return;
3046
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3047
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: removing from queued picks list",
3048
- chand_, this);
3049
- }
3050
- chand_->RemoveLbQueuedCall(&queued_call_, pollent_);
3051
- queued_pending_lb_pick_ = false;
3052
- // Lame the call combiner canceller.
3053
- lb_call_canceller_ = nullptr;
3054
- }
3055
-
3056
- void ClientChannel::LoadBalancedCall::MaybeAddCallToLbQueuedCallsLocked() {
3057
- if (queued_pending_lb_pick_) return;
3058
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3059
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: adding to queued picks list",
3060
- chand_, this);
3061
- }
3062
- queued_pending_lb_pick_ = true;
3063
- queued_call_.lb_call = this;
3064
- chand_->AddLbQueuedCall(&queued_call_, pollent_);
3065
- // Register call combiner cancellation callback.
3066
- lb_call_canceller_ = new LbQueuedCallCanceller(Ref());
3067
- }
3068
-
3069
- void ClientChannel::LoadBalancedCall::AsyncPickDone(grpc_error_handle error) {
3070
- // TODO(roth): Does this callback need to hold a ref to LoadBalancedCall?
3071
- GRPC_CLOSURE_INIT(&pick_closure_, PickDone, this, grpc_schedule_on_exec_ctx);
3072
- ExecCtx::Run(DEBUG_LOCATION, &pick_closure_, error);
3073
- }
3074
-
3075
- void ClientChannel::LoadBalancedCall::PickDone(void* arg,
3076
- grpc_error_handle error) {
3077
- auto* self = static_cast<LoadBalancedCall*>(arg);
3078
- if (!GRPC_ERROR_IS_NONE(error)) {
3079
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3080
- gpr_log(GPR_INFO,
3081
- "chand=%p lb_call=%p: failed to pick subchannel: error=%s",
3082
- self->chand_, self, grpc_error_std_string(error).c_str());
3083
- }
3084
- self->PendingBatchesFail(GRPC_ERROR_REF(error), YieldCallCombiner);
3085
- return;
3086
- }
3087
- self->call_dispatch_controller_->Commit();
3088
- self->CreateSubchannelCall();
3089
- }
3090
-
3091
- void ClientChannel::LoadBalancedCall::PickSubchannel(void* arg,
3092
- grpc_error_handle error) {
3093
- auto* self = static_cast<LoadBalancedCall*>(arg);
3094
- bool pick_complete;
3095
- {
3096
- MutexLock lock(&self->chand_->data_plane_mu_);
3097
- pick_complete = self->PickSubchannelLocked(&error);
3098
- }
3099
- if (pick_complete) {
3100
- PickDone(self, error);
3101
- GRPC_ERROR_UNREF(error);
3102
- }
3103
- }
3104
-
3105
- bool ClientChannel::LoadBalancedCall::PickSubchannelLocked(
3106
- grpc_error_handle* error) {
3107
- GPR_ASSERT(connected_subchannel_ == nullptr);
3108
- GPR_ASSERT(subchannel_call_ == nullptr);
3109
- // Grab initial metadata.
3110
- auto& send_initial_metadata =
3111
- pending_batches_[0]->payload->send_initial_metadata;
3112
- grpc_metadata_batch* initial_metadata_batch =
3113
- send_initial_metadata.send_initial_metadata;
3114
- // Perform LB pick.
3115
- LoadBalancingPolicy::PickArgs pick_args;
3116
- pick_args.path = path_.as_string_view();
3117
- LbCallState lb_call_state(this);
3118
- pick_args.call_state = &lb_call_state;
3119
- Metadata initial_metadata(initial_metadata_batch);
3120
- pick_args.initial_metadata = &initial_metadata;
3121
- auto result = chand_->picker_->Pick(pick_args);
3122
- return HandlePickResult<bool>(
3123
- &result,
3124
- // CompletePick
3125
- [this](LoadBalancingPolicy::PickResult::Complete* complete_pick)
3126
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
3127
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3128
- gpr_log(GPR_INFO,
3129
- "chand=%p lb_call=%p: LB pick succeeded: subchannel=%p",
3130
- chand_, this, complete_pick->subchannel.get());
3131
- }
3132
- GPR_ASSERT(complete_pick->subchannel != nullptr);
3133
- // Grab a ref to the connected subchannel while we're still
3134
- // holding the data plane mutex.
3135
- SubchannelWrapper* subchannel = static_cast<SubchannelWrapper*>(
3136
- complete_pick->subchannel.get());
3137
- connected_subchannel_ = subchannel->connected_subchannel();
3138
- // If the subchannel has no connected subchannel (e.g., if the
3139
- // subchannel has moved out of state READY but the LB policy hasn't
3140
- // yet seen that change and given us a new picker), then just
3141
- // queue the pick. We'll try again as soon as we get a new picker.
3142
- if (connected_subchannel_ == nullptr) {
3143
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3144
- gpr_log(GPR_INFO,
3145
- "chand=%p lb_call=%p: subchannel returned by LB picker "
3146
- "has no connected subchannel; queueing pick",
3147
- chand_, this);
3148
- }
3149
- MaybeAddCallToLbQueuedCallsLocked();
3150
- return false;
3151
- }
3152
- lb_subchannel_call_tracker_ =
3153
- std::move(complete_pick->subchannel_call_tracker);
3154
- if (lb_subchannel_call_tracker_ != nullptr) {
3155
- lb_subchannel_call_tracker_->Start();
3156
- }
3157
- MaybeRemoveCallFromLbQueuedCallsLocked();
3158
- return true;
3159
- },
3160
- // QueuePick
3161
- [this](LoadBalancingPolicy::PickResult::Queue* /*queue_pick*/)
3162
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
3163
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3164
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick queued", chand_,
3165
- this);
3166
- }
3167
- MaybeAddCallToLbQueuedCallsLocked();
3168
- return false;
3169
- },
3170
- // FailPick
3171
- [this, initial_metadata_batch,
3172
- &error](LoadBalancingPolicy::PickResult::Fail* fail_pick)
3173
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
3174
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3175
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick failed: %s",
3176
- chand_, this, fail_pick->status.ToString().c_str());
3177
- }
3178
- // If wait_for_ready is false, then the error indicates the RPC
3179
- // attempt's final status.
3180
- if (!initial_metadata_batch->GetOrCreatePointer(WaitForReady())
3181
- ->value) {
3182
- *error = absl_status_to_grpc_error(MaybeRewriteIllegalStatusCode(
3183
- std::move(fail_pick->status), "LB pick"));
3184
- MaybeRemoveCallFromLbQueuedCallsLocked();
3185
- return true;
3186
- }
3187
- // If wait_for_ready is true, then queue to retry when we get a new
3188
- // picker.
3189
- MaybeAddCallToLbQueuedCallsLocked();
3190
- return false;
3191
- },
3192
- // DropPick
3193
- [this, &error](LoadBalancingPolicy::PickResult::Drop* drop_pick)
3194
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(&ClientChannel::data_plane_mu_) {
3195
- if (GRPC_TRACE_FLAG_ENABLED(grpc_client_channel_lb_call_trace)) {
3196
- gpr_log(GPR_INFO, "chand=%p lb_call=%p: LB pick dropped: %s",
3197
- chand_, this, drop_pick->status.ToString().c_str());
3198
- }
3199
- *error = grpc_error_set_int(
3200
- absl_status_to_grpc_error(MaybeRewriteIllegalStatusCode(
3201
- std::move(drop_pick->status), "LB drop")),
3202
- GRPC_ERROR_INT_LB_POLICY_DROP, 1);
3203
- MaybeRemoveCallFromLbQueuedCallsLocked();
3204
- return true;
3205
- });
3206
- }
3207
-
3208
- } // namespace grpc_core