grpc 1.31.1 → 1.32.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 (431) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +595 -15723
  3. data/include/grpc/grpc_security.h +31 -14
  4. data/include/grpc/impl/codegen/README.md +22 -0
  5. data/include/grpc/impl/codegen/port_platform.h +6 -1
  6. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -2
  7. data/src/core/ext/filters/client_channel/client_channel.cc +64 -20
  8. data/src/core/ext/filters/client_channel/client_channel.h +1 -1
  9. data/src/core/ext/filters/client_channel/client_channel_channelz.h +0 -3
  10. data/src/core/ext/filters/client_channel/health/health_check_client.cc +6 -1
  11. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +2 -3
  12. data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
  13. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -4
  14. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +20 -13
  15. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
  16. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
  17. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -37
  18. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -13
  19. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +29 -10
  20. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +5 -4
  21. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +20 -9
  22. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +18 -12
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +22 -14
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +18 -9
  25. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +54 -56
  26. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +3 -3
  27. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  28. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  29. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -1
  30. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
  31. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +363 -14
  32. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +0 -1
  33. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +5 -4
  34. data/src/core/ext/filters/client_channel/server_address.cc +40 -7
  35. data/src/core/ext/filters/client_channel/server_address.h +42 -4
  36. data/src/core/ext/filters/client_channel/subchannel.cc +64 -23
  37. data/src/core/ext/filters/client_channel/subchannel.h +16 -4
  38. data/src/core/ext/filters/max_age/max_age_filter.cc +2 -1
  39. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +87 -31
  40. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +18 -1
  41. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +10 -35
  42. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +19 -25
  43. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -1
  44. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -2
  45. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +6 -6
  46. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -2
  47. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +239 -277
  48. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -1
  49. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
  50. data/src/core/ext/transport/chttp2/transport/internal.h +5 -1
  51. data/src/core/ext/transport/chttp2/transport/parsing.cc +1 -28
  52. data/src/core/ext/transport/chttp2/transport/writing.cc +6 -5
  53. data/src/core/ext/transport/inproc/inproc_transport.cc +12 -12
  54. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +224 -0
  55. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +700 -0
  56. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
  57. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +226 -0
  58. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +380 -0
  59. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1378 -0
  60. data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/filter.upb.c +8 -8
  61. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +69 -0
  62. data/src/core/ext/upb-generated/envoy/{api/v2/cluster → config/cluster/v3}/outlier_detection.upb.c +8 -8
  63. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +323 -0
  64. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +112 -0
  65. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +334 -0
  66. data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/backoff.upb.c +8 -8
  67. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +79 -0
  68. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +309 -0
  69. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +869 -0
  70. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +96 -0
  71. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +328 -0
  72. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
  73. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +71 -0
  74. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +195 -0
  75. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +634 -0
  76. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
  77. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +684 -0
  78. data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/http_uri.upb.c +8 -8
  79. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +80 -0
  80. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +152 -0
  81. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +536 -0
  82. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +28 -0
  83. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +58 -0
  84. data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +6 -6
  85. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +88 -0
  86. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +91 -0
  87. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +220 -0
  88. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
  89. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +273 -0
  90. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
  91. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +332 -0
  92. data/src/core/ext/upb-generated/envoy/config/listener/{v2 → v3}/api_listener.upb.c +8 -8
  93. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +65 -0
  94. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +108 -0
  95. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +401 -0
  96. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +138 -0
  97. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +490 -0
  98. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +41 -0
  99. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +94 -0
  100. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +174 -0
  101. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +599 -0
  102. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +63 -0
  103. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +204 -0
  104. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +773 -0
  105. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2855 -0
  106. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +59 -0
  107. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +135 -0
  108. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +50 -0
  109. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +108 -0
  110. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +312 -0
  111. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1125 -0
  112. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +20 -0
  113. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +34 -0
  114. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +111 -0
  115. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +401 -0
  116. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +72 -0
  117. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +198 -0
  118. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +105 -0
  119. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +388 -0
  120. data/src/core/ext/upb-generated/envoy/{api/v2 → service/cluster/v3}/cds.upb.c +5 -6
  121. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +49 -0
  122. data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +5 -4
  123. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +49 -0
  124. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +129 -0
  125. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +386 -0
  126. data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +5 -6
  127. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +49 -0
  128. data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +5 -6
  129. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +49 -0
  130. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +55 -0
  131. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +136 -0
  132. data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/rds.upb.c +5 -6
  133. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +49 -0
  134. data/src/core/ext/upb-generated/envoy/{api/v2 → service/route/v3}/srds.upb.c +5 -6
  135. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +49 -0
  136. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
  137. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +114 -0
  138. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
  139. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +77 -0
  140. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
  141. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +71 -0
  142. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +64 -0
  143. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +145 -0
  144. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +53 -0
  145. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +127 -0
  146. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
  147. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +188 -0
  148. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
  149. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +258 -0
  150. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
  151. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +250 -0
  152. data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
  153. data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +8 -8
  154. data/src/core/ext/upb-generated/envoy/type/{percent.upb.c → v3/percent.upb.c} +9 -8
  155. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +86 -0
  156. data/src/core/ext/upb-generated/envoy/type/{range.upb.c → v3/range.upb.c} +12 -11
  157. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +111 -0
  158. data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +6 -5
  159. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +61 -0
  160. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +234 -0
  161. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +759 -0
  162. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +36 -36
  163. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +1 -1
  164. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
  165. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +53 -0
  166. data/src/core/ext/upb-generated/validate/validate.upb.c +11 -11
  167. data/src/core/ext/upb-generated/validate/validate.upb.h +1 -1
  168. data/src/core/ext/{filters/client_channel/xds → xds}/xds_api.cc +1045 -767
  169. data/src/core/ext/{filters/client_channel/xds → xds}/xds_api.h +114 -99
  170. data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.cc +44 -2
  171. data/src/core/ext/{filters/client_channel/xds → xds}/xds_bootstrap.h +8 -3
  172. data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel.h +4 -4
  173. data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_args.h +3 -3
  174. data/src/core/ext/{filters/client_channel/xds → xds}/xds_channel_secure.cc +2 -5
  175. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +85 -417
  176. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.h +12 -45
  177. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +2 -2
  178. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +3 -3
  179. data/src/core/lib/channel/channelz.cc +14 -15
  180. data/src/core/lib/channel/channelz.h +1 -1
  181. data/src/core/lib/channel/channelz_registry.cc +3 -1
  182. data/src/core/lib/gpr/sync_posix.cc +2 -8
  183. data/src/core/lib/iomgr/endpoint.cc +5 -1
  184. data/src/core/lib/iomgr/endpoint.h +7 -3
  185. data/src/core/lib/iomgr/endpoint_cfstream.cc +32 -11
  186. data/src/core/lib/iomgr/ev_posix.cc +0 -2
  187. data/src/core/lib/iomgr/iomgr.cc +0 -10
  188. data/src/core/lib/iomgr/iomgr.h +0 -10
  189. data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.cc +1 -1
  190. data/src/core/{ext/filters/client_channel → lib/iomgr}/parse_address.h +3 -3
  191. data/src/core/lib/iomgr/sockaddr_utils.cc +2 -1
  192. data/src/core/lib/iomgr/sockaddr_utils.h +2 -1
  193. data/src/core/lib/iomgr/tcp_custom.cc +32 -16
  194. data/src/core/lib/iomgr/tcp_posix.cc +31 -13
  195. data/src/core/lib/iomgr/tcp_windows.cc +26 -10
  196. data/src/core/lib/security/authorization/authorization_engine.cc +177 -0
  197. data/src/core/lib/security/authorization/authorization_engine.h +84 -0
  198. data/src/core/lib/security/authorization/evaluate_args.cc +153 -0
  199. data/src/core/lib/security/authorization/evaluate_args.h +59 -0
  200. data/src/core/lib/security/authorization/mock_cel/activation.h +57 -0
  201. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +42 -0
  202. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +68 -0
  203. data/src/core/lib/security/authorization/mock_cel/cel_value.h +93 -0
  204. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +67 -0
  205. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +56 -0
  206. data/src/core/lib/security/authorization/mock_cel/statusor.h +50 -0
  207. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +56 -38
  208. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -2
  209. data/src/core/lib/security/transport/secure_endpoint.cc +7 -1
  210. data/src/core/lib/surface/call.cc +12 -12
  211. data/src/core/lib/surface/call.h +2 -1
  212. data/src/core/lib/surface/channel.cc +28 -20
  213. data/src/core/lib/surface/channel.h +12 -2
  214. data/src/core/lib/surface/completion_queue.cc +10 -272
  215. data/src/core/lib/surface/completion_queue.h +0 -8
  216. data/src/core/lib/surface/init.cc +1 -3
  217. data/src/core/lib/surface/server.cc +1066 -1244
  218. data/src/core/lib/surface/server.h +363 -87
  219. data/src/core/lib/surface/version.cc +2 -2
  220. data/src/core/lib/transport/authority_override.cc +38 -0
  221. data/src/core/lib/transport/authority_override.h +32 -0
  222. data/src/core/lib/transport/connectivity_state.cc +18 -13
  223. data/src/core/lib/transport/connectivity_state.h +18 -6
  224. data/src/core/lib/transport/error_utils.cc +13 -0
  225. data/src/core/lib/transport/error_utils.h +6 -0
  226. data/src/core/lib/transport/static_metadata.cc +295 -276
  227. data/src/core/lib/transport/static_metadata.h +80 -73
  228. data/src/core/lib/transport/transport.h +7 -0
  229. data/src/core/lib/uri/uri_parser.cc +23 -21
  230. data/src/core/lib/uri/uri_parser.h +3 -1
  231. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +22 -0
  232. data/src/core/tsi/ssl_transport_security.cc +3 -9
  233. data/src/ruby/ext/grpc/rb_channel_credentials.c +9 -0
  234. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -2
  235. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -4
  236. data/src/ruby/lib/grpc/version.rb +1 -1
  237. data/src/ruby/spec/channel_credentials_spec.rb +10 -0
  238. data/src/ruby/spec/generic/active_call_spec.rb +19 -8
  239. data/third_party/abseil-cpp/absl/algorithm/container.h +1727 -0
  240. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +161 -0
  241. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
  242. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
  243. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
  244. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
  245. data/third_party/abseil-cpp/absl/container/fixed_array.h +515 -0
  246. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +503 -0
  247. data/third_party/abseil-cpp/absl/container/internal/common.h +202 -0
  248. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +440 -0
  249. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +146 -0
  250. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +191 -0
  251. data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
  252. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +269 -0
  253. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +297 -0
  254. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +30 -0
  255. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +49 -0
  256. data/third_party/abseil-cpp/absl/container/internal/layout.h +741 -0
  257. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +48 -0
  258. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1882 -0
  259. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +138 -0
  260. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
  261. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1895 -0
  262. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
  263. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
  264. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
  265. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +192 -0
  266. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +125 -0
  267. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +70 -0
  268. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +99 -0
  269. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +248 -0
  270. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
  271. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +85 -0
  272. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
  273. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +128 -0
  274. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +194 -0
  275. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
  276. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
  277. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
  278. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +25 -0
  279. data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
  280. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1480 -0
  281. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
  282. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
  283. data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
  284. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
  285. data/third_party/abseil-cpp/absl/hash/hash.h +324 -0
  286. data/third_party/abseil-cpp/absl/hash/internal/city.cc +346 -0
  287. data/third_party/abseil-cpp/absl/hash/internal/city.h +96 -0
  288. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +55 -0
  289. data/third_party/abseil-cpp/absl/hash/internal/hash.h +988 -0
  290. data/third_party/abseil-cpp/absl/status/status.cc +447 -0
  291. data/third_party/abseil-cpp/absl/status/status.h +428 -0
  292. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +43 -0
  293. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
  294. data/third_party/abseil-cpp/absl/strings/cord.cc +2019 -0
  295. data/third_party/abseil-cpp/absl/strings/cord.h +1121 -0
  296. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +151 -0
  297. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
  298. data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
  299. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
  300. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
  301. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
  302. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
  303. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +697 -0
  304. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
  305. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +155 -0
  306. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +261 -0
  307. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
  308. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
  309. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +484 -0
  310. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +159 -0
  311. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2728 -0
  312. data/third_party/abseil-cpp/absl/synchronization/mutex.h +1056 -0
  313. data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
  314. data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
  315. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
  316. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
  317. data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
  318. data/third_party/abseil-cpp/absl/types/variant.h +861 -0
  319. data/third_party/boringssl-with-bazel/err_data.c +263 -257
  320. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +16 -0
  321. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +456 -0
  322. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +192 -0
  323. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +20 -0
  324. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +52 -0
  325. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +1 -1
  326. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +39 -7
  327. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +2 -3
  328. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +11 -0
  329. data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -0
  330. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +3 -6
  331. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +10 -0
  332. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +34 -9
  333. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -0
  334. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
  335. data/third_party/upb/upb/decode.c +64 -15
  336. data/third_party/upb/upb/encode.c +2 -2
  337. data/third_party/upb/upb/msg.h +2 -2
  338. data/third_party/upb/upb/port_def.inc +1 -1
  339. data/third_party/upb/upb/table.c +0 -11
  340. data/third_party/upb/upb/table.int.h +0 -9
  341. data/third_party/upb/upb/upb.c +16 -14
  342. data/third_party/upb/upb/upb.h +26 -0
  343. data/third_party/upb/upb/upb.hpp +2 -0
  344. metadata +257 -155
  345. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
  346. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -34
  347. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
  348. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -429
  349. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
  350. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -198
  351. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
  352. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -388
  353. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -52
  354. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
  355. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1453
  356. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
  357. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -226
  358. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
  359. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -323
  360. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
  361. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -334
  362. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -79
  363. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
  364. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -891
  365. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
  366. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -328
  367. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
  368. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -71
  369. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
  370. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -649
  371. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
  372. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -693
  373. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
  374. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
  375. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -536
  376. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -88
  377. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
  378. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -386
  379. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -52
  380. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
  381. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -224
  382. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
  383. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -32
  384. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
  385. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -273
  386. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
  387. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -332
  388. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -52
  389. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
  390. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -415
  391. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
  392. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -32
  393. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
  394. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -538
  395. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
  396. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -111
  397. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -52
  398. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
  399. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -204
  400. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
  401. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -32
  402. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
  403. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -2984
  404. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
  405. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -135
  406. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -52
  407. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
  408. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -732
  409. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
  410. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1167
  411. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
  412. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
  413. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
  414. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -49
  415. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
  416. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -136
  417. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
  418. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -145
  419. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
  420. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
  421. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
  422. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
  423. data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -86
  424. data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -111
  425. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -61
  426. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
  427. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -250
  428. data/src/core/lib/security/transport/target_authority_table.cc +0 -75
  429. data/src/core/lib/security/transport/target_authority_table.h +0 -40
  430. data/src/core/lib/slice/slice_hash_table.h +0 -199
  431. data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
