grpc 1.42.0 → 1.43.1

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 (739) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +85 -34
  3. data/include/grpc/event_engine/event_engine.h +37 -13
  4. data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -31
  5. data/include/grpc/event_engine/memory_allocator.h +27 -11
  6. data/include/grpc/event_engine/memory_request.h +57 -0
  7. data/include/grpc/grpc_security.h +276 -145
  8. data/include/grpc/grpc_security_constants.h +1 -14
  9. data/include/grpc/impl/codegen/port_platform.h +7 -3
  10. data/src/core/ext/filters/client_channel/backend_metric.cc +6 -7
  11. data/src/core/ext/filters/client_channel/backend_metric.h +3 -2
  12. data/src/core/ext/filters/client_channel/client_channel.cc +81 -40
  13. data/src/core/ext/filters/client_channel/client_channel.h +5 -4
  14. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -2
  15. data/src/core/ext/filters/client_channel/dynamic_filters.cc +4 -4
  16. data/src/core/ext/filters/client_channel/health/health_check_client.h +1 -1
  17. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +12 -14
  18. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1 -2
  19. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -2
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
  21. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -3
  22. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +27 -80
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +82 -34
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +47 -91
  25. data/src/core/ext/filters/client_channel/lb_policy.h +75 -59
  26. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +3 -3
  27. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -2
  28. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +8 -12
  29. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +3 -3
  30. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +6 -12
  31. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +222 -294
  32. data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -7
  33. data/src/core/ext/filters/client_channel/resolver_registry.h +1 -2
  34. data/src/core/ext/filters/client_channel/subchannel.cc +4 -4
  35. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
  36. data/src/core/ext/filters/http/client/http_client_filter.cc +14 -30
  37. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -5
  38. data/src/core/ext/filters/http/server/http_server_filter.cc +11 -28
  39. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
  40. data/src/core/ext/filters/server_config_selector/server_config_selector.h +70 -0
  41. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +265 -0
  42. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +32 -0
  43. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -20
  44. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -2
  45. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +8 -5
  46. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +11 -14
  47. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -3
  48. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +54 -79
  49. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -3
  50. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +9 -13
  51. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +6 -6
  52. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +53 -62
  53. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -2
  54. data/src/core/ext/transport/chttp2/transport/context_list.cc +2 -3
  55. data/src/core/ext/transport/chttp2/transport/context_list.h +2 -3
  56. data/src/core/ext/transport/chttp2/transport/flow_control.cc +8 -8
  57. data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -2
  58. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +83 -19
  59. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +33 -1
  60. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +66 -92
  61. data/src/core/ext/transport/chttp2/transport/internal.h +8 -4
  62. data/src/core/ext/transport/inproc/inproc_transport.cc +16 -7
  63. data/src/core/ext/transport/inproc/inproc_transport.h +1 -1
  64. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +197 -165
  65. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +2 -0
  66. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +41 -0
  67. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +18 -0
  68. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +26 -2
  69. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  70. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +107 -82
  71. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +2 -0
  72. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +188 -160
  73. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +2 -0
  74. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +35 -22
  75. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +2 -0
  76. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +253 -218
  77. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2 -0
  78. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +16 -5
  79. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +2 -0
  80. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +36 -25
  81. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +2 -0
  82. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +56 -39
  83. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +2 -0
  84. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +16 -5
  85. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +2 -0
  86. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +162 -128
  87. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +2 -0
  88. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +51 -36
  89. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +2 -0
  90. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +15 -4
  91. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +2 -0
  92. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +25 -13
  93. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +2 -0
  94. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +114 -90
  95. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +2 -0
  96. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +89 -71
  97. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +2 -0
  98. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +17 -6
  99. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +2 -0
  100. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +117 -93
  101. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +2 -0
  102. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +13 -2
  103. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +2 -0
  104. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +21 -9
  105. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +2 -0
  106. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +18 -7
  107. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +2 -0
  108. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +22 -11
  109. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +2 -0
  110. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +17 -6
  111. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +2 -0
  112. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +41 -27
  113. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +2 -0
  114. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +59 -43
  115. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +2 -0
  116. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +58 -43
  117. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +2 -0
  118. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +15 -4
  119. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +2 -0
  120. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +73 -57
  121. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +2 -0
  122. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +81 -64
  123. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +2 -0
  124. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +25 -14
  125. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +2 -0
  126. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +19 -7
  127. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +2 -0
  128. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +63 -45
  129. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +2 -0
  130. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +66 -47
  131. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +2 -0
  132. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +93 -75
  133. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +2 -0
  134. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +41 -28
  135. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +2 -0
  136. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +503 -440
  137. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2 -0
  138. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +26 -13
  139. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +2 -0
  140. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +21 -9
  141. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +2 -0
  142. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +13 -2
  143. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +2 -0
  144. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +35 -20
  145. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +2 -0
  146. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +44 -31
  147. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +2 -0
  148. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +22 -11
  149. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +2 -0
  150. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +210 -181
  151. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2 -0
  152. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -0
  153. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -3
  154. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +64 -48
  155. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +2 -0
  156. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +33 -20
  157. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +2 -0
  158. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +81 -65
  159. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +2 -0
  160. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +12 -1
  161. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +2 -0
  162. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +12 -1
  163. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +2 -0
  164. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +75 -58
  165. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +2 -0
  166. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +12 -1
  167. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +2 -0
  168. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +12 -1
  169. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +2 -0
  170. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +25 -13
  171. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +2 -0
  172. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +12 -1
  173. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +2 -0
  174. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +12 -1
  175. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +2 -0
  176. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +61 -46
  177. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +2 -0
  178. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +26 -12
  179. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +2 -0
  180. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +22 -10
  181. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +2 -0
  182. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +17 -6
  183. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +2 -0
  184. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +16 -5
  185. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +2 -0
  186. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +15 -4
  187. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +2 -0
  188. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +27 -14
  189. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +2 -0
  190. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +25 -13
  191. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +2 -0
  192. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +20 -8
  193. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +2 -0
  194. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +30 -17
  195. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +2 -0
  196. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +38 -21
  197. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +2 -0
  198. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +41 -26
  199. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +2 -0
  200. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -0
  201. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -0
  202. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +17 -5
  203. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +2 -0
  204. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +22 -9
  205. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +2 -0
  206. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +15 -4
  207. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +2 -0
  208. data/src/core/ext/upb-generated/google/api/annotations.upb.c +20 -0
  209. data/src/core/ext/upb-generated/google/api/annotations.upb.h +7 -0
  210. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +116 -93
  211. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +2 -0
  212. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +102 -0
  213. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +306 -0
  214. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +56 -0
  215. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +135 -0
  216. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +122 -98
  217. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +2 -0
  218. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +115 -0
  219. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +371 -0
  220. data/src/core/ext/upb-generated/google/api/http.upb.c +35 -22
  221. data/src/core/ext/upb-generated/google/api/http.upb.h +2 -0
  222. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +14 -3
  223. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +2 -0
  224. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +247 -210
  225. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2 -0
  226. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +14 -3
  227. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +2 -0
  228. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +12 -1
  229. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +2 -0
  230. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +37 -23
  231. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +2 -0
  232. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +14 -3
  233. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +2 -0
  234. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +37 -18
  235. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +2 -0
  236. data/src/core/ext/upb-generated/google/rpc/status.upb.c +17 -6
  237. data/src/core/ext/upb-generated/google/rpc/status.upb.h +2 -0
  238. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +26 -14
  239. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +2 -0
  240. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +105 -83
  241. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +2 -0
  242. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +20 -8
  243. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +2 -0
  244. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +16 -4
  245. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +2 -0
  246. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +65 -47
  247. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +34 -36
  248. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +26 -13
  249. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +2 -0
  250. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +67 -7
  251. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +27 -0
  252. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +27 -3
  253. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
  254. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +19 -0
  255. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +7 -0
  256. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +27 -3
  257. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -0
  258. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +26 -2
  259. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
  260. data/src/core/ext/upb-generated/validate/validate.upb.c +320 -251
  261. data/src/core/ext/upb-generated/validate/validate.upb.h +20 -0
  262. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +54 -9
  263. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +17 -0
  264. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +13 -2
  265. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +2 -0
  266. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +24 -12
  267. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +2 -0
  268. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +19 -7
  269. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +2 -0
  270. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +18 -7
  271. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +2 -0
  272. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +27 -15
  273. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +2 -0
  274. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +18 -7
  275. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +2 -0
  276. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +28 -15
  277. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +2 -0
  278. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +16 -5
  279. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +2 -0
  280. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +2 -49
  281. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +2 -2
  282. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +2 -7
  283. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +2 -35
  284. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +2 -41
  285. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -11
  286. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +2 -55
  287. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +2 -7
  288. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +2 -7
  289. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +2 -19
  290. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +2 -7
  291. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +2 -53
  292. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +2 -15
  293. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +2 -7
  294. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +2 -9
  295. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +2 -33
  296. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +2 -21
  297. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +2 -7
  298. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +2 -33
  299. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -7
  300. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +2 -9
  301. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +2 -7
  302. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -7
  303. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -7
  304. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -13
  305. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +2 -17
  306. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +2 -15
  307. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +2 -7
  308. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +2 -17
  309. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +2 -19
  310. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +2 -7
  311. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -9
  312. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +2 -21
  313. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +2 -23
  314. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +2 -11
  315. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +2 -111
  316. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +2 -11
  317. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -9
  318. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -7
  319. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -15
  320. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -11
  321. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -7
  322. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +2 -43
  323. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -2
  324. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +2 -17
  325. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -11
  326. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +2 -17
  327. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +2 -7
  328. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +2 -7
  329. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +2 -19
  330. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +2 -7
  331. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +2 -7
  332. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -9
  333. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +2 -7
  334. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +2 -7
  335. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +2 -15
  336. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +2 -13
  337. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +2 -9
  338. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +2 -7
  339. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +2 -7
  340. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +2 -7
  341. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +2 -11
  342. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +2 -9
  343. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +2 -9
  344. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +2 -11
  345. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +2 -19
  346. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -15
  347. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +2 -2
  348. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +2 -9
  349. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +2 -11
  350. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +2 -7
  351. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +2 -2
  352. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +2 -11
  353. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +2 -7
  354. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +2 -59
  355. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +2 -7
  356. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +2 -7
  357. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +2 -13
  358. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +2 -7
  359. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +2 -23
  360. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +2 -7
  361. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +2 -11
  362. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +2 -7
  363. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +2 -2
  364. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +2 -7
  365. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +2 -7
  366. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +2 -51
  367. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +2 -13
  368. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +2 -7
  369. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +2 -9
  370. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +2 -9
  371. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +2 -7
  372. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +2 -9
  373. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +2 -7
  374. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +2 -7
  375. data/src/core/ext/xds/certificate_provider_registry.cc +1 -1
  376. data/src/core/ext/xds/certificate_provider_store.h +1 -1
  377. data/src/core/ext/xds/xds_api.cc +409 -304
  378. data/src/core/ext/xds/xds_api.h +3 -1
  379. data/src/core/ext/xds/xds_bootstrap.cc +6 -3
  380. data/src/core/ext/xds/xds_certificate_provider.h +1 -2
  381. data/src/core/ext/xds/xds_channel_stack_modifier.cc +3 -4
  382. data/src/core/ext/xds/xds_client.cc +395 -291
  383. data/src/core/ext/xds/xds_client.h +47 -38
  384. data/src/core/ext/xds/xds_routing.cc +247 -0
  385. data/src/core/ext/xds/xds_routing.h +98 -0
  386. data/src/core/ext/xds/xds_server_config_fetcher.cc +975 -261
  387. data/src/core/lib/avl/avl.h +389 -88
  388. data/src/core/lib/backoff/backoff.cc +2 -2
  389. data/src/core/lib/channel/channel_args.cc +17 -17
  390. data/src/core/lib/channel/channel_args.h +11 -10
  391. data/src/core/lib/channel/channel_args_preconditioning.cc +47 -0
  392. data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
  393. data/src/core/lib/channel/channel_stack_builder.cc +0 -2
  394. data/src/core/lib/channel/channel_trace.cc +6 -6
  395. data/src/core/lib/channel/channelz.cc +1 -1
  396. data/src/core/lib/compression/compression_args.cc +7 -5
  397. data/src/core/lib/compression/compression_args.h +6 -4
  398. data/src/core/lib/config/core_configuration.cc +3 -1
  399. data/src/core/lib/config/core_configuration.h +11 -0
  400. data/src/core/lib/debug/trace.h +2 -2
  401. data/src/core/lib/event_engine/{endpoint_config.cc → channel_args_endpoint_config.cc} +2 -1
  402. data/src/core/lib/event_engine/{endpoint_config_internal.h → channel_args_endpoint_config.h} +3 -3
  403. data/src/core/lib/event_engine/event_engine.cc +0 -13
  404. data/src/core/lib/event_engine/event_engine_factory.cc +49 -0
  405. data/src/core/lib/event_engine/event_engine_factory.h +33 -0
  406. data/src/core/lib/event_engine/memory_allocator.cc +70 -0
  407. data/src/core/lib/gpr/tls.h +6 -0
  408. data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
  409. data/src/core/lib/gprpp/global_config_env.cc +7 -7
  410. data/src/core/lib/gprpp/global_config_env.h +2 -2
  411. data/src/core/lib/gprpp/manual_constructor.h +2 -3
  412. data/src/core/lib/gprpp/orphanable.h +1 -1
  413. data/src/core/lib/gprpp/ref_counted.h +1 -1
  414. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
  415. data/src/core/lib/gprpp/status_helper.h +1 -1
  416. data/src/core/lib/gprpp/table.h +13 -1
  417. data/src/core/lib/http/httpcli.cc +30 -26
  418. data/src/core/lib/http/httpcli.h +14 -12
  419. data/src/core/lib/iomgr/buffer_list.cc +9 -9
  420. data/src/core/lib/iomgr/buffer_list.h +13 -13
  421. data/src/core/lib/iomgr/call_combiner.cc +2 -3
  422. data/src/core/lib/iomgr/endpoint.h +0 -1
  423. data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -24
  424. data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
  425. data/src/core/lib/iomgr/endpoint_pair_posix.cc +9 -11
  426. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -14
  427. data/src/core/lib/iomgr/event_engine/endpoint.cc +2 -3
  428. data/src/core/lib/iomgr/event_engine/iomgr.cc +5 -25
  429. data/src/core/lib/iomgr/event_engine/resolver.cc +3 -2
  430. data/src/core/lib/iomgr/event_engine/tcp.cc +7 -5
  431. data/src/core/lib/iomgr/event_engine/timer.cc +4 -3
  432. data/src/core/lib/iomgr/exec_ctx.h +11 -11
  433. data/src/core/lib/iomgr/executor.cc +12 -15
  434. data/src/core/lib/iomgr/executor.h +1 -1
  435. data/src/core/lib/iomgr/tcp_client.cc +2 -4
  436. data/src/core/lib/iomgr/tcp_client.h +1 -3
  437. data/src/core/lib/iomgr/tcp_client_cfstream.cc +1 -9
  438. data/src/core/lib/iomgr/tcp_client_custom.cc +4 -10
  439. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -23
  440. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  441. data/src/core/lib/iomgr/tcp_client_windows.cc +1 -10
  442. data/src/core/lib/iomgr/tcp_custom.cc +9 -36
  443. data/src/core/lib/iomgr/tcp_custom.h +0 -1
  444. data/src/core/lib/iomgr/tcp_posix.cc +28 -33
  445. data/src/core/lib/iomgr/tcp_posix.h +1 -3
  446. data/src/core/lib/iomgr/tcp_server.cc +4 -6
  447. data/src/core/lib/iomgr/tcp_server.h +6 -8
  448. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -15
  449. data/src/core/lib/iomgr/tcp_server_posix.cc +18 -22
  450. data/src/core/lib/iomgr/tcp_server_utils_posix.h +19 -18
  451. data/src/core/lib/iomgr/tcp_server_windows.cc +5 -12
  452. data/src/core/lib/iomgr/tcp_windows.cc +2 -7
  453. data/src/core/lib/iomgr/tcp_windows.h +1 -2
  454. data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
  455. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -1
  456. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +1 -1
  457. data/src/core/lib/iomgr/work_serializer.cc +115 -44
  458. data/src/core/lib/iomgr/work_serializer.h +16 -4
  459. data/src/core/lib/json/json_reader.cc +83 -35
  460. data/src/core/lib/json/json_util.cc +1 -1
  461. data/src/core/lib/promise/activity.cc +115 -0
  462. data/src/core/lib/promise/activity.h +499 -0
  463. data/src/core/lib/promise/context.h +86 -0
  464. data/src/core/lib/promise/detail/basic_seq.h +407 -0
  465. data/src/core/lib/promise/detail/promise_factory.h +189 -0
  466. data/src/core/lib/promise/detail/promise_like.h +85 -0
  467. data/src/core/lib/promise/detail/status.h +44 -0
  468. data/src/core/lib/promise/detail/switch.h +1455 -0
  469. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
  470. data/src/core/lib/promise/loop.h +108 -0
  471. data/src/core/lib/promise/map.h +88 -0
  472. data/src/core/lib/promise/poll.h +60 -0
  473. data/src/core/lib/promise/race.h +84 -0
  474. data/src/core/lib/promise/seq.h +71 -0
  475. data/src/core/lib/resource_quota/api.cc +108 -0
  476. data/src/core/lib/resource_quota/api.h +41 -0
  477. data/src/core/lib/resource_quota/memory_quota.cc +454 -0
  478. data/src/core/lib/resource_quota/memory_quota.h +421 -0
  479. data/src/core/lib/resource_quota/resource_quota.cc +33 -0
  480. data/src/core/lib/resource_quota/resource_quota.h +58 -0
  481. data/src/core/lib/resource_quota/thread_quota.cc +43 -0
  482. data/src/core/lib/resource_quota/thread_quota.h +57 -0
  483. data/src/core/lib/resource_quota/trace.cc +19 -0
  484. data/src/core/lib/resource_quota/trace.h +24 -0
  485. data/src/core/lib/security/authorization/evaluate_args.cc +13 -19
  486. data/src/core/lib/security/authorization/evaluate_args.h +2 -1
  487. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +3 -1
  488. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +11 -12
  489. data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -10
  490. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +3 -4
  491. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -6
  492. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -1
  493. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +4 -6
  494. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -22
  495. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +11 -12
  496. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -8
  497. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
  498. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
  499. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +11 -90
  500. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +19 -82
  501. data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
  502. data/src/core/lib/security/credentials/xds/xds_credentials.cc +28 -33
  503. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +3 -3
  504. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
  505. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +3 -4
  506. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  507. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +7 -7
  508. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -2
  509. data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -1
  510. data/src/core/lib/security/security_connector/ssl_utils.cc +10 -2
  511. data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
  512. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +344 -195
  513. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +64 -41
  514. data/src/core/lib/security/transport/security_handshaker.cc +2 -2
  515. data/src/core/lib/slice/percent_encoding.cc +30 -86
  516. data/src/core/lib/slice/percent_encoding.h +5 -11
  517. data/src/core/lib/slice/slice.cc +7 -7
  518. data/src/core/lib/slice/slice.h +341 -0
  519. data/src/core/lib/slice/slice_buffer.cc +4 -0
  520. data/src/core/lib/slice/slice_intern.cc +1 -1
  521. data/src/core/lib/slice/slice_refcount.h +5 -1
  522. data/src/core/lib/slice/slice_refcount_base.h +19 -11
  523. data/src/core/lib/slice/static_slice.cc +331 -483
  524. data/src/core/lib/slice/static_slice.h +101 -132
  525. data/src/core/lib/surface/builtins.cc +1 -1
  526. data/src/core/lib/surface/call.cc +85 -59
  527. data/src/core/lib/surface/channel.cc +4 -29
  528. data/src/core/lib/surface/channel.h +2 -12
  529. data/src/core/lib/surface/completion_queue.cc +2 -2
  530. data/src/core/lib/surface/init.cc +0 -1
  531. data/src/core/lib/surface/lame_client.cc +24 -17
  532. data/src/core/lib/surface/server.cc +22 -22
  533. data/src/core/lib/surface/server.h +8 -9
  534. data/src/core/lib/surface/validate_metadata.cc +2 -2
  535. data/src/core/lib/surface/version.cc +2 -2
  536. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  537. data/src/core/lib/transport/byte_stream.cc +4 -0
  538. data/src/core/lib/transport/metadata.h +4 -4
  539. data/src/core/lib/transport/metadata_batch.cc +5 -0
  540. data/src/core/lib/transport/metadata_batch.h +174 -99
  541. data/src/core/lib/transport/parsed_metadata.cc +35 -0
  542. data/src/core/lib/transport/parsed_metadata.h +180 -61
  543. data/src/core/lib/transport/pid_controller.cc +4 -4
  544. data/src/core/lib/transport/static_metadata.cc +529 -614
  545. data/src/core/lib/transport/static_metadata.h +0 -18
  546. data/src/core/lib/transport/transport.cc +4 -26
  547. data/src/core/lib/transport/transport.h +0 -1
  548. data/src/core/lib/transport/transport_op_string.cc +1 -1
  549. data/src/core/lib/uri/uri_parser.cc +19 -19
  550. data/src/core/lib/uri/uri_parser.h +2 -0
  551. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -2
  552. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  553. data/src/core/tsi/local_transport_security.cc +15 -15
  554. data/src/core/tsi/ssl_transport_security.cc +30 -1
  555. data/src/core/tsi/ssl_transport_security.h +1 -0
  556. data/src/ruby/ext/grpc/extconf.rb +1 -1
  557. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -10
  558. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +9 -15
  559. data/src/ruby/lib/grpc/version.rb +1 -1
  560. data/third_party/abseil-cpp/absl/algorithm/container.h +101 -91
  561. data/third_party/abseil-cpp/absl/base/attributes.h +64 -31
  562. data/third_party/abseil-cpp/absl/base/config.h +67 -37
  563. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
  564. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -1
  565. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
  566. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +69 -0
  567. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -4
  568. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +16 -0
  569. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
  570. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  571. data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -5
  572. data/third_party/abseil-cpp/absl/container/inlined_vector.h +105 -97
  573. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
  574. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +18 -102
  575. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +37 -78
  576. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +388 -423
  577. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
  578. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -8
  579. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +251 -120
  580. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
  581. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
  582. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
  583. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +12 -5
  584. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
  585. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
  586. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
  587. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
  588. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
  589. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
  590. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
  591. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +14 -0
  592. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
  593. data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
  594. data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
  595. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
  596. data/third_party/abseil-cpp/absl/hash/internal/hash.h +88 -37
  597. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.cc → low_level_hash.cc} +23 -11
  598. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.h → low_level_hash.h} +14 -12
  599. data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
  600. data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
  601. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -10
  602. data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
  603. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
  604. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
  605. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
  606. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
  607. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
  608. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +5 -5
  609. data/third_party/abseil-cpp/absl/status/status.cc +9 -17
  610. data/third_party/abseil-cpp/absl/status/status.h +19 -15
  611. data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
  612. data/third_party/abseil-cpp/absl/status/statusor.h +31 -21
  613. data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
  614. data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
  615. data/third_party/abseil-cpp/absl/strings/cord.cc +453 -359
  616. data/third_party/abseil-cpp/absl/strings/cord.h +197 -70
  617. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
  618. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +6 -0
  619. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +140 -63
  620. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
  621. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
  622. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
  623. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
  624. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
  625. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
  626. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
  627. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
  628. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +7 -7
  629. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +55 -181
  630. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
  631. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
  632. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
  633. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
  634. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
  635. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
  636. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
  637. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
  638. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
  639. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  640. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
  641. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
  642. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -0
  643. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
  644. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +1 -1
  645. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
  646. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
  647. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
  648. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +24 -16
  649. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
  650. data/third_party/abseil-cpp/absl/strings/numbers.cc +1 -1
  651. data/third_party/abseil-cpp/absl/strings/numbers.h +34 -0
  652. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  653. data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
  654. data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
  655. data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
  656. data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
  657. data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
  658. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
  659. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
  660. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -1
  661. data/third_party/abseil-cpp/absl/synchronization/mutex.h +3 -3
  662. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
  663. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
  664. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  665. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
  666. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
  667. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
  668. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
  669. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
  670. data/third_party/abseil-cpp/absl/time/time.h +67 -36
  671. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
  672. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
  673. data/third_party/abseil-cpp/absl/types/span.h +3 -3
  674. data/third_party/boringssl-with-bazel/err_data.c +681 -677
  675. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +19 -11
  676. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +41 -30
  677. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
  678. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
  679. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
  680. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
  681. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +28 -0
  682. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +48 -272
  683. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
  684. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
  685. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
  686. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
  687. data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -0
  688. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
  689. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -23
  690. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
  691. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +8 -2
  692. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +216 -11
  693. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -1
  694. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
  695. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
  696. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -1
  697. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
  698. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +1 -1
  699. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +1 -0
  700. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +0 -1
  701. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +21 -4
  702. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +971 -253
  703. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +3 -3
  704. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
  705. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
  706. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +17 -41
  707. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
  708. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
  709. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +29 -55
  710. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +3 -9
  711. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
  712. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +24 -28
  713. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +6 -9
  714. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +12 -43
  715. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +4 -3
  716. data/third_party/boringssl-with-bazel/src/ssl/internal.h +3 -3
  717. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
  718. data/third_party/upb/upb/decode.c +309 -178
  719. data/third_party/upb/upb/decode_fast.c +1 -1
  720. data/third_party/upb/upb/decode_internal.h +1 -0
  721. data/third_party/upb/upb/def.c +330 -85
  722. data/third_party/upb/upb/def.h +45 -14
  723. data/third_party/upb/upb/def.hpp +17 -4
  724. data/third_party/upb/upb/encode.c +100 -40
  725. data/third_party/upb/upb/msg.c +22 -9
  726. data/third_party/upb/upb/msg_internal.h +90 -8
  727. data/third_party/upb/upb/reflection.c +98 -58
  728. data/third_party/upb/upb/reflection.h +6 -2
  729. data/third_party/upb/upb/text_encode.c +3 -3
  730. data/third_party/upb/upb/upb.c +8 -0
  731. metadata +116 -56
  732. data/src/core/lib/avl/avl.cc +0 -306
  733. data/src/core/lib/gprpp/match.h +0 -73
  734. data/src/core/lib/gprpp/overload.h +0 -59
  735. data/src/core/lib/iomgr/event_engine/iomgr.h +0 -42
  736. data/src/core/lib/iomgr/resource_quota.cc +0 -1106
  737. data/src/core/lib/iomgr/resource_quota.h +0 -226
  738. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
  739. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
