grpc 1.48.0 → 1.49.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 (715) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +104 -41
  3. data/include/grpc/event_engine/event_engine.h +19 -16
  4. data/include/grpc/impl/codegen/grpc_types.h +3 -8
  5. data/include/grpc/impl/codegen/port_platform.h +0 -8
  6. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +3 -3
  7. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
  8. data/src/core/ext/filters/client_channel/client_channel.cc +117 -200
  9. data/src/core/ext/filters/client_channel/client_channel.h +15 -8
  10. data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -29
  11. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -10
  12. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  13. data/src/core/ext/filters/client_channel/config_selector.h +12 -4
  14. data/src/core/ext/filters/client_channel/connector.h +4 -5
  15. data/src/core/ext/filters/client_channel/http_proxy.cc +53 -65
  16. data/src/core/ext/filters/client_channel/http_proxy.h +12 -9
  17. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +14 -12
  18. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +6 -6
  19. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +100 -124
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -3
  21. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +5 -1
  22. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -0
  23. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -2
  24. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
  25. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +169 -63
  26. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +25 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +15 -19
  28. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +66 -78
  29. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +44 -44
  30. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -5
  31. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +65 -77
  32. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +15 -14
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -14
  34. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +60 -67
  35. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +40 -49
  36. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +81 -97
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +53 -61
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +171 -102
  39. data/src/core/ext/filters/client_channel/proxy_mapper.h +13 -14
  40. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +19 -16
  41. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -7
  42. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +4 -8
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +431 -145
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +170 -99
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -7
  46. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -15
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +7 -17
  48. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +11 -0
  49. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -14
  50. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -4
  51. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +5 -6
  52. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -13
  53. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +162 -165
  54. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +37 -30
  55. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
  56. data/src/core/ext/filters/client_channel/retry_filter.cc +0 -7
  57. data/src/core/ext/filters/client_channel/retry_service_config.cc +30 -19
  58. data/src/core/ext/filters/client_channel/retry_service_config.h +6 -9
  59. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +6 -7
  60. data/src/core/ext/filters/client_channel/subchannel.cc +49 -89
  61. data/src/core/ext/filters/client_channel/subchannel.h +8 -8
  62. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +1 -1
  63. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
  64. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -25
  65. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +3 -4
  66. data/src/core/ext/filters/deadline/deadline_filter.cc +6 -6
  67. data/src/core/ext/filters/deadline/deadline_filter.h +2 -3
  68. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -3
  69. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -1
  70. data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -12
  71. data/src/core/ext/filters/fault_injection/service_config_parser.h +4 -5
  72. data/src/core/ext/filters/http/client/http_client_filter.cc +2 -3
  73. data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
  74. data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
  75. data/src/core/ext/filters/http/client_authority_filter.h +1 -1
  76. data/src/core/ext/filters/http/server/http_server_filter.cc +2 -3
  77. data/src/core/ext/filters/http/server/http_server_filter.h +1 -1
  78. data/src/core/ext/filters/message_size/message_size_filter.cc +13 -7
  79. data/src/core/ext/filters/message_size/message_size_filter.h +3 -6
  80. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -12
  81. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -6
  82. data/src/core/ext/filters/server_config_selector/server_config_selector.h +5 -0
  83. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -5
  84. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +35 -62
  85. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +62 -89
  86. data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
  87. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +130 -165
  88. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
  89. data/src/core/ext/transport/chttp2/transport/flow_control.cc +67 -2
  90. data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
  91. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
  92. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +25 -8
  93. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -0
  94. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
  95. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +8 -2
  96. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -10
  97. data/src/core/ext/transport/chttp2/transport/internal.h +2 -1
  98. data/src/core/ext/transport/inproc/inproc_transport.cc +40 -74
  99. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
  100. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
  101. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +4 -4
  102. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +24 -8
  103. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
  104. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
  105. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
  106. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
  107. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
  108. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
  109. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
  110. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
  111. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
  112. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
  113. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
  114. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
  115. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
  116. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
  117. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
  118. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
  119. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  120. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
  121. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
  122. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
  123. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +21 -19
  124. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +124 -34
  125. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
  126. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
  127. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +23 -22
  128. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +153 -48
  129. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
  130. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
  131. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
  132. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
  133. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
  134. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
  135. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +7 -7
  136. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +42 -14
  137. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
  138. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
  139. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
  140. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
  141. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
  142. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
  143. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
  144. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
  145. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +9 -9
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +54 -18
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +21 -20
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +117 -44
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
  159. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +6 -2
  162. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
  163. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
  164. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
  165. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
  166. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
  167. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
  168. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +5 -5
  169. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +36 -12
  170. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
  171. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
  172. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
  173. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
  174. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -13
  175. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +170 -15
  176. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
  177. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
  178. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +1 -1
  179. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +6 -2
  180. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
  181. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
  182. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
  183. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
  184. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
  185. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
  186. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
  187. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
  188. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -9
  189. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +100 -14
  190. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -22
  191. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +36 -77
  192. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +121 -76
  193. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +647 -163
  194. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
  195. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
  196. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
  197. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
  198. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +1 -1
  199. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -2
  200. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
  201. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
  202. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
  203. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
  204. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
  205. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
  206. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
  207. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
  208. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
  209. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
  210. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
  211. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
  212. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
  213. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
  214. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
  215. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
  216. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
  217. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
  218. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +1 -1
  219. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +6 -2
  220. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
  221. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
  222. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
  223. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
  224. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
  225. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
  226. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
  227. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
  228. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +1 -1
  229. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +6 -2
  230. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +35 -27
  231. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +177 -52
  232. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +6 -2
  233. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +1 -1
  234. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +6 -2
  235. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
  236. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
  237. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
  238. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
  239. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +5 -5
  240. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +42 -14
  241. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
  242. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
  243. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
  244. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
  245. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +131 -16
  246. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +632 -12
  247. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
  248. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
  249. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
  250. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
  251. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
  252. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
  253. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
  254. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
  255. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
  256. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
  257. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
  258. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
  259. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
  260. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
  261. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
  262. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
  263. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
  264. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
  265. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
  266. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
  267. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
  268. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
  269. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
  270. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
  271. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
  272. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
  273. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
  274. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
  275. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
  276. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
  277. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
  278. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
  279. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
  280. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
  281. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
  282. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
  283. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
  284. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
  285. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
  286. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
  287. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
  288. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
  289. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
  290. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
  291. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
  292. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
  293. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
  294. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  295. data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
  296. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
  297. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
  298. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  299. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
  300. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
  301. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
  302. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  303. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
  304. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  305. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
  306. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
  307. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
  308. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  309. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
  310. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
  311. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
  312. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  313. data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
  314. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
  315. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
  316. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
  317. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
  318. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
  319. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
  320. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
  321. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  322. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
  323. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
  324. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
  325. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
  326. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
  327. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
  328. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
  329. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  330. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
  331. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
  332. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
  333. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
  334. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
  335. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
  336. data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
  337. data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
  338. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
  339. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
  340. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
  341. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
  342. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
  343. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
  344. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
  345. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
  346. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
  347. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
  348. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
  349. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
  350. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
  351. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
  352. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
  353. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
  354. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
  355. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
  356. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
  357. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
  358. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
  359. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
  360. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +6 -2
  361. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +1 -1
  362. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +6 -2
  363. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
  364. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
  365. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
  366. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
  367. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
  368. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
  369. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -1
  370. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
  371. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
  372. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
  373. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
  374. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
  375. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
  376. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
  377. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
  378. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +156 -154
  379. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +186 -183
  380. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +136 -134
  381. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
  382. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +162 -139
  383. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
  384. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
  385. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +12 -8
  386. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  387. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +72 -75
  388. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -5
  389. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +713 -670
  390. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
  391. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
  392. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
  393. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
  394. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
  395. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
  396. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
  397. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +477 -466
  398. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
  399. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +153 -84
  400. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
  401. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
  402. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
  403. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
  404. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
  405. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
  406. data/src/core/ext/xds/upb_utils.h +0 -21
  407. data/src/core/ext/xds/xds_api.cc +53 -86
  408. data/src/core/ext/xds/xds_api.h +19 -28
  409. data/src/core/ext/xds/xds_bootstrap.cc +39 -52
  410. data/src/core/ext/xds/xds_bootstrap.h +28 -8
  411. data/src/core/ext/xds/xds_certificate_provider.h +9 -0
  412. data/src/core/ext/xds/xds_channel_stack_modifier.cc +6 -4
  413. data/src/core/ext/xds/xds_channel_stack_modifier.h +8 -0
  414. data/src/core/ext/xds/xds_client.cc +555 -1214
  415. data/src/core/ext/xds/xds_client.h +16 -44
  416. data/src/core/ext/xds/xds_client_grpc.cc +291 -0
  417. data/src/core/ext/xds/xds_client_grpc.h +102 -0
  418. data/src/core/ext/xds/xds_cluster.cc +92 -103
  419. data/src/core/ext/xds/xds_cluster.h +6 -5
  420. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +10 -14
  421. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
  422. data/src/core/ext/xds/xds_common_types.cc +134 -110
  423. data/src/core/ext/xds/xds_common_types.h +6 -7
  424. data/src/core/ext/xds/xds_endpoint.cc +80 -80
  425. data/src/core/ext/xds/xds_endpoint.h +4 -4
  426. data/src/core/ext/xds/xds_http_fault_filter.cc +4 -11
  427. data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
  428. data/src/core/ext/xds/xds_http_filters.h +3 -3
  429. data/src/core/ext/xds/xds_http_rbac_filter.cc +39 -58
  430. data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
  431. data/src/core/ext/xds/xds_lb_policy_registry.cc +17 -20
  432. data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
  433. data/src/core/ext/xds/xds_listener.cc +329 -299
  434. data/src/core/ext/xds/xds_listener.h +4 -4
  435. data/src/core/ext/xds/xds_resource_type.h +13 -2
  436. data/src/core/ext/xds/xds_route_config.cc +180 -177
  437. data/src/core/ext/xds/xds_route_config.h +31 -17
  438. data/src/core/ext/xds/xds_routing.cc +3 -6
  439. data/src/core/ext/xds/xds_routing.h +7 -9
  440. data/src/core/ext/xds/xds_server_config_fetcher.cc +76 -81
  441. data/src/core/ext/xds/xds_transport.h +86 -0
  442. data/src/core/ext/xds/xds_transport_grpc.cc +349 -0
  443. data/src/core/ext/xds/xds_transport_grpc.h +135 -0
  444. data/src/core/lib/address_utils/parse_address.cc +19 -17
  445. data/src/core/lib/address_utils/parse_address.h +8 -5
  446. data/src/core/lib/avl/avl.h +47 -25
  447. data/src/core/lib/channel/call_tracer.h +1 -1
  448. data/src/core/lib/channel/channel_args.cc +88 -19
  449. data/src/core/lib/channel/channel_args.h +113 -62
  450. data/src/core/lib/channel/channel_stack.cc +0 -1
  451. data/src/core/lib/channel/channel_stack_builder.cc +3 -3
  452. data/src/core/lib/channel/channel_stack_builder.h +2 -2
  453. data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -4
  454. data/src/core/lib/channel/channelz.cc +27 -37
  455. data/src/core/lib/channel/channelz.h +9 -0
  456. data/src/core/lib/channel/promise_based_filter.h +0 -1
  457. data/src/core/lib/config/core_configuration.h +48 -35
  458. data/src/core/lib/debug/stats.cc +12 -15
  459. data/src/core/lib/debug/stats.h +11 -3
  460. data/src/core/lib/event_engine/{event_engine.cc → default_event_engine.cc} +9 -5
  461. data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine.h} +4 -8
  462. data/src/core/lib/event_engine/default_event_engine_factory.cc +20 -3
  463. data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
  464. data/src/core/lib/event_engine/executor/executor.h +38 -0
  465. data/src/core/lib/event_engine/executor/threaded_executor.cc +36 -0
  466. data/src/core/lib/event_engine/executor/threaded_executor.h +44 -0
  467. data/src/core/lib/event_engine/forkable.cc +98 -0
  468. data/src/core/lib/event_engine/forkable.h +61 -0
  469. data/src/core/lib/event_engine/poller.h +54 -0
  470. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.cc → posix_engine/posix_engine.cc} +30 -47
  471. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → posix_engine/posix_engine.h} +27 -28
  472. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +4 -5
  473. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.h +8 -8
  474. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +4 -4
  475. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.h +5 -5
  476. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.cc +46 -10
  477. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +17 -8
  478. data/src/core/lib/event_engine/promise.h +11 -2
  479. data/src/core/lib/event_engine/socket_notifier.h +55 -0
  480. data/src/core/lib/event_engine/{iomgr_engine/thread_pool.cc → thread_pool.cc} +49 -14
  481. data/src/core/lib/event_engine/{iomgr_engine/thread_pool.h → thread_pool.h} +21 -10
  482. data/src/core/lib/event_engine/utils.cc +49 -0
  483. data/src/core/lib/event_engine/utils.h +40 -0
  484. data/src/core/lib/event_engine/windows/iocp.cc +149 -0
  485. data/src/core/lib/event_engine/windows/iocp.h +68 -0
  486. data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
  487. data/src/core/lib/event_engine/windows/win_socket.h +120 -0
  488. data/src/core/lib/event_engine/windows/windows_engine.cc +159 -0
  489. data/src/core/lib/event_engine/windows/windows_engine.h +120 -0
  490. data/src/core/lib/gpr/time.cc +11 -9
  491. data/src/core/lib/gpr/useful.h +29 -0
  492. data/src/core/lib/gprpp/bitset.h +3 -13
  493. data/src/core/lib/gprpp/debug_location.h +39 -7
  494. data/src/core/lib/gprpp/manual_constructor.h +0 -1
  495. data/src/core/lib/gprpp/no_destruct.h +94 -0
  496. data/src/core/lib/gprpp/ref_counted_ptr.h +0 -1
  497. data/src/core/lib/gprpp/status_helper.cc +1 -0
  498. data/src/core/lib/gprpp/table.h +0 -1
  499. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +3 -5
  500. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.h +5 -7
  501. data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
  502. data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
  503. data/src/core/lib/http/httpcli.cc +12 -24
  504. data/src/core/lib/http/httpcli_security_connector.cc +11 -11
  505. data/src/core/lib/iomgr/call_combiner.cc +0 -26
  506. data/src/core/lib/iomgr/closure.h +0 -9
  507. data/src/core/lib/iomgr/combiner.cc +0 -20
  508. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
  509. data/src/core/lib/iomgr/error.cc +0 -773
  510. data/src/core/lib/iomgr/error.h +0 -145
  511. data/src/core/lib/iomgr/error_cfstream.cc +0 -5
  512. data/src/core/lib/iomgr/ev_poll_posix.cc +17 -9
  513. data/src/core/lib/iomgr/exec_ctx.cc +0 -12
  514. data/src/core/lib/iomgr/executor.cc +0 -10
  515. data/src/core/lib/iomgr/executor.h +0 -3
  516. data/src/core/lib/iomgr/lockfree_event.cc +0 -17
  517. data/src/core/lib/iomgr/port.h +3 -0
  518. data/src/core/lib/iomgr/resolve_address.h +29 -6
  519. data/src/core/lib/iomgr/resolve_address_posix.cc +38 -8
  520. data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
  521. data/src/core/lib/iomgr/resolve_address_windows.cc +40 -10
  522. data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
  523. data/src/core/lib/iomgr/socket_windows.h +0 -2
  524. data/src/core/lib/iomgr/tcp_posix.cc +118 -6
  525. data/src/core/lib/iomgr/timer_generic.cc +6 -8
  526. data/src/core/lib/json/json.h +19 -22
  527. data/src/core/lib/json/json_args.h +34 -0
  528. data/src/core/lib/json/json_object_loader.cc +233 -0
  529. data/src/core/lib/json/json_object_loader.h +618 -0
  530. data/src/core/lib/json/json_reader.cc +86 -62
  531. data/src/core/lib/json/json_util.cc +8 -36
  532. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +3 -44
  533. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +15 -24
  534. data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
  535. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.cc +49 -72
  536. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.h +27 -27
  537. data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
  538. data/src/core/lib/promise/activity.h +56 -8
  539. data/src/core/lib/promise/arena_promise.h +84 -81
  540. data/src/core/lib/promise/context.h +0 -1
  541. data/src/core/lib/promise/detail/basic_seq.h +43 -23
  542. data/src/core/lib/promise/detail/promise_factory.h +0 -1
  543. data/src/core/lib/promise/map.h +0 -1
  544. data/src/core/lib/promise/seq.h +25 -4
  545. data/src/core/lib/promise/sleep.cc +38 -42
  546. data/src/core/lib/promise/sleep.h +27 -24
  547. data/src/core/lib/promise/try_seq.h +26 -6
  548. data/src/core/lib/resolver/resolver.cc +0 -47
  549. data/src/core/lib/resolver/resolver.h +2 -12
  550. data/src/core/lib/resolver/resolver_factory.h +2 -3
  551. data/src/core/lib/resolver/resolver_registry.cc +1 -1
  552. data/src/core/lib/resolver/resolver_registry.h +2 -3
  553. data/src/core/lib/resolver/server_address.cc +11 -15
  554. data/src/core/lib/resolver/server_address.h +4 -8
  555. data/src/core/lib/resource_quota/api.cc +1 -1
  556. data/src/core/lib/resource_quota/arena.cc +21 -1
  557. data/src/core/lib/resource_quota/arena.h +24 -2
  558. data/src/core/lib/resource_quota/memory_quota.cc +157 -17
  559. data/src/core/lib/resource_quota/memory_quota.h +98 -17
  560. data/src/core/lib/resource_quota/periodic_update.cc +79 -0
  561. data/src/core/lib/resource_quota/periodic_update.h +71 -0
  562. data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
  563. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
  564. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  565. data/src/core/lib/security/authorization/matchers.cc +13 -10
  566. data/src/core/lib/security/authorization/rbac_policy.cc +0 -1
  567. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -3
  568. data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -4
  569. data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -7
  570. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -4
  571. data/src/core/lib/security/credentials/credentials.h +16 -12
  572. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +18 -11
  573. data/src/core/lib/security/credentials/external/external_account_credentials.cc +32 -23
  574. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
  575. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -6
  576. data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -12
  577. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -4
  578. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +29 -26
  579. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -3
  580. data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
  581. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
  582. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -4
  583. data/src/core/lib/security/credentials/jwt/json_token.cc +12 -3
  584. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -8
  585. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +11 -13
  586. data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
  587. data/src/core/lib/security/credentials/local/local_credentials.h +3 -4
  588. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +17 -18
  589. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
  590. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -21
  591. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -4
  592. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +6 -0
  593. data/src/core/lib/security/credentials/tls/tls_credentials.cc +13 -25
  594. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -4
  595. data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -30
  596. data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
  597. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -18
  598. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +26 -38
  599. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
  600. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
  601. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +6 -5
  602. data/src/core/lib/security/security_connector/local/local_security_connector.cc +13 -11
  603. data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
  604. data/src/core/lib/security/security_connector/security_connector.h +5 -3
  605. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -4
  606. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +5 -5
  607. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -5
  608. data/src/core/lib/security/transport/auth_filters.h +1 -1
  609. data/src/core/lib/security/transport/client_auth_filter.cc +3 -4
  610. data/src/core/lib/security/transport/security_handshaker.cc +32 -44
  611. data/src/core/lib/security/transport/security_handshaker.h +2 -1
  612. data/src/core/lib/service_config/service_config.h +11 -0
  613. data/src/core/lib/service_config/service_config_impl.cc +98 -97
  614. data/src/core/lib/service_config/service_config_impl.h +11 -13
  615. data/src/core/lib/service_config/service_config_parser.cc +26 -27
  616. data/src/core/lib/service_config/service_config_parser.h +10 -22
  617. data/src/core/lib/slice/percent_encoding.cc +4 -13
  618. data/src/core/lib/slice/slice.cc +10 -4
  619. data/src/core/lib/surface/call.cc +8 -2
  620. data/src/core/lib/surface/channel.cc +6 -6
  621. data/src/core/lib/surface/channel.h +1 -1
  622. data/src/core/lib/surface/completion_queue.cc +0 -2
  623. data/src/core/lib/surface/completion_queue.h +0 -3
  624. data/src/core/lib/surface/init.cc +2 -6
  625. data/src/core/lib/surface/lame_client.cc +2 -3
  626. data/src/core/lib/surface/lame_client.h +1 -1
  627. data/src/core/lib/surface/server.cc +7 -12
  628. data/src/core/lib/surface/server.h +7 -7
  629. data/src/core/lib/surface/validate_metadata.cc +4 -14
  630. data/src/core/lib/surface/version.cc +2 -2
  631. data/src/core/lib/transport/connectivity_state.cc +0 -1
  632. data/src/core/lib/transport/connectivity_state.h +1 -1
  633. data/src/core/lib/transport/error_utils.cc +0 -36
  634. data/src/core/lib/transport/handshaker.cc +7 -9
  635. data/src/core/lib/transport/handshaker.h +4 -5
  636. data/src/core/lib/transport/handshaker_factory.h +2 -3
  637. data/src/core/lib/transport/handshaker_registry.cc +2 -1
  638. data/src/core/lib/transport/handshaker_registry.h +2 -4
  639. data/src/core/lib/transport/http_connect_handshaker.cc +16 -16
  640. data/src/core/lib/transport/metadata_batch.cc +5 -0
  641. data/src/core/lib/transport/metadata_batch.h +52 -7
  642. data/src/core/lib/transport/parsed_metadata.h +0 -1
  643. data/src/core/lib/transport/tcp_connect_handshaker.cc +12 -18
  644. data/src/core/lib/transport/transport.h +0 -7
  645. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +40 -21
  646. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
  647. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -7
  648. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +1 -1
  649. data/src/core/tsi/fake_transport_security.cc +53 -30
  650. data/src/core/tsi/local_transport_security.cc +9 -5
  651. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +10 -1
  652. data/src/core/tsi/ssl_transport_security.cc +47 -23
  653. data/src/core/tsi/transport_security.cc +18 -6
  654. data/src/core/tsi/transport_security.h +2 -1
  655. data/src/core/tsi/transport_security_interface.h +17 -5
  656. data/src/ruby/ext/grpc/extconf.rb +2 -0
  657. data/src/ruby/ext/grpc/rb_loader.c +6 -2
  658. data/src/ruby/lib/grpc/version.rb +1 -1
  659. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
  660. data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
  661. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
  662. data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
  663. data/third_party/upb/upb/arena.c +277 -0
  664. data/third_party/upb/upb/arena.h +225 -0
  665. data/third_party/upb/upb/array.c +114 -0
  666. data/third_party/upb/upb/array.h +83 -0
  667. data/third_party/upb/upb/collections.h +36 -0
  668. data/third_party/upb/upb/decode.c +161 -65
  669. data/third_party/upb/upb/decode.h +1 -0
  670. data/third_party/upb/upb/decode_fast.c +1 -1
  671. data/third_party/upb/upb/def.c +10 -2
  672. data/third_party/upb/upb/def.h +8 -1
  673. data/third_party/upb/upb/def.hpp +7 -4
  674. data/third_party/upb/upb/encode.c +29 -20
  675. data/third_party/upb/upb/encode.h +16 -6
  676. data/third_party/upb/upb/extension_registry.c +93 -0
  677. data/third_party/upb/upb/extension_registry.h +84 -0
  678. data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
  679. data/third_party/upb/upb/internal/table.h +385 -0
  680. data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
  681. data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
  682. data/third_party/upb/upb/json_decode.c +1512 -0
  683. data/third_party/upb/upb/json_decode.h +47 -0
  684. data/third_party/upb/upb/json_encode.c +7 -3
  685. data/third_party/upb/upb/json_encode.h +6 -3
  686. data/third_party/upb/upb/map.c +108 -0
  687. data/third_party/upb/upb/map.h +117 -0
  688. data/third_party/upb/upb/message_value.h +66 -0
  689. data/third_party/upb/upb/mini_table.c +1147 -0
  690. data/third_party/upb/upb/mini_table.h +189 -0
  691. data/third_party/upb/upb/mini_table.hpp +112 -0
  692. data/third_party/upb/upb/msg.c +2 -62
  693. data/third_party/upb/upb/msg.h +2 -45
  694. data/third_party/upb/upb/msg_internal.h +28 -22
  695. data/third_party/upb/upb/port_def.inc +2 -1
  696. data/third_party/upb/upb/port_undef.inc +1 -0
  697. data/third_party/upb/upb/reflection.c +2 -159
  698. data/third_party/upb/upb/reflection.h +2 -112
  699. data/third_party/upb/upb/status.c +86 -0
  700. data/third_party/upb/upb/status.h +66 -0
  701. data/third_party/upb/upb/table.c +2 -2
  702. data/third_party/upb/upb/table_internal.h +3 -352
  703. data/third_party/upb/upb/text_encode.c +3 -2
  704. data/third_party/upb/upb/upb.c +4 -290
  705. data/third_party/upb/upb/upb.h +7 -196
  706. metadata +90 -38
  707. data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
  708. data/src/core/lib/iomgr/error_internal.h +0 -66
  709. data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
  710. data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
  711. data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
  712. data/src/core/lib/iomgr/executor/threadpool.h +0 -150
  713. data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
  714. data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
  715. data/src/core/lib/promise/detail/switch.h +0 -1455
