grpc 1.52.0 → 1.53.0.pre2

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 (892) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +50 -5
  3. data/include/grpc/event_engine/event_engine.h +24 -2
  4. data/include/grpc/event_engine/slice_buffer.h +13 -1
  5. data/include/grpc/impl/grpc_types.h +3 -0
  6. data/include/grpc/support/time.h +6 -4
  7. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +148 -0
  8. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +52 -0
  9. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +29 -0
  10. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +3 -3
  11. data/src/core/ext/filters/channel_idle/idle_filter_state.h +3 -3
  12. data/src/core/ext/filters/client_channel/backend_metric.h +3 -3
  13. data/src/core/ext/filters/client_channel/backup_poller.h +3 -3
  14. data/src/core/ext/filters/client_channel/channel_connectivity.cc +1 -1
  15. data/src/core/ext/filters/client_channel/client_channel.cc +29 -33
  16. data/src/core/ext/filters/client_channel/client_channel.h +3 -3
  17. data/src/core/ext/filters/client_channel/client_channel_channelz.h +3 -3
  18. data/src/core/ext/filters/client_channel/client_channel_factory.h +3 -3
  19. data/src/core/ext/filters/client_channel/client_channel_service_config.h +3 -3
  20. data/src/core/ext/filters/client_channel/config_selector.h +3 -3
  21. data/src/core/ext/filters/client_channel/connector.h +8 -4
  22. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  23. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -3
  24. data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
  25. data/src/core/ext/filters/client_channel/http_proxy.h +3 -3
  26. data/src/core/ext/filters/client_channel/lb_call_state_internal.h +3 -3
  27. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +3 -3
  28. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -3
  29. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +3 -3
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -7
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +3 -3
  32. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1 -0
  33. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +3 -3
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +3 -3
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -3
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +3 -3
  37. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +1 -78
  38. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +3 -3
  39. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +117 -0
  40. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +3 -3
  41. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +3 -3
  42. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +1 -0
  43. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -3
  44. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +128 -0
  45. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h +71 -0
  46. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +972 -0
  47. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +3 -6
  48. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +3 -3
  49. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +3 -3
  50. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +12 -7
  51. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +275 -107
  52. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +10 -3
  53. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +5 -0
  54. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +3 -3
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -3
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +6 -1
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +1 -2
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +3 -3
  59. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +3 -3
  60. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +3 -3
  61. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +1 -0
  62. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +3 -3
  63. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +3 -7
  64. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +3 -3
  65. data/src/core/ext/filters/client_channel/retry_filter.cc +10 -13
  66. data/src/core/ext/filters/client_channel/retry_filter.h +3 -3
  67. data/src/core/ext/filters/client_channel/retry_service_config.h +3 -3
  68. data/src/core/ext/filters/client_channel/retry_throttle.h +3 -3
  69. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +4 -4
  70. data/src/core/ext/filters/client_channel/subchannel.cc +5 -1
  71. data/src/core/ext/filters/client_channel/subchannel.h +3 -3
  72. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +3 -3
  73. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +3 -3
  74. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +3 -3
  75. data/src/core/ext/filters/deadline/deadline_filter.cc +40 -48
  76. data/src/core/ext/filters/deadline/deadline_filter.h +6 -10
  77. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +3 -3
  78. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
  79. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -21
  80. data/src/core/ext/filters/http/client/http_client_filter.h +3 -3
  81. data/src/core/ext/filters/http/client_authority_filter.h +3 -3
  82. data/src/core/ext/filters/http/message_compress/compression_filter.cc +109 -117
  83. data/src/core/ext/filters/http/message_compress/compression_filter.h +17 -10
  84. data/src/core/ext/filters/http/server/http_server_filter.cc +25 -24
  85. data/src/core/ext/filters/http/server/http_server_filter.h +3 -3
  86. data/src/core/ext/filters/message_size/message_size_filter.cc +2 -1
  87. data/src/core/ext/filters/message_size/message_size_filter.h +3 -3
  88. data/src/core/ext/filters/rbac/rbac_filter.cc +4 -3
  89. data/src/core/ext/filters/rbac/rbac_filter.h +3 -3
  90. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +3 -3
  91. data/src/core/ext/filters/server_config_selector/server_config_selector.h +3 -3
  92. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +3 -3
  93. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +27 -37
  94. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +5 -5
  95. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
  96. data/src/core/ext/transport/chttp2/alpn/alpn.h +3 -3
  97. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -7
  98. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +3 -3
  99. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1 -0
  100. data/src/core/ext/transport/chttp2/server/chttp2_server.h +3 -3
  101. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -3
  102. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +3 -3
  103. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +195 -111
  104. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -3
  105. data/src/core/ext/transport/chttp2/transport/context_list.h +3 -3
  106. data/src/core/ext/transport/chttp2/transport/decode_huff.h +3 -3
  107. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
  108. data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
  109. data/src/core/ext/transport/chttp2/transport/frame.h +3 -3
  110. data/src/core/ext/transport/chttp2/transport/frame_data.cc +2 -0
  111. data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -3
  112. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -0
  113. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -3
  114. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -0
  115. data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -3
  116. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -0
  117. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -3
  118. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +1 -0
  119. data/src/core/ext/transport/chttp2/transport/frame_settings.h +3 -3
  120. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +2 -0
  121. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -3
  122. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +3 -3
  123. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +3 -3
  124. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -3
  125. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +18 -407
  126. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -3
  127. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +1 -0
  128. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +3 -3
  129. data/src/core/ext/transport/chttp2/transport/http2_settings.h +3 -3
  130. data/src/core/ext/transport/chttp2/transport/http_trace.h +3 -3
  131. data/src/core/ext/transport/chttp2/transport/huffsyms.h +3 -3
  132. data/src/core/ext/transport/chttp2/transport/internal.h +28 -23
  133. data/src/core/ext/transport/chttp2/transport/parsing.cc +111 -31
  134. data/src/core/ext/transport/chttp2/transport/stream_map.h +3 -3
  135. data/src/core/ext/transport/chttp2/transport/varint.h +3 -3
  136. data/src/core/ext/transport/chttp2/transport/writing.cc +9 -8
  137. data/src/core/ext/transport/inproc/inproc_transport.h +3 -3
  138. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +3 -2
  139. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +9 -0
  140. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +38 -2
  141. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +185 -0
  142. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +7 -3
  143. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +44 -0
  144. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +16 -25
  145. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +48 -74
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +30 -7
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +137 -0
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +15 -12
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +83 -51
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +3 -2
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +15 -0
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +17 -2
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +61 -0
  154. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +11 -5
  155. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +37 -6
  156. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +5 -3
  157. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +24 -0
  158. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +5 -3
  159. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
  160. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +6 -3
  161. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +24 -0
  162. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -5
  163. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +50 -0
  164. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +57 -16
  165. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +254 -17
  166. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +3 -2
  167. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +9 -0
  168. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +3 -2
  169. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +9 -0
  170. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +7 -6
  171. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +21 -12
  172. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -3
  173. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +23 -0
  174. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +10 -7
  175. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +42 -12
  176. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +54 -0
  177. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +188 -0
  178. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +111 -0
  179. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +444 -0
  180. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +7 -3
  181. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
  182. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +8 -6
  183. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +31 -9
  184. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +5 -3
  185. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +24 -0
  186. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +47 -0
  187. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +113 -0
  188. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +43 -0
  189. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +114 -0
  190. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +3 -1
  191. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +54 -53
  192. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +34 -13
  193. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +10 -0
  194. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +195 -187
  195. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +232 -224
  196. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +0 -5
  197. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +95 -75
  198. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +5 -0
  199. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +94 -93
  200. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +81 -75
  201. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +189 -187
  202. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +7 -3
  203. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +5 -0
  204. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +71 -66
  205. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +137 -133
  206. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +16 -12
  207. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +140 -133
  208. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +81 -70
  209. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
  210. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +771 -741
  211. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
  212. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +16 -14
  213. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +14 -13
  214. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +20 -18
  215. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +53 -42
  216. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +363 -356
  217. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +149 -145
  218. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +16 -13
  219. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +48 -0
  220. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +35 -0
  221. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +14 -14
  222. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +40 -0
  223. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +40 -0
  224. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +10 -9
  225. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  226. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +1 -0
  227. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +3 -3
  228. data/src/core/ext/xds/upb_utils.h +3 -3
  229. data/src/core/ext/xds/xds_api.h +3 -3
  230. data/src/core/ext/xds/xds_bootstrap.h +3 -3
  231. data/src/core/ext/xds/xds_bootstrap_grpc.cc +1 -0
  232. data/src/core/ext/xds/xds_bootstrap_grpc.h +3 -3
  233. data/src/core/ext/xds/xds_certificate_provider.h +3 -3
  234. data/src/core/ext/xds/xds_channel_args.h +3 -3
  235. data/src/core/ext/xds/xds_channel_stack_modifier.h +3 -3
  236. data/src/core/ext/xds/xds_client.cc +8 -3
  237. data/src/core/ext/xds/xds_client.h +3 -3
  238. data/src/core/ext/xds/xds_client_grpc.cc +0 -1
  239. data/src/core/ext/xds/xds_client_grpc.h +3 -3
  240. data/src/core/ext/xds/xds_client_stats.h +4 -3
  241. data/src/core/ext/xds/xds_cluster.cc +11 -7
  242. data/src/core/ext/xds/xds_cluster.h +6 -6
  243. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +3 -3
  244. data/src/core/ext/xds/xds_common_types.cc +1 -0
  245. data/src/core/ext/xds/xds_common_types.h +3 -3
  246. data/src/core/ext/xds/xds_endpoint.cc +1 -1
  247. data/src/core/ext/xds/xds_endpoint.h +3 -3
  248. data/src/core/ext/xds/xds_health_status.h +30 -3
  249. data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
  250. data/src/core/ext/xds/xds_http_filters.cc +1 -1
  251. data/src/core/ext/xds/xds_http_filters.h +3 -3
  252. data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
  253. data/src/core/ext/xds/xds_http_stateful_session_filter.h +3 -3
  254. data/src/core/ext/xds/xds_lb_policy_registry.cc +95 -0
  255. data/src/core/ext/xds/xds_lb_policy_registry.h +3 -3
  256. data/src/core/ext/xds/xds_listener.cc +1 -0
  257. data/src/core/ext/xds/xds_listener.h +3 -3
  258. data/src/core/ext/xds/xds_resource_type.h +3 -3
  259. data/src/core/ext/xds/xds_resource_type_impl.h +3 -3
  260. data/src/core/ext/xds/xds_route_config.cc +6 -0
  261. data/src/core/ext/xds/xds_route_config.h +3 -3
  262. data/src/core/ext/xds/xds_routing.h +3 -3
  263. data/src/core/ext/xds/xds_transport.h +3 -3
  264. data/src/core/ext/xds/xds_transport_grpc.h +3 -3
  265. data/src/core/lib/address_utils/parse_address.h +3 -3
  266. data/src/core/lib/address_utils/sockaddr_utils.cc +1 -0
  267. data/src/core/lib/address_utils/sockaddr_utils.h +3 -3
  268. data/src/core/lib/avl/avl.h +3 -3
  269. data/src/core/lib/backoff/backoff.h +3 -3
  270. data/src/core/lib/channel/call_finalization.h +3 -3
  271. data/src/core/lib/channel/call_tracer.h +3 -3
  272. data/src/core/lib/channel/channel_args.cc +1 -0
  273. data/src/core/lib/channel/channel_args.h +11 -5
  274. data/src/core/lib/channel/channel_args_preconditioning.h +3 -3
  275. data/src/core/lib/channel/channel_fwd.h +3 -3
  276. data/src/core/lib/channel/channel_stack.cc +1 -2
  277. data/src/core/lib/channel/channel_stack.h +4 -4
  278. data/src/core/lib/channel/channel_stack_builder.h +3 -3
  279. data/src/core/lib/channel/channel_stack_builder_impl.cc +14 -1
  280. data/src/core/lib/channel/channel_stack_builder_impl.h +3 -3
  281. data/src/core/lib/channel/channel_trace.h +3 -3
  282. data/src/core/lib/channel/channelz.h +3 -3
  283. data/src/core/lib/channel/channelz_registry.h +3 -3
  284. data/src/core/lib/channel/connected_channel.cc +883 -354
  285. data/src/core/lib/channel/connected_channel.h +3 -3
  286. data/src/core/lib/channel/context.h +7 -3
  287. data/src/core/lib/channel/promise_based_filter.cc +532 -260
  288. data/src/core/lib/channel/promise_based_filter.h +124 -44
  289. data/src/core/lib/channel/status_util.h +3 -3
  290. data/src/core/lib/compression/compression_internal.h +3 -3
  291. data/src/core/lib/compression/message_compress.h +3 -3
  292. data/src/core/lib/config/core_configuration.h +3 -3
  293. data/src/core/lib/debug/event_log.h +3 -3
  294. data/src/core/lib/debug/histogram_view.h +3 -3
  295. data/src/core/lib/debug/stats.h +3 -3
  296. data/src/core/lib/debug/stats_data.cc +66 -65
  297. data/src/core/lib/debug/stats_data.h +42 -33
  298. data/src/core/lib/debug/trace.h +4 -26
  299. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +5 -0
  300. data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -3
  301. data/src/core/lib/event_engine/common_closures.h +3 -3
  302. data/src/core/lib/event_engine/default_event_engine.cc +9 -4
  303. data/src/core/lib/event_engine/default_event_engine.h +30 -6
  304. data/src/core/lib/event_engine/default_event_engine_factory.h +3 -3
  305. data/src/core/lib/event_engine/event_engine.cc +25 -0
  306. data/src/core/lib/event_engine/executor/executor.h +3 -3
  307. data/src/core/lib/event_engine/forkable.cc +11 -6
  308. data/src/core/lib/event_engine/forkable.h +3 -3
  309. data/src/core/lib/event_engine/handle_containers.h +10 -3
  310. data/src/core/lib/event_engine/poller.h +3 -3
  311. data/src/core/lib/event_engine/posix.h +158 -0
  312. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +44 -16
  313. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +14 -4
  314. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +6 -7
  315. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +3 -3
  316. data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -3
  317. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +3 -3
  318. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +3 -3
  319. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +3 -3
  320. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +52 -55
  321. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +46 -13
  322. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +82 -12
  323. data/src/core/lib/event_engine/posix_engine/posix_engine.h +23 -9
  324. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +3 -3
  325. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +60 -7
  326. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +65 -14
  327. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +0 -1
  328. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -6
  329. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -3
  330. data/src/core/lib/event_engine/posix_engine/timer.h +3 -3
  331. data/src/core/lib/event_engine/posix_engine/timer_heap.h +3 -3
  332. data/src/core/lib/event_engine/posix_engine/timer_manager.h +3 -3
  333. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +3 -3
  334. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +3 -3
  335. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +3 -3
  336. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +3 -3
  337. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -3
  338. data/src/core/lib/event_engine/resolved_address.cc +19 -0
  339. data/src/core/lib/event_engine/resolved_address_internal.h +34 -0
  340. data/src/core/lib/event_engine/shim.cc +56 -0
  341. data/src/core/lib/event_engine/shim.h +33 -0
  342. data/src/core/lib/event_engine/slice.cc +1 -1
  343. data/src/core/lib/event_engine/tcp_socket_utils.cc +18 -2
  344. data/src/core/lib/event_engine/tcp_socket_utils.h +8 -3
  345. data/src/core/lib/event_engine/thread_local.cc +29 -0
  346. data/src/core/lib/event_engine/thread_local.h +32 -0
  347. data/src/core/lib/event_engine/thread_pool.cc +41 -65
  348. data/src/core/lib/event_engine/thread_pool.h +21 -17
  349. data/src/core/lib/event_engine/time_util.h +3 -3
  350. data/src/core/lib/event_engine/trace.cc +6 -0
  351. data/src/core/lib/event_engine/trace.h +16 -3
  352. data/src/core/lib/event_engine/utils.cc +2 -2
  353. data/src/core/lib/event_engine/utils.h +12 -4
  354. data/src/core/lib/event_engine/windows/iocp.cc +24 -40
  355. data/src/core/lib/event_engine/windows/iocp.h +3 -3
  356. data/src/core/lib/event_engine/windows/win_socket.cc +56 -33
  357. data/src/core/lib/event_engine/windows/win_socket.h +34 -25
  358. data/src/core/lib/event_engine/windows/windows_endpoint.cc +331 -0
  359. data/src/core/lib/event_engine/windows/windows_endpoint.h +103 -0
  360. data/src/core/lib/event_engine/windows/windows_engine.cc +243 -20
  361. data/src/core/lib/event_engine/windows/windows_engine.h +62 -23
  362. data/src/core/lib/experiments/config.cc +16 -1
  363. data/src/core/lib/experiments/config.h +13 -3
  364. data/src/core/lib/experiments/experiments.cc +14 -8
  365. data/src/core/lib/experiments/experiments.h +80 -21
  366. data/src/core/lib/gpr/alloc.h +3 -3
  367. data/src/core/lib/gpr/spinlock.h +3 -3
  368. data/src/core/lib/gpr/string.h +3 -3
  369. data/src/core/lib/gpr/sync_abseil.cc +15 -7
  370. data/src/core/lib/gpr/time_precise.h +3 -3
  371. data/src/core/lib/gpr/tmpfile.h +3 -3
  372. data/src/core/lib/gpr/useful.h +3 -3
  373. data/src/core/lib/gprpp/atomic_utils.h +3 -3
  374. data/src/core/lib/gprpp/bitset.h +3 -3
  375. data/src/core/lib/gprpp/chunked_vector.h +3 -3
  376. data/src/core/lib/gprpp/construct_destruct.h +3 -3
  377. data/src/core/lib/gprpp/cpp_impl_of.h +3 -3
  378. data/src/core/lib/gprpp/crash.h +3 -3
  379. data/src/core/lib/gprpp/debug_location.h +3 -6
  380. data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
  381. data/src/core/lib/gprpp/env.h +3 -3
  382. data/src/core/lib/gprpp/examine_stack.h +3 -3
  383. data/src/core/lib/gprpp/fork.cc +21 -4
  384. data/src/core/lib/gprpp/fork.h +7 -5
  385. data/src/core/lib/gprpp/global_config.h +3 -3
  386. data/src/core/lib/gprpp/global_config_custom.h +3 -3
  387. data/src/core/lib/gprpp/global_config_env.cc +1 -0
  388. data/src/core/lib/gprpp/global_config_env.h +3 -3
  389. data/src/core/lib/gprpp/global_config_generic.h +3 -3
  390. data/src/core/lib/gprpp/host_port.cc +2 -0
  391. data/src/core/lib/gprpp/host_port.h +3 -3
  392. data/src/core/lib/gprpp/load_file.h +3 -3
  393. data/src/core/lib/gprpp/manual_constructor.h +3 -3
  394. data/src/core/lib/gprpp/match.h +3 -3
  395. data/src/core/lib/gprpp/memory.h +3 -3
  396. data/src/core/lib/gprpp/mpscq.h +3 -3
  397. data/src/core/lib/gprpp/no_destruct.h +3 -3
  398. data/src/core/lib/gprpp/notification.h +3 -3
  399. data/src/core/lib/gprpp/orphanable.h +3 -3
  400. data/src/core/lib/gprpp/overload.h +3 -3
  401. data/src/core/lib/gprpp/packed_table.h +3 -3
  402. data/src/core/lib/gprpp/per_cpu.h +3 -3
  403. data/src/core/lib/gprpp/ref_counted.h +3 -3
  404. data/src/core/lib/gprpp/ref_counted_ptr.h +3 -3
  405. data/src/core/lib/gprpp/single_set_ptr.h +3 -3
  406. data/src/core/lib/gprpp/sorted_pack.h +3 -3
  407. data/src/core/lib/gprpp/stat.h +3 -3
  408. data/src/core/lib/gprpp/status_helper.h +3 -3
  409. data/src/core/lib/gprpp/strerror.cc +2 -0
  410. data/src/core/lib/gprpp/strerror.h +3 -3
  411. data/src/core/lib/gprpp/sync.h +3 -3
  412. data/src/core/lib/gprpp/table.h +3 -3
  413. data/src/core/lib/gprpp/tchar.h +3 -3
  414. data/src/core/lib/gprpp/thd.h +3 -3
  415. data/src/core/lib/gprpp/time.cc +1 -0
  416. data/src/core/lib/gprpp/time.h +3 -3
  417. data/src/core/lib/gprpp/time_averaged_stats.h +3 -3
  418. data/src/core/lib/gprpp/time_util.h +3 -3
  419. data/src/core/lib/gprpp/unique_type_name.h +3 -3
  420. data/src/core/lib/gprpp/validation_errors.h +3 -3
  421. data/src/core/lib/gprpp/work_serializer.h +3 -3
  422. data/src/core/lib/handshaker/proxy_mapper.h +3 -3
  423. data/src/core/lib/handshaker/proxy_mapper_registry.h +3 -3
  424. data/src/core/lib/http/format_request.cc +1 -0
  425. data/src/core/lib/http/format_request.h +3 -3
  426. data/src/core/lib/http/httpcli.cc +1 -0
  427. data/src/core/lib/http/httpcli.h +3 -3
  428. data/src/core/lib/http/httpcli_ssl_credentials.h +3 -3
  429. data/src/core/lib/http/parser.h +3 -3
  430. data/src/core/lib/iomgr/block_annotate.h +3 -3
  431. data/src/core/lib/iomgr/buffer_list.h +3 -3
  432. data/src/core/lib/iomgr/call_combiner.cc +4 -4
  433. data/src/core/lib/iomgr/call_combiner.h +3 -3
  434. data/src/core/lib/iomgr/cfstream_handle.h +3 -3
  435. data/src/core/lib/iomgr/closure.cc +27 -0
  436. data/src/core/lib/iomgr/closure.h +5 -3
  437. data/src/core/lib/iomgr/combiner.h +3 -3
  438. data/src/core/lib/iomgr/dynamic_annotations.h +3 -3
  439. data/src/core/lib/iomgr/endpoint.h +3 -3
  440. data/src/core/lib/iomgr/endpoint_cfstream.h +3 -3
  441. data/src/core/lib/iomgr/endpoint_pair.h +3 -3
  442. data/src/core/lib/iomgr/endpoint_pair_windows.cc +10 -2
  443. data/src/core/lib/iomgr/error.h +3 -3
  444. data/src/core/lib/iomgr/error_cfstream.h +3 -3
  445. data/src/core/lib/iomgr/ev_apple.h +3 -3
  446. data/src/core/lib/iomgr/ev_epoll1_linux.h +3 -3
  447. data/src/core/lib/iomgr/ev_poll_posix.h +3 -3
  448. data/src/core/lib/iomgr/ev_posix.h +3 -3
  449. data/src/core/lib/iomgr/event_engine_shims/closure.cc +62 -0
  450. data/src/core/lib/iomgr/event_engine_shims/closure.h +39 -0
  451. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +430 -0
  452. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +43 -0
  453. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +91 -0
  454. data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +44 -0
  455. data/src/core/lib/iomgr/exec_ctx.h +3 -3
  456. data/src/core/lib/iomgr/executor.h +3 -3
  457. data/src/core/lib/iomgr/fork_posix.cc +5 -4
  458. data/src/core/lib/iomgr/gethostname.h +3 -3
  459. data/src/core/lib/iomgr/grpc_if_nametoindex.h +3 -3
  460. data/src/core/lib/iomgr/internal_errqueue.h +3 -3
  461. data/src/core/lib/iomgr/iocp_windows.h +3 -3
  462. data/src/core/lib/iomgr/iomgr.h +3 -3
  463. data/src/core/lib/iomgr/iomgr_fwd.h +3 -3
  464. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  465. data/src/core/lib/iomgr/load_file.h +3 -3
  466. data/src/core/lib/iomgr/lockfree_event.h +3 -3
  467. data/src/core/lib/iomgr/nameser.h +3 -3
  468. data/src/core/lib/iomgr/polling_entity.h +3 -3
  469. data/src/core/lib/iomgr/pollset.h +3 -3
  470. data/src/core/lib/iomgr/pollset_set.h +3 -3
  471. data/src/core/lib/iomgr/pollset_set_windows.h +3 -3
  472. data/src/core/lib/iomgr/pollset_windows.cc +2 -2
  473. data/src/core/lib/iomgr/pollset_windows.h +3 -3
  474. data/src/core/lib/iomgr/port.h +3 -3
  475. data/src/core/lib/iomgr/python_util.h +3 -3
  476. data/src/core/lib/iomgr/resolve_address.h +3 -3
  477. data/src/core/lib/iomgr/resolve_address_impl.h +3 -3
  478. data/src/core/lib/iomgr/resolve_address_posix.h +3 -3
  479. data/src/core/lib/iomgr/resolve_address_windows.h +3 -3
  480. data/src/core/lib/iomgr/resolved_address.h +3 -3
  481. data/src/core/lib/iomgr/sockaddr.h +3 -3
  482. data/src/core/lib/iomgr/sockaddr_posix.h +3 -3
  483. data/src/core/lib/iomgr/sockaddr_windows.h +3 -3
  484. data/src/core/lib/iomgr/socket_factory_posix.h +3 -3
  485. data/src/core/lib/iomgr/socket_mutator.h +3 -3
  486. data/src/core/lib/iomgr/socket_utils.h +3 -3
  487. data/src/core/lib/iomgr/socket_utils_posix.h +3 -3
  488. data/src/core/lib/iomgr/socket_windows.h +3 -3
  489. data/src/core/lib/iomgr/systemd_utils.cc +19 -19
  490. data/src/core/lib/iomgr/systemd_utils.h +24 -24
  491. data/src/core/lib/iomgr/tcp_client.h +3 -3
  492. data/src/core/lib/iomgr/tcp_client_posix.cc +12 -0
  493. data/src/core/lib/iomgr/tcp_client_posix.h +3 -3
  494. data/src/core/lib/iomgr/tcp_client_windows.cc +13 -1
  495. data/src/core/lib/iomgr/tcp_posix.cc +49 -65
  496. data/src/core/lib/iomgr/tcp_posix.h +3 -3
  497. data/src/core/lib/iomgr/tcp_server.h +3 -3
  498. data/src/core/lib/iomgr/tcp_server_posix.cc +219 -4
  499. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -3
  500. data/src/core/lib/iomgr/tcp_server_windows.cc +4 -6
  501. data/src/core/lib/iomgr/tcp_windows.h +3 -3
  502. data/src/core/lib/iomgr/timer.h +3 -3
  503. data/src/core/lib/iomgr/timer_generic.h +3 -3
  504. data/src/core/lib/iomgr/timer_heap.h +3 -3
  505. data/src/core/lib/iomgr/timer_manager.h +3 -3
  506. data/src/core/lib/iomgr/unix_sockets_posix.h +3 -3
  507. data/src/core/lib/iomgr/wakeup_fd_pipe.h +3 -3
  508. data/src/core/lib/iomgr/wakeup_fd_posix.h +3 -3
  509. data/src/core/lib/json/json.h +3 -3
  510. data/src/core/lib/json/json_args.h +3 -3
  511. data/src/core/lib/json/json_channel_args.h +3 -3
  512. data/src/core/lib/json/json_object_loader.h +3 -3
  513. data/src/core/lib/json/json_reader.cc +1 -0
  514. data/src/core/lib/json/json_util.h +3 -3
  515. data/src/core/lib/load_balancing/lb_policy.cc +9 -0
  516. data/src/core/lib/load_balancing/lb_policy.h +9 -5
  517. data/src/core/lib/load_balancing/lb_policy_factory.h +3 -3
  518. data/src/core/lib/load_balancing/lb_policy_registry.cc +1 -0
  519. data/src/core/lib/load_balancing/lb_policy_registry.h +3 -3
  520. data/src/core/lib/load_balancing/subchannel_interface.h +8 -6
  521. data/src/core/lib/matchers/matchers.cc +1 -0
  522. data/src/core/lib/matchers/matchers.h +3 -3
  523. data/src/core/lib/promise/activity.cc +8 -6
  524. data/src/core/lib/promise/activity.h +52 -66
  525. data/src/core/lib/promise/arena_promise.h +3 -3
  526. data/src/core/lib/promise/context.h +3 -3
  527. data/src/core/lib/promise/detail/basic_join.h +197 -0
  528. data/src/core/lib/promise/detail/basic_seq.h +10 -16
  529. data/src/core/lib/promise/detail/promise_factory.h +3 -3
  530. data/src/core/lib/promise/detail/promise_like.h +3 -3
  531. data/src/core/lib/promise/detail/status.h +3 -3
  532. data/src/core/lib/promise/detail/switch.h +3 -3
  533. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +3 -3
  534. data/src/core/lib/promise/if.h +195 -0
  535. data/src/core/lib/promise/interceptor_list.h +308 -0
  536. data/src/core/lib/promise/intra_activity_waiter.h +9 -3
  537. data/src/core/lib/promise/latch.h +99 -5
  538. data/src/core/lib/promise/loop.h +4 -4
  539. data/src/core/lib/promise/map.h +4 -6
  540. data/src/core/lib/promise/pipe.h +296 -193
  541. data/src/core/lib/promise/poll.h +113 -14
  542. data/src/core/lib/promise/promise.h +4 -5
  543. data/src/core/lib/promise/race.h +6 -9
  544. data/src/core/lib/promise/seq.h +3 -3
  545. data/src/core/lib/promise/sleep.h +3 -3
  546. data/src/core/lib/promise/{pipe.cc → trace.cc} +3 -2
  547. data/src/core/lib/promise/trace.h +24 -0
  548. data/src/core/lib/promise/try_join.h +82 -0
  549. data/src/core/lib/promise/try_seq.h +3 -3
  550. data/src/core/lib/resolver/resolver.h +3 -3
  551. data/src/core/lib/resolver/resolver_factory.h +4 -4
  552. data/src/core/lib/resolver/resolver_registry.cc +15 -0
  553. data/src/core/lib/resolver/resolver_registry.h +3 -3
  554. data/src/core/lib/resolver/server_address.cc +1 -0
  555. data/src/core/lib/resolver/server_address.h +3 -3
  556. data/src/core/lib/resource_quota/api.h +3 -3
  557. data/src/core/lib/resource_quota/arena.cc +36 -9
  558. data/src/core/lib/resource_quota/arena.h +84 -22
  559. data/src/core/lib/resource_quota/memory_quota.h +3 -3
  560. data/src/core/lib/resource_quota/periodic_update.h +3 -3
  561. data/src/core/lib/resource_quota/resource_quota.h +3 -3
  562. data/src/core/lib/resource_quota/thread_quota.h +3 -3
  563. data/src/core/lib/resource_quota/trace.h +3 -3
  564. data/src/core/lib/security/authorization/authorization_engine.h +3 -3
  565. data/src/core/lib/security/authorization/authorization_policy_provider.h +3 -3
  566. data/src/core/lib/security/authorization/evaluate_args.h +3 -3
  567. data/src/core/lib/security/authorization/grpc_authorization_engine.h +3 -3
  568. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +3 -3
  569. data/src/core/lib/security/authorization/matchers.h +3 -3
  570. data/src/core/lib/security/authorization/rbac_policy.cc +1 -0
  571. data/src/core/lib/security/authorization/rbac_policy.h +3 -3
  572. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +3 -3
  573. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +3 -3
  574. data/src/core/lib/security/context/security_context.h +3 -3
  575. data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -3
  576. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +3 -3
  577. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +3 -3
  578. data/src/core/lib/security/credentials/call_creds_util.h +3 -3
  579. data/src/core/lib/security/credentials/channel_creds_registry.h +3 -3
  580. data/src/core/lib/security/credentials/composite/composite_credentials.h +3 -3
  581. data/src/core/lib/security/credentials/credentials.h +3 -3
  582. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +1 -0
  583. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +3 -3
  584. data/src/core/lib/security/credentials/external/aws_request_signer.cc +1 -0
  585. data/src/core/lib/security/credentials/external/aws_request_signer.h +3 -3
  586. data/src/core/lib/security/credentials/external/external_account_credentials.cc +1 -0
  587. data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
  588. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +3 -3
  589. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -0
  590. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +3 -3
  591. data/src/core/lib/security/credentials/fake/fake_credentials.h +3 -3
  592. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +3 -3
  593. data/src/core/lib/security/credentials/iam/iam_credentials.cc +1 -0
  594. data/src/core/lib/security/credentials/iam/iam_credentials.h +3 -3
  595. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -3
  596. data/src/core/lib/security/credentials/jwt/json_token.h +3 -3
  597. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
  598. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
  599. data/src/core/lib/security/credentials/local/local_credentials.h +3 -3
  600. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -3
  601. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +3 -3
  602. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -3
  603. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +3 -3
  604. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +1 -1
  605. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +3 -3
  606. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +3 -3
  607. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +3 -3
  608. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -3
  609. data/src/core/lib/security/credentials/tls/tls_utils.h +3 -3
  610. data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
  611. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
  612. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -0
  613. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +3 -3
  614. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +3 -3
  615. data/src/core/lib/security/security_connector/load_system_roots.h +3 -3
  616. data/src/core/lib/security/security_connector/load_system_roots_supported.h +3 -3
  617. data/src/core/lib/security/security_connector/local/local_security_connector.h +3 -3
  618. data/src/core/lib/security/security_connector/security_connector.h +3 -3
  619. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +1 -0
  620. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +3 -3
  621. data/src/core/lib/security/security_connector/ssl_utils.h +3 -3
  622. data/src/core/lib/security/security_connector/ssl_utils_config.h +3 -3
  623. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +3 -3
  624. data/src/core/lib/security/transport/auth_filters.h +27 -5
  625. data/src/core/lib/security/transport/secure_endpoint.h +3 -3
  626. data/src/core/lib/security/transport/security_handshaker.cc +9 -0
  627. data/src/core/lib/security/transport/security_handshaker.h +3 -3
  628. data/src/core/lib/security/transport/server_auth_filter.cc +120 -251
  629. data/src/core/lib/security/transport/tsi_error.h +3 -3
  630. data/src/core/lib/security/util/json_util.h +3 -3
  631. data/src/core/lib/service_config/service_config.h +3 -3
  632. data/src/core/lib/service_config/service_config_call_data.h +3 -3
  633. data/src/core/lib/service_config/service_config_impl.h +3 -3
  634. data/src/core/lib/service_config/service_config_parser.h +3 -3
  635. data/src/core/lib/slice/b64.h +3 -3
  636. data/src/core/lib/slice/percent_encoding.h +3 -3
  637. data/src/core/lib/slice/slice.cc +3 -3
  638. data/src/core/lib/slice/slice.h +14 -21
  639. data/src/core/lib/slice/slice_buffer.h +10 -4
  640. data/src/core/lib/slice/slice_internal.h +3 -3
  641. data/src/core/lib/slice/slice_refcount.cc +20 -0
  642. data/src/core/lib/slice/slice_refcount.h +26 -6
  643. data/src/core/lib/slice/slice_string_helpers.h +3 -3
  644. data/src/core/lib/surface/api_trace.h +3 -3
  645. data/src/core/lib/surface/builtins.h +3 -3
  646. data/src/core/lib/surface/call.cc +866 -252
  647. data/src/core/lib/surface/call.h +31 -3
  648. data/src/core/lib/surface/call_log_batch.cc +1 -0
  649. data/src/core/lib/surface/call_test_only.h +3 -3
  650. data/src/core/lib/surface/call_trace.cc +21 -11
  651. data/src/core/lib/surface/call_trace.h +3 -3
  652. data/src/core/lib/surface/channel.h +3 -3
  653. data/src/core/lib/surface/channel_init.h +3 -3
  654. data/src/core/lib/surface/channel_stack_type.h +3 -3
  655. data/src/core/lib/surface/completion_queue.cc +1 -0
  656. data/src/core/lib/surface/completion_queue.h +3 -3
  657. data/src/core/lib/surface/completion_queue_factory.h +3 -3
  658. data/src/core/lib/surface/event_string.cc +1 -0
  659. data/src/core/lib/surface/event_string.h +3 -3
  660. data/src/core/lib/surface/init.cc +1 -1
  661. data/src/core/lib/surface/init.h +3 -3
  662. data/src/core/lib/surface/init_internally.h +3 -3
  663. data/src/core/lib/surface/lame_client.cc +3 -1
  664. data/src/core/lib/surface/lame_client.h +3 -3
  665. data/src/core/lib/surface/server.cc +273 -27
  666. data/src/core/lib/surface/server.h +6 -3
  667. data/src/core/lib/surface/validate_metadata.h +3 -3
  668. data/src/core/lib/surface/version.cc +2 -2
  669. data/src/core/lib/transport/bdp_estimator.h +3 -3
  670. data/src/core/lib/transport/connectivity_state.h +3 -3
  671. data/src/core/lib/transport/error_utils.h +3 -3
  672. data/src/core/lib/transport/handshaker.cc +11 -0
  673. data/src/core/lib/transport/handshaker.h +4 -4
  674. data/src/core/lib/transport/handshaker_factory.h +3 -3
  675. data/src/core/lib/transport/handshaker_registry.h +3 -3
  676. data/src/core/lib/transport/http2_errors.h +3 -3
  677. data/src/core/lib/transport/http_connect_handshaker.h +3 -3
  678. data/src/core/lib/transport/metadata_batch.cc +11 -0
  679. data/src/core/lib/transport/metadata_batch.h +24 -3
  680. data/src/core/lib/transport/parsed_metadata.h +3 -3
  681. data/src/core/lib/transport/pid_controller.h +3 -3
  682. data/src/core/lib/transport/status_conversion.h +3 -3
  683. data/src/core/lib/transport/tcp_connect_handshaker.cc +0 -1
  684. data/src/core/lib/transport/tcp_connect_handshaker.h +3 -3
  685. data/src/core/lib/transport/timeout_encoding.h +3 -3
  686. data/src/core/lib/transport/transport.cc +3 -8
  687. data/src/core/lib/transport/transport.h +16 -8
  688. data/src/core/lib/transport/transport_fwd.h +3 -3
  689. data/src/core/lib/transport/transport_impl.h +3 -3
  690. data/src/core/lib/transport/transport_op_string.cc +1 -0
  691. data/src/core/lib/uri/uri_parser.cc +1 -1
  692. data/src/core/lib/uri/uri_parser.h +3 -3
  693. data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -0
  694. data/src/core/tsi/alts/crypt/gsec.h +3 -3
  695. data/src/core/tsi/alts/frame_protector/alts_counter.h +3 -3
  696. data/src/core/tsi/alts/frame_protector/alts_crypter.h +3 -3
  697. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +3 -3
  698. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +3 -3
  699. data/src/core/tsi/alts/frame_protector/frame_handler.h +3 -3
  700. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +3 -3
  701. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +3 -3
  702. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +3 -3
  703. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +3 -3
  704. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +3 -3
  705. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +3 -3
  706. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +3 -3
  707. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +3 -3
  708. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +3 -3
  709. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +3 -3
  710. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +3 -3
  711. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +3 -3
  712. data/src/core/tsi/fake_transport_security.h +3 -3
  713. data/src/core/tsi/local_transport_security.h +3 -3
  714. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +1 -1
  715. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +3 -3
  716. data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -3
  717. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -3
  718. data/src/core/tsi/ssl_transport_security.cc +113 -24
  719. data/src/core/tsi/ssl_transport_security.h +5 -3
  720. data/src/core/tsi/ssl_transport_security_utils.h +3 -3
  721. data/src/core/tsi/ssl_types.h +3 -3
  722. data/src/core/tsi/transport_security.h +3 -3
  723. data/src/core/tsi/transport_security_grpc.h +3 -3
  724. data/src/core/tsi/transport_security_interface.h +3 -3
  725. data/src/ruby/lib/grpc/version.rb +1 -1
  726. data/src/ruby/pb/generate_proto_ruby.sh +0 -6
  727. data/third_party/abseil-cpp/absl/algorithm/container.h +56 -57
  728. data/third_party/abseil-cpp/absl/base/attributes.h +39 -19
  729. data/third_party/abseil-cpp/absl/base/config.h +44 -3
  730. data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +3 -18
  731. data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
  732. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -1
  733. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +3 -3
  734. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +2 -2
  735. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +1 -1
  736. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +10 -6
  737. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +23 -24
  738. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -3
  739. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +2 -6
  740. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +4 -1
  741. data/third_party/abseil-cpp/absl/base/internal/strerror.cc +4 -4
  742. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -10
  743. data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +9 -0
  744. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -0
  745. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -40
  746. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
  747. data/third_party/abseil-cpp/absl/base/macros.h +4 -21
  748. data/third_party/abseil-cpp/absl/base/optimization.h +58 -6
  749. data/third_party/abseil-cpp/absl/base/options.h +1 -7
  750. data/third_party/abseil-cpp/absl/base/policy_checks.h +15 -13
  751. data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -5
  752. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -7
  753. data/third_party/abseil-cpp/absl/container/inlined_vector.h +66 -18
  754. data/third_party/abseil-cpp/absl/container/internal/common.h +3 -3
  755. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +132 -0
  756. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +13 -1
  757. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +4 -55
  758. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +50 -5
  759. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +14 -46
  760. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +110 -32
  761. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +155 -4
  762. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +661 -341
  763. data/third_party/abseil-cpp/absl/crc/crc32c.cc +99 -0
  764. data/third_party/abseil-cpp/absl/crc/crc32c.h +183 -0
  765. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +256 -0
  766. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +57 -0
  767. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +468 -0
  768. data/third_party/abseil-cpp/absl/crc/internal/crc.h +91 -0
  769. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +269 -0
  770. data/third_party/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
  771. data/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
  772. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +130 -0
  773. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
  774. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +179 -0
  775. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h +119 -0
  776. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +75 -0
  777. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +434 -0
  778. data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
  779. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +725 -0
  780. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +79 -0
  781. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +180 -0
  782. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +1 -1
  783. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +67 -38
  784. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +1 -1
  785. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -13
  786. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -9
  787. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +1 -1
  788. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +40 -85
  789. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +5 -4
  790. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +33 -8
  791. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +3 -2
  792. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +3 -2
  793. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +118 -94
  794. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +7 -6
  795. data/third_party/abseil-cpp/absl/functional/any_invocable.h +5 -2
  796. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +47 -26
  797. data/third_party/abseil-cpp/absl/hash/internal/city.cc +10 -10
  798. data/third_party/abseil-cpp/absl/hash/internal/hash.h +18 -4
  799. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +3 -14
  800. data/third_party/abseil-cpp/absl/memory/memory.h +26 -447
  801. data/third_party/abseil-cpp/absl/meta/type_traits.h +104 -12
  802. data/third_party/abseil-cpp/absl/numeric/bits.h +2 -3
  803. data/third_party/abseil-cpp/absl/numeric/int128.cc +10 -8
  804. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +14 -6
  805. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
  806. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +1 -1
  807. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +2 -23
  808. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +9 -9
  809. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +2 -2
  810. data/third_party/abseil-cpp/absl/random/random.h +6 -6
  811. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +1 -0
  812. data/third_party/abseil-cpp/absl/status/status.cc +19 -12
  813. data/third_party/abseil-cpp/absl/status/status.h +2 -2
  814. data/third_party/abseil-cpp/absl/strings/ascii.cc +5 -5
  815. data/third_party/abseil-cpp/absl/strings/charconv.cc +534 -96
  816. data/third_party/abseil-cpp/absl/strings/cord.cc +92 -40
  817. data/third_party/abseil-cpp/absl/strings/cord.h +71 -80
  818. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +8 -5
  819. data/third_party/abseil-cpp/absl/strings/escaping.cc +73 -62
  820. data/third_party/abseil-cpp/absl/strings/escaping.h +24 -19
  821. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +14 -12
  822. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +4 -4
  823. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  824. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +326 -70
  825. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +8 -4
  826. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +26 -14
  827. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +5 -5
  828. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +9 -7
  829. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +5 -4
  830. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +7 -15
  831. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +3 -3
  832. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +8 -5
  833. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +7 -7
  834. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +4 -4
  835. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +93 -0
  836. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +34 -0
  837. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +12 -10
  838. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +7 -9
  839. data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +55 -0
  840. data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +9 -6
  841. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +14 -7
  842. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +35 -10
  843. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +113 -46
  844. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +126 -29
  845. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -2
  846. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +4 -3
  847. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +49 -287
  848. data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +351 -0
  849. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +2 -1
  850. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +4 -2
  851. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +215 -181
  852. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +10 -209
  853. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +10 -101
  854. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -1
  855. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
  856. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +57 -0
  857. data/third_party/abseil-cpp/absl/strings/numbers.cc +34 -31
  858. data/third_party/abseil-cpp/absl/strings/str_cat.cc +9 -6
  859. data/third_party/abseil-cpp/absl/strings/str_cat.h +50 -3
  860. data/third_party/abseil-cpp/absl/strings/str_format.h +71 -9
  861. data/third_party/abseil-cpp/absl/strings/string_view.cc +6 -6
  862. data/third_party/abseil-cpp/absl/strings/string_view.h +3 -10
  863. data/third_party/abseil-cpp/absl/strings/substitute.cc +8 -6
  864. data/third_party/abseil-cpp/absl/strings/substitute.h +46 -20
  865. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +20 -17
  866. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +37 -31
  867. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +22 -8
  868. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +104 -55
  869. data/third_party/abseil-cpp/absl/synchronization/mutex.h +85 -46
  870. data/third_party/abseil-cpp/absl/synchronization/notification.cc +0 -1
  871. data/third_party/abseil-cpp/absl/synchronization/notification.h +0 -1
  872. data/third_party/abseil-cpp/absl/time/civil_time.cc +26 -0
  873. data/third_party/abseil-cpp/absl/time/civil_time.h +25 -0
  874. data/third_party/abseil-cpp/absl/time/clock.cc +17 -11
  875. data/third_party/abseil-cpp/absl/time/duration.cc +7 -7
  876. data/third_party/abseil-cpp/absl/time/format.cc +2 -1
  877. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
  878. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +26 -5
  879. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +7 -6
  880. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +36 -35
  881. data/third_party/abseil-cpp/absl/time/time.cc +2 -2
  882. data/third_party/abseil-cpp/absl/time/time.h +253 -158
  883. data/third_party/abseil-cpp/absl/types/internal/span.h +30 -19
  884. data/third_party/abseil-cpp/absl/types/internal/variant.h +28 -40
  885. data/third_party/abseil-cpp/absl/types/span.h +29 -7
  886. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +1 -1
  887. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +1 -2
  888. metadata +75 -10
  889. data/src/core/lib/event_engine/socket_notifier.h +0 -55
  890. data/src/core/lib/promise/for_each.h +0 -155
  891. data/src/core/lib/promise/map_pipe.h +0 -88
  892. data/src/core/lib/promise/try_concurrently.h +0 -342