@@ -37,8 +37,8 @@
37
37
 
38
38
  static_assert(
39
39
  std::is_trivially_destructible<grpc_core::StaticMetadataSlice>::value,
40
- "grpc_core::StaticMetadataSlice must be trivially destructible.");
41
- #define GRPC_STATIC_MDSTR_COUNT 110
40
+ "StaticMetadataSlice must be trivially destructible.");
41
+ #define GRPC_STATIC_MDSTR_COUNT 99
42
42
  /* ":path" */
43
43
  #define GRPC_MDSTR_PATH (::grpc_core::g_static_metadata_slice_table[0])
44
44
  /* ":method" */
@@ -49,268 +49,236 @@ static_assert(
49
49
  #define GRPC_MDSTR_AUTHORITY (::grpc_core::g_static_metadata_slice_table[3])
50
50
  /* ":scheme" */
51
51
  #define GRPC_MDSTR_SCHEME (::grpc_core::g_static_metadata_slice_table[4])
52
- /* "grpc-message" */
53
- #define GRPC_MDSTR_GRPC_MESSAGE (::grpc_core::g_static_metadata_slice_table[5])
54
52
  /* "grpc-status" */
55
- #define GRPC_MDSTR_GRPC_STATUS (::grpc_core::g_static_metadata_slice_table[6])
56
- /* "grpc-payload-bin" */
57
- #define GRPC_MDSTR_GRPC_PAYLOAD_BIN \
58
- (::grpc_core::g_static_metadata_slice_table[7])
53
+ #define GRPC_MDSTR_GRPC_STATUS (::grpc_core::g_static_metadata_slice_table[5])
59
54
  /* "grpc-encoding" */
60
- #define GRPC_MDSTR_GRPC_ENCODING (::grpc_core::g_static_metadata_slice_table[8])
55
+ #define GRPC_MDSTR_GRPC_ENCODING (::grpc_core::g_static_metadata_slice_table[6])
61
56
  /* "grpc-accept-encoding" */
62
57
  #define GRPC_MDSTR_GRPC_ACCEPT_ENCODING \
63
- (::grpc_core::g_static_metadata_slice_table[9])
64
- /* "grpc-server-stats-bin" */
65
- #define GRPC_MDSTR_GRPC_SERVER_STATS_BIN \
66
- (::grpc_core::g_static_metadata_slice_table[10])
67
- /* "grpc-tags-bin" */
68
- #define GRPC_MDSTR_GRPC_TAGS_BIN \
69
- (::grpc_core::g_static_metadata_slice_table[11])
70
- /* "grpc-trace-bin" */
71
- #define GRPC_MDSTR_GRPC_TRACE_BIN \
72
- (::grpc_core::g_static_metadata_slice_table[12])
58
+ (::grpc_core::g_static_metadata_slice_table[7])
73
59
  /* "content-type" */
74
- #define GRPC_MDSTR_CONTENT_TYPE (::grpc_core::g_static_metadata_slice_table[13])
60
+ #define GRPC_MDSTR_CONTENT_TYPE (::grpc_core::g_static_metadata_slice_table[8])
75
61
  /* "content-encoding" */
76
62
  #define GRPC_MDSTR_CONTENT_ENCODING \
77
- (::grpc_core::g_static_metadata_slice_table[14])
63
+ (::grpc_core::g_static_metadata_slice_table[9])
78
64
  /* "accept-encoding" */
79
65
  #define GRPC_MDSTR_ACCEPT_ENCODING \
80
- (::grpc_core::g_static_metadata_slice_table[15])
66
+ (::grpc_core::g_static_metadata_slice_table[10])
81
67
  /* "grpc-internal-encoding-request" */
82
68
  #define GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST \
83
- (::grpc_core::g_static_metadata_slice_table[16])
84
- /* "grpc-internal-stream-encoding-request" */
85
- #define GRPC_MDSTR_GRPC_INTERNAL_STREAM_ENCODING_REQUEST \
86
- (::grpc_core::g_static_metadata_slice_table[17])
87
- /* "user-agent" */
88
- #define GRPC_MDSTR_USER_AGENT (::grpc_core::g_static_metadata_slice_table[18])
89
- /* "host" */
90
- #define GRPC_MDSTR_HOST (::grpc_core::g_static_metadata_slice_table[19])
69
+ (::grpc_core::g_static_metadata_slice_table[11])
91
70
  /* "grpc-previous-rpc-attempts" */
92
71
  #define GRPC_MDSTR_GRPC_PREVIOUS_RPC_ATTEMPTS \
93
- (::grpc_core::g_static_metadata_slice_table[20])
72
+ (::grpc_core::g_static_metadata_slice_table[12])
94
73
  /* "grpc-retry-pushback-ms" */
95
74
  #define GRPC_MDSTR_GRPC_RETRY_PUSHBACK_MS \
96
- (::grpc_core::g_static_metadata_slice_table[21])
97
- /* "x-endpoint-load-metrics-bin" */
98
- #define GRPC_MDSTR_X_ENDPOINT_LOAD_METRICS_BIN \
99
- (::grpc_core::g_static_metadata_slice_table[22])
75
+ (::grpc_core::g_static_metadata_slice_table[13])
100
76
  /* "grpc-timeout" */
101
- #define GRPC_MDSTR_GRPC_TIMEOUT (::grpc_core::g_static_metadata_slice_table[23])
77
+ #define GRPC_MDSTR_GRPC_TIMEOUT (::grpc_core::g_static_metadata_slice_table[14])
102
78
  /* "1" */
103
- #define GRPC_MDSTR_1 (::grpc_core::g_static_metadata_slice_table[24])
79
+ #define GRPC_MDSTR_1 (::grpc_core::g_static_metadata_slice_table[15])
104
80
  /* "2" */
105
- #define GRPC_MDSTR_2 (::grpc_core::g_static_metadata_slice_table[25])
81
+ #define GRPC_MDSTR_2 (::grpc_core::g_static_metadata_slice_table[16])
106
82
  /* "3" */
107
- #define GRPC_MDSTR_3 (::grpc_core::g_static_metadata_slice_table[26])
83
+ #define GRPC_MDSTR_3 (::grpc_core::g_static_metadata_slice_table[17])
108
84
  /* "4" */
109
- #define GRPC_MDSTR_4 (::grpc_core::g_static_metadata_slice_table[27])
85
+ #define GRPC_MDSTR_4 (::grpc_core::g_static_metadata_slice_table[18])
110
86
  /* "" */
111
- #define GRPC_MDSTR_EMPTY (::grpc_core::g_static_metadata_slice_table[28])
112
- /* "grpc.wait_for_ready" */
113
- #define GRPC_MDSTR_GRPC_DOT_WAIT_FOR_READY \
114
- (::grpc_core::g_static_metadata_slice_table[29])
115
- /* "grpc.timeout" */
116
- #define GRPC_MDSTR_GRPC_DOT_TIMEOUT \
117
- (::grpc_core::g_static_metadata_slice_table[30])
118
- /* "grpc.max_request_message_bytes" */
119
- #define GRPC_MDSTR_GRPC_DOT_MAX_REQUEST_MESSAGE_BYTES \
120
- (::grpc_core::g_static_metadata_slice_table[31])
121
- /* "grpc.max_response_message_bytes" */
122
- #define GRPC_MDSTR_GRPC_DOT_MAX_RESPONSE_MESSAGE_BYTES \
123
- (::grpc_core::g_static_metadata_slice_table[32])
87
+ #define GRPC_MDSTR_EMPTY (::grpc_core::g_static_metadata_slice_table[19])
124
88
  /* "/grpc.lb.v1.LoadBalancer/BalanceLoad" */
125
89
  #define GRPC_MDSTR_SLASH_GRPC_DOT_LB_DOT_V1_DOT_LOADBALANCER_SLASH_BALANCELOAD \
126
- (::grpc_core::g_static_metadata_slice_table[33])
90
+ (::grpc_core::g_static_metadata_slice_table[20])
127
91
  /* "/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats" */
128
92
  #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_LOAD_STATS_DOT_V2_DOT_LOADREPORTINGSERVICE_SLASH_STREAMLOADSTATS \
129
- (::grpc_core::g_static_metadata_slice_table[34])
93
+ (::grpc_core::g_static_metadata_slice_table[21])
130
94
  /* "/envoy.service.load_stats.v3.LoadReportingService/StreamLoadStats" */
131
95
  #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_LOAD_STATS_DOT_V3_DOT_LOADREPORTINGSERVICE_SLASH_STREAMLOADSTATS \
132
- (::grpc_core::g_static_metadata_slice_table[35])
96
+ (::grpc_core::g_static_metadata_slice_table[22])
133
97
  /* "/grpc.health.v1.Health/Watch" */
134
98
  #define GRPC_MDSTR_SLASH_GRPC_DOT_HEALTH_DOT_V1_DOT_HEALTH_SLASH_WATCH \
135
- (::grpc_core::g_static_metadata_slice_table[36])
99
+ (::grpc_core::g_static_metadata_slice_table[23])
136
100
  /* "/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources"
137
101
  */
138
102
  #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V2_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES \
139
- (::grpc_core::g_static_metadata_slice_table[37])
103
+ (::grpc_core::g_static_metadata_slice_table[24])
140
104
  /* "/envoy.service.discovery.v3.AggregatedDiscoveryService/StreamAggregatedResources"
141
105
  */
142
106
  #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V3_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES \
143
- (::grpc_core::g_static_metadata_slice_table[38])
107
+ (::grpc_core::g_static_metadata_slice_table[25])
144
108
  /* "deflate" */
145
- #define GRPC_MDSTR_DEFLATE (::grpc_core::g_static_metadata_slice_table[39])
109
+ #define GRPC_MDSTR_DEFLATE (::grpc_core::g_static_metadata_slice_table[26])
146
110
  /* "gzip" */
147
- #define GRPC_MDSTR_GZIP (::grpc_core::g_static_metadata_slice_table[40])
111
+ #define GRPC_MDSTR_GZIP (::grpc_core::g_static_metadata_slice_table[27])
148
112
  /* "stream/gzip" */
149
113
  #define GRPC_MDSTR_STREAM_SLASH_GZIP \
150
- (::grpc_core::g_static_metadata_slice_table[41])
114
+ (::grpc_core::g_static_metadata_slice_table[28])
151
115
  /* "te" */
152
- #define GRPC_MDSTR_TE (::grpc_core::g_static_metadata_slice_table[42])
116
+ #define GRPC_MDSTR_TE (::grpc_core::g_static_metadata_slice_table[29])
153
117
  /* "trailers" */
154
- #define GRPC_MDSTR_TRAILERS (::grpc_core::g_static_metadata_slice_table[43])
118
+ #define GRPC_MDSTR_TRAILERS (::grpc_core::g_static_metadata_slice_table[30])
155
119
  /* "GET" */
156
- #define GRPC_MDSTR_GET (::grpc_core::g_static_metadata_slice_table[44])
120
+ #define GRPC_MDSTR_GET (::grpc_core::g_static_metadata_slice_table[31])
157
121
  /* "POST" */
158
- #define GRPC_MDSTR_POST (::grpc_core::g_static_metadata_slice_table[45])
122
+ #define GRPC_MDSTR_POST (::grpc_core::g_static_metadata_slice_table[32])
159
123
  /* "/" */
160
- #define GRPC_MDSTR_SLASH (::grpc_core::g_static_metadata_slice_table[46])
124
+ #define GRPC_MDSTR_SLASH (::grpc_core::g_static_metadata_slice_table[33])
161
125
  /* "/index.html" */
162
126
  #define GRPC_MDSTR_SLASH_INDEX_DOT_HTML \
163
- (::grpc_core::g_static_metadata_slice_table[47])
127
+ (::grpc_core::g_static_metadata_slice_table[34])
164
128
  /* "http" */
165
- #define GRPC_MDSTR_HTTP (::grpc_core::g_static_metadata_slice_table[48])
129
+ #define GRPC_MDSTR_HTTP (::grpc_core::g_static_metadata_slice_table[35])
166
130
  /* "https" */
167
- #define GRPC_MDSTR_HTTPS (::grpc_core::g_static_metadata_slice_table[49])
131
+ #define GRPC_MDSTR_HTTPS (::grpc_core::g_static_metadata_slice_table[36])
168
132
  /* "200" */
169
- #define GRPC_MDSTR_200 (::grpc_core::g_static_metadata_slice_table[50])
133
+ #define GRPC_MDSTR_200 (::grpc_core::g_static_metadata_slice_table[37])
170
134
  /* "204" */
171
- #define GRPC_MDSTR_204 (::grpc_core::g_static_metadata_slice_table[51])
135
+ #define GRPC_MDSTR_204 (::grpc_core::g_static_metadata_slice_table[38])
172
136
  /* "206" */
173
- #define GRPC_MDSTR_206 (::grpc_core::g_static_metadata_slice_table[52])
137
+ #define GRPC_MDSTR_206 (::grpc_core::g_static_metadata_slice_table[39])
174
138
  /* "304" */
175
- #define GRPC_MDSTR_304 (::grpc_core::g_static_metadata_slice_table[53])
139
+ #define GRPC_MDSTR_304 (::grpc_core::g_static_metadata_slice_table[40])
176
140
  /* "400" */
177
- #define GRPC_MDSTR_400 (::grpc_core::g_static_metadata_slice_table[54])
141
+ #define GRPC_MDSTR_400 (::grpc_core::g_static_metadata_slice_table[41])
178
142
  /* "404" */
179
- #define GRPC_MDSTR_404 (::grpc_core::g_static_metadata_slice_table[55])
143
+ #define GRPC_MDSTR_404 (::grpc_core::g_static_metadata_slice_table[42])
180
144
  /* "500" */
181
- #define GRPC_MDSTR_500 (::grpc_core::g_static_metadata_slice_table[56])
145
+ #define GRPC_MDSTR_500 (::grpc_core::g_static_metadata_slice_table[43])
182
146
  /* "accept-charset" */
183
147
  #define GRPC_MDSTR_ACCEPT_CHARSET \
184
- (::grpc_core::g_static_metadata_slice_table[57])
148
+ (::grpc_core::g_static_metadata_slice_table[44])
185
149
  /* "gzip, deflate" */
186
150
  #define GRPC_MDSTR_GZIP_COMMA_DEFLATE \
187
- (::grpc_core::g_static_metadata_slice_table[58])
151
+ (::grpc_core::g_static_metadata_slice_table[45])
188
152
  /* "accept-language" */
189
153
  #define GRPC_MDSTR_ACCEPT_LANGUAGE \
190
- (::grpc_core::g_static_metadata_slice_table[59])
154
+ (::grpc_core::g_static_metadata_slice_table[46])
191
155
  /* "accept-ranges" */
192
156
  #define GRPC_MDSTR_ACCEPT_RANGES \
193
- (::grpc_core::g_static_metadata_slice_table[60])
157
+ (::grpc_core::g_static_metadata_slice_table[47])
194
158
  /* "accept" */
195
- #define GRPC_MDSTR_ACCEPT (::grpc_core::g_static_metadata_slice_table[61])
159
+ #define GRPC_MDSTR_ACCEPT (::grpc_core::g_static_metadata_slice_table[48])
196
160
  /* "access-control-allow-origin" */
197
161
  #define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN \
198
- (::grpc_core::g_static_metadata_slice_table[62])
162
+ (::grpc_core::g_static_metadata_slice_table[49])
199
163
  /* "age" */
200
- #define GRPC_MDSTR_AGE (::grpc_core::g_static_metadata_slice_table[63])
164
+ #define GRPC_MDSTR_AGE (::grpc_core::g_static_metadata_slice_table[50])
201
165
  /* "allow" */
202
- #define GRPC_MDSTR_ALLOW (::grpc_core::g_static_metadata_slice_table[64])
166
+ #define GRPC_MDSTR_ALLOW (::grpc_core::g_static_metadata_slice_table[51])
203
167
  /* "authorization" */
204
168
  #define GRPC_MDSTR_AUTHORIZATION \
205
- (::grpc_core::g_static_metadata_slice_table[65])
169
+ (::grpc_core::g_static_metadata_slice_table[52])
206
170
  /* "cache-control" */
207
171
  #define GRPC_MDSTR_CACHE_CONTROL \
208
- (::grpc_core::g_static_metadata_slice_table[66])
172
+ (::grpc_core::g_static_metadata_slice_table[53])
209
173
  /* "content-disposition" */
210
174
  #define GRPC_MDSTR_CONTENT_DISPOSITION \
211
- (::grpc_core::g_static_metadata_slice_table[67])
175
+ (::grpc_core::g_static_metadata_slice_table[54])
212
176
  /* "content-language" */
213
177
  #define GRPC_MDSTR_CONTENT_LANGUAGE \
214
- (::grpc_core::g_static_metadata_slice_table[68])
178
+ (::grpc_core::g_static_metadata_slice_table[55])
215
179
  /* "content-length" */
216
180
  #define GRPC_MDSTR_CONTENT_LENGTH \
217
- (::grpc_core::g_static_metadata_slice_table[69])
181
+ (::grpc_core::g_static_metadata_slice_table[56])
218
182
  /* "content-location" */
219
183
  #define GRPC_MDSTR_CONTENT_LOCATION \
220
- (::grpc_core::g_static_metadata_slice_table[70])
184
+ (::grpc_core::g_static_metadata_slice_table[57])
221
185
  /* "content-range" */
222
186
  #define GRPC_MDSTR_CONTENT_RANGE \
223
- (::grpc_core::g_static_metadata_slice_table[71])
187
+ (::grpc_core::g_static_metadata_slice_table[58])
224
188
  /* "cookie" */
225
- #define GRPC_MDSTR_COOKIE (::grpc_core::g_static_metadata_slice_table[72])
189
+ #define GRPC_MDSTR_COOKIE (::grpc_core::g_static_metadata_slice_table[59])
226
190
  /* "date" */
227
- #define GRPC_MDSTR_DATE (::grpc_core::g_static_metadata_slice_table[73])
191
+ #define GRPC_MDSTR_DATE (::grpc_core::g_static_metadata_slice_table[60])
228
192
  /* "etag" */
229
- #define GRPC_MDSTR_ETAG (::grpc_core::g_static_metadata_slice_table[74])
193
+ #define GRPC_MDSTR_ETAG (::grpc_core::g_static_metadata_slice_table[61])
230
194
  /* "expect" */
231
- #define GRPC_MDSTR_EXPECT (::grpc_core::g_static_metadata_slice_table[75])
195
+ #define GRPC_MDSTR_EXPECT (::grpc_core::g_static_metadata_slice_table[62])
232
196
  /* "expires" */
233
- #define GRPC_MDSTR_EXPIRES (::grpc_core::g_static_metadata_slice_table[76])
197
+ #define GRPC_MDSTR_EXPIRES (::grpc_core::g_static_metadata_slice_table[63])
234
198
  /* "from" */
235
- #define GRPC_MDSTR_FROM (::grpc_core::g_static_metadata_slice_table[77])
199
+ #define GRPC_MDSTR_FROM (::grpc_core::g_static_metadata_slice_table[64])
200
+ /* "host" */
201
+ #define GRPC_MDSTR_HOST (::grpc_core::g_static_metadata_slice_table[65])
236
202
  /* "if-match" */
237
- #define GRPC_MDSTR_IF_MATCH (::grpc_core::g_static_metadata_slice_table[78])
203
+ #define GRPC_MDSTR_IF_MATCH (::grpc_core::g_static_metadata_slice_table[66])
238
204
  /* "if-modified-since" */
239
205
  #define GRPC_MDSTR_IF_MODIFIED_SINCE \
240
- (::grpc_core::g_static_metadata_slice_table[79])
206
+ (::grpc_core::g_static_metadata_slice_table[67])
241
207
  /* "if-none-match" */
242
208
  #define GRPC_MDSTR_IF_NONE_MATCH \
243
- (::grpc_core::g_static_metadata_slice_table[80])
209
+ (::grpc_core::g_static_metadata_slice_table[68])
244
210
  /* "if-range" */
245
- #define GRPC_MDSTR_IF_RANGE (::grpc_core::g_static_metadata_slice_table[81])
211
+ #define GRPC_MDSTR_IF_RANGE (::grpc_core::g_static_metadata_slice_table[69])
246
212
  /* "if-unmodified-since" */
247
213
  #define GRPC_MDSTR_IF_UNMODIFIED_SINCE \
248
- (::grpc_core::g_static_metadata_slice_table[82])
214
+ (::grpc_core::g_static_metadata_slice_table[70])
249
215
  /* "last-modified" */
250
216
  #define GRPC_MDSTR_LAST_MODIFIED \
251
- (::grpc_core::g_static_metadata_slice_table[83])
217
+ (::grpc_core::g_static_metadata_slice_table[71])
252
218
  /* "link" */
253
- #define GRPC_MDSTR_LINK (::grpc_core::g_static_metadata_slice_table[84])
219
+ #define GRPC_MDSTR_LINK (::grpc_core::g_static_metadata_slice_table[72])
254
220
  /* "location" */
255
- #define GRPC_MDSTR_LOCATION (::grpc_core::g_static_metadata_slice_table[85])
221
+ #define GRPC_MDSTR_LOCATION (::grpc_core::g_static_metadata_slice_table[73])
256
222
  /* "max-forwards" */
257
- #define GRPC_MDSTR_MAX_FORWARDS (::grpc_core::g_static_metadata_slice_table[86])
223
+ #define GRPC_MDSTR_MAX_FORWARDS (::grpc_core::g_static_metadata_slice_table[74])
258
224
  /* "proxy-authenticate" */
259
225
  #define GRPC_MDSTR_PROXY_AUTHENTICATE \
260
- (::grpc_core::g_static_metadata_slice_table[87])
226
+ (::grpc_core::g_static_metadata_slice_table[75])
261
227
  /* "proxy-authorization" */
262
228
  #define GRPC_MDSTR_PROXY_AUTHORIZATION \
263
- (::grpc_core::g_static_metadata_slice_table[88])
229
+ (::grpc_core::g_static_metadata_slice_table[76])
264
230
  /* "range" */
265
- #define GRPC_MDSTR_RANGE (::grpc_core::g_static_metadata_slice_table[89])
231
+ #define GRPC_MDSTR_RANGE (::grpc_core::g_static_metadata_slice_table[77])
266
232
  /* "referer" */
267
- #define GRPC_MDSTR_REFERER (::grpc_core::g_static_metadata_slice_table[90])
233
+ #define GRPC_MDSTR_REFERER (::grpc_core::g_static_metadata_slice_table[78])
268
234
  /* "refresh" */
269
- #define GRPC_MDSTR_REFRESH (::grpc_core::g_static_metadata_slice_table[91])
235
+ #define GRPC_MDSTR_REFRESH (::grpc_core::g_static_metadata_slice_table[79])
270
236
  /* "retry-after" */
271
- #define GRPC_MDSTR_RETRY_AFTER (::grpc_core::g_static_metadata_slice_table[92])
237
+ #define GRPC_MDSTR_RETRY_AFTER (::grpc_core::g_static_metadata_slice_table[80])
272
238
  /* "server" */
273
- #define GRPC_MDSTR_SERVER (::grpc_core::g_static_metadata_slice_table[93])
239
+ #define GRPC_MDSTR_SERVER (::grpc_core::g_static_metadata_slice_table[81])
274
240
  /* "set-cookie" */
275
- #define GRPC_MDSTR_SET_COOKIE (::grpc_core::g_static_metadata_slice_table[94])
241
+ #define GRPC_MDSTR_SET_COOKIE (::grpc_core::g_static_metadata_slice_table[82])
276
242
  /* "strict-transport-security" */
277
243
  #define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY \
278
- (::grpc_core::g_static_metadata_slice_table[95])
244
+ (::grpc_core::g_static_metadata_slice_table[83])
279
245
  /* "transfer-encoding" */
280
246
  #define GRPC_MDSTR_TRANSFER_ENCODING \
281
- (::grpc_core::g_static_metadata_slice_table[96])
247
+ (::grpc_core::g_static_metadata_slice_table[84])
248
+ /* "user-agent" */
249
+ #define GRPC_MDSTR_USER_AGENT (::grpc_core::g_static_metadata_slice_table[85])
282
250
  /* "vary" */
283
- #define GRPC_MDSTR_VARY (::grpc_core::g_static_metadata_slice_table[97])
251
+ #define GRPC_MDSTR_VARY (::grpc_core::g_static_metadata_slice_table[86])
284
252
  /* "via" */
285
- #define GRPC_MDSTR_VIA (::grpc_core::g_static_metadata_slice_table[98])
253
+ #define GRPC_MDSTR_VIA (::grpc_core::g_static_metadata_slice_table[87])
286
254
  /* "www-authenticate" */
287
255
  #define GRPC_MDSTR_WWW_AUTHENTICATE \
288
- (::grpc_core::g_static_metadata_slice_table[99])
256
+ (::grpc_core::g_static_metadata_slice_table[88])
289
257
  /* "0" */
290
- #define GRPC_MDSTR_0 (::grpc_core::g_static_metadata_slice_table[100])
258
+ #define GRPC_MDSTR_0 (::grpc_core::g_static_metadata_slice_table[89])
291
259
  /* "identity" */
292
- #define GRPC_MDSTR_IDENTITY (::grpc_core::g_static_metadata_slice_table[101])
260
+ #define GRPC_MDSTR_IDENTITY (::grpc_core::g_static_metadata_slice_table[90])
293
261
  /* "application/grpc" */
294
262
  #define GRPC_MDSTR_APPLICATION_SLASH_GRPC \
295
- (::grpc_core::g_static_metadata_slice_table[102])
263
+ (::grpc_core::g_static_metadata_slice_table[91])
296
264
  /* "grpc" */
297
- #define GRPC_MDSTR_GRPC (::grpc_core::g_static_metadata_slice_table[103])
265
+ #define GRPC_MDSTR_GRPC (::grpc_core::g_static_metadata_slice_table[92])
298
266
  /* "PUT" */
299
- #define GRPC_MDSTR_PUT (::grpc_core::g_static_metadata_slice_table[104])
267
+ #define GRPC_MDSTR_PUT (::grpc_core::g_static_metadata_slice_table[93])
300
268
  /* "lb-cost-bin" */
301
- #define GRPC_MDSTR_LB_COST_BIN (::grpc_core::g_static_metadata_slice_table[105])
269
+ #define GRPC_MDSTR_LB_COST_BIN (::grpc_core::g_static_metadata_slice_table[94])
302
270
  /* "identity,deflate" */
303
271
  #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE \
304
- (::grpc_core::g_static_metadata_slice_table[106])
272
+ (::grpc_core::g_static_metadata_slice_table[95])
305
273
  /* "identity,gzip" */
306
274
  #define GRPC_MDSTR_IDENTITY_COMMA_GZIP \
307
- (::grpc_core::g_static_metadata_slice_table[107])
275
+ (::grpc_core::g_static_metadata_slice_table[96])
308
276
  /* "deflate,gzip" */
309
277
  #define GRPC_MDSTR_DEFLATE_COMMA_GZIP \
310
- (::grpc_core::g_static_metadata_slice_table[108])
278
+ (::grpc_core::g_static_metadata_slice_table[97])
311
279
  /* "identity,deflate,gzip" */
312
280
  #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
313
- (::grpc_core::g_static_metadata_slice_table[109])
281
+ (::grpc_core::g_static_metadata_slice_table[98])
314
282
 
315
283
  namespace grpc_core {
316
284
  extern StaticSliceRefcount
@@ -324,8 +292,9 @@ extern const uint8_t g_static_metadata_bytes[];
324
292
  ((slice).refcount != NULL && \
325
293
  (slice).refcount->GetType() == grpc_slice_refcount::Type::STATIC)
326
294
 
327
- #define GRPC_STATIC_METADATA_INDEX(static_slice) \
328
- (reinterpret_cast<grpc_core::StaticSliceRefcount*>((static_slice).refcount) \
295
+ #define GRPC_STATIC_METADATA_INDEX(static_slice) \
296
+ (reinterpret_cast<::grpc_core::StaticSliceRefcount*>( \
297
+ (static_slice).refcount) \
329
298
  ->index)
330
299
 
331
300
  #endif /* GRPC_CORE_LIB_SLICE_STATIC_SLICE_H */
@@ -42,7 +42,7 @@ void RegisterBuiltins(CoreConfiguration::Builder* builder) {
42
42
  builder->channel_init()->RegisterStage(
43
43
  GRPC_SERVER_CHANNEL, INT_MAX, [](grpc_channel_stack_builder* builder) {
44
44
  return grpc_channel_stack_builder_prepend_filter(
45
- builder, &grpc_core::Server::kServerTopFilter, nullptr, nullptr);
45
+ builder, &Server::kServerTopFilter, nullptr, nullptr);
46
46
  });
47
47
  }
48
48
 
@@ -899,7 +899,6 @@ static grpc_metadata* get_md_elem(grpc_metadata* metadata,
899
899
  static int prepare_application_metadata(grpc_call* call, int count,
900
900
  grpc_metadata* metadata,
901
901
  int is_trailing,
902
- int prepend_extra_metadata,
903
902
  grpc_metadata* additional_metadata,
904
903
  int additional_metadata_count) {
905
904
  int total_count = count + additional_metadata_count;
@@ -932,16 +931,6 @@ static int prepare_application_metadata(grpc_call* call, int count,
932
931
  }
933
932
  return 0;
934
933
  }
935
- if (prepend_extra_metadata) {
936
- if (call->send_extra_metadata_count == 0) {
937
- prepend_extra_metadata = 0;
938
- } else {
939
- for (i = 0; i < call->send_extra_metadata_count; i++) {
940
- GRPC_LOG_IF_ERROR("prepare_application_metadata",
941
- batch->LinkTail(&call->send_extra_metadata[i]));
942
- }
943
- }
944
- }
945
934
  for (i = 0; i < total_count; i++) {
946
935
  grpc_metadata* md = get_md_elem(metadata, additional_metadata, i, count);
947
936
  grpc_linked_mdelem* l = linked_from_md(md);
@@ -951,7 +940,6 @@ static int prepare_application_metadata(grpc_call* call, int count,
951
940
  }
952
941
  GRPC_LOG_IF_ERROR("prepare_application_metadata", error);
953
942
  }
954
- call->send_extra_metadata_count = 0;
955
943
 
956
944
  return 1;
957
945
  }
@@ -988,27 +976,50 @@ static grpc_stream_compression_algorithm decode_stream_compression(
988
976
  return algorithm;
989
977
  }
990
978
 
979
+ namespace {
980
+ class PublishToAppEncoder {
981
+ public:
982
+ explicit PublishToAppEncoder(grpc_metadata_array* dest) : dest_(dest) {}
983
+
984
+ void Encode(grpc_mdelem md) { Append(GRPC_MDKEY(md), GRPC_MDVALUE(md)); }
985
+
986
+ void Encode(grpc_core::GrpcTimeoutMetadata, grpc_millis) {}
987
+ void Encode(grpc_core::TeMetadata, grpc_core::TeMetadata::ValueType) {}
988
+
989
+ template <typename Which>
990
+ void Encode(Which, const grpc_core::Slice& value) {
991
+ const auto key = Which::key();
992
+ Append(grpc_core::ExternallyManagedSlice(key.data(), key.length()),
993
+ value.c_slice());
994
+ }
995
+
996
+ private:
997
+ void Append(grpc_slice key, grpc_slice value) {
998
+ auto* mdusr = &dest_->metadata[dest_->count++];
999
+ mdusr->key = key;
1000
+ mdusr->value = value;
1001
+ }
1002
+
1003
+ grpc_metadata_array* const dest_;
1004
+ };
1005
+ } // namespace
1006
+
991
1007
  static void publish_app_metadata(grpc_call* call, grpc_metadata_batch* b,
992
1008
  int is_trailing) {
993
- if (b->non_deadline_count() == 0) return;
1009
+ if (b->count() == 0) return;
994
1010
  if (!call->is_client && is_trailing) return;
995
1011
  if (is_trailing && call->buffered_metadata[1] == nullptr) return;
996
1012
  GPR_TIMER_SCOPE("publish_app_metadata", 0);
997
1013
  grpc_metadata_array* dest;
998
- grpc_metadata* mdusr;
999
1014
  dest = call->buffered_metadata[is_trailing];
1000
- if (dest->count + b->non_deadline_count() > dest->capacity) {
1001
- dest->capacity = std::max(dest->capacity + b->non_deadline_count(),
1002
- dest->capacity * 3 / 2);
1015
+ if (dest->count + b->count() > dest->capacity) {
1016
+ dest->capacity =
1017
+ std::max(dest->capacity + b->count(), dest->capacity * 3 / 2);
1003
1018
  dest->metadata = static_cast<grpc_metadata*>(
1004
1019
  gpr_realloc(dest->metadata, sizeof(grpc_metadata) * dest->capacity));
1005
1020
  }
1006
- b->ForEach([&](grpc_mdelem md) {
1007
- mdusr = &dest->metadata[dest->count++];
1008
- /* we pass back borrowed slices that are valid whilst the call is valid */
1009
- mdusr->key = GRPC_MDKEY(md);
1010
- mdusr->value = GRPC_MDVALUE(md);
1011
- });
1021
+ PublishToAppEncoder encoder(dest);
1022
+ b->Encode(&encoder);
1012
1023
  }
1013
1024
 
1014
1025
  static void recv_initial_filter(grpc_call* call, grpc_metadata_batch* b) {
@@ -1066,12 +1077,10 @@ static void recv_trailing_filter(void* args, grpc_metadata_batch* b,
1066
1077
  static_cast<intptr_t>(status_code));
1067
1078
  gpr_free(peer);
1068
1079
  }
1069
- if (b->legacy_index()->named.grpc_message != nullptr) {
1070
- error = grpc_error_set_str(
1071
- error, GRPC_ERROR_STR_GRPC_MESSAGE,
1072
- grpc_core::StringViewFromSlice(
1073
- GRPC_MDVALUE(b->legacy_index()->named.grpc_message->md)));
1074
- b->Remove(GRPC_BATCH_GRPC_MESSAGE);
1080
+ auto grpc_message = b->Take(grpc_core::GrpcMessageMetadata());
1081
+ if (grpc_message.has_value()) {
1082
+ error = grpc_error_set_str(error, GRPC_ERROR_STR_GRPC_MESSAGE,
1083
+ grpc_message->as_string_view());
1075
1084
  } else if (error != GRPC_ERROR_NONE) {
1076
1085
  error = grpc_error_set_str(error, GRPC_ERROR_STR_GRPC_MESSAGE, "");
1077
1086
  }
@@ -1553,6 +1562,14 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1553
1562
  grpc_call_error error = GRPC_CALL_OK;
1554
1563
  grpc_transport_stream_op_batch* stream_op;
1555
1564
  grpc_transport_stream_op_batch_payload* stream_op_payload;
1565
+ uint32_t seen_ops = 0;
1566
+
1567
+ for (i = 0; i < nops; i++) {
1568
+ if (seen_ops & (1u << ops[i].op)) {
1569
+ return GRPC_CALL_ERROR_TOO_MANY_OPERATIONS;
1570
+ }
1571
+ seen_ops |= (1u << ops[i].op);
1572
+ }
1556
1573
 
1557
1574
  GRPC_CALL_LOG_BATCH(GPR_INFO, ops, nops);
1558
1575
 
@@ -1644,10 +1661,20 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1644
1661
  }
1645
1662
  stream_op->send_initial_metadata = true;
1646
1663
  call->sent_initial_metadata = true;
1664
+ if (call->is_client) {
1665
+ // TODO(ctiller): this will turn into explicit Set() calls once we
1666
+ // migrate :path, :authority.
1667
+ for (int i = 0; i < call->send_extra_metadata_count; i++) {
1668
+ GRPC_LOG_IF_ERROR("prepare_client_metadata",
1669
+ call->send_initial_metadata.LinkTail(
1670
+ &call->send_extra_metadata[i]));
1671
+ }
1672
+ call->send_extra_metadata_count = 0;
1673
+ }
1647
1674
  if (!prepare_application_metadata(
1648
1675
  call, static_cast<int>(op->data.send_initial_metadata.count),
1649
- op->data.send_initial_metadata.metadata, 0, call->is_client,
1650
- &compression_md, static_cast<int>(additional_metadata_count))) {
1676
+ op->data.send_initial_metadata.metadata, 0, &compression_md,
1677
+ static_cast<int>(additional_metadata_count))) {
1651
1678
  error = GRPC_CALL_ERROR_INVALID_METADATA;
1652
1679
  goto done_with_error;
1653
1680
  }
@@ -1739,10 +1766,17 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1739
1766
  }
1740
1767
  stream_op->send_trailing_metadata = true;
1741
1768
  call->sent_final_op = true;
1742
- GPR_ASSERT(call->send_extra_metadata_count == 0);
1743
- call->send_extra_metadata_count = 1;
1744
- call->send_extra_metadata[0].md = grpc_get_reffed_status_elem(
1745
- op->data.send_status_from_server.status);
1769
+
1770
+ if (!prepare_application_metadata(
1771
+ call,
1772
+ static_cast<int>(
1773
+ op->data.send_status_from_server.trailing_metadata_count),
1774
+ op->data.send_status_from_server.trailing_metadata, 1, nullptr,
1775
+ 0)) {
1776
+ error = GRPC_CALL_ERROR_INVALID_METADATA;
1777
+ goto done_with_error;
1778
+ }
1779
+
1746
1780
  grpc_error_handle status_error =
1747
1781
  op->data.send_status_from_server.status == GRPC_STATUS_OK
1748
1782
  ? GRPC_ERROR_NONE
@@ -1753,36 +1787,26 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
1753
1787
  static_cast<intptr_t>(
1754
1788
  op->data.send_status_from_server.status));