@@ -14,8 +14,8 @@
14
14
  // limitations under the License.
15
15
  //
16
16
 
17
- #ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_XDS_XDS_CLIENT_H
18
- #define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_XDS_XDS_CLIENT_H
17
+ #ifndef GRPC_CORE_EXT_XDS_XDS_CLIENT_H
18
+ #define GRPC_CORE_EXT_XDS_XDS_CLIENT_H
19
19
 
20
20
  #include <grpc/support/port_platform.h>
21
21
 
@@ -24,10 +24,9 @@
24
24
  #include "absl/strings/string_view.h"
25
25
  #include "absl/types/optional.h"
26
26
 
27
- #include "src/core/ext/filters/client_channel/service_config.h"
28
- #include "src/core/ext/filters/client_channel/xds/xds_api.h"
29
- #include "src/core/ext/filters/client_channel/xds/xds_bootstrap.h"
30
- #include "src/core/ext/filters/client_channel/xds/xds_client_stats.h"
27
+ #include "src/core/ext/xds/xds_api.h"
28
+ #include "src/core/ext/xds/xds_bootstrap.h"
29
+ #include "src/core/ext/xds/xds_client_stats.h"
31
30
  #include "src/core/lib/gprpp/map.h"
32
31
  #include "src/core/lib/gprpp/memory.h"