@@ -40,17 +40,8 @@
40
40
  /// See https://github.com/grpc/grpc/blob/master/doc/core/grpc-error.md for a
41
41
  /// full write up of this object.
42
42
 
43
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
44
-
45
43
  typedef absl::Status grpc_error_handle;
46
44
 
47
- #else // GRPC_ERROR_IS_ABSEIL_STATUS
48
-
49
- typedef struct grpc_error grpc_error;
50
- typedef grpc_error* grpc_error_handle;
51
-
52
- #endif // GRPC_ERROR_IS_ABSEIL_STATUS
53
-
54
45
  typedef enum {
55
46
  /// 'errno' from the operating system
56
47
  GRPC_ERROR_INT_ERRNO =
@@ -152,8 +143,6 @@ std::string grpc_error_std_string(grpc_error_handle error);
152
143
  void grpc_disable_error_creation();
153
144
  void grpc_enable_error_creation();
154
145
 
155
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
156
-
157
146
  #define GRPC_ERROR_NONE absl::OkStatus()
158
147
  #define GRPC_ERROR_OOM absl::Status(absl::ResourceExhaustedError(""))
159
148
  #define GRPC_ERROR_CANCELLED absl::CancelledError()
@@ -225,140 +214,6 @@ absl::Status grpc_wsa_error(const grpc_core::DebugLocation& location, int err,
225
214
  #define GRPC_WSA_ERROR(err, call_name) \
226
215
  grpc_wsa_error(DEBUG_LOCATION, err, call_name)
227
216
 
228
- #else // GRPC_ERROR_IS_ABSEIL_STATUS
229
-
230
- /// The following "special" errors can be propagated without allocating memory.
231
- /// They are always even so that other code (particularly combiner locks,
232
- /// polling engines) can safely use the lower bit for themselves.
233
-
234
- #define GRPC_ERROR_NONE ((grpc_error_handle)NULL)
235
- #define GRPC_ERROR_RESERVED_1 ((grpc_error_handle)1)
236
- #define GRPC_ERROR_OOM ((grpc_error_handle)2)
237
- #define GRPC_ERROR_RESERVED_2 ((grpc_error_handle)3)
238
- #define GRPC_ERROR_CANCELLED ((grpc_error_handle)4)
239
- #define GRPC_ERROR_SPECIAL_MAX GRPC_ERROR_CANCELLED
240
-
241
- #define GRPC_ERROR_IS_NONE(err) ((err) == GRPC_ERROR_NONE)
242
-
243
- inline bool grpc_error_is_special(grpc_error_handle err) {
244
- return err <= GRPC_ERROR_SPECIAL_MAX;
245
- }
246
-
247
- #ifndef NDEBUG
248
- grpc_error_handle grpc_error_do_ref(grpc_error_handle err, const char* file,
249
- int line);
250
- void grpc_error_do_unref(grpc_error_handle err, const char* file, int line);
251
- inline grpc_error_handle grpc_error_ref(grpc_error_handle err, const char* file,
252
- int line) {
253
- if (grpc_error_is_special(err)) return err;
254
- return grpc_error_do_ref(err, file, line);
255
- }
256
- inline void grpc_error_unref(grpc_error_handle err, const char* file,
257
- int line) {
258
- if (grpc_error_is_special(err)) return;
259
- grpc_error_do_unref(err, file, line);
260
- }
261
- #define GRPC_ERROR_REF(err) grpc_error_ref(err, __FILE__, __LINE__)
262
- #define GRPC_ERROR_UNREF(err) grpc_error_unref(err, __FILE__, __LINE__)
263
- #else
264
- grpc_error_handle grpc_error_do_ref(grpc_error_handle err);
265
- void grpc_error_do_unref(grpc_error_handle err);
266
- inline grpc_error_handle grpc_error_ref(grpc_error_handle err) {
267
- if (grpc_error_is_special(err)) return err;
268
- return grpc_error_do_ref(err);
269
- }
270
- inline void grpc_error_unref(grpc_error_handle err) {
271
- if (grpc_error_is_special(err)) return;
272
- grpc_error_do_unref(err);
273
- }
274
- #define GRPC_ERROR_REF(err) grpc_error_ref(err)
275
- #define GRPC_ERROR_UNREF(err) grpc_error_unref(err)
276
- #endif
277
-
278
- /// Create an error - but use GRPC_ERROR_CREATE instead
279
- grpc_error_handle grpc_error_create(const char* file, int line,
280
- const grpc_slice& desc,
281
- grpc_error_handle* referencing,
282
- size_t num_referencing);
283
- /// Create an error (this is the preferred way of generating an error that is
284
- /// not due to a system call - for system calls, use GRPC_OS_ERROR or
285
- /// GRPC_WSA_ERROR as appropriate)
286
- /// \a referencing is an array of num_referencing elements indicating one or
287
- /// more errors that are believed to have contributed to this one
288
- /// err = grpc_error_create(x, y, z, r, nr) is equivalent to:
289
- /// err = grpc_error_create(x, y, z, NULL, 0);
290
- /// for (i=0; i<nr; i++) err = grpc_error_add_child(err, r[i]);
291
- #define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc) \
292
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_static_string(desc), \
293
- NULL, 0)
294
- #define GRPC_ERROR_CREATE_FROM_COPIED_STRING(desc) \
295
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_copied_string(desc), \
296
- NULL, 0)
297
- #define GRPC_ERROR_CREATE_FROM_CPP_STRING(desc) \
298
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_cpp_string(desc), \
299
- NULL, 0)
300
- #define GRPC_ERROR_CREATE_FROM_STRING_VIEW(desc) \
301
- grpc_error_create( \
302
- __FILE__, __LINE__, \
303
- grpc_slice_from_copied_buffer((desc).data(), (desc).size()), NULL, 0)
304
-
305
- // Create an error that references some other errors. This function adds a
306
- // reference to each error in errs - it does not consume an existing reference
307
- #define GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(desc, errs, count) \
308
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_static_string(desc), \
309
- errs, count)
310
- #define GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(desc, errs, count) \
311
- grpc_error_create(__FILE__, __LINE__, grpc_slice_from_copied_string(desc), \
312
- errs, count)
313
-
314
- #define GRPC_ERROR_CREATE_FROM_VECTOR(desc, error_list) \
315
- grpc_error_create_from_vector( \
316
- __FILE__, __LINE__, grpc_slice_from_static_string, desc, error_list)
317
- #define GRPC_ERROR_CREATE_FROM_VECTOR_AND_CPP_STRING(desc, error_list) \
318
- grpc_error_create_from_vector(__FILE__, __LINE__, \
319
- grpc_slice_from_cpp_string, desc, error_list)
320
-
321
- // Consumes all the errors in the vector and forms a referencing error from
322
- // them. If the vector is empty, return GRPC_ERROR_NONE.
323
- template <typename VectorType, typename StringType,
324
- typename SliceFromStringFunction>
325
- static grpc_error_handle grpc_error_create_from_vector(
326
- const char* file, int line,
327
- SliceFromStringFunction slice_from_string_function, StringType desc,
328
- VectorType* error_list) {
329
- grpc_error_handle error = GRPC_ERROR_NONE;
330
- if (error_list->size() != 0) {
331
- error = grpc_error_create(file, line,
332
- slice_from_string_function(std::move(desc)),
333
- error_list->data(), error_list->size());
334
- // Remove refs to all errors in error_list.
335
- for (size_t i = 0; i < error_list->size(); i++) {
336
- GRPC_ERROR_UNREF((*error_list)[i]);
337
- }
338
- error_list->clear();
339
- }
340
- return error;
341
- }
342
-
343
- grpc_error_handle grpc_os_error(const char* file, int line, int err,
344
- const char* call_name) GRPC_MUST_USE_RESULT;
345
-
346
- inline grpc_error_handle grpc_assert_never_ok(grpc_error_handle error) {
347
- GPR_ASSERT(!GRPC_ERROR_IS_NONE(error));
348
- return error;
349
- }
350
-
351
- /// create an error associated with errno!=0 (an 'operating system' error)
352
- #define GRPC_OS_ERROR(err, call_name) \
353
- grpc_assert_never_ok(grpc_os_error(__FILE__, __LINE__, err, call_name))
354
- grpc_error_handle grpc_wsa_error(const char* file, int line, int err,
355
- const char* call_name) GRPC_MUST_USE_RESULT;
356
- /// windows only: create an error associated with WSAGetLastError()!=0
357
- #define GRPC_WSA_ERROR(err, call_name) \
358
- grpc_wsa_error(__FILE__, __LINE__, err, call_name)
359
-
360
- #endif // GRPC_ERROR_IS_ABSEIL_STATUS
361
-
362
217
  grpc_error_handle grpc_error_set_int(grpc_error_handle src,
363
218
  grpc_error_ints which,
364
219
  intptr_t value) GRPC_MUST_USE_RESULT;