1755
1789
  if (op->data.send_status_from_server.status_details != nullptr) {
1756
- call->send_extra_metadata[1].md = grpc_mdelem_from_slices(
1757
- GRPC_MDSTR_GRPC_MESSAGE,
1758
- grpc_slice_copy(
1759
- *op->data.send_status_from_server.status_details));
1760
- call->send_extra_metadata_count++;
1790
+ call->send_trailing_metadata.Set(
1791
+ grpc_core::GrpcMessageMetadata(),
1792
+ grpc_core::Slice(grpc_slice_copy(
1793
+ *op->data.send_status_from_server.status_details)));
1761
1794
  if (status_error != GRPC_ERROR_NONE) {
1762
- char* msg = grpc_slice_to_c_string(
1763
- GRPC_MDVALUE(call->send_extra_metadata[1].md));
1764
- status_error = grpc_error_set_str(status_error,
1765
- GRPC_ERROR_STR_GRPC_MESSAGE, msg);
1766
- gpr_free(msg);
1795
+ status_error = grpc_error_set_str(
1796
+ status_error, GRPC_ERROR_STR_GRPC_MESSAGE,
1797
+ grpc_core::StringViewFromSlice(
1798
+ *op->data.send_status_from_server.status_details));
1767
1799
  }
1768
1800
  }
