grpc 1.31.1 → 1.35.0.pre1

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

Potentially problematic release.


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

Files changed (1104) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +719 -17819
  3. data/etc/roots.pem +257 -573
  4. data/include/grpc/compression.h +1 -1
  5. data/include/grpc/grpc.h +15 -7
  6. data/include/grpc/grpc_security.h +254 -186
  7. data/include/grpc/impl/codegen/README.md +22 -0
  8. data/include/grpc/impl/codegen/atm_windows.h +4 -0
  9. data/include/grpc/impl/codegen/byte_buffer.h +1 -1
  10. data/include/grpc/impl/codegen/grpc_types.h +10 -8
  11. data/include/grpc/impl/codegen/log.h +0 -2
  12. data/include/grpc/impl/codegen/port_platform.h +28 -56
  13. data/include/grpc/impl/codegen/sync_windows.h +4 -0
  14. data/include/grpc/slice_buffer.h +3 -3
  15. data/include/grpc/support/sync.h +3 -3
  16. data/include/grpc/support/time.h +7 -7
  17. data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
  18. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -2
  19. data/src/core/ext/filters/client_channel/client_channel.cc +2831 -1540
  20. data/src/core/ext/filters/client_channel/client_channel.h +1 -5
  21. data/src/core/ext/filters/client_channel/client_channel_channelz.h +0 -3
  22. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  23. data/src/core/ext/filters/client_channel/config_selector.cc +0 -4
  24. data/src/core/ext/filters/client_channel/config_selector.h +40 -8
  25. data/src/core/ext/filters/client_channel/dynamic_filters.cc +186 -0
  26. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  27. data/src/core/ext/filters/client_channel/health/health_check_client.cc +16 -8
  28. data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -4
  29. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +7 -9
  30. data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
  31. data/src/core/ext/filters/client_channel/lb_policy.cc +6 -2
  32. data/src/core/ext/filters/client_channel/lb_policy.h +8 -7
  33. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +48 -35
  34. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
  35. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -7
  36. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +210 -192
  38. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
  39. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
  40. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -37
  41. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
  42. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
  43. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  44. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +23 -17
  45. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +79 -30
  46. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -9
  47. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +14 -34
  48. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +26 -15
  49. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +350 -130
  50. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +52 -24
  51. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +24 -0
  52. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +812 -0
  53. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +722 -0
  54. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1262 -0
  55. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
  56. data/src/core/ext/filters/client_channel/resolver.cc +3 -1
  57. data/src/core/ext/filters/client_channel/resolver.h +4 -1
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +9 -16
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
  60. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +3 -3
  61. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +457 -19
  62. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
  63. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  64. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  65. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +7 -10
  66. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +4 -4
  67. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
  68. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +35 -28
  69. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +664 -63
  70. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +28 -0
  71. data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
  72. data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
  73. data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
  74. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +29 -74
  75. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +12 -11
  76. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
  77. data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
  78. data/src/core/ext/filters/client_channel/server_address.cc +120 -7
  79. data/src/core/ext/filters/client_channel/server_address.h +44 -21
  80. data/src/core/ext/filters/client_channel/service_config.cc +18 -13
  81. data/src/core/ext/filters/client_channel/service_config.h +8 -5
  82. data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
  83. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -2
  84. data/src/core/ext/filters/client_channel/service_config_parser.cc +8 -6
  85. data/src/core/ext/filters/client_channel/service_config_parser.h +8 -5
  86. data/src/core/ext/filters/client_channel/subchannel.cc +115 -87
  87. data/src/core/ext/filters/client_channel/subchannel.h +30 -24
  88. data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
  89. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -2
  90. data/src/core/ext/filters/deadline/deadline_filter.cc +87 -79
  91. data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
  92. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
  93. data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
  94. data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
  95. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
  96. data/src/core/ext/filters/max_age/max_age_filter.cc +3 -2
  97. data/src/core/ext/filters/message_size/message_size_filter.cc +3 -2
  98. data/src/core/ext/filters/message_size/message_size_filter.h +2 -1
  99. data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
  100. data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
  101. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +87 -31
  102. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +19 -2
  103. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +20 -8
  104. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
  105. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +34 -47
  106. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +200 -100
  107. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -1
  108. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -2
  109. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +16 -9
  110. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -2
  111. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
  112. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +267 -319
  113. data/src/core/ext/transport/chttp2/transport/flow_control.cc +11 -3
  114. data/src/core/ext/transport/chttp2/transport/flow_control.h +13 -3
  115. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  116. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
  117. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
  118. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
  119. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
  120. data/src/core/ext/transport/chttp2/transport/internal.h +10 -2
  121. data/src/core/ext/transport/chttp2/transport/parsing.cc +19 -31
  122. data/src/core/ext/transport/chttp2/transport/writing.cc +8 -8
  123. data/src/core/ext/transport/inproc/inproc_transport.cc +52 -18
  124. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
  125. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  126. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  127. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +244 -0
  128. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +865 -0
  129. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
  130. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +253 -0
  131. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +458 -0
  132. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1818 -0
  133. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +35 -0
  134. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +77 -0
  135. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +55 -0
  136. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +349 -0
  137. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +124 -0
  138. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +428 -0
  139. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +35 -0
  140. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +88 -0
  141. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +310 -0
  142. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +991 -0
  143. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +103 -0
  144. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +388 -0
  145. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +78 -0
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +149 -0
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +241 -0
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +839 -0
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +752 -0
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +36 -0
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +88 -0
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +176 -0
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +730 -0
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +28 -0
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +65 -0
  159. data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +8 -8
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +95 -0
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +36 -0
  162. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +92 -0
  163. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +91 -0
  164. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +243 -0
  165. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
  166. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +305 -0
  167. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
  168. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +367 -0
  169. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +33 -0
  170. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +73 -0
  171. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +128 -0
  172. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +512 -0
  173. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +155 -0
  174. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +591 -0
  175. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +41 -0
  176. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +107 -0
  177. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +178 -0
  178. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +662 -0
  179. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +63 -0
  180. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +220 -0
  181. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +900 -0
  182. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +3640 -0
  183. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +60 -0
  184. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +159 -0
  185. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +50 -0
  186. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +122 -0
  187. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +364 -0
  188. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1475 -0
  189. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +20 -0
  190. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +35 -0
  191. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +110 -0
  192. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +426 -0
  193. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +76 -0
  194. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +236 -0
  195. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +147 -0
  196. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +621 -0
  197. data/src/core/ext/upb-generated/envoy/{api/v2 → service/cluster/v3}/cds.upb.c +6 -7
  198. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +56 -0
  199. data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +6 -5
  200. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +56 -0
  201. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +139 -0
  202. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +487 -0
  203. data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +6 -7
  204. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +56 -0
  205. data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +6 -7
  206. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +56 -0
  207. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +55 -0
  208. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +151 -0
  209. data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/rds.upb.c +6 -7
  210. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +56 -0
  211. data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/srds.upb.c +6 -7
  212. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +56 -0
  213. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
  214. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +128 -0
  215. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
  216. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +84 -0
  217. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
  218. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +78 -0
  219. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +64 -0
  220. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +166 -0
  221. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +54 -0
  222. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +146 -0
  223. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
  224. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +207 -0
  225. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
  226. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +301 -0
  227. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
  228. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +283 -0
  229. data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
  230. data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +9 -8
  231. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +40 -0
  232. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +99 -0
  233. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +51 -0
  234. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +130 -0
  235. data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +7 -6
  236. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +68 -0
  237. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
  238. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
  239. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +830 -0
  240. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +234 -0
  241. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +842 -0
  242. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  243. data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
  244. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  245. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
  246. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +103 -103
  247. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
  248. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  249. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
  250. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  251. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
  252. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
  253. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +23 -4
  254. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  255. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
  256. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
  257. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
  258. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  259. data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
  260. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
  261. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
  262. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
  263. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
  264. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
  265. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
  266. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  267. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +13 -0
  268. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
  269. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
  270. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  271. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
  272. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -0
  273. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +64 -0
  274. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
  275. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
  276. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
  277. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
  278. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +60 -0
  279. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +28 -0
  280. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +60 -0
  281. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +52 -0
  282. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +143 -0
  283. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +42 -0
  284. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +84 -0
  285. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +36 -0
  286. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +94 -0
  287. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +54 -0
  288. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +173 -0
  289. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +36 -0
  290. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +92 -0
  291. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
  292. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
  293. data/src/core/ext/upb-generated/validate/validate.upb.c +68 -68
  294. data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
  295. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
  296. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  297. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
  298. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  299. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +254 -0
  300. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  301. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
  302. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  303. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +558 -0
  304. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
  305. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
  306. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  307. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +133 -0
  308. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  309. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
  310. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  311. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
  312. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  313. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +266 -0
  314. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +125 -0
  315. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
  316. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
  317. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
  318. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  319. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
  320. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
  321. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
  322. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  323. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
  324. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
  325. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
  326. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  327. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +228 -0
  328. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +80 -0
  329. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +46 -0
  330. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  331. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
  332. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  333. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +55 -0
  334. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  335. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +110 -0
  336. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  337. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
  338. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
  339. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
  340. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  341. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
  342. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  343. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +190 -0
  344. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
  345. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +185 -0
  346. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  347. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +62 -0
  348. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  349. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +97 -0
  350. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
  351. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +915 -0
  352. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +280 -0
  353. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
  354. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  355. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +64 -0
  356. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  357. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +511 -0
  358. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
  359. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -0
  360. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  361. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +166 -0
  362. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
  363. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +105 -0
  364. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  365. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +249 -0
  366. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
  367. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
  368. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
  369. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
  370. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  371. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +152 -0
  372. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +60 -0
  373. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +83 -0
  374. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
  375. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +82 -0
  376. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
  377. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +83 -0
  378. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  379. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +86 -0
  380. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
  381. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
  382. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
  383. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
  384. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  385. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
  386. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  387. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
  388. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  389. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
  390. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  391. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +72 -0
  392. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  393. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
  394. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  395. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
  396. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  397. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
  398. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  399. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
  400. data/src/core/ext/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -9
  401. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
  402. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  403. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
  404. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  405. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
  406. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  407. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  408. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  409. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
  410. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  411. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +38 -0
  412. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  413. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
  414. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  415. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +39 -0
  416. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  417. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
  418. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  419. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
  420. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  421. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +39 -0
  422. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  423. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
  424. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  425. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
  426. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  427. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
  428. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  429. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
  430. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  431. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
  432. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  433. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
  434. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  435. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
  436. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  437. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +42 -0
  438. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +35 -0
  439. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +62 -0
  440. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +40 -0
  441. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +45 -0
  442. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +40 -0
  443. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +49 -0
  444. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +35 -0
  445. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +68 -0
  446. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +40 -0
  447. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +51 -0
  448. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +35 -0
  449. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +307 -0
  450. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  451. data/src/core/ext/xds/certificate_provider_factory.h +61 -0
  452. data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
  453. data/src/core/ext/xds/certificate_provider_registry.h +57 -0
  454. data/src/core/ext/xds/certificate_provider_store.cc +87 -0
  455. data/src/core/ext/xds/certificate_provider_store.h +112 -0
  456. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
  457. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
  458. data/src/core/ext/xds/xds_api.cc +2308 -0
  459. data/src/core/ext/xds/xds_api.h +469 -0
  460. data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.cc +208 -19
  461. data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.h +31 -11
  462. data/src/core/ext/xds/xds_certificate_provider.cc +299 -0
  463. data/src/core/ext/xds/xds_certificate_provider.h +112 -0
  464. data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_args.h +9 -6
  465. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +656 -865
  466. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.h +126 -99
  467. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +61 -18
  468. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +38 -10
  469. data/src/core/ext/xds/xds_server_config_fetcher.cc +131 -0
  470. data/src/core/lib/channel/channel_args.cc +9 -8
  471. data/src/core/lib/channel/channel_args.h +0 -1
  472. data/src/core/lib/channel/channel_trace.cc +4 -2
  473. data/src/core/lib/channel/channel_trace.h +1 -1
  474. data/src/core/lib/channel/channelz.cc +37 -74
  475. data/src/core/lib/channel/channelz.h +14 -23
  476. data/src/core/lib/channel/channelz_registry.cc +15 -12
  477. data/src/core/lib/channel/channelz_registry.h +3 -1
  478. data/src/core/lib/channel/handshaker.cc +2 -2
  479. data/src/core/lib/channel/handshaker.h +2 -2
  480. data/src/core/lib/compression/compression.cc +8 -4
  481. data/src/core/lib/compression/compression_args.cc +3 -2
  482. data/src/core/lib/compression/compression_internal.cc +10 -5
  483. data/src/core/lib/compression/compression_internal.h +2 -1
  484. data/src/core/lib/compression/stream_compression_identity.cc +1 -3
  485. data/src/core/lib/debug/stats.h +2 -2
  486. data/src/core/lib/debug/stats_data.cc +1 -0
  487. data/src/core/lib/debug/stats_data.h +13 -13
  488. data/src/core/lib/gpr/alloc.cc +3 -2
  489. data/src/core/lib/gpr/cpu_iphone.cc +10 -2
  490. data/src/core/lib/gpr/log.cc +53 -16
  491. data/src/core/lib/gpr/log_linux.cc +19 -3
  492. data/src/core/lib/gpr/log_posix.cc +15 -1
  493. data/src/core/lib/gpr/log_windows.cc +18 -4
  494. data/src/core/lib/gpr/murmur_hash.cc +1 -1
  495. data/src/core/lib/gpr/spinlock.h +10 -2
  496. data/src/core/lib/gpr/string.cc +23 -22
  497. data/src/core/lib/gpr/string.h +5 -6
  498. data/src/core/lib/gpr/sync.cc +4 -4
  499. data/src/core/lib/gpr/sync_posix.cc +2 -8
  500. data/src/core/lib/gpr/time.cc +12 -12
  501. data/src/core/lib/gpr/time_precise.cc +5 -2
  502. data/src/core/lib/gpr/time_precise.h +6 -2
  503. data/src/core/lib/gpr/tls.h +4 -0
  504. data/src/core/lib/gpr/tls_msvc.h +2 -0
  505. data/src/core/lib/gpr/tls_stdcpp.h +48 -0
  506. data/src/core/lib/gpr/useful.h +5 -4
  507. data/src/core/lib/gprpp/arena.h +3 -2
  508. data/src/core/lib/gprpp/dual_ref_counted.h +331 -0
  509. data/src/core/lib/gprpp/examine_stack.cc +43 -0
  510. data/src/core/lib/gprpp/examine_stack.h +46 -0
  511. data/src/core/lib/gprpp/fork.cc +2 -2
  512. data/src/core/lib/gprpp/manual_constructor.h +1 -1
  513. data/src/core/lib/gprpp/orphanable.h +4 -8
  514. data/src/core/lib/gprpp/ref_counted.h +91 -68
  515. data/src/core/lib/gprpp/ref_counted_ptr.h +166 -7
  516. data/src/core/lib/gprpp/stat.h +38 -0
  517. data/src/core/lib/gprpp/stat_posix.cc +49 -0
  518. data/src/core/lib/gprpp/stat_windows.cc +48 -0
  519. data/src/core/lib/gprpp/thd.h +2 -2
  520. data/src/core/lib/gprpp/thd_posix.cc +42 -37
  521. data/src/core/lib/gprpp/thd_windows.cc +3 -1
  522. data/src/core/lib/http/httpcli.cc +1 -1
  523. data/src/core/lib/http/httpcli.h +2 -3
  524. data/src/core/lib/http/httpcli_security_connector.cc +1 -1
  525. data/src/core/lib/http/parser.cc +47 -27
  526. data/src/core/lib/iomgr/call_combiner.cc +8 -5
  527. data/src/core/lib/iomgr/combiner.cc +2 -1
  528. data/src/core/lib/iomgr/endpoint.cc +5 -1
  529. data/src/core/lib/iomgr/endpoint.h +8 -4
  530. data/src/core/lib/iomgr/endpoint_cfstream.cc +36 -11
  531. data/src/core/lib/iomgr/error.cc +17 -12
  532. data/src/core/lib/iomgr/error_internal.h +1 -1
  533. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -13
  534. data/src/core/lib/iomgr/ev_epollex_linux.cc +25 -17
  535. data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
  536. data/src/core/lib/iomgr/ev_posix.cc +0 -2
  537. data/src/core/lib/iomgr/exec_ctx.cc +1 -1
  538. data/src/core/lib/iomgr/exec_ctx.h +16 -12
  539. data/src/core/lib/iomgr/executor.cc +2 -1
  540. data/src/core/lib/iomgr/executor.h +1 -1
  541. data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
  542. data/src/core/lib/iomgr/executor/threadpool.h +4 -4
  543. data/src/core/lib/iomgr/iomgr.cc +1 -11
  544. data/src/core/lib/iomgr/iomgr.h +0 -10
  545. data/src/core/lib/iomgr/load_file.h +1 -1
  546. data/src/core/lib/iomgr/lockfree_event.cc +19 -14
  547. data/src/core/lib/iomgr/lockfree_event.h +2 -2
  548. data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.cc +128 -44
  549. data/src/core/lib/iomgr/parse_address.h +77 -0
  550. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +2 -1
  551. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +1 -1
  552. data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
  553. data/src/core/lib/iomgr/python_util.h +4 -4
  554. data/src/core/lib/iomgr/resolve_address.cc +4 -4
  555. data/src/core/lib/iomgr/resolve_address_posix.cc +1 -5
  556. data/src/core/lib/iomgr/resource_quota.cc +4 -4
  557. data/src/core/lib/iomgr/sockaddr_utils.cc +12 -11
  558. data/src/core/lib/iomgr/sockaddr_utils.h +3 -2
  559. data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
  560. data/src/core/lib/iomgr/socket_mutator.cc +3 -2
  561. data/src/core/lib/iomgr/tcp_client.cc +3 -3
  562. data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
  563. data/src/core/lib/iomgr/tcp_custom.cc +53 -32
  564. data/src/core/lib/iomgr/tcp_posix.cc +43 -21
  565. data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
  566. data/src/core/lib/iomgr/tcp_windows.cc +26 -10
  567. data/src/core/lib/iomgr/timer_custom.cc +5 -5
  568. data/src/core/lib/iomgr/timer_generic.cc +3 -3
  569. data/src/core/lib/iomgr/timer_manager.cc +2 -2
  570. data/src/core/lib/iomgr/udp_server.cc +1 -2
  571. data/src/core/lib/iomgr/udp_server.h +1 -2
  572. data/src/core/lib/iomgr/unix_sockets_posix.cc +32 -21
  573. data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
  574. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
  575. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
  576. data/src/core/lib/json/json.h +12 -2
  577. data/src/core/lib/json/json_reader.cc +8 -4
  578. data/src/core/lib/json/json_util.cc +58 -0
  579. data/src/core/lib/json/json_util.h +204 -0
  580. data/src/core/lib/json/json_writer.cc +2 -1
  581. data/src/core/lib/security/authorization/authorization_engine.cc +177 -0
  582. data/src/core/lib/security/authorization/authorization_engine.h +84 -0
  583. data/src/core/lib/security/authorization/evaluate_args.cc +148 -0
  584. data/src/core/lib/security/authorization/evaluate_args.h +59 -0
  585. data/src/core/lib/security/authorization/mock_cel/activation.h +57 -0
  586. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +44 -0
  587. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +69 -0
  588. data/src/core/lib/security/authorization/mock_cel/cel_value.h +97 -0
  589. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +67 -0
  590. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +57 -0
  591. data/src/core/lib/security/context/security_context.cc +4 -3
  592. data/src/core/lib/security/context/security_context.h +3 -1
  593. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  594. data/src/core/lib/security/credentials/credentials.cc +7 -7
  595. data/src/core/lib/security/credentials/credentials.h +3 -3
  596. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
  597. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
  598. data/src/core/lib/security/credentials/external/aws_request_signer.cc +213 -0
  599. data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
  600. data/src/core/lib/security/credentials/external/external_account_credentials.cc +497 -0
  601. data/src/core/lib/security/credentials/external/external_account_credentials.h +120 -0
  602. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +135 -0
  603. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +48 -0
  604. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +213 -0
  605. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +58 -0
  606. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -1
  607. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +74 -50
  608. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
  609. data/src/core/lib/security/credentials/jwt/json_token.cc +6 -3
  610. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
  611. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -4
  612. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +39 -46
  613. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
  614. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
  615. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -5
  616. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  617. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +346 -0
  618. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +213 -0
  619. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +399 -0
  620. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +138 -0
  621. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +78 -150
  622. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +57 -187
  623. data/src/core/lib/security/credentials/tls/tls_credentials.cc +16 -12
  624. data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
  625. data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
  626. data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
  627. data/src/core/lib/security/credentials/xds/xds_credentials.cc +175 -0
  628. data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
  629. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
  630. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +10 -15
  631. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
  632. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +87 -0
  633. data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
  634. data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
  635. data/src/core/lib/security/security_connector/local/local_security_connector.cc +3 -3
  636. data/src/core/lib/security/security_connector/security_connector.cc +4 -3
  637. data/src/core/lib/security/security_connector/security_connector.h +4 -2
  638. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
  639. data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
  640. data/src/core/lib/security/security_connector/ssl_utils.h +19 -19
  641. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +342 -279
  642. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +105 -61
  643. data/src/core/lib/security/transport/secure_endpoint.cc +9 -3
  644. data/src/core/lib/security/transport/security_handshaker.cc +3 -3
  645. data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
  646. data/src/core/lib/security/util/json_util.h +1 -0
  647. data/src/core/lib/slice/slice.cc +7 -4
  648. data/src/core/lib/slice/slice_buffer.cc +2 -1
  649. data/src/core/lib/slice/slice_intern.cc +6 -7
  650. data/src/core/lib/slice/slice_internal.h +2 -2
  651. data/src/core/lib/surface/call.cc +53 -44
  652. data/src/core/lib/surface/call.h +2 -1
  653. data/src/core/lib/surface/call_details.cc +8 -8
  654. data/src/core/lib/surface/channel.cc +53 -61
  655. data/src/core/lib/surface/channel.h +21 -5
  656. data/src/core/lib/surface/channel_init.cc +1 -1
  657. data/src/core/lib/surface/completion_queue.cc +38 -294
  658. data/src/core/lib/surface/completion_queue.h +16 -24
  659. data/src/core/lib/surface/init.cc +32 -16
  660. data/src/core/lib/surface/lame_client.cc +20 -46
  661. data/src/core/lib/surface/lame_client.h +4 -0
  662. data/src/core/lib/surface/server.cc +1107 -1239
  663. data/src/core/lib/surface/server.h +394 -86
  664. data/src/core/lib/surface/validate_metadata.h +3 -0
  665. data/src/core/lib/surface/version.cc +2 -2
  666. data/src/core/lib/transport/authority_override.cc +40 -0
  667. data/src/core/lib/transport/authority_override.h +37 -0
  668. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  669. data/src/core/lib/transport/bdp_estimator.h +2 -1
  670. data/src/core/lib/transport/byte_stream.h +3 -3
  671. data/src/core/lib/transport/connectivity_state.cc +18 -13
  672. data/src/core/lib/transport/connectivity_state.h +26 -12
  673. data/src/core/lib/transport/error_utils.cc +13 -0
  674. data/src/core/lib/transport/error_utils.h +7 -1
  675. data/src/core/lib/transport/metadata.cc +11 -1
  676. data/src/core/lib/transport/metadata.h +2 -2
  677. data/src/core/lib/transport/metadata_batch.h +4 -4
  678. data/src/core/lib/transport/static_metadata.cc +296 -277
  679. data/src/core/lib/transport/static_metadata.h +80 -73
  680. data/src/core/lib/transport/status_metadata.cc +4 -3
  681. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  682. data/src/core/lib/transport/transport.cc +5 -3
  683. data/src/core/lib/transport/transport.h +15 -8
  684. data/src/core/lib/uri/uri_parser.cc +131 -247
  685. data/src/core/lib/uri/uri_parser.h +58 -20
  686. data/src/core/plugin_registry/grpc_plugin_registry.cc +41 -20
  687. data/src/core/tsi/alts/crypt/gsec.cc +5 -4
  688. data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
  689. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  690. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +49 -26
  691. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
  692. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
  693. data/src/core/tsi/fake_transport_security.cc +6 -3
  694. data/src/core/tsi/local_transport_security.cc +5 -1
  695. data/src/core/tsi/local_transport_security.h +6 -7
  696. data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -0
  697. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  698. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -1
  699. data/src/core/tsi/ssl_transport_security.cc +81 -67
  700. data/src/core/tsi/ssl_transport_security.h +9 -6
  701. data/src/core/tsi/transport_security.cc +10 -8
  702. data/src/core/tsi/transport_security_interface.h +1 -1
  703. data/src/ruby/ext/grpc/extconf.rb +1 -1
  704. data/src/ruby/ext/grpc/rb_channel_credentials.c +9 -0
  705. data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
  706. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -18
  707. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +74 -44
  708. data/src/ruby/lib/grpc/version.rb +1 -1
  709. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +28 -0
  710. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
  711. data/src/ruby/spec/channel_credentials_spec.rb +10 -0
  712. data/src/ruby/spec/generic/active_call_spec.rb +19 -8
  713. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
  714. data/third_party/abseil-cpp/absl/algorithm/container.h +1764 -0
  715. data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
  716. data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
  717. data/third_party/abseil-cpp/absl/base/casts.h +9 -6
  718. data/third_party/abseil-cpp/absl/base/config.h +60 -17
  719. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
  720. data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
  721. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +166 -0
  722. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  723. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
  724. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
  725. data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
  726. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
  727. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
  728. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
  729. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
  730. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
  731. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
  732. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
  733. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
  734. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
  735. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
  736. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
  737. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
  738. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
  739. data/third_party/abseil-cpp/absl/base/macros.h +36 -109
  740. data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
  741. data/third_party/abseil-cpp/absl/base/options.h +31 -4
  742. data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
  743. data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
  744. data/third_party/abseil-cpp/absl/container/fixed_array.h +532 -0
  745. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  746. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +504 -0
  747. data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
  748. data/third_party/abseil-cpp/absl/container/internal/common.h +206 -0
  749. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
  750. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +460 -0
  751. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +161 -0
  752. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +208 -0
  753. data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
  754. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +270 -0
  755. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +321 -0
  756. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +30 -0
  757. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +50 -0
  758. data/third_party/abseil-cpp/absl/container/internal/layout.h +743 -0
  759. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  760. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +48 -0
  761. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1903 -0
  762. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +139 -0
  763. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
  764. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1945 -0
  765. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
  766. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
  767. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
  768. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +196 -0
  769. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +134 -0
  770. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +89 -0
  771. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +108 -0
  772. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +248 -0
  773. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
  774. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +93 -0
  775. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
  776. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +149 -0
  777. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +173 -0
  778. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
  779. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
  780. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
  781. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +36 -0
  782. data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
  783. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  784. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1560 -0
  785. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
  786. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
  787. data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
  788. data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
  789. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  790. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
  791. data/third_party/abseil-cpp/absl/hash/hash.h +325 -0
  792. data/third_party/abseil-cpp/absl/hash/internal/city.cc +346 -0
  793. data/third_party/abseil-cpp/absl/hash/internal/city.h +96 -0
  794. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +55 -0
  795. data/third_party/abseil-cpp/absl/hash/internal/hash.h +996 -0
  796. data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
  797. data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
  798. data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
  799. data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
  800. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
  801. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
  802. data/third_party/abseil-cpp/absl/status/status.cc +445 -0
  803. data/third_party/abseil-cpp/absl/status/status.h +817 -0
  804. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +38 -0
  805. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
  806. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  807. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  808. data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
  809. data/third_party/abseil-cpp/absl/strings/cord.cc +1998 -0
  810. data/third_party/abseil-cpp/absl/strings/cord.h +1276 -0
  811. data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
  812. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
  813. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  814. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
  815. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  816. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +173 -0
  817. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
  818. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
  819. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
  820. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
  821. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
  822. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
  823. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
  824. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
  825. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
  826. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
  827. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
  828. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
  829. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
  830. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  831. data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
  832. data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
  833. data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
  834. data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
  835. data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
  836. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
  837. data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
  838. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
  839. data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
  840. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
  841. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
  842. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
  843. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
  844. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +697 -0
  845. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
  846. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +155 -0
  847. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +249 -0
  848. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
  849. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
  850. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +492 -0
  851. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +159 -0
  852. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2739 -0
  853. data/third_party/abseil-cpp/absl/synchronization/mutex.h +1065 -0
  854. data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
  855. data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
  856. data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
  857. data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
  858. data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
  859. data/third_party/abseil-cpp/absl/time/format.cc +43 -36
  860. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
  861. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
  862. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
  863. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
  864. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
  865. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
  866. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
  867. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
  868. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
  869. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
  870. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
  871. data/third_party/abseil-cpp/absl/time/time.h +15 -16
  872. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
  873. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
  874. data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
  875. data/third_party/abseil-cpp/absl/types/optional.h +9 -9
  876. data/third_party/abseil-cpp/absl/types/span.h +49 -36
  877. data/third_party/abseil-cpp/absl/types/variant.h +861 -0
  878. data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
  879. data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
  880. data/third_party/boringssl-with-bazel/err_data.c +479 -467
  881. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -6
  882. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
  883. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +9 -43
  884. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
  885. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +34 -0
  886. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +4 -0
  887. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +16 -0
  888. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
  889. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
  890. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
  891. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
  892. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +30 -10
  893. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +56 -22
  894. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +8 -2
  895. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +543 -0
  896. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +237 -0
  897. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +118 -49
  898. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +267 -95
  899. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +210 -34
  900. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  901. data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +3 -3
  902. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +6 -4
  903. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +3 -3
  904. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -1
  905. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +7 -2
  906. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +21 -18
  907. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -1
  908. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +24 -3
  909. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +3 -3
  910. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
  911. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +3 -3
  912. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +29 -35
  913. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +13 -2
  914. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +9 -8
  915. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +10 -10
  916. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +2 -2
  917. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +28 -40
  918. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +20 -0
  919. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
  920. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
  921. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
  922. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +14 -14
  923. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +7 -3
  924. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +2 -2
  925. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
  926. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
  927. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +55 -8
  928. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -1
  929. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
  930. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +54 -0
  931. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +0 -1
  932. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +6 -3
  933. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
  934. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +6 -0
  935. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +1 -1
  936. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
  937. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +12 -0
  938. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +9 -0
  939. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +4 -1
  940. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
  941. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
  942. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +103 -10
  943. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +5 -2
  944. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +42 -14
  945. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +199 -78
  946. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +482 -432
  947. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
  948. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
  949. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +18 -18
  950. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -3
  951. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  952. data/third_party/boringssl-with-bazel/src/ssl/internal.h +49 -10
  953. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +42 -1
  954. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +3 -6
  955. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +8 -9
  956. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +77 -0
  957. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +11 -14
  958. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +250 -20
  959. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -2
  960. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +57 -19
  961. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +140 -41
  962. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
  963. data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
  964. data/third_party/upb/upb/decode.c +275 -145
  965. data/third_party/upb/upb/decode.h +20 -1
  966. data/third_party/upb/upb/decode.int.h +163 -0
  967. data/third_party/upb/upb/decode_fast.c +1040 -0
  968. data/third_party/upb/upb/decode_fast.h +126 -0
  969. data/third_party/upb/upb/def.c +2178 -0
  970. data/third_party/upb/upb/def.h +315 -0
  971. data/third_party/upb/upb/def.hpp +439 -0
  972. data/third_party/upb/upb/encode.c +229 -171
  973. data/third_party/upb/upb/encode.h +27 -2
  974. data/third_party/upb/upb/json_decode.c +1443 -0
  975. data/third_party/upb/upb/json_decode.h +23 -0
  976. data/third_party/upb/upb/json_encode.c +713 -0
  977. data/third_party/upb/upb/json_encode.h +36 -0
  978. data/third_party/upb/upb/msg.c +167 -88
  979. data/third_party/upb/upb/msg.h +175 -35
  980. data/third_party/upb/upb/port_def.inc +75 -62
  981. data/third_party/upb/upb/port_undef.inc +3 -7
  982. data/third_party/upb/upb/reflection.c +408 -0
  983. data/third_party/upb/upb/reflection.h +168 -0
  984. data/third_party/upb/upb/table.c +34 -208
  985. data/third_party/upb/upb/table.int.h +14 -14
  986. data/third_party/upb/upb/text_encode.c +421 -0
  987. data/third_party/upb/upb/text_encode.h +38 -0
  988. data/third_party/upb/upb/upb.c +33 -54
  989. data/third_party/upb/upb/upb.h +56 -1
  990. data/third_party/upb/upb/upb.hpp +6 -4
  991. data/third_party/upb/upb/upb.int.h +29 -0
  992. metadata +508 -172
  993. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -938
  994. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -528
  995. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -1143
  996. data/src/core/ext/filters/client_channel/parse_address.h +0 -53
  997. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
  998. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
  999. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -353
  1000. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -142
  1001. data/src/core/ext/filters/client_channel/xds/xds_api.cc +0 -2110
  1002. data/src/core/ext/filters/client_channel/xds/xds_api.h +0 -345
  1003. data/src/core/ext/filters/client_channel/xds/xds_channel.h +0 -46
  1004. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +0 -106
  1005. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
  1006. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -34
  1007. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
  1008. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -429
  1009. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
  1010. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -198
  1011. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
  1012. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -388
  1013. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -52
  1014. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
  1015. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1453
  1016. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
  1017. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -226
  1018. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +0 -35
  1019. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
  1020. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +0 -55
  1021. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -323
  1022. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
  1023. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -334
  1024. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +0 -35
  1025. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -79
  1026. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
  1027. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -891
  1028. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
  1029. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -328
  1030. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
  1031. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -71
  1032. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
  1033. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -649
  1034. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
  1035. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -693
  1036. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +0 -36
  1037. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
  1038. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
  1039. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -536
  1040. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -88
  1041. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
  1042. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -386
  1043. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -52
  1044. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
  1045. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -224
  1046. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
  1047. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -32
  1048. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
  1049. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -273
  1050. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
  1051. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -332
  1052. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -52
  1053. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
  1054. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -415
  1055. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
  1056. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -32
  1057. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
  1058. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -538
  1059. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
  1060. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -111
  1061. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -52
  1062. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
  1063. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -204
  1064. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
  1065. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -32
  1066. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
  1067. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -2984
  1068. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
  1069. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -135
  1070. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -52
  1071. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
  1072. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -732
  1073. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
  1074. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1167
  1075. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +0 -33
  1076. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
  1077. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
  1078. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
  1079. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -49
  1080. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
  1081. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -136
  1082. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
  1083. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -145
  1084. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
  1085. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
  1086. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
  1087. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
  1088. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +0 -39
  1089. data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -86
  1090. data/src/core/ext/upb-generated/envoy/type/range.upb.c +0 -50
  1091. data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -111
  1092. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -61
  1093. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
  1094. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -250
  1095. data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
  1096. data/src/core/lib/gprpp/map.h +0 -53
  1097. data/src/core/lib/security/transport/target_authority_table.cc +0 -75
  1098. data/src/core/lib/security/transport/target_authority_table.h +0 -40
  1099. data/src/core/lib/slice/slice_hash_table.h +0 -199
  1100. data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
  1101. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
  1102. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
  1103. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
  1104. data/third_party/upb/upb/port.c +0 -26