@@ -20,11 +20,11 @@
20
20
 
21
21
  #include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
22
22
 
23
- #include <assert.h>
24
23
  #include <stddef.h>
25
24
  #include <stdlib.h>
26
25
 
27
26
  #include <algorithm>
27
+ #include <initializer_list>
28
28
  #include <string>
29
29
  #include <utility>
30
30
 
@@ -43,8 +43,9 @@
43
43
 
44
44
  #include "src/core/ext/transport/chttp2/transport/decode_huff.h"
45
45
  #include "src/core/ext/transport/chttp2/transport/hpack_constants.h"
46
+ #include "src/core/lib/debug/stats.h"
47
+ #include "src/core/lib/debug/stats_data.h"
46
48
  #include "src/core/lib/debug/trace.h"
47
- #include "src/core/lib/experiments/experiments.h"
48
49
  #include "src/core/lib/gprpp/status_helper.h"
49
50
  #include "src/core/lib/slice/slice.h"
50
51
  #include "src/core/lib/slice/slice_refcount.h"
@@ -56,379 +57,6 @@ namespace grpc_core {
56
57
 
57
58
  TraceFlag grpc_trace_chttp2_hpack_parser(false, "chttp2_hpack_parser");
58
59
 
59
- // state table for huffman decoding: given a state, gives an index/16 into
60
- // next_sub_tbl. Taking that index and adding the value of the nibble being
61
- // considered returns the next state.
62
- // generated by gen_hpack_tables.c
63
- // TODO(ctiller): remove once the new_hpack_huffman_decoder experiment is
64
- // complete.
65
- static const uint8_t next_tbl[256] = {
66
- 0, 1, 2, 3, 4, 1, 2, 5, 6, 1, 7, 8, 1, 3, 3, 9, 10, 11, 1, 1,
67
- 1, 12, 1, 2, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
68
- 14, 1, 15, 16, 1, 17, 1, 15, 2, 7, 3, 18, 19, 1, 1, 1, 1, 20, 1, 1,
69
- 1, 1, 1, 1, 1, 1, 1, 1, 15, 2, 2, 7, 21, 1, 22, 1, 1, 1, 1, 1,
70
- 1, 1, 1, 15, 2, 2, 2, 2, 2, 2, 23, 24, 25, 1, 1, 1, 1, 2, 2, 2,
71
- 26, 3, 3, 27, 10, 28, 1, 1, 1, 1, 1, 1, 2, 3, 29, 10, 30, 1, 1, 1,
72
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 31, 1, 1, 1, 1, 1, 1, 1, 2,
73
- 2, 2, 2, 2, 2, 2, 2, 32, 1, 1, 15, 33, 1, 34, 35, 9, 36, 1, 1, 1,
74
- 1, 1, 1, 1, 37, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 26, 9,
75
- 38, 1, 1, 1, 1, 1, 1, 1, 15, 2, 2, 2, 2, 26, 3, 3, 39, 1, 1, 1,
76
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 7, 3, 3, 3, 40, 2,
77
- 41, 1, 1, 1, 42, 43, 1, 1, 44, 1, 1, 1, 1, 15, 2, 2, 2, 2, 2, 2,
78
- 3, 3, 3, 45, 46, 1, 1, 2, 2, 2, 35, 3, 3, 18, 47, 2,
79
- };
80
-
81
- // next state, based upon current state and the current nibble: see above.
82
- // generated by gen_hpack_tables.c
83
- static const int16_t next_sub_tbl[48 * 16] = {
84
- 1, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
85
- 218, 2, 6, 10, 13, 14, 15, 16, 17, 2, 6, 10, 13, 14, 15,
86
- 16, 17, 3, 7, 11, 24, 3, 7, 11, 24, 3, 7, 11, 24, 3,
87
- 7, 11, 24, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8,
88
- 4, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
89
- 199, 200, 201, 202, 203, 4, 8, 4, 8, 0, 0, 0, 0, 0, 0,
90
- 0, 0, 0, 0, 0, 0, 9, 133, 134, 135, 136, 137, 138, 139, 140,
91
- 141, 142, 143, 144, 145, 146, 147, 3, 7, 11, 24, 3, 7, 11, 24,
92
- 4, 8, 4, 8, 4, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0,
93
- 0, 0, 0, 0, 0, 0, 0, 12, 132, 4, 8, 4, 8, 4, 8,
94
- 4, 8, 4, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
95
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
96
- 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, 20, 21, 4, 8, 4,
97
- 8, 4, 8, 4, 8, 4, 8, 0, 0, 0, 22, 23, 91, 25, 26,
98
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 3,
99
- 7, 11, 24, 3, 7, 11, 24, 0, 0, 0, 0, 0, 41, 42, 43,
100
- 2, 6, 10, 13, 14, 15, 16, 17, 3, 7, 11, 24, 3, 7, 11,
101
- 24, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 0, 0,
102
- 44, 45, 2, 6, 10, 13, 14, 15, 16, 17, 46, 47, 48, 49, 50,
103
- 51, 52, 57, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
104
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
105
- 0, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
106
- 68, 69, 70, 71, 72, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
107
- 0, 0, 0, 0, 0, 0, 73, 75, 76, 77, 78, 79, 80, 81, 82,
108
- 83, 84, 85, 86, 87, 88, 89, 90, 3, 7, 11, 24, 3, 7, 11,
109
- 24, 3, 7, 11, 24, 0, 0, 0, 0, 3, 7, 11, 24, 3, 7,
110
- 11, 24, 4, 8, 4, 8, 0, 0, 0, 92, 0, 0, 0, 93, 94,
111
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 3, 7, 11, 24,
112
- 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4,
113
- 8, 4, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
114
- 0, 0, 0, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 4,
115
- 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 0, 0,
116
- 0, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
117
- 131, 2, 6, 10, 13, 14, 15, 16, 17, 4, 8, 4, 8, 4, 8,
118
- 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 148,
119
- 149, 150, 151, 3, 7, 11, 24, 4, 8, 4, 8, 0, 0, 0, 0,
120
- 0, 0, 152, 153, 3, 7, 11, 24, 3, 7, 11, 24, 3, 7, 11,
121
- 24, 154, 155, 156, 164, 3, 7, 11, 24, 3, 7, 11, 24, 3, 7,
122
- 11, 24, 4, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
123
- 157, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 169, 170, 171, 172,
124
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
125
- 188, 189, 190, 191, 192, 193, 194, 195, 196, 4, 8, 4, 8, 4, 8,
126
- 4, 8, 4, 8, 4, 8, 4, 8, 197, 198, 4, 8, 4, 8, 4,
127
- 8, 4, 8, 0, 0, 0, 0, 0, 0, 219, 220, 3, 7, 11, 24,
128
- 4, 8, 4, 8, 4, 8, 0, 0, 221, 222, 223, 224, 3, 7, 11,
129
- 24, 3, 7, 11, 24, 4, 8, 4, 8, 4, 8, 225, 228, 4, 8,
130
- 4, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 226, 227, 229,
131
- 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
132
- 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 0, 0, 0, 0, 0,
133
- 0, 0, 0, 0, 0, 0, 0, 245, 246, 247, 248, 249, 250, 251, 252,
134
- 253, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
135
- 0, 0, 255,
136
- };
137
-
138
- // emission table: indexed like next_tbl, ultimately gives the byte to be
139
- // emitted, or -1 for no byte, or 256 for end of stream
140
- // generated by gen_hpack_tables.c
141
- static const uint16_t emit_tbl[256] = {
142
- 0, 1, 2, 3, 4, 5, 6, 7, 0, 8, 9, 10, 11, 12, 13,
143
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, 23, 24, 25, 26, 27,
144
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
145
- 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, 56,
146
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
147
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
148
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
149
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
150
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
151
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
152
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 0,
153
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
154
- 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
155
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
156
- 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
157
- 219, 220, 221, 0, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
158
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
159
- 248,
160
- };
161
-
162
- // generated by gen_hpack_tables.c
163
- static const int16_t emit_sub_tbl[249 * 16] = {
164
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
165
- -1, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49,
166
- 49, 49, 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 97,
167
- 97, 97, 97, 48, 48, 49, 49, 50, 50, 97, 97, 99, 99, 101, 101,
168
- 105, 105, 111, 111, 48, 49, 50, 97, 99, 101, 105, 111, 115, 116, -1,
169
- -1, -1, -1, -1, -1, 32, 32, 32, 32, 32, 32, 32, 32, 37, 37,
170
- 37, 37, 37, 37, 37, 37, 99, 99, 99, 99, 101, 101, 101, 101, 105,
171
- 105, 105, 105, 111, 111, 111, 111, 115, 115, 116, 116, 32, 37, 45, 46,
172
- 47, 51, 52, 53, 54, 55, 56, 57, 61, 61, 61, 61, 61, 61, 61,
173
- 61, 65, 65, 65, 65, 65, 65, 65, 65, 115, 115, 115, 115, 116, 116,
174
- 116, 116, 32, 32, 37, 37, 45, 45, 46, 46, 61, 65, 95, 98, 100,
175
- 102, 103, 104, 108, 109, 110, 112, 114, 117, -1, -1, 58, 58, 58, 58,
176
- 58, 58, 58, 58, 66, 66, 66, 66, 66, 66, 66, 66, 47, 47, 51,
177
- 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 61, 61,
178
- 65, 65, 95, 95, 98, 98, 100, 100, 102, 102, 103, 103, 104, 104, 108,
179
- 108, 109, 109, 110, 110, 112, 112, 114, 114, 117, 117, 58, 66, 67, 68,
180
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
181
- 84, 85, 86, 87, 89, 106, 107, 113, 118, 119, 120, 121, 122, -1, -1,
182
- -1, -1, 38, 38, 38, 38, 38, 38, 38, 38, 42, 42, 42, 42, 42,
183
- 42, 42, 42, 44, 44, 44, 44, 44, 44, 44, 44, 59, 59, 59, 59,
184
- 59, 59, 59, 59, 88, 88, 88, 88, 88, 88, 88, 88, 90, 90, 90,
185
- 90, 90, 90, 90, 90, 33, 33, 34, 34, 40, 40, 41, 41, 63, 63,
186
- 39, 43, 124, -1, -1, -1, 35, 35, 35, 35, 35, 35, 35, 35, 62,
187
- 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, 36, 36, 36, 36,
188
- 64, 64, 64, 64, 91, 91, 91, 91, 69, 69, 69, 69, 69, 69, 69,
189
- 69, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71,
190
- 71, 71, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73,
191
- 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75,
192
- 75, 75, 75, 75, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77,
193
- 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79,
194
- 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 81,
195
- 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82, 82,
196
- 83, 83, 83, 83, 83, 83, 83, 83, 84, 84, 84, 84, 84, 84, 84,
197
- 84, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86,
198
- 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 89, 89, 89, 89, 89,
199
- 89, 89, 89, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107,
200
- 107, 107, 107, 107, 113, 113, 113, 113, 113, 113, 113, 113, 118, 118, 118,
201
- 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 119, 119, 120, 120,
202
- 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 122,
203
- 122, 122, 122, 122, 122, 122, 122, 38, 38, 38, 38, 42, 42, 42, 42,
204
- 44, 44, 44, 44, 59, 59, 59, 59, 88, 88, 88, 88, 90, 90, 90,
205
- 90, 33, 34, 40, 41, 63, -1, -1, -1, 39, 39, 39, 39, 39, 39,
206
- 39, 39, 43, 43, 43, 43, 43, 43, 43, 43, 124, 124, 124, 124, 124,
207
- 124, 124, 124, 35, 35, 35, 35, 62, 62, 62, 62, 0, 0, 36, 36,
208
- 64, 64, 91, 91, 93, 93, 126, 126, 94, 125, -1, -1, 60, 60, 60,
209
- 60, 60, 60, 60, 60, 96, 96, 96, 96, 96, 96, 96, 96, 123, 123,
210
- 123, 123, 123, 123, 123, 123, -1, -1, -1, -1, -1, -1, -1, -1, 92,
211
- 92, 92, 92, 92, 92, 92, 92, 195, 195, 195, 195, 195, 195, 195, 195,
212
- 208, 208, 208, 208, 208, 208, 208, 208, 128, 128, 128, 128, 130, 130, 130,
213
- 130, 131, 131, 131, 131, 162, 162, 162, 162, 184, 184, 184, 184, 194, 194,
214
- 194, 194, 224, 224, 224, 224, 226, 226, 226, 226, 153, 153, 161, 161, 167,
215
- 167, 172, 172, 176, 176, 177, 177, 179, 179, 209, 209, 216, 216, 217, 217,
216
- 227, 227, 229, 229, 230, 230, 129, 132, 133, 134, 136, 146, 154, 156, 160,
217
- 163, 164, 169, 170, 173, 178, 181, 185, 186, 187, 189, 190, 196, 198, 228,
218
- 232, 233, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 135,
219
- 135, 135, 135, 135, 135, 135, 135, 137, 137, 137, 137, 137, 137, 137, 137,
220
- 138, 138, 138, 138, 138, 138, 138, 138, 139, 139, 139, 139, 139, 139, 139,
221
- 139, 140, 140, 140, 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141,
222
- 141, 141, 143, 143, 143, 143, 143, 143, 143, 143, 147, 147, 147, 147, 147,
223
- 147, 147, 147, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150,
224
- 150, 150, 150, 150, 151, 151, 151, 151, 151, 151, 151, 151, 152, 152, 152,
225
- 152, 152, 152, 152, 152, 155, 155, 155, 155, 155, 155, 155, 155, 157, 157,
226
- 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, 158, 158, 165,
227
- 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166,
228
- 168, 168, 168, 168, 168, 168, 168, 168, 174, 174, 174, 174, 174, 174, 174,
229
- 174, 175, 175, 175, 175, 175, 175, 175, 175, 180, 180, 180, 180, 180, 180,
230
- 180, 180, 182, 182, 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183,
231
- 183, 183, 183, 188, 188, 188, 188, 188, 188, 188, 188, 191, 191, 191, 191,
232
- 191, 191, 191, 191, 197, 197, 197, 197, 197, 197, 197, 197, 231, 231, 231,
233
- 231, 231, 231, 231, 231, 239, 239, 239, 239, 239, 239, 239, 239, 9, 9,
234
- 9, 9, 142, 142, 142, 142, 144, 144, 144, 144, 145, 145, 145, 145, 148,
235
- 148, 148, 148, 159, 159, 159, 159, 171, 171, 171, 171, 206, 206, 206, 206,
236
- 215, 215, 215, 215, 225, 225, 225, 225, 236, 236, 236, 236, 237, 237, 237,
237
- 237, 199, 199, 207, 207, 234, 234, 235, 235, 192, 193, 200, 201, 202, 205,
238
- 210, 213, 218, 219, 238, 240, 242, 243, 255, -1, 203, 203, 203, 203, 203,
239
- 203, 203, 203, 204, 204, 204, 204, 204, 204, 204, 204, 211, 211, 211, 211,
240
- 211, 211, 211, 211, 212, 212, 212, 212, 212, 212, 212, 212, 214, 214, 214,
241
- 214, 214, 214, 214, 214, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222,
242
- 222, 222, 222, 222, 222, 222, 223, 223, 223, 223, 223, 223, 223, 223, 241,
243
- 241, 241, 241, 241, 241, 241, 241, 244, 244, 244, 244, 244, 244, 244, 244,
244
- 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246,
245
- 246, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248,
246
- 248, 248, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251,
247
- 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253,
248
- 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 2, 2, 2,
249
- 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6,
250
- 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 11, 11, 11, 11, 12,
251
- 12, 12, 12, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16,
252
- 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20,
253
- 20, 21, 21, 21, 21, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25,
254
- 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29,
255
- 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 127, 127, 127, 127,
256
- 220, 220, 220, 220, 249, 249, 249, 249, 10, 13, 22, 256, 93, 93, 93,
257
- 93, 126, 126, 126, 126, 94, 94, 125, 125, 60, 96, 123, -1, 92, 195,
258
- 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128,
259
- 128, 128, 128, 128, 128, 128, 128, 130, 130, 130, 130, 130, 130, 130, 130,
260
- 131, 131, 131, 131, 131, 131, 131, 131, 162, 162, 162, 162, 162, 162, 162,
261
- 162, 184, 184, 184, 184, 184, 184, 184, 184, 194, 194, 194, 194, 194, 194,
262
- 194, 194, 224, 224, 224, 224, 224, 224, 224, 224, 226, 226, 226, 226, 226,
263
- 226, 226, 226, 153, 153, 153, 153, 161, 161, 161, 161, 167, 167, 167, 167,
264
- 172, 172, 172, 172, 176, 176, 176, 176, 177, 177, 177, 177, 179, 179, 179,
265
- 179, 209, 209, 209, 209, 216, 216, 216, 216, 217, 217, 217, 217, 227, 227,
266
- 227, 227, 229, 229, 229, 229, 230, 230, 230, 230, 129, 129, 132, 132, 133,
267
- 133, 134, 134, 136, 136, 146, 146, 154, 154, 156, 156, 160, 160, 163, 163,
268
- 164, 164, 169, 169, 170, 170, 173, 173, 178, 178, 181, 181, 185, 185, 186,
269
- 186, 187, 187, 189, 189, 190, 190, 196, 196, 198, 198, 228, 228, 232, 232,
270
- 233, 233, 1, 135, 137, 138, 139, 140, 141, 143, 147, 149, 150, 151, 152,
271
- 155, 157, 158, 165, 166, 168, 174, 175, 180, 182, 183, 188, 191, 197, 231,
272
- 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, 9, 9,
273
- 9, 9, 9, 9, 9, 142, 142, 142, 142, 142, 142, 142, 142, 144, 144,
274
- 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 148,
275
- 148, 148, 148, 148, 148, 148, 148, 159, 159, 159, 159, 159, 159, 159, 159,
276
- 171, 171, 171, 171, 171, 171, 171, 171, 206, 206, 206, 206, 206, 206, 206,
277
- 206, 215, 215, 215, 215, 215, 215, 215, 215, 225, 225, 225, 225, 225, 225,
278
- 225, 225, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237,
279
- 237, 237, 237, 199, 199, 199, 199, 207, 207, 207, 207, 234, 234, 234, 234,
280
- 235, 235, 235, 235, 192, 192, 193, 193, 200, 200, 201, 201, 202, 202, 205,
281
- 205, 210, 210, 213, 213, 218, 218, 219, 219, 238, 238, 240, 240, 242, 242,
282
- 243, 243, 255, 255, 203, 204, 211, 212, 214, 221, 222, 223, 241, 244, 245,
283
- 246, 247, 248, 250, 251, 252, 253, 254, -1, -1, -1, -1, -1, -1, -1,
284
- -1, -1, -1, -1, -1, -1, -1, -1, 2, 2, 2, 2, 2, 2, 2,
285
- 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
286
- 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
287
- 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
288
- 8, 8, 8, 8, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12,
289
- 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15,
290
- 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17,
291
- 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18,
292
- 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20,
293
- 20, 21, 21, 21, 21, 21, 21, 21, 21, 23, 23, 23, 23, 23, 23,
294
- 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25,
295
- 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27,
296
- 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29,
297
- 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31,
298
- 31, 31, 31, 31, 31, 31, 127, 127, 127, 127, 127, 127, 127, 127, 220,
299
- 220, 220, 220, 220, 220, 220, 220, 249, 249, 249, 249, 249, 249, 249, 249,
300
- 10, 10, 13, 13, 22, 22, 256, 256, 67, 67, 67, 67, 67, 67, 67,
301
- 67, 68, 68, 68, 68, 68, 68, 68, 68, 95, 95, 95, 95, 95, 95,
302
- 95, 95, 98, 98, 98, 98, 98, 98, 98, 98, 100, 100, 100, 100, 100,
303
- 100, 100, 100, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103,
304
- 103, 103, 103, 103, 104, 104, 104, 104, 104, 104, 104, 104, 108, 108, 108,
305
- 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 110, 110,
306
- 110, 110, 110, 110, 110, 110, 112, 112, 112, 112, 112, 112, 112, 112, 114,
307
- 114, 114, 114, 114, 114, 114, 114, 117, 117, 117, 117, 117, 117, 117, 117,
308
- 58, 58, 58, 58, 66, 66, 66, 66, 67, 67, 67, 67, 68, 68, 68,
309
- 68, 69, 69, 69, 69, 70, 70, 70, 70, 71, 71, 71, 71, 72, 72,
310
- 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 75, 75, 75, 75, 76,
311
- 76, 76, 76, 77, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79,
312
- 80, 80, 80, 80, 81, 81, 81, 81, 82, 82, 82, 82, 83, 83, 83,
313
- 83, 84, 84, 84, 84, 85, 85, 85, 85, 86, 86, 86, 86, 87, 87,
314
- 87, 87, 89, 89, 89, 89, 106, 106, 106, 106, 107, 107, 107, 107, 113,
315
- 113, 113, 113, 118, 118, 118, 118, 119, 119, 119, 119, 120, 120, 120, 120,
316
- 121, 121, 121, 121, 122, 122, 122, 122, 38, 38, 42, 42, 44, 44, 59,
317
- 59, 88, 88, 90, 90, -1, -1, -1, -1, 33, 33, 33, 33, 33, 33,
318
- 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 40, 40, 40, 40, 40,
319
- 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 63, 63, 63, 63,
320
- 63, 63, 63, 63, 39, 39, 39, 39, 43, 43, 43, 43, 124, 124, 124,
321
- 124, 35, 35, 62, 62, 0, 36, 64, 91, 93, 126, -1, -1, 94, 94,
322
- 94, 94, 94, 94, 94, 94, 125, 125, 125, 125, 125, 125, 125, 125, 60,
323
- 60, 60, 60, 96, 96, 96, 96, 123, 123, 123, 123, -1, -1, -1, -1,
324
- 92, 92, 92, 92, 195, 195, 195, 195, 208, 208, 208, 208, 128, 128, 130,
325
- 130, 131, 131, 162, 162, 184, 184, 194, 194, 224, 224, 226, 226, 153, 161,
326
- 167, 172, 176, 177, 179, 209, 216, 217, 227, 229, 230, -1, -1, -1, -1,
327
- -1, -1, -1, 129, 129, 129, 129, 129, 129, 129, 129, 132, 132, 132, 132,
328
- 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 133, 134, 134, 134,
329
- 134, 134, 134, 134, 134, 136, 136, 136, 136, 136, 136, 136, 136, 146, 146,
330
- 146, 146, 146, 146, 146, 146, 154, 154, 154, 154, 154, 154, 154, 154, 156,
331
- 156, 156, 156, 156, 156, 156, 156, 160, 160, 160, 160, 160, 160, 160, 160,
332
- 163, 163, 163, 163, 163, 163, 163, 163, 164, 164, 164, 164, 164, 164, 164,
333
- 164, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170,
334
- 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 178, 178, 178, 178, 178,
335
- 178, 178, 178, 181, 181, 181, 181, 181, 181, 181, 181, 185, 185, 185, 185,
336
- 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 186, 186, 187, 187, 187,
337
- 187, 187, 187, 187, 187, 189, 189, 189, 189, 189, 189, 189, 189, 190, 190,
338
- 190, 190, 190, 190, 190, 190, 196, 196, 196, 196, 196, 196, 196, 196, 198,
339
- 198, 198, 198, 198, 198, 198, 198, 228, 228, 228, 228, 228, 228, 228, 228,
340
- 232, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233,
341
- 233, 1, 1, 1, 1, 135, 135, 135, 135, 137, 137, 137, 137, 138, 138,
342
- 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 141, 141, 141, 141, 143,
343
- 143, 143, 143, 147, 147, 147, 147, 149, 149, 149, 149, 150, 150, 150, 150,
344
- 151, 151, 151, 151, 152, 152, 152, 152, 155, 155, 155, 155, 157, 157, 157,
345
- 157, 158, 158, 158, 158, 165, 165, 165, 165, 166, 166, 166, 166, 168, 168,
346
- 168, 168, 174, 174, 174, 174, 175, 175, 175, 175, 180, 180, 180, 180, 182,
347
- 182, 182, 182, 183, 183, 183, 183, 188, 188, 188, 188, 191, 191, 191, 191,
348
- 197, 197, 197, 197, 231, 231, 231, 231, 239, 239, 239, 239, 9, 9, 142,
349
- 142, 144, 144, 145, 145, 148, 148, 159, 159, 171, 171, 206, 206, 215, 215,
350
- 225, 225, 236, 236, 237, 237, 199, 207, 234, 235, 192, 192, 192, 192, 192,
351
- 192, 192, 192, 193, 193, 193, 193, 193, 193, 193, 193, 200, 200, 200, 200,
352
- 200, 200, 200, 200, 201, 201, 201, 201, 201, 201, 201, 201, 202, 202, 202,
353
- 202, 202, 202, 202, 202, 205, 205, 205, 205, 205, 205, 205, 205, 210, 210,
354
- 210, 210, 210, 210, 210, 210, 213, 213, 213, 213, 213, 213, 213, 213, 218,
355
- 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 219, 219, 219, 219,
356
- 238, 238, 238, 238, 238, 238, 238, 238, 240, 240, 240, 240, 240, 240, 240,
357
- 240, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243,
358
- 243, 243, 255, 255, 255, 255, 255, 255, 255, 255, 203, 203, 203, 203, 204,
359
- 204, 204, 204, 211, 211, 211, 211, 212, 212, 212, 212, 214, 214, 214, 214,
360
- 221, 221, 221, 221, 222, 222, 222, 222, 223, 223, 223, 223, 241, 241, 241,
361
- 241, 244, 244, 244, 244, 245, 245, 245, 245, 246, 246, 246, 246, 247, 247,
362
- 247, 247, 248, 248, 248, 248, 250, 250, 250, 250, 251, 251, 251, 251, 252,
363
- 252, 252, 252, 253, 253, 253, 253, 254, 254, 254, 254, 2, 2, 3, 3,
364
- 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 11, 11, 12, 12, 14,
365
- 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21,
366
- 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30,
367
- 30, 31, 31, 127, 127, 220, 220, 249, 249, -1, -1, 10, 10, 10, 10,
368
- 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 22, 22, 22,
369
- 22, 22, 22, 22, 22, 256, 256, 256, 256, 256, 256, 256, 256, 45, 45,
370
- 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 47,
371
- 47, 47, 47, 47, 47, 47, 47, 51, 51, 51, 51, 51, 51, 51, 51,
372
- 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53,
373
- 53, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55,
374
- 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57,
375
- 57, 57, 57, 50, 50, 50, 50, 50, 50, 50, 50, 97, 97, 97, 97,
376
- 97, 97, 97, 97, 99, 99, 99, 99, 99, 99, 99, 99, 101, 101, 101,
377
- 101, 101, 101, 101, 101, 105, 105, 105, 105, 105, 105, 105, 105, 111, 111,
378
- 111, 111, 111, 111, 111, 111, 115, 115, 115, 115, 115, 115, 115, 115, 116,
379
- 116, 116, 116, 116, 116, 116, 116, 32, 32, 32, 32, 37, 37, 37, 37,
380
- 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, 51, 51, 51,
381
- 51, 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55,
382
- 55, 55, 56, 56, 56, 56, 57, 57, 57, 57, 61, 61, 61, 61, 65,
383
- 65, 65, 65, 95, 95, 95, 95, 98, 98, 98, 98, 100, 100, 100, 100,
384
- 102, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 108, 108, 108,
385
- 108, 109, 109, 109, 109, 110, 110, 110, 110, 112, 112, 112, 112, 114, 114,
386
- 114, 114, 117, 117, 117, 117, 58, 58, 66, 66, 67, 67, 68, 68, 69,
387
- 69, 70, 70, 71, 71, 72, 72, 73, 73, 74, 74, 75, 75, 76, 76,
388
- 77, 77, 78, 78, 79, 79, 80, 80, 81, 81, 82, 82, 83, 83, 84,
389
- 84, 85, 85, 86, 86, 87, 87, 89, 89, 106, 106, 107, 107, 113, 113,
390
- 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 38, 42, 44, 59, 88,
391
- 90, -1, -1, 33, 33, 33, 33, 34, 34, 34, 34, 40, 40, 40, 40,
392
- 41, 41, 41, 41, 63, 63, 63, 63, 39, 39, 43, 43, 124, 124, 35,
393
- 62, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36,
394
- 36, 36, 36, 36, 36, 36, 64, 64, 64, 64, 64, 64, 64, 64, 91,
395
- 91, 91, 91, 91, 91, 91, 91, 93, 93, 93, 93, 93, 93, 93, 93,
396
- 126, 126, 126, 126, 126, 126, 126, 126, 94, 94, 94, 94, 125, 125, 125,
397
- 125, 60, 60, 96, 96, 123, 123, -1, -1, 92, 92, 195, 195, 208, 208,
398
- 128, 130, 131, 162, 184, 194, 224, 226, -1, -1, 153, 153, 153, 153, 153,
399
- 153, 153, 153, 161, 161, 161, 161, 161, 161, 161, 161, 167, 167, 167, 167,
400
- 167, 167, 167, 167, 172, 172, 172, 172, 172, 172, 172, 172, 176, 176, 176,
401
- 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 177, 177, 177, 179, 179,
402
- 179, 179, 179, 179, 179, 179, 209, 209, 209, 209, 209, 209, 209, 209, 216,
403
- 216, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, 217,
404
- 227, 227, 227, 227, 227, 227, 227, 227, 229, 229, 229, 229, 229, 229, 229,
405
- 229, 230, 230, 230, 230, 230, 230, 230, 230, 129, 129, 129, 129, 132, 132,
406
- 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 136, 136, 136, 136, 146,
407
- 146, 146, 146, 154, 154, 154, 154, 156, 156, 156, 156, 160, 160, 160, 160,
408
- 163, 163, 163, 163, 164, 164, 164, 164, 169, 169, 169, 169, 170, 170, 170,
409
- 170, 173, 173, 173, 173, 178, 178, 178, 178, 181, 181, 181, 181, 185, 185,
410
- 185, 185, 186, 186, 186, 186, 187, 187, 187, 187, 189, 189, 189, 189, 190,
411
- 190, 190, 190, 196, 196, 196, 196, 198, 198, 198, 198, 228, 228, 228, 228,
412
- 232, 232, 232, 232, 233, 233, 233, 233, 1, 1, 135, 135, 137, 137, 138,
413
- 138, 139, 139, 140, 140, 141, 141, 143, 143, 147, 147, 149, 149, 150, 150,
414
- 151, 151, 152, 152, 155, 155, 157, 157, 158, 158, 165, 165, 166, 166, 168,
415
- 168, 174, 174, 175, 175, 180, 180, 182, 182, 183, 183, 188, 188, 191, 191,
416
- 197, 197, 231, 231, 239, 239, 9, 142, 144, 145, 148, 159, 171, 206, 215,
417
- 225, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 199, 199,
418
- 199, 199, 199, 199, 199, 199, 207, 207, 207, 207, 207, 207, 207, 207, 234,
419
- 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 235,
420
- 192, 192, 192, 192, 193, 193, 193, 193, 200, 200, 200, 200, 201, 201, 201,
421
- 201, 202, 202, 202, 202, 205, 205, 205, 205, 210, 210, 210, 210, 213, 213,
422
- 213, 213, 218, 218, 218, 218, 219, 219, 219, 219, 238, 238, 238, 238, 240,
423
- 240, 240, 240, 242, 242, 242, 242, 243, 243, 243, 243, 255, 255, 255, 255,
424
- 203, 203, 204, 204, 211, 211, 212, 212, 214, 214, 221, 221, 222, 222, 223,
425
- 223, 241, 241, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 250, 250,
426
- 251, 251, 252, 252, 253, 253, 254, 254, 2, 3, 4, 5, 6, 7, 8,
427
- 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27,
428
- 28, 29, 30, 31, 127, 220, 249, -1, 10, 10, 10, 10, 13, 13, 13,
429
- 13, 22, 22, 22, 22, 256, 256, 256, 256,
430
- };
431
-
432
60
  namespace {
433
61
  // The alphabet used for base64 encoding binary metadata.
434
62
  constexpr char kBase64Alphabet[] =
@@ -765,30 +393,7 @@ class HPackParser::String {
765
393
  // Grab the byte range, and iterate through it.
766
394
  const uint8_t* p = input->cur_ptr();
767
395
  input->Advance(length);
768
- if (IsNewHpackHuffmanDecoderEnabled()) {
769
- return HuffDecoder<Out>(output, p, p + length).Run();
770
- } else {
771
- int16_t state = 0;
772
- // Parse one half byte... we leverage some lookup tables to keep the logic
773
- // here really simple.
774
- auto nibble = [&output, &state](uint8_t nibble) {
775
- int16_t emit = emit_sub_tbl[16 * emit_tbl[state] + nibble];
776
- int16_t next = next_sub_tbl[16 * next_tbl[state] + nibble];
777
- if (emit != -1) {
778
- if (emit >= 0 && emit < 256) {
779
- output(static_cast<uint8_t>(emit));
780
- } else {
781
- assert(emit == 256);
782
- }
783
- }
784
- state = next;
785
- };
786
- for (uint32_t i = 0; i < length; i++) {
787
- nibble(p[i] >> 4);
788
- nibble(p[i] & 0xf);
789
- }
790
- return true;
791
- }
396
+ return HuffDecoder<Out>(output, p, p + length).Run();
792
397
  }
793
398
 
794
399
  // Parse some uncompressed string bytes.
@@ -1198,7 +803,7 @@ class HPackParser::Parser {
1198
803
 
1199
804
  template <typename Key, typename Value>
1200
805
  void Encode(Key, const Value& value) {
1201
- AddToSummary(Key::key(), Key::Encode(value).size());
806
+ AddToSummary(Key::key(), EncodedSizeOfKey(Key(), value));
1202
807
  }
1203
808
 
1204
809
  private:
@@ -1224,13 +829,19 @@ class HPackParser::Parser {
1224
829
  absl::StrCat("; adding ", md.key(), " (length ", md.transport_size(),
1225
830
  "B)", summary.empty() ? "" : " to ", summary);
1226
831
  if (metadata_buffer_ != nullptr) metadata_buffer_->Clear();
832
+ // StreamId is used as a signal to skip this stream but keep the connection
833
+ // alive
1227
834
  return input_->MaybeSetErrorAndReturn(
1228
835
  [this, summary = std::move(summary)] {
1229
836
  return grpc_error_set_int(
1230
- GRPC_ERROR_CREATE(absl::StrCat(
1231
- "received initial metadata size exceeds limit (",
1232
- *frame_length_, " vs. ", metadata_size_limit_, ")", summary)),
1233
- StatusIntProperty::kRpcStatus, GRPC_STATUS_RESOURCE_EXHAUSTED);
837
+ grpc_error_set_int(
838
+ GRPC_ERROR_CREATE(absl::StrCat(
839
+ "received initial metadata size exceeds limit (",
840
+ *frame_length_, " vs. ", metadata_size_limit_, ")",
841
+ summary)),
842
+ StatusIntProperty::kRpcStatus,
843
+ GRPC_STATUS_RESOURCE_EXHAUSTED),
844
+ StatusIntProperty::kStreamId, 0);
1234
845
  },
1235
846
  false);
1236
847
  }
@@ -1298,9 +909,9 @@ grpc_error_handle HPackParser::Parse(const grpc_slice& slice, bool is_last) {
1298
909
  }
1299
910
 
1300
911
  grpc_error_handle HPackParser::ParseInput(Input input, bool is_last) {
1301
- if (ParseInputInner(&input)) {
1302
- return absl::OkStatus();
1303
- }
912
+ bool parsed_ok = ParseInputInner(&input);
913
+ if (is_last) global_stats().IncrementHttp2MetadataSize(frame_length_);
914
+ if (parsed_ok) return absl::OkStatus();
1304
915
  if (input.eof_error()) {
1305
916
  if (GPR_UNLIKELY(is_last && is_boundary())) {
1306
917
  return GRPC_ERROR_CREATE(
@@ -16,8 +16,8 @@
16
16
  //
17
17
  //
18
18
 
19
- #ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H
20
- #define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H
19
+ #ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H
20
+ #define GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
@@ -139,4 +139,4 @@ grpc_error_handle grpc_chttp2_header_parser_parse(void* hpack_parser,
139
139
  const grpc_slice& slice,
140
140
  int is_last);
141
141
 
142
- #endif // GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H
142
+ #endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H
@@ -25,6 +25,7 @@
25
25
  #include <algorithm>
26
26
  #include <cstddef>
27
27
  #include <cstring>
28
+ #include <initializer_list>
28
29
  #include <utility>
29
30
 
30
31
  #include "absl/status/status.h"
@@ -16,8 +16,8 @@
16
16
  //
17
17
  //
18
18
 
19
- #ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_TABLE_H
20
- #define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_TABLE_H
19
+ #ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_TABLE_H
20
+ #define GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_TABLE_H
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
@@ -134,4 +134,4 @@ class HPackTable {
134
134
 
135
135
  } // namespace grpc_core
136
136
 
137
- #endif // GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_TABLE_H
137
+ #endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_TABLE_H
@@ -18,8 +18,8 @@
18
18
  // Automatically generated by tools/codegen/core/gen_settings_ids.py
19
19
  //
20
20
 
21
- #ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H
22
- #define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H
21
+ #ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H
22
+ #define GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H
23
23
 
24
24
  #include <grpc/support/port_platform.h>
25
25
 
@@ -59,4 +59,4 @@ typedef struct {
59
59
  extern const grpc_chttp2_setting_parameters
60
60
  grpc_chttp2_settings_parameters[GRPC_CHTTP2_NUM_SETTINGS];
61
61
 
62
- #endif // GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H
62
+ #endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H
@@ -12,8 +12,8 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP_TRACE_H
16
- #define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP_TRACE_H
15
+ #ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP_TRACE_H
16
+ #define GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP_TRACE_H
17
17
 
18
18
  #include <grpc/support/port_platform.h>
19
19
 
@@ -21,4 +21,4 @@
21
21
 
22
22
  extern grpc_core::TraceFlag grpc_http_trace;
23
23
 
24
- #endif // GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP_TRACE_H
24
+ #endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP_TRACE_H
@@ -16,8 +16,8 @@
16
16
  //
17
17
  //
18
18
 
19
- #ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H
20
- #define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H
19
+ #ifndef GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H
20
+ #define GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H
21
21
 
22
22
  // HPACK static huffman table
23
23
 
@@ -29,4 +29,4 @@ struct grpc_chttp2_huffsym {
29
29
  };
30
30
  extern const grpc_chttp2_huffsym grpc_chttp2_huffsyms[GRPC_CHTTP2_NUM_HUFFSYMS];
31
31
 
32
- #endif // GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H
32
+ #endif // GRPC_SRC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H