@@ -48,12 +48,7 @@ grpc_error_handle grpc_error_create_from_cferror(const char* file, int line,
48
48
  absl::StrFormat("%s (error domain:%s, code:%ld, description:%s)",
49
49
  custom_desc, buf_domain, code, buf_desc);
50
50
  CFRelease(desc);
51
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
52
51
  return StatusCreate(absl::StatusCode::kUnknown, error_msg,
53
52
  grpc_core::DebugLocation(file, line), {});
54
- #else
55
- return grpc_error_create(
56
- file, line, grpc_slice_from_copied_string(error_msg.c_str()), NULL, 0);
57
- #endif
58
53
  }
59
54
  #endif /* GRPC_CFSTREAM */
@@ -18,6 +18,8 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
+ #include <grpc/support/sync.h>
22
+
21
23
  #include "src/core/lib/iomgr/port.h"
22
24
 
23
25
  #ifdef GRPC_POSIX_SOCKET_EV_POLL
@@ -360,9 +362,7 @@ static void unref_by(grpc_fd* fd, int n) {
360
362
  if (fd->shutdown) {
361
363
  GRPC_ERROR_UNREF(fd->shutdown_error);
362
364
  }
363
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
364
365
  fd->shutdown_error.~Status();
365
- #endif
366
366
  gpr_free(fd);
367
367
  } else {
368
368
  GPR_ASSERT(old > n);
@@ -377,9 +377,7 @@ static grpc_fd* fd_create(int fd, const char* name, bool track_err) {
377
377
  gpr_mu_init(&r->mu);
378
378
  gpr_atm_rel_store(&r->refst, 1);
379
379
  r->shutdown = 0;
380
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
381
380
  new (&r->shutdown_error) absl::Status();
382
- #endif
383
381
  r->read_closure = CLOSURE_NOT_READY;
384
382
  r->write_closure = CLOSURE_NOT_READY;
385
383
  r->fd = fd;
@@ -619,7 +617,6 @@ static uint32_t fd_begin_poll(grpc_fd* fd, grpc_pollset* pollset,
619
617
 
620
618
  /* if we are shutdown, then don't add to the watcher set */
621
619
  if (fd->shutdown) {
622
- watcher->fd = nullptr;
623
620
  watcher->pollset = nullptr;
624
621
  watcher->worker = nullptr;
625
622
  gpr_mu_unlock(&fd->mu);
@@ -660,12 +657,17 @@ static void fd_end_poll(grpc_fd_watcher* watcher, int got_read, int got_write) {
660
657
  int was_polling = 0;
661
658
  int kick = 0;
662
659
  grpc_fd* fd = watcher->fd;
663
-
664
660
  if (fd == nullptr) {
665
661
  return;
666
662
  }
667
663
 
668
664
  gpr_mu_lock(&fd->mu);
665
+ if (watcher->pollset == nullptr) {
666
+ watcher->fd = nullptr;
667
+ gpr_mu_unlock(&fd->mu);
668
+ GRPC_FD_UNREF(fd, "multipoller_start");
669
+ return;
670
+ }
669
671
 
670
672
  if (watcher == fd->read_watcher) {
671
673
  /* remove read watcher, kick if we still need a read */
@@ -1014,7 +1016,9 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1014
1016
  grpc_fd* fd = watchers[i].fd;
1015
1017
  pfds[i].events = static_cast<short>(
1016
1018
  fd_begin_poll(fd, pollset, &worker, POLLIN, POLLOUT, &watchers[i]));
1017
- GRPC_FD_UNREF(fd, "multipoller_start");
1019
+ if (watchers[i].pollset != nullptr) {
1020
+ GRPC_FD_UNREF(fd, "multipoller_start");
1021
+ }
1018
1022
  }
1019
1023
 
1020
1024
  /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
@@ -1034,7 +1038,7 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1034
1038
  }
1035
1039
 
1036
1040
  for (i = 1; i < pfd_count; i++) {
1037
- if (watchers[i].fd == nullptr) {
1041
+ if (watchers[i].pollset == nullptr) {
1038
1042
  fd_end_poll(&watchers[i], 0, 0);
1039
1043
  } else {
1040
1044
  // Wake up all the file descriptors, if we have an invalid one
@@ -1055,7 +1059,11 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
1055
1059
  &error, grpc_wakeup_fd_consume_wakeup(&worker.wakeup_fd->fd));
1056
1060
  }
1057
1061
  for (i = 1; i < pfd_count; i++) {
1058
- if (watchers[i].fd == nullptr) {
1062
+ if (watchers[i].pollset == nullptr) {
1063
+ grpc_fd* fd = watchers[i].fd;
1064
+ if (pfds[i].revents & POLLHUP) {
1065
+ gpr_atm_no_barrier_store(&fd->pollhup, 1);
1066
+ }
1059
1067
  fd_end_poll(&watchers[i], 0, 0);
1060
1068
  } else {
1061
1069
  if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
@@ -37,18 +37,10 @@ static void exec_ctx_run(grpc_closure* closure) {
37
37
  closure->line_initiated);
38
38
  }
39
39
  #endif
40
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
41
40
  grpc_error_handle error =
42
41
  grpc_core::internal::StatusMoveFromHeapPtr(closure->error_data.error);
43
42
  closure->error_data.error = 0;
44
43
  closure->cb(closure->cb_arg, std::move(error));
45
- #else
46
- grpc_error_handle error =
47
- reinterpret_cast<grpc_error_handle>(closure->error_data.error);
48
- closure->error_data.error = 0;
49
- closure->cb(closure->cb_arg, error);
50
- GRPC_ERROR_UNREF(error);
51
- #endif
52
44
  #ifndef NDEBUG
53
45
  if (grpc_trace_closure.enabled()) {
54
46
  gpr_log(GPR_DEBUG, "closure %p finished", closure);
@@ -118,11 +110,7 @@ void ExecCtx::Run(const DebugLocation& location, grpc_closure* closure,
118
110
  closure->run = false;
119
111
  GPR_ASSERT(closure->cb != nullptr);
120
112
  #endif
121
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
122
113
  closure->error_data.error = internal::StatusAllocHeapPtr(error);
123
- #else
124
- closure->error_data.error = reinterpret_cast<intptr_t>(error);
125
- #endif
126
114
  exec_ctx_sched(closure);
127
115
  }
128
116
 
@@ -121,18 +121,10 @@ size_t Executor::RunClosures(const char* executor_name,
121
121
  #else
122
122
  EXECUTOR_TRACE("(%s) run %p", executor_name, c);
123
123
  #endif
124
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
125
124
  grpc_error_handle error =
126
125
  internal::StatusMoveFromHeapPtr(c->error_data.error);
127
126
  c->error_data.error = 0;
128
127
  c->cb(c->cb_arg, std::move(error));
129
- #else
130
- grpc_error_handle error =
131
- reinterpret_cast<grpc_error_handle>(c->error_data.error);
132
- c->error_data.error = 0;
133
- c->cb(c->cb_arg, error);
134
- GRPC_ERROR_UNREF(error);
135
- #endif
136
128
  c = next;
137
129
  n++;
138
130
  ExecCtx::Get()->Flush();
@@ -456,6 +448,4 @@ void Executor::SetThreadingDefault(bool enable) {
456
448
  executors[static_cast<size_t>(ExecutorType::DEFAULT)]->SetThreading(enable);
457
449
  }
458
450
 
459
- void grpc_executor_global_init() {}
460
-
461
451
  } // namespace grpc_core
@@ -114,9 +114,6 @@ class Executor {
114
114
  gpr_spinlock adding_thread_lock_;
115
115
  };
116
116
 
117
- // Global initializer for executor
118
- void grpc_executor_global_init();
119
-
120
117
  } // namespace grpc_core
121
118
 
122
119
  #endif /* GRPC_CORE_LIB_IOMGR_EXECUTOR_H */
@@ -77,11 +77,7 @@ void LockfreeEvent::DestroyEvent() {
77
77
  do {
78
78
  curr = gpr_atm_no_barrier_load(&state_);
79
79
  if (curr & kShutdownBit) {
80
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
81
80
  internal::StatusFreeHeapPtr(curr & ~kShutdownBit);
82
- #else
83
- GRPC_ERROR_UNREF((grpc_error_handle)(curr & ~kShutdownBit));
84
- #endif
85
81
  } else {
86
82
  GPR_ASSERT(curr == kClosureNotReady || curr == kClosureReady);
87
83
  }
@@ -143,13 +139,8 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
143
139
  contains a pointer to the shutdown-error). If the fd is shutdown,
144
140
  schedule the closure with the shutdown error */
145
141
  if ((curr & kShutdownBit) > 0) {
146
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
147
142
  grpc_error_handle shutdown_err =
148
143
  internal::StatusGetFromHeapPtr(curr & ~kShutdownBit);
149
- #else
150
- grpc_error_handle shutdown_err =
151
- reinterpret_cast<grpc_error_handle>(curr & ~kShutdownBit);
152
- #endif
153
144
  ExecCtx::Run(DEBUG_LOCATION, closure,
154
145
  GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
155
146
  "FD Shutdown", &shutdown_err, 1));
@@ -169,12 +160,8 @@ void LockfreeEvent::NotifyOn(grpc_closure* closure) {
169
160
  }
170
161
 
171
162
  bool LockfreeEvent::SetShutdown(grpc_error_handle shutdown_error) {
172
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
173
163
  intptr_t status_ptr = internal::StatusAllocHeapPtr(shutdown_error);
174
164
  gpr_atm new_state = status_ptr | kShutdownBit;
175
- #else
176
- gpr_atm new_state = reinterpret_cast<gpr_atm>(shutdown_error) | kShutdownBit;
177
- #endif
178
165
 
179
166
  while (true) {
180
167
  gpr_atm curr = gpr_atm_no_barrier_load(&state_);
@@ -198,11 +185,7 @@ bool LockfreeEvent::SetShutdown(grpc_error_handle shutdown_error) {
198
185
 
199
186
  /* If fd is already shutdown, we are done */
200
187
  if ((curr & kShutdownBit) > 0) {
201
- #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
202
188
  internal::StatusFreeHeapPtr(status_ptr);
203
- #else
204
- GRPC_ERROR_UNREF(shutdown_error);
205
- #endif
206
189
  return false;
207
190
  }
208
191
 
@@ -20,6 +20,9 @@
20
20
 
21
21
  #include <grpc/support/port_platform.h>
22
22
 
23
+ // IWYU pragma: no_include <features.h>
24
+ // IWYU pragma: no_include <linux/version.h>
25
+
23
26
  /* This needs to be separate from the other conditions because it needs to
24
27
  * apply to custom sockets too */
25
28
  #ifdef GPR_WINDOWS
@@ -37,6 +37,7 @@
37
37
  namespace grpc_core {
38
38
  extern const char* kDefaultSecurePort;
39
39
  constexpr int kDefaultSecurePortInt = 443;
40
+ constexpr Duration kDefaultDNSRequestTimeout = Duration::Minutes(2);
40
41
 
41
42
  // A singleton class used for async and blocking DNS resolution
42
43
  class DNSResolver {
@@ -60,17 +61,39 @@ class DNSResolver {
60
61
  // address this.
61
62
  //
62
63
  // \a interested_parties may be deleted after a request is cancelled.
63
- virtual TaskHandle ResolveName(
64
- absl::string_view name, absl::string_view default_port,
65
- grpc_pollset_set* interested_parties,
64
+ virtual TaskHandle LookupHostname(
66
65
  std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
67
- on_done) = 0;
66
+ on_resolved,
67
+ absl::string_view name, absl::string_view default_port, Duration timeout,
68
+ grpc_pollset_set* interested_parties, absl::string_view name_server) = 0;
68
69
 
69
70
  // Resolve name in a blocking fashion. Use \a default_port if a port isn't
70
71
  // designated in \a name, otherwise use the port in \a name.
71
72
  virtual absl::StatusOr<std::vector<grpc_resolved_address>>
72
- ResolveNameBlocking(absl::string_view name,
73
- absl::string_view default_port) = 0;
73
+ LookupHostnameBlocking(absl::string_view name,
74
+ absl::string_view default_port) = 0;
75
+
76
+ // Asynchronously resolve an SRV Record to Hostnames.
77
+ // On completion, \a on_done is invoked with the result.
78
+ //
79
+ // The same caveats in \a LookupHostname apply here as well.
80
+ //
81
+ // TODO(hork): return std::vector<SRVRecord> and ask the client to do the
82
+ // subsequent hostname lookups.
83
+ virtual TaskHandle LookupSRV(
84
+ std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
85
+ on_resolved,
86
+ absl::string_view name, Duration timeout,
87
+ grpc_pollset_set* interested_parties, absl::string_view name_server) = 0;
88
+
89
+ // Asynchronously resolve a TXT Record. On completion, \a on_done is invoked
90
+ // with the resulting string.
91
+ //
92
+ // The same caveats in \a LookupHostname apply here.
93
+ virtual TaskHandle LookupTXT(
94
+ std::function<void(absl::StatusOr<std::string>)> on_resolved,
95
+ absl::string_view name, Duration timeout,
96
+ grpc_pollset_set* interested_parties, absl::string_view name_server) = 0;
74
97
 
75
98
  // This shares the same semantics with \a EventEngine::Cancel: successfully
76
99
  // cancelled lookups will not have their callbacks executed, and this
@@ -29,6 +29,7 @@
29
29
  #include <grpc/support/string_util.h>
30
30
  #include <grpc/support/time.h>
31
31
 
32
+ #include "src/core/lib/event_engine/default_event_engine.h"
32
33
  #include "src/core/lib/gpr/string.h"
33
34
  #include "src/core/lib/gpr/useful.h"
34
35
  #include "src/core/lib/gprpp/host_port.h"
@@ -45,6 +46,8 @@
45
46
  namespace grpc_core {
46
47
  namespace {
47
48
 
49
+ using ::grpc_event_engine::experimental::GetDefaultEventEngine;
50
+
48
51
  class NativeDNSRequest {
49
52
  public:
50
53
  NativeDNSRequest(
@@ -58,11 +61,11 @@ class NativeDNSRequest {
58
61
 
59
62
  private:
60
63
  // Callback to be passed to grpc Executor to asynch-ify
61
- // ResolveNameBlocking
64
+ // LookupHostnameBlocking
62
65
  static void DoRequestThread(void* rp, grpc_error_handle /*error*/) {
63
66
  NativeDNSRequest* r = static_cast<NativeDNSRequest*>(rp);
64
67
  auto result =
65
- GetDNSResolver()->ResolveNameBlocking(r->name_, r->default_port_);
68
+ GetDNSResolver()->LookupHostnameBlocking(r->name_, r->default_port_);
66
69
  // running inline is safe since we've already been scheduled on the executor
67
70
  r->on_done_(std::move(result));
68
71
  delete r;
@@ -82,19 +85,20 @@ NativeDNSResolver* NativeDNSResolver::GetOrCreate() {
82
85
  return instance;
83
86
  }
84
87
 
85
- DNSResolver::TaskHandle NativeDNSResolver::ResolveName(
86
- absl::string_view name, absl::string_view default_port,
87
- grpc_pollset_set* /* interested_parties */,
88
+ DNSResolver::TaskHandle NativeDNSResolver::LookupHostname(
88
89
  std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
89
- on_done) {
90
+ on_done,
91
+ absl::string_view name, absl::string_view default_port,
92
+ Duration /* timeout */, grpc_pollset_set* /* interested_parties */,
93
+ absl::string_view /* name_server */) {
90
94
  // self-deleting class
91
95
  new NativeDNSRequest(name, default_port, std::move(on_done));
92
96
  return kNullHandle;
93
97
  }
94
98
 
95
99
  absl::StatusOr<std::vector<grpc_resolved_address>>
96
- NativeDNSResolver::ResolveNameBlocking(absl::string_view name,
97
- absl::string_view default_port) {
100
+ NativeDNSResolver::LookupHostnameBlocking(absl::string_view name,
101
+ absl::string_view default_port) {
98
102
  ExecCtx exec_ctx;
99
103
  struct addrinfo hints;
100
104
  struct addrinfo *result = nullptr, *resp;
@@ -173,6 +177,32 @@ done:
173
177
  return error_result;
174
178
  }
175
179
 
180
+ DNSResolver::TaskHandle NativeDNSResolver::LookupSRV(
181
+ std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
182
+ on_resolved,
183
+ absl::string_view /* name */, Duration /* timeout */,
184
+ grpc_pollset_set* /* interested_parties */,
185
+ absl::string_view /* name_server */) {
186
+ GetDefaultEventEngine()->Run([on_resolved] {
187
+ on_resolved(absl::UnimplementedError(
188
+ "The Native resolver does not support looking up SRV records"));
189
+ });
190
+ return {-1, -1};
191
+ };
192
+
193
+ DNSResolver::TaskHandle NativeDNSResolver::LookupTXT(
194
+ std::function<void(absl::StatusOr<std::string>)> on_resolved,
195
+ absl::string_view /* name */, Duration /* timeout */,
196
+ grpc_pollset_set* /* interested_parties */,
197
+ absl::string_view /* name_server */) {
198
+ // Not supported
199
+ GetDefaultEventEngine()->Run([on_resolved] {
200
+ on_resolved(absl::UnimplementedError(
201
+ "The Native resolver does not support looking up TXT records"));
202
+ });
203
+ return {-1, -1};
204
+ };
205
+
176
206
  bool NativeDNSResolver::Cancel(TaskHandle /*handle*/) { return false; }
177
207
 
178
208
  } // namespace grpc_core
@@ -32,15 +32,29 @@ class NativeDNSResolver : public DNSResolver {
32
32
  // Gets the singleton instance, creating it first if it doesn't exist
33
33
  static NativeDNSResolver* GetOrCreate();
34
34
 
35
- TaskHandle ResolveName(
36
- absl::string_view name, absl::string_view default_port,
37
- grpc_pollset_set* /* interested_parties */,
35
+ TaskHandle LookupHostname(
38
36
  std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
39
- on_done) override;
37
+ on_done,
38
+ absl::string_view name, absl::string_view default_port, Duration timeout,
39
+ grpc_pollset_set* interested_parties,
40
+ absl::string_view name_server) override;
40
41
 
41
- absl::StatusOr<std::vector<grpc_resolved_address>> ResolveNameBlocking(
42
+ absl::StatusOr<std::vector<grpc_resolved_address>> LookupHostnameBlocking(
42
43
  absl::string_view name, absl::string_view default_port) override;
43
44
 
45
+ TaskHandle LookupSRV(
46
+ std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
47
+ on_resolved,
48
+ absl::string_view name, Duration timeout,
49
+ grpc_pollset_set* interested_parties,
50
+ absl::string_view name_server) override;
51
+
52
+ TaskHandle LookupTXT(
53
+ std::function<void(absl::StatusOr<std::string>)> on_resolved,
54
+ absl::string_view name, Duration timeout,
55
+ grpc_pollset_set* interested_parties,
56
+ absl::string_view name_server) override;
57
+
44
58
  // NativeDNSResolver does not support cancellation.
45
59
  bool Cancel(TaskHandle handle) override;
46
60
  };
@@ -34,6 +34,7 @@
34
34
  #include <grpc/support/time.h>
35
35
 
36
36
  #include "src/core/lib/address_utils/sockaddr_utils.h"
37
+ #include "src/core/lib/event_engine/default_event_engine.h"
37
38
  #include "src/core/lib/gpr/string.h"
38
39
  #include "src/core/lib/gprpp/host_port.h"
39
40
  #include "src/core/lib/gprpp/thd.h"
@@ -48,6 +49,8 @@
48
49
  namespace grpc_core {
49
50
  namespace {
50
51
 
52
+ using ::grpc_event_engine::experimental::GetDefaultEventEngine;
53
+
51
54
  class NativeDNSRequest {
52
55
  public:
53
56
  NativeDNSRequest(
@@ -61,11 +64,11 @@ class NativeDNSRequest {
61
64
 
62
65
  private:
63
66
  // Callback to be passed to grpc Executor to asynch-ify
64
- // ResolveNameBlocking
67
+ // LookupHostnameBlocking
65
68
  static void DoRequestThread(void* rp, grpc_error_handle /*error*/) {
66
69
  NativeDNSRequest* r = static_cast<NativeDNSRequest*>(rp);
67
70
  auto result =
68
- GetDNSResolver()->ResolveNameBlocking(r->name_, r->default_port_);
71
+ GetDNSResolver()->LookupHostnameBlocking(r->name_, r->default_port_);
69
72
  // running inline is safe since we've already been scheduled on the executor
70
73
  r->on_done_(std::move(result));
71
74
  delete r;
@@ -85,18 +88,19 @@ NativeDNSResolver* NativeDNSResolver::GetOrCreate() {
85
88
  return instance;
86
89
  }
87
90
 
88
- DNSResolver::TaskHandle NativeDNSResolver::ResolveName(
89
- absl::string_view name, absl::string_view default_port,
90
- grpc_pollset_set* /* interested_parties */,
91
+ DNSResolver::TaskHandle NativeDNSResolver::LookupHostname(
91
92
  std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
92
- on_done) {
93
- new NativeDNSRequest(name, default_port, std::move(on_done));
93
+ on_resolved,
94
+ absl::string_view name, absl::string_view default_port,
95
+ Duration /* timeout */, grpc_pollset_set* /* interested_parties */,
96
+ absl::string_view /* name_server */) {
97
+ new NativeDNSRequest(name, default_port, std::move(on_resolved));
94
98
  return kNullHandle;
95
99
  }
96
100
 
97
101
  absl::StatusOr<std::vector<grpc_resolved_address>>
98
- NativeDNSResolver::ResolveNameBlocking(absl::string_view name,
99
- absl::string_view default_port) {
102
+ NativeDNSResolver::LookupHostnameBlocking(absl::string_view name,
103
+ absl::string_view default_port) {
100
104
  ExecCtx exec_ctx;
101
105
  struct addrinfo hints;
102
106
  struct addrinfo *result = NULL, *resp;
@@ -115,7 +119,7 @@ NativeDNSResolver::ResolveNameBlocking(absl::string_view name,
115
119
  goto done;
116
120
  }
117
121
  if (port.empty()) {
118
- if (default_port == NULL) {
122
+ if (default_port.empty()) {
119
123
  error = GRPC_ERROR_CREATE_FROM_CPP_STRING(
120
124
  absl::StrFormat("no port in name '%s'", name));
121
125
  goto done;
@@ -157,6 +161,32 @@ done:
157
161
  return error_result;
158
162
  }
159
163
 
164
+ DNSResolver::TaskHandle NativeDNSResolver::LookupSRV(
165
+ std::function<void(absl::StatusOr<std::vector<grpc_resolved_address>>)>
166
+ on_resolved,
167
+ absl::string_view /* name */, Duration /* deadline */,
168
+ grpc_pollset_set* /* interested_parties */,
169
+ absl::string_view /* name_server */) {
170
+ GetDefaultEventEngine()->Run([on_resolved] {
171
+ on_resolved(absl::UnimplementedError(
172
+ "The Native resolver does not support looking up SRV records"));
173
+ });
174
+ return {-1, -1};
175
+ };
176
+
177
+ DNSResolver::TaskHandle NativeDNSResolver::LookupTXT(
178
+ std::function<void(absl::StatusOr<std::string>)> on_resolved,
179
+ absl::string_view /* name */, Duration /* timeout */,
180
+ grpc_pollset_set* /* interested_parties */,
181
+ absl::string_view /* name_server */) {
182
+ // Not supported
183
+ GetDefaultEventEngine()->Run([on_resolved] {
184
+ on_resolved(absl::UnimplementedError(
185
+ "The Native resolver does not support looking up TXT records"));
186
+ });
187
+ return {-1, -1};
188
+ };
189
+
160
190
  bool NativeDNSResolver::Cancel(TaskHandle /*handle*/) { return false; }
161
191
 
162
192
  } // namespace grpc_core