@@ -0,0 +1,89 @@
1
+ /*
2
+ * Copyright 2017 The Abseil 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
+ * https://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
+ * Defines ABSL_STACKTRACE_INL_HEADER to the *-inl.h containing
17
+ * actual unwinder implementation.
18
+ * This header is "private" to stacktrace.cc.
19
+ * DO NOT include it into any other files.
20
+ */
21
+ #ifndef ABSL_DEBUGGING_INTERNAL_STACKTRACE_CONFIG_H_
22
+ #define ABSL_DEBUGGING_INTERNAL_STACKTRACE_CONFIG_H_
23
+
24
+ #if defined(ABSL_STACKTRACE_INL_HEADER)
25
+ #error ABSL_STACKTRACE_INL_HEADER cannot be directly set
26
+
27
+ #elif defined(_WIN32)
28
+ #define ABSL_STACKTRACE_INL_HEADER \
29
+ "absl/debugging/internal/stacktrace_win32-inl.inc"
30
+
31
+ #elif defined(__APPLE__)
32
+ // Thread local support required for UnwindImpl.
33
+ // Notes:
34
+ // * Xcode's clang did not support `thread_local` until version 8, and
35
+ // even then not for all iOS < 9.0.
36
+ // * Xcode 9.3 started disallowing `thread_local` for 32-bit iOS simulator
37
+ // targeting iOS 9.x.
38
+ // * Xcode 10 moves the deployment target check for iOS < 9.0 to link time
39
+ // making __has_feature unreliable there.
40
+ //
41
+ // Otherwise, `__has_feature` is only supported by Clang so it has be inside
42
+ // `defined(__APPLE__)` check.
43
+ #if __has_feature(cxx_thread_local) && \
44
+ !(TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0)
45
+ #define ABSL_STACKTRACE_INL_HEADER \
46
+ "absl/debugging/internal/stacktrace_generic-inl.inc"
47
+ #endif
48
+
49
+ #elif defined(__linux__) && !defined(__ANDROID__)
50
+
51
+ #if defined(NO_FRAME_POINTER) && \
52
+ (defined(__i386__) || defined(__x86_64__) || defined(__aarch64__))
53
+ // Note: The libunwind-based implementation is not available to open-source
54
+ // users.
55
+ #define ABSL_STACKTRACE_INL_HEADER \
56
+ "absl/debugging/internal/stacktrace_libunwind-inl.inc"
57
+ #define STACKTRACE_USES_LIBUNWIND 1
58
+ #elif defined(NO_FRAME_POINTER) && defined(__has_include)
59
+ #if __has_include(<execinfo.h>)
60
+ // Note: When using glibc this may require -funwind-tables to function properly.
61
+ #define ABSL_STACKTRACE_INL_HEADER \
62
+ "absl/debugging/internal/stacktrace_generic-inl.inc"
63
+ #endif
64
+ #elif defined(__i386__) || defined(__x86_64__)
65
+ #define ABSL_STACKTRACE_INL_HEADER \
66
+ "absl/debugging/internal/stacktrace_x86-inl.inc"
67
+ #elif defined(__ppc__) || defined(__PPC__)
68
+ #define ABSL_STACKTRACE_INL_HEADER \
69
+ "absl/debugging/internal/stacktrace_powerpc-inl.inc"
70
+ #elif defined(__aarch64__)
71
+ #define ABSL_STACKTRACE_INL_HEADER \
72
+ "absl/debugging/internal/stacktrace_aarch64-inl.inc"
73
+ #elif defined(__has_include)
74
+ #if __has_include(<execinfo.h>)
75
+ // Note: When using glibc this may require -funwind-tables to function properly.
76
+ #define ABSL_STACKTRACE_INL_HEADER \
77
+ "absl/debugging/internal/stacktrace_generic-inl.inc"
78
+ #endif
79
+ #endif
80
+
81
+ #endif
82
+
83
+ // Fallback to the empty implementation.
84
+ #if !defined(ABSL_STACKTRACE_INL_HEADER)
85
+ #define ABSL_STACKTRACE_INL_HEADER \
86
+ "absl/debugging/internal/stacktrace_unimplemented-inl.inc"
87
+ #endif
88
+
89
+ #endif // ABSL_DEBUGGING_INTERNAL_STACKTRACE_CONFIG_H_
@@ -0,0 +1,108 @@
1
+ // Copyright 2017 The Abseil Authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ // Portable implementation - just use glibc
16
+ //
17
+ // Note: The glibc implementation may cause a call to malloc.
18
+ // This can cause a deadlock in HeapProfiler.
19
+
20
+ #ifndef ABSL_DEBUGGING_INTERNAL_STACKTRACE_GENERIC_INL_H_
21
+ #define ABSL_DEBUGGING_INTERNAL_STACKTRACE_GENERIC_INL_H_
22
+
23
+ #include <execinfo.h>
24
+ #include <atomic>
25
+ #include <cstring>
26
+
27
+ #include "absl/debugging/stacktrace.h"
28
+ #include "absl/base/attributes.h"
29
+
30
+ // Sometimes, we can try to get a stack trace from within a stack
31
+ // trace, because we don't block signals inside this code (which would be too
32
+ // expensive: the two extra system calls per stack trace do matter here).
33
+ // That can cause a self-deadlock.
34
+ // Protect against such reentrant call by failing to get a stack trace.
35
+ //
36
+ // We use __thread here because the code here is extremely low level -- it is
37
+ // called while collecting stack traces from within malloc and mmap, and thus
38
+ // can not call anything which might call malloc or mmap itself.
39
+ static __thread int recursive = 0;
40
+
41
+ // The stack trace function might be invoked very early in the program's
42
+ // execution (e.g. from the very first malloc if using tcmalloc). Also, the
43
+ // glibc implementation itself will trigger malloc the first time it is called.
44
+ // As such, we suppress usage of backtrace during this early stage of execution.
45
+ static std::atomic<bool> disable_stacktraces(true); // Disabled until healthy.
46
+ // Waiting until static initializers run seems to be late enough.
47
+ // This file is included into stacktrace.cc so this will only run once.
48
+ ABSL_ATTRIBUTE_UNUSED static int stacktraces_enabler = []() {
49
+ void* unused_stack[1];
50
+ // Force the first backtrace to happen early to get the one-time shared lib
51
+ // loading (allocation) out of the way. After the first call it is much safer
52
+ // to use backtrace from a signal handler if we crash somewhere later.
53
+ backtrace(unused_stack, 1);
54
+ disable_stacktraces.store(false, std::memory_order_relaxed);
55
+ return 0;
56
+ }();
57
+
58
+ template <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT>
59
+ static int UnwindImpl(void** result, int* sizes, int max_depth, int skip_count,
60
+ const void *ucp, int *min_dropped_frames) {
61
+ if (recursive || disable_stacktraces.load(std::memory_order_relaxed)) {
62
+ return 0;
63
+ }
64
+ ++recursive;
65
+
66
+ static_cast<void>(ucp); // Unused.
67
+ static const int kStackLength = 64;
68
+ void * stack[kStackLength];
69
+ int size;
70
+
71
+ size = backtrace(stack, kStackLength);
72
+ skip_count++; // we want to skip the current frame as well
73
+ int result_count = size - skip_count;
74
+ if (result_count < 0)
75
+ result_count = 0;
76
+ if (result_count > max_depth)
77
+ result_count = max_depth;
78
+ for (int i = 0; i < result_count; i++)
79
+ result[i] = stack[i + skip_count];
80
+
81
+ if (IS_STACK_FRAMES) {
82
+ // No implementation for finding out the stack frame sizes yet.
83
+ memset(sizes, 0, sizeof(*sizes) * result_count);
84
+ }
85
+ if (min_dropped_frames != nullptr) {
86
+ if (size - skip_count - max_depth > 0) {
87
+ *min_dropped_frames = size - skip_count - max_depth;
88
+ } else {
89
+ *min_dropped_frames = 0;
90
+ }
91
+ }
92
+
93
+ --recursive;
94
+
95
+ return result_count;
96
+ }
97
+
98
+ namespace absl {
99
+ ABSL_NAMESPACE_BEGIN
100
+ namespace debugging_internal {
101
+ bool StackTraceWorksForTest() {
102
+ return true;
103
+ }
104
+ } // namespace debugging_internal
105
+ ABSL_NAMESPACE_END
106
+ } // namespace absl
107
+
108
+ #endif // ABSL_DEBUGGING_INTERNAL_STACKTRACE_GENERIC_INL_H_
@@ -0,0 +1,248 @@
1
+ // Copyright 2017 The Abseil Authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ // Produce stack trace. I'm guessing (hoping!) the code is much like
16
+ // for x86. For apple machines, at least, it seems to be; see
17
+ // https://developer.apple.com/documentation/mac/runtimehtml/RTArch-59.html
18
+ // https://www.linux-foundation.org/spec/ELF/ppc64/PPC-elf64abi-1.9.html#STACK
19
+ // Linux has similar code: http://patchwork.ozlabs.org/linuxppc/patch?id=8882
20
+
21
+ #ifndef ABSL_DEBUGGING_INTERNAL_STACKTRACE_POWERPC_INL_H_
22
+ #define ABSL_DEBUGGING_INTERNAL_STACKTRACE_POWERPC_INL_H_
23
+
24
+ #if defined(__linux__)
25
+ #include <asm/ptrace.h> // for PT_NIP.
26
+ #include <ucontext.h> // for ucontext_t
27
+ #endif
28
+
29
+ #include <unistd.h>
30
+ #include <cassert>
31
+ #include <cstdint>
32
+ #include <cstdio>
33
+
34
+ #include "absl/base/attributes.h"
35
+ #include "absl/base/optimization.h"
36
+ #include "absl/base/port.h"
37
+ #include "absl/debugging/stacktrace.h"
38
+ #include "absl/debugging/internal/address_is_readable.h"
39
+ #include "absl/debugging/internal/vdso_support.h" // a no-op on non-elf or non-glibc systems
40
+
41
+ // Given a stack pointer, return the saved link register value.
42
+ // Note that this is the link register for a callee.
43
+ static inline void *StacktracePowerPCGetLR(void **sp) {
44
+ // PowerPC has 3 main ABIs, which say where in the stack the
45
+ // Link Register is. For DARWIN and AIX (used by apple and
46
+ // linux ppc64), it's in sp[2]. For SYSV (used by linux ppc),
47
+ // it's in sp[1].
48
+ #if defined(_CALL_AIX) || defined(_CALL_DARWIN)
49
+ return *(sp+2);
50
+ #elif defined(_CALL_SYSV)
51
+ return *(sp+1);
52
+ #elif defined(__APPLE__) || defined(__FreeBSD__) || \
53
+ (defined(__linux__) && defined(__PPC64__))
54
+ // This check is in case the compiler doesn't define _CALL_AIX/etc.
55
+ return *(sp+2);
56
+ #elif defined(__linux)
57
+ // This check is in case the compiler doesn't define _CALL_SYSV.
58
+ return *(sp+1);
59
+ #else
60
+ #error Need to specify the PPC ABI for your archiecture.
61
+ #endif
62
+ }
63
+
64
+ // Given a pointer to a stack frame, locate and return the calling
65
+ // stackframe, or return null if no stackframe can be found. Perform sanity
66
+ // checks (the strictness of which is controlled by the boolean parameter
67
+ // "STRICT_UNWINDING") to reduce the chance that a bad pointer is returned.
68
+ template<bool STRICT_UNWINDING, bool IS_WITH_CONTEXT>
69
+ ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS // May read random elements from stack.
70
+ ABSL_ATTRIBUTE_NO_SANITIZE_MEMORY // May read random elements from stack.
71
+ static void **NextStackFrame(void **old_sp, const void *uc) {
72
+ void **new_sp = (void **) *old_sp;
73
+ enum { kStackAlignment = 16 };
74
+
75
+ // Check that the transition from frame pointer old_sp to frame
76
+ // pointer new_sp isn't clearly bogus
77
+ if (STRICT_UNWINDING) {
78
+ // With the stack growing downwards, older stack frame must be
79
+ // at a greater address that the current one.
80
+ if (new_sp <= old_sp) return nullptr;
81
+ // Assume stack frames larger than 100,000 bytes are bogus.
82
+ if ((uintptr_t)new_sp - (uintptr_t)old_sp > 100000) return nullptr;
83
+ } else {
84
+ // In the non-strict mode, allow discontiguous stack frames.
85
+ // (alternate-signal-stacks for example).
86
+ if (new_sp == old_sp) return nullptr;
87
+ // And allow frames upto about 1MB.
88
+ if ((new_sp > old_sp)
89
+ && ((uintptr_t)new_sp - (uintptr_t)old_sp > 1000000)) return nullptr;
90
+ }
91
+ if ((uintptr_t)new_sp % kStackAlignment != 0) return nullptr;
92
+
93
+ #if defined(__linux__)
94
+ enum StackTraceKernelSymbolStatus {
95
+ kNotInitialized = 0, kAddressValid, kAddressInvalid };
96
+
97
+ if (IS_WITH_CONTEXT && uc != nullptr) {
98
+ static StackTraceKernelSymbolStatus kernel_symbol_status =
99
+ kNotInitialized; // Sentinel: not computed yet.
100
+ // Initialize with sentinel value: __kernel_rt_sigtramp_rt64 can not
101
+ // possibly be there.
102
+ static const unsigned char *kernel_sigtramp_rt64_address = nullptr;
103
+ if (kernel_symbol_status == kNotInitialized) {
104
+ absl::debugging_internal::VDSOSupport vdso;
105
+ if (vdso.IsPresent()) {
106
+ absl::debugging_internal::VDSOSupport::SymbolInfo
107
+ sigtramp_rt64_symbol_info;
108
+ if (!vdso.LookupSymbol(
109
+ "__kernel_sigtramp_rt64", "LINUX_2.6.15",
110
+ absl::debugging_internal::VDSOSupport::kVDSOSymbolType,
111
+ &sigtramp_rt64_symbol_info) ||
112
+ sigtramp_rt64_symbol_info.address == nullptr) {
113
+ // Unexpected: VDSO is present, yet the expected symbol is missing
114
+ // or null.
115
+ assert(false && "VDSO is present, but doesn't have expected symbol");
116
+ kernel_symbol_status = kAddressInvalid;
117
+ } else {
118
+ kernel_sigtramp_rt64_address =
119
+ reinterpret_cast<const unsigned char *>(
120
+ sigtramp_rt64_symbol_info.address);
121
+ kernel_symbol_status = kAddressValid;
122
+ }
123
+ } else {
124
+ kernel_symbol_status = kAddressInvalid;
125
+ }
126
+ }
127
+
128
+ if (new_sp != nullptr &&
129
+ kernel_symbol_status == kAddressValid &&
130
+ StacktracePowerPCGetLR(new_sp) == kernel_sigtramp_rt64_address) {
131
+ const ucontext_t* signal_context =
132
+ reinterpret_cast<const ucontext_t*>(uc);
133
+ void **const sp_before_signal =
134
+ reinterpret_cast<void**>(signal_context->uc_mcontext.gp_regs[PT_R1]);
135
+ // Check that alleged sp before signal is nonnull and is reasonably
136
+ // aligned.
137
+ if (sp_before_signal != nullptr &&
138
+ ((uintptr_t)sp_before_signal % kStackAlignment) == 0) {
139
+ // Check that alleged stack pointer is actually readable. This is to
140
+ // prevent a "double fault" in case we hit the first fault due to e.g.
141
+ // a stack corruption.
142
+ if (absl::debugging_internal::AddressIsReadable(sp_before_signal)) {
143
+ // Alleged stack pointer is readable, use it for further unwinding.
144
+ new_sp = sp_before_signal;
145
+ }
146
+ }
147
+ }
148
+ }
149
+ #endif
150
+
151
+ return new_sp;
152
+ }
153
+
154
+ // This ensures that absl::GetStackTrace sets up the Link Register properly.
155
+ ABSL_ATTRIBUTE_NOINLINE static void AbslStacktracePowerPCDummyFunction() {
156
+ ABSL_BLOCK_TAIL_CALL_OPTIMIZATION();
157
+ }
158
+
159
+ template <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT>
160
+ ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS // May read random elements from stack.
161
+ ABSL_ATTRIBUTE_NO_SANITIZE_MEMORY // May read random elements from stack.
162
+ static int UnwindImpl(void** result, int* sizes, int max_depth, int skip_count,
163
+ const void *ucp, int *min_dropped_frames) {
164
+ void **sp;
165
+ // Apple macOS uses an old version of gnu as -- both Darwin 7.9.0 (Panther)
166
+ // and Darwin 8.8.1 (Tiger) use as 1.38. This means we have to use a
167
+ // different asm syntax. I don't know quite the best way to discriminate
168
+ // systems using the old as from the new one; I've gone with __APPLE__.
169
+ #ifdef __APPLE__
170
+ __asm__ volatile ("mr %0,r1" : "=r" (sp));
171
+ #else
172
+ __asm__ volatile ("mr %0,1" : "=r" (sp));
173
+ #endif
174
+
175
+ // On PowerPC, the "Link Register" or "Link Record" (LR), is a stack
176
+ // entry that holds the return address of the subroutine call (what
177
+ // instruction we run after our function finishes). This is the
178
+ // same as the stack-pointer of our parent routine, which is what we
179
+ // want here. While the compiler will always(?) set up LR for
180
+ // subroutine calls, it may not for leaf functions (such as this one).
181
+ // This routine forces the compiler (at least gcc) to push it anyway.
182
+ AbslStacktracePowerPCDummyFunction();
183
+
184
+ // The LR save area is used by the callee, so the top entry is bogus.
185
+ skip_count++;
186
+
187
+ int n = 0;
188
+
189
+ // Unlike ABIs of X86 and ARM, PowerPC ABIs say that return address (in
190
+ // the link register) of a function call is stored in the caller's stack
191
+ // frame instead of the callee's. When we look for the return address
192
+ // associated with a stack frame, we need to make sure that there is a
193
+ // caller frame before it. So we call NextStackFrame before entering the
194
+ // loop below and check next_sp instead of sp for loop termination.
195
+ // The outermost frame is set up by runtimes and it does not have a
196
+ // caller frame, so it is skipped.
197
+
198
+ // The absl::GetStackFrames routine is called when we are in some
199
+ // informational context (the failure signal handler for example).
200
+ // Use the non-strict unwinding rules to produce a stack trace
201
+ // that is as complete as possible (even if it contains a few
202
+ // bogus entries in some rare cases).
203
+ void **next_sp = NextStackFrame<!IS_STACK_FRAMES, IS_WITH_CONTEXT>(sp, ucp);
204
+
205
+ while (next_sp && n < max_depth) {
206
+ if (skip_count > 0) {
207
+ skip_count--;
208
+ } else {
209
+ result[n] = StacktracePowerPCGetLR(sp);
210
+ if (IS_STACK_FRAMES) {
211
+ if (next_sp > sp) {
212
+ sizes[n] = (uintptr_t)next_sp - (uintptr_t)sp;
213
+ } else {
214
+ // A frame-size of 0 is used to indicate unknown frame size.
215
+ sizes[n] = 0;
216
+ }
217
+ }
218
+ n++;
219
+ }
220
+
221
+ sp = next_sp;
222
+ next_sp = NextStackFrame<!IS_STACK_FRAMES, IS_WITH_CONTEXT>(sp, ucp);
223
+ }
224
+
225
+ if (min_dropped_frames != nullptr) {
226
+ // Implementation detail: we clamp the max of frames we are willing to
227
+ // count, so as not to spend too much time in the loop below.
228
+ const int kMaxUnwind = 1000;
229
+ int j = 0;
230
+ for (; next_sp != nullptr && j < kMaxUnwind; j++) {
231
+ next_sp = NextStackFrame<!IS_STACK_FRAMES, IS_WITH_CONTEXT>(next_sp, ucp);
232
+ }
233
+ *min_dropped_frames = j;
234
+ }
235
+ return n;
236
+ }
237
+
238
+ namespace absl {
239
+ ABSL_NAMESPACE_BEGIN
240
+ namespace debugging_internal {
241
+ bool StackTraceWorksForTest() {
242
+ return true;
243
+ }
244
+ } // namespace debugging_internal
245
+ ABSL_NAMESPACE_END
246
+ } // namespace absl
247
+
248
+ #endif // ABSL_DEBUGGING_INTERNAL_STACKTRACE_POWERPC_INL_H_
@@ -0,0 +1,24 @@
1
+ #ifndef ABSL_DEBUGGING_INTERNAL_STACKTRACE_UNIMPLEMENTED_INL_H_
2
+ #define ABSL_DEBUGGING_INTERNAL_STACKTRACE_UNIMPLEMENTED_INL_H_
3
+
4
+ template <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT>
5
+ static int UnwindImpl(void** /* result */, int* /* sizes */,
6
+ int /* max_depth */, int /* skip_count */,
7
+ const void* /* ucp */, int *min_dropped_frames) {
8
+ if (min_dropped_frames != nullptr) {
9
+ *min_dropped_frames = 0;
10
+ }
11
+ return 0;
12
+ }
13
+
14
+ namespace absl {
15
+ ABSL_NAMESPACE_BEGIN
16
+ namespace debugging_internal {
17
+ bool StackTraceWorksForTest() {
18
+ return false;
19
+ }
20
+ } // namespace debugging_internal
21
+ ABSL_NAMESPACE_END
22
+ } // namespace absl
23
+
24
+ #endif // ABSL_DEBUGGING_INTERNAL_STACKTRACE_UNIMPLEMENTED_INL_H_