1769
1801
 
1770
1802
  call->status_error.set(status_error);
1771
1803
  GRPC_ERROR_UNREF(status_error);
1772
1804
 
1773
- if (!prepare_application_metadata(
1774
- call,
1775
- static_cast<int>(
1776
- op->data.send_status_from_server.trailing_metadata_count),
1777
- op->data.send_status_from_server.trailing_metadata, 1, 1,
1778
- nullptr, 0)) {
1779
- for (int n = 0; n < call->send_extra_metadata_count; n++) {
1780
- GRPC_MDELEM_UNREF(call->send_extra_metadata[n].md);
1781
- }
1782
- call->send_extra_metadata_count = 0;
1783
- error = GRPC_CALL_ERROR_INVALID_METADATA;
1784
- goto done_with_error;
1785
- }
1805
+ GRPC_LOG_IF_ERROR(
1806
+ "set call status",
1807
+ call->send_trailing_metadata.Append(grpc_get_reffed_status_elem(
1808
+ op->data.send_status_from_server.status)));
1809
+
1786
1810
  stream_op_payload->send_trailing_metadata.send_trailing_metadata =
1787
1811
  &call->send_trailing_metadata;
1788
1812
  stream_op_payload->send_trailing_metadata.sent =
@@ -1939,7 +1963,9 @@ done_with_error:
1939
1963
  }
1940
1964
  if (stream_op->send_message) {
1941
1965
  call->sending_message = false;
1942
- call->sending_stream->Orphan();
1966
+ // No need to invoke call->sending_stream->Orphan() explicitly.
1967
+ // stream_op_payload->send_message.send_message.reset() calls Deletor
1968
+ // of call->sending_stream which in-turn invokes the Orphan() method.
1943
1969
  stream_op_payload->send_message.send_message.reset();
1944
1970
  }
1945
1971
  if (stream_op->send_trailing_metadata) {