33
32
  #include "src/core/lib/gprpp/orphanable.h"
@@ -41,13 +40,12 @@ extern TraceFlag xds_client_trace;
41
40
 
42
41
  class XdsClient : public InternallyRefCounted<XdsClient> {
43
42
  public:
44
- // Service config watcher interface. Implemented by callers.
45
- class ServiceConfigWatcherInterface {
43
+ // Listener data watcher interface. Implemented by callers.
44
+ class ListenerWatcherInterface {
46
45
  public:
47
- virtual ~ServiceConfigWatcherInterface() = default;
46
+ virtual ~ListenerWatcherInterface() = default;
48
47
 
49
- virtual void OnServiceConfigChanged(
50
- RefCountedPtr<ServiceConfig> service_config) = 0;
48
+ virtual void OnListenerChanged(std::vector<XdsApi::Route> routes) = 0;
51
49
 
52
50
  virtual void OnError(grpc_error* error) = 0;
53
51
 
@@ -82,7 +80,7 @@ class XdsClient : public InternallyRefCounted<XdsClient> {
82
80
  // an error initializing the client.
83
81
  XdsClient(std::shared_ptr<WorkSerializer> work_serializer,
84
82
  grpc_pollset_set* interested_parties, absl::string_view server_name,
85
- std::unique_ptr<ServiceConfigWatcherInterface> watcher,
83
+ std::unique_ptr<ListenerWatcherInterface> watcher,
86
84
  const grpc_channel_args& channel_args, grpc_error** error);
87
85
  ~XdsClient();
88
86
 
@@ -234,20 +232,6 @@ class XdsClient : public InternallyRefCounted<XdsClient> {
234
232
  // Sends an error notification to all watchers.
235
233
  void NotifyOnError(grpc_error* error);
236
234
 
237
- // Returns the weighted_clusters action name to use from
238
- // weighted_cluster_index_map_ for a WeightedClusters route action.
239
- std::string WeightedClustersActionName(
240
- const std::vector<XdsApi::RdsUpdate::RdsRoute::ClusterWeight>&
241
- weighted_clusters);
242
-
243
- // Updates weighted_cluster_index_map_ that will
244
- // determine the names of the WeightedCluster actions for the current update.
245
- void UpdateWeightedClusterIndexMap(const XdsApi::RdsUpdate& rds_update);
246
-
247
- // Create the service config generated by the RdsUpdate.
248
- grpc_error* CreateServiceConfig(const XdsApi::RdsUpdate& rds_update,
249
- RefCountedPtr<ServiceConfig>* service_config);
250
-
251
235
  XdsApi::ClusterLoadReportMap BuildLoadReportSnapshot(
252
236
  bool send_all_clusters, const std::set<std::string>& clusters);
253
237
 
@@ -267,8 +251,7 @@ class XdsClient : public InternallyRefCounted<XdsClient> {
267
251
  XdsApi api_;
268
252
 
269
253
  const std::string server_name_;
270
-
271
- std::unique_ptr<ServiceConfigWatcherInterface> service_config_watcher_;
254
+ std::unique_ptr<ListenerWatcherInterface> listener_watcher_;
272
255
 
273
256
  // The channel for communicating with the xds server.
274
257
  OrphanablePtr<ChannelState> chand_;
@@ -285,25 +268,9 @@ class XdsClient : public InternallyRefCounted<XdsClient> {
285
268
  LoadReportState>
286
269
  load_report_map_;
287
270
 
288
- // 2-level map to store WeightedCluster action names.
289
- // Top level map is keyed by cluster names without weight like a_b_c; bottom
290
- // level map is keyed by cluster names + weights like a10_b50_c40.
291
- struct ClusterNamesInfo {
292
- uint64_t next_index = 0;
293
- std::map<std::string /*cluster names + weights*/,
294
- uint64_t /*policy index number*/>
295
- cluster_weights_map;
296
- };
297
- using WeightedClusterIndexMap =
298
- std::map<std::string /*cluster names*/, ClusterNamesInfo>;
299
-
300
- // Cache of action names for WeightedCluster targets in the current
301
- // service config.
302
- WeightedClusterIndexMap weighted_cluster_index_map_;
303
-
304
271
  bool shutting_down_ = false;
305
272
  };
306
273
 
307
274
  } // namespace grpc_core
308
275
 
309
- #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_XDS_XDS_CLIENT_H */
276
+ #endif /* GRPC_CORE_EXT_XDS_XDS_CLIENT_H */
@@ -18,14 +18,14 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include "src/core/ext/filters/client_channel/xds/xds_client_stats.h"
21
+ #include "src/core/ext/xds/xds_client_stats.h"
22
22
 
23
23
  #include <string.h>
24
24
 
25
25
  #include <grpc/support/atm.h>
26
26
  #include <grpc/support/string_util.h>
27
27
 
28
- #include "src/core/ext/filters/client_channel/xds/xds_client.h"
28
+ #include "src/core/ext/xds/xds_client.h"
29
29
 
30
30
  namespace grpc_core {
31
31
 
@@ -16,8 +16,8 @@
16
16
  *
17
17
  */
18
18
 
19
- #ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_XDS_XDS_CLIENT_STATS_H
20
- #define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_XDS_XDS_CLIENT_STATS_H
19
+ #ifndef GRPC_CORE_EXT_XDS_XDS_CLIENT_STATS_H
20
+ #define GRPC_CORE_EXT_XDS_XDS_CLIENT_STATS_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
@@ -208,4 +208,4 @@ class XdsClusterLocalityStats : public RefCounted<XdsClusterLocalityStats> {
208
208
 
209
209
  } // namespace grpc_core
210
210
 
211
- #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_XDS_XDS_CLIENT_STATS_H */
211
+ #endif /* GRPC_CORE_EXT_XDS_XDS_CLIENT_STATS_H */
@@ -283,7 +283,7 @@ void ChannelNode::RemoveChildSubchannel(intptr_t child_uuid) {
283
283
  // ServerNode
284
284
  //
285
285
 
286
- ServerNode::ServerNode(grpc_server* /*server*/, size_t channel_tracer_max_nodes)
286
+ ServerNode::ServerNode(size_t channel_tracer_max_nodes)
287
287
  : BaseNode(EntityType::kServer, ""), trace_(channel_tracer_max_nodes) {}
288
288
 
289
289
  ServerNode::~ServerNode() {}
@@ -310,27 +310,26 @@ void ServerNode::RemoveChildListenSocket(intptr_t child_uuid) {
310
310
 
311
311
  std::string ServerNode::RenderServerSockets(intptr_t start_socket_id,
312
312
  intptr_t max_results) {
313
+ GPR_ASSERT(start_socket_id >= 0);
314
+ GPR_ASSERT(max_results >= 0);
313
315
  // If user does not set max_results, we choose 500.
314
316
  size_t pagination_limit = max_results == 0 ? 500 : max_results;
315
317
  Json::Object object;
316
318
  {
317
319
  MutexLock lock(&child_mu_);
318
320
  size_t sockets_rendered = 0;
319
- if (!child_sockets_.empty()) {
320
- // Create list of socket refs.
321
- Json::Array array;
322
- const size_t limit = GPR_MIN(child_sockets_.size(), pagination_limit);
323
- for (auto it = child_sockets_.lower_bound(start_socket_id);
324
- it != child_sockets_.end() && sockets_rendered < limit;
325
- ++it, ++sockets_rendered) {
326
- array.emplace_back(Json::Object{
327
- {"socketId", std::to_string(it->first)},
328
- {"name", it->second->name()},
329
- });
330
- }
331
- object["socketRef"] = std::move(array);
321
+ // Create list of socket refs.
322
+ Json::Array array;
323
+ auto it = child_sockets_.lower_bound(start_socket_id);
324
+ for (; it != child_sockets_.end() && sockets_rendered < pagination_limit;
325
+ ++it, ++sockets_rendered) {
326
+ array.emplace_back(Json::Object{
327
+ {"socketId", std::to_string(it->first)},
328
+ {"name", it->second->name()},
329
+ });
332
330
  }
333
- if (sockets_rendered == child_sockets_.size()) object["end"] = true;
331
+ object["socketRef"] = std::move(array);
332
+ if (it == child_sockets_.end()) object["end"] = true;
334
333
  }
335
334
  Json json = std::move(object);
336
335
  return json.Dump();
@@ -238,7 +238,7 @@ class ChannelNode : public BaseNode {
238
238
  // Handles channelz bookkeeping for servers
239
239
  class ServerNode : public BaseNode {
240
240
  public:
241
- ServerNode(grpc_server* server, size_t channel_tracer_max_nodes);
241
+ explicit ServerNode(size_t channel_tracer_max_nodes);
242
242
 
243
243
  ~ServerNode() override;
244
244
 
@@ -208,10 +208,12 @@ char* grpc_channelz_get_server(intptr_t server_id) {
208
208
  char* grpc_channelz_get_server_sockets(intptr_t server_id,
209
209
  intptr_t start_socket_id,
210
210
  intptr_t max_results) {
211
+ // Validate inputs before handing them of to the renderer.
211
212
  grpc_core::RefCountedPtr<grpc_core::channelz::BaseNode> base_node =
212
213
  grpc_core::channelz::ChannelzRegistry::Get(server_id);
213
214
  if (base_node == nullptr ||
214
- base_node->type() != grpc_core::channelz::BaseNode::EntityType::kServer) {
215
+ base_node->type() != grpc_core::channelz::BaseNode::EntityType::kServer ||
216
+ start_socket_id < 0 || max_results < 0) {
215
217
  return nullptr;
216
218
  }
217
219
  // This cast is ok since we have just checked to make sure base_node is
@@ -116,10 +116,6 @@ void gpr_cv_destroy(gpr_cv* cv) {
116
116
  #endif
117
117
  }
118
118
 
119
- #define gpr_convert_clock_type_debug(t, clock_type, now1, now2, add_result, \
120
- sub_result) \
121
- gpr_convert_clock_type((t), (clock_type))
122
-
123
119
  int gpr_cv_wait(gpr_cv* cv, gpr_mu* mu, gpr_timespec abs_deadline) {
124
120
  int err = 0;
125
121
  if (gpr_time_cmp(abs_deadline, gpr_inf_future(abs_deadline.clock_type)) ==
@@ -132,11 +128,9 @@ int gpr_cv_wait(gpr_cv* cv, gpr_mu* mu, gpr_timespec abs_deadline) {
132
128
  } else {
133
129
  struct timespec abs_deadline_ts;
134
130
  #if GPR_LINUX
135
- abs_deadline = gpr_convert_clock_type_debug(
136
- abs_deadline, GPR_CLOCK_MONOTONIC, now1, now2, add_result, sub_result);
131
+ abs_deadline = gpr_convert_clock_type(abs_deadline, GPR_CLOCK_MONOTONIC);
137
132
  #else
138
- abs_deadline = gpr_convert_clock_type_debug(
139
- abs_deadline, GPR_CLOCK_REALTIME, now1, now2, add_result, sub_result);
133
+ abs_deadline = gpr_convert_clock_type(abs_deadline, GPR_CLOCK_REALTIME);
140
134
  #endif // GPR_LINUX
141
135
  abs_deadline_ts.tv_sec = static_cast<time_t>(abs_deadline.tv_sec);
142
136
  abs_deadline_ts.tv_nsec = abs_deadline.tv_nsec;
@@ -52,10 +52,14 @@ void grpc_endpoint_shutdown(grpc_endpoint* ep, grpc_error* why) {
52
52
 
53
53
  void grpc_endpoint_destroy(grpc_endpoint* ep) { ep->vtable->destroy(ep); }
54
54
 
55
- char* grpc_endpoint_get_peer(grpc_endpoint* ep) {
55
+ absl::string_view grpc_endpoint_get_peer(grpc_endpoint* ep) {
56
56
  return ep->vtable->get_peer(ep);
57
57
  }
58
58
 
59
+ absl::string_view grpc_endpoint_get_local_address(grpc_endpoint* ep) {
60
+ return ep->vtable->get_local_address(ep);
61
+ }
62
+
59
63
  int grpc_endpoint_get_fd(grpc_endpoint* ep) { return ep->vtable->get_fd(ep); }
60
64
 
61
65
  grpc_resource_user* grpc_endpoint_get_resource_user(grpc_endpoint* ep) {
@@ -21,6 +21,8 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include "absl/strings/string_view.h"
25
+
24
26
  #include <grpc/slice.h>
25
27
  #include <grpc/slice_buffer.h>
26
28
  #include <grpc/support/time.h>
@@ -33,7 +35,6 @@
33
35
 
34
36
  typedef struct grpc_endpoint grpc_endpoint;
35
37
  typedef struct grpc_endpoint_vtable grpc_endpoint_vtable;
36
- class Timestamps;
37
38
 
38
39
  struct grpc_endpoint_vtable {
39
40
  void (*read)(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb,
@@ -46,7 +47,8 @@ struct grpc_endpoint_vtable {
46
47
  void (*shutdown)(grpc_endpoint* ep, grpc_error* why);
47
48
  void (*destroy)(grpc_endpoint* ep);
48
49
  grpc_resource_user* (*get_resource_user)(grpc_endpoint* ep);
49
- char* (*get_peer)(grpc_endpoint* ep);
50
+ absl::string_view (*get_peer)(grpc_endpoint* ep);
51
+ absl::string_view (*get_local_address)(grpc_endpoint* ep);
50
52
  int (*get_fd)(grpc_endpoint* ep);
51
53
  bool (*can_track_err)(grpc_endpoint* ep);
52
54
  };
@@ -59,7 +61,9 @@ struct grpc_endpoint_vtable {
59
61
  void grpc_endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
60
62
  grpc_closure* cb, bool urgent);
61
63
 
62
- char* grpc_endpoint_get_peer(grpc_endpoint* ep);
64
+ absl::string_view grpc_endpoint_get_peer(grpc_endpoint* ep);
65
+
66
+ absl::string_view grpc_endpoint_get_local_address(grpc_endpoint* ep);
63
67
 
64
68
  /* Get the file descriptor used by \a ep. Return -1 if \a ep is not using an fd.
65
69
  */
@@ -34,6 +34,8 @@
34
34
  #include "src/core/lib/iomgr/closure.h"
35
35
  #include "src/core/lib/iomgr/endpoint.h"
36
36
  #include "src/core/lib/iomgr/error_cfstream.h"
37
+ #include "src/core/lib/iomgr/sockaddr.h"
38
+ #include "src/core/lib/iomgr/sockaddr_utils.h"
37
39
  #include "src/core/lib/slice/slice_internal.h"
38
40
  #include "src/core/lib/slice/slice_string_helpers.h"
39
41
 
@@ -55,7 +57,8 @@ struct CFStreamEndpoint {
55
57
  grpc_closure read_action;
56
58
  grpc_closure write_action;
57
59
 
58
- char* peer_string;
60
+ std::string peer_string;
61
+ std::string local_address;
59
62
  grpc_resource_user* resource_user;
60
63
  grpc_resource_user_slice_allocator slice_allocator;
61
64
  };
@@ -64,8 +67,7 @@ static void CFStreamFree(CFStreamEndpoint* ep) {
64
67
  CFRelease(ep->read_stream);
65
68
  CFRelease(ep->write_stream);
66
69
  CFSTREAM_HANDLE_UNREF(ep->stream_sync, "free");
67
- gpr_free(ep->peer_string);
68
- gpr_free(ep);
70
+ delete ep;
69
71
  }
70
72
 
71
73
  #ifndef NDEBUG
@@ -110,7 +112,7 @@ static grpc_error* CFStreamAnnotateError(grpc_error* src_error,
110
112
  grpc_error_set_int(src_error, GRPC_ERROR_INT_GRPC_STATUS,
111
113
  GRPC_STATUS_UNAVAILABLE),
112
114
  GRPC_ERROR_STR_TARGET_ADDRESS,
113
- grpc_slice_from_copied_string(ep->peer_string));
115
+ grpc_slice_from_copied_string(ep->peer_string.c_str()));
114
116
  }
115
117
 
116
118
  static void CallReadCb(CFStreamEndpoint* ep, grpc_error* error) {
@@ -124,7 +126,8 @@ static void CallReadCb(CFStreamEndpoint* ep, grpc_error* error) {
124
126
  for (i = 0; i < ep->read_slices->count; i++) {
125
127
  char* dump = grpc_dump_slice(ep->read_slices->slices[i],
126
128
  GPR_DUMP_HEX | GPR_DUMP_ASCII);
127
- gpr_log(GPR_DEBUG, "READ %p (peer=%s): %s", ep, ep->peer_string, dump);
129
+ gpr_log(GPR_DEBUG, "READ %p (peer=%s): %s", ep, ep->peer_string.c_str(),
130
+ dump);
128
131
  gpr_free(dump);
129
132
  }
130
133
  }
@@ -230,7 +233,8 @@ static void WriteAction(void* arg, grpc_error* error) {
230
233
  if (grpc_tcp_trace.enabled()) {
231
234
  grpc_slice trace_slice = grpc_slice_sub(slice, 0, write_size);
232
235
  char* dump = grpc_dump_slice(trace_slice, GPR_DUMP_HEX | GPR_DUMP_ASCII);
233
- gpr_log(GPR_DEBUG, "WRITE %p (peer=%s): %s", ep, ep->peer_string, dump);
236
+ gpr_log(GPR_DEBUG, "WRITE %p (peer=%s): %s", ep, ep->peer_string.c_str(),
237
+ dump);
234
238
  gpr_free(dump);
235
239
  grpc_slice_unref_internal(trace_slice);
236
240
  }
@@ -309,9 +313,14 @@ grpc_resource_user* CFStreamGetResourceUser(grpc_endpoint* ep) {
309
313
  return ep_impl->resource_user;
310
314
  }
311
315
 
312
- char* CFStreamGetPeer(grpc_endpoint* ep) {
316
+ absl::string_view CFStreamGetPeer(grpc_endpoint* ep) {
313
317
  CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
314
- return gpr_strdup(ep_impl->peer_string);
318
+ return ep_impl->peer_string;
319
+ }
320
+
321
+ absl::string_view CFStreamGetLocalAddress(grpc_endpoint* ep) {
322
+ CFStreamEndpoint* ep_impl = reinterpret_cast<CFStreamEndpoint*>(ep);
323
+ return ep_impl->local_address;
315
324
  }
316
325
 
317
326
  int CFStreamGetFD(grpc_endpoint* ep) { return 0; }
@@ -332,6 +341,7 @@ static const grpc_endpoint_vtable vtable = {CFStreamRead,
332
341
  CFStreamDestroy,
333
342
  CFStreamGetResourceUser,
334
343
  CFStreamGetPeer,
344
+ CFStreamGetLocalAddress,
335
345
  CFStreamGetFD,
336
346
  CFStreamCanTrackErr};
337
347
 
@@ -339,8 +349,7 @@ grpc_endpoint* grpc_cfstream_endpoint_create(
339
349
  CFReadStreamRef read_stream, CFWriteStreamRef write_stream,
340
350
  const char* peer_string, grpc_resource_quota* resource_quota,
341
351
  CFStreamHandle* stream_sync) {
342
- CFStreamEndpoint* ep_impl =
343
- static_cast<CFStreamEndpoint*>(gpr_malloc(sizeof(CFStreamEndpoint)));
352
+ CFStreamEndpoint* ep_impl = new CFStreamEndpoint;
344
353
  if (grpc_tcp_trace.enabled()) {
345
354
  gpr_log(GPR_DEBUG,
346
355
  "CFStream endpoint:%p create readStream:%p writeStream: %p",
@@ -355,7 +364,19 @@ grpc_endpoint* grpc_cfstream_endpoint_create(
355
364
  ep_impl->stream_sync = stream_sync;
356
365
  CFSTREAM_HANDLE_REF(ep_impl->stream_sync, "endpoint create");
357
366
 
358
- ep_impl->peer_string = gpr_strdup(peer_string);
367
+ ep_impl->peer_string = peer_string;
368
+ const int* native_handle =
369
+ reinterpret_cast<const int*>(CFReadStreamCopyProperty(
370
+ ep_impl->read_stream, kCFStreamPropertySocketNativeHandle));
371
+ grpc_resolved_address resolved_local_addr;
372
+ resolved_local_addr.len = sizeof(resolved_local_addr.addr);
373
+ if (getsockname(*native_handle,
374
+ reinterpret_cast<sockaddr*>(resolved_local_addr.addr),
375
+ &resolved_local_addr.len) < 0) {
376
+ ep_impl->local_address = "";
377
+ } else {
378
+ ep_impl->local_address = grpc_sockaddr_to_uri(&resolved_local_addr);
379
+ }
359
380
  ep_impl->read_cb = nil;
360
381
  ep_impl->write_cb = nil;
361
382
  ep_impl->read_slices = nil;
@@ -37,7 +37,6 @@
37
37
  #include "src/core/lib/iomgr/ev_epollex_linux.h"
38
38
  #include "src/core/lib/iomgr/ev_poll_posix.h"
39
39
  #include "src/core/lib/iomgr/internal_errqueue.h"
40
- #include "src/core/lib/iomgr/iomgr.h"
41
40
 
42
41
  GPR_GLOBAL_CONFIG_DEFINE_STRING(
43
42
  grpc_poll_strategy, "all",
@@ -108,7 +107,6 @@ const grpc_event_engine_vtable* init_non_polling(bool explicit_request) {
108
107
  auto ret = grpc_init_poll_posix(explicit_request);
109
108
  real_poll_function = grpc_poll_function;
110
109
  grpc_poll_function = dummy_poll;
111
- grpc_iomgr_mark_non_polling_internal();
112
110
 
113
111
  return ret;
114
112
  }
@@ -31,7 +31,6 @@
31
31
 
32
32
  #include "src/core/lib/gpr/string.h"
33
33
  #include "src/core/lib/gpr/useful.h"
34
- #include "src/core/lib/gprpp/atomic.h"
35
34
  #include "src/core/lib/gprpp/global_config.h"
36
35
  #include "src/core/lib/gprpp/thd.h"
37
36
  #include "src/core/lib/iomgr/buffer_list.h"
@@ -51,7 +50,6 @@ static gpr_cv g_rcv;
51
50
  static int g_shutdown;
52
51
  static grpc_iomgr_object g_root_object;
53
52
  static bool g_grpc_abort_on_leaks;
54
- static grpc_core::Atomic<bool> g_iomgr_non_polling{false};
55
53
 
56
54
  void grpc_iomgr_init() {
57
55
  grpc_core::ExecCtx exec_ctx;
@@ -194,11 +192,3 @@ void grpc_iomgr_unregister_object(grpc_iomgr_object* obj) {
194
192
  }
195
193
 
196
194
  bool grpc_iomgr_abort_on_leaks(void) { return g_grpc_abort_on_leaks; }
197
-
198
- bool grpc_iomgr_non_polling() {
199
- return g_iomgr_non_polling.Load(grpc_core::MemoryOrder::SEQ_CST);
200
- }
201
-
202
- void grpc_iomgr_mark_non_polling_internal() {
203
- g_iomgr_non_polling.Store(true, grpc_core::MemoryOrder::SEQ_CST);
204
- }