grpc 1.54.3 → 1.55.0

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 (962) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +66 -37
  3. data/include/grpc/impl/grpc_types.h +2 -0
  4. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
  5. data/src/core/ext/filters/client_channel/backend_metric.cc +2 -1
  6. data/src/core/ext/filters/client_channel/client_channel.cc +19 -21
  7. data/src/core/ext/filters/client_channel/client_channel.h +20 -18
  8. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +1 -1
  9. data/src/core/ext/filters/client_channel/client_channel_internal.h +8 -40
  10. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +2 -2
  11. data/src/core/ext/filters/client_channel/config_selector.h +5 -17
  12. data/src/core/ext/filters/client_channel/health/health_check_client.cc +1 -1
  13. data/src/core/ext/filters/client_channel/http_proxy.cc +34 -1
  14. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +2 -2
  15. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  17. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +5 -5
  18. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +3 -3
  19. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +44 -45
  20. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +2 -3
  21. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -3
  22. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +3 -3
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +4 -4
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +3 -3
  25. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +9 -9
  26. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +4 -4
  27. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +5 -4
  28. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +19 -118
  29. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +30 -0
  30. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +60 -0
  31. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h +27 -0
  32. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +524 -0
  33. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +35 -0
  34. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +97 -0
  35. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +32 -0
  36. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +2 -13
  37. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +24 -0
  38. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +3 -2
  39. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +7 -34
  40. data/src/core/ext/filters/client_channel/retry_filter.cc +23 -55
  41. data/src/core/ext/filters/client_channel/retry_service_config.cc +8 -8
  42. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
  43. data/src/core/ext/filters/http/message_compress/compression_filter.cc +2 -2
  44. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +68 -69
  45. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +78 -23
  46. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +21 -0
  47. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +70 -0
  48. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -7
  49. data/src/core/ext/transport/chttp2/transport/frame_ping.h +0 -3
  50. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -0
  51. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +1 -0
  52. data/src/core/ext/transport/chttp2/transport/internal.h +3 -4
  53. data/src/core/ext/transport/chttp2/transport/writing.cc +14 -3
  54. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +87 -52
  55. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +414 -181
  56. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -60
  57. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +481 -224
  58. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +90 -55
  59. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +415 -188
  60. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +357 -210
  61. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1572 -729
  62. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +30 -17
  63. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +144 -47
  64. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +34 -21
  65. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +160 -62
  66. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +27 -14
  67. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +78 -38
  68. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +20 -11
  69. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +48 -26
  70. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +20 -11
  71. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +48 -26
  72. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +109 -62
  73. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +566 -244
  74. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +21 -12
  75. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +45 -30
  76. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -19
  77. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +82 -29
  78. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +23 -16
  79. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +45 -30
  80. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +230 -143
  81. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +733 -404
  82. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +417 -264
  83. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1839 -899
  84. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -41
  85. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +286 -148
  86. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +531 -334
  87. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2017 -1131
  88. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -12
  89. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +45 -30
  90. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +89 -52
  91. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +347 -232
  92. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +264 -165
  93. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +888 -476
  94. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +139 -80
  95. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +527 -274
  96. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -13
  97. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +50 -36
  98. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +380 -221
  99. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1168 -611
  100. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +166 -94
  101. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +666 -292
  102. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +18 -11
  103. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +37 -26
  104. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +21 -12
  105. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +45 -30
  106. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +30 -17
  107. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +144 -47
  108. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +274 -167
  109. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +789 -440
  110. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +228 -137
  111. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +1100 -501
  112. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -13
  113. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +60 -37
  114. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +350 -211
  115. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1072 -646
  116. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +33 -18
  117. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +117 -51
  118. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +34 -19
  119. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +118 -56
  120. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +38 -21
  121. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +148 -64
  122. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +31 -18
  123. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +143 -65
  124. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +22 -13
  125. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +51 -37
  126. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +78 -43
  127. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +265 -127
  128. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +145 -88
  129. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +438 -241
  130. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +115 -62
  131. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +559 -227
  132. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +18 -11
  133. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +35 -26
  134. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +175 -118
  135. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +857 -442
  136. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +172 -95
  137. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +864 -374
  138. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -27
  139. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +159 -110
  140. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +39 -18
  141. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +74 -56
  142. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +28 -15
  143. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +71 -45
  144. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +131 -74
  145. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +489 -249
  146. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +135 -80
  147. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +505 -245
  148. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +248 -139
  149. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +933 -433
  150. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +80 -49
  151. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +616 -201
  152. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +1283 -776
  153. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +5422 -2519
  154. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +49 -28
  155. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +164 -84
  156. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +228 -141
  157. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +738 -399
  158. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +20 -11
  159. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +48 -26
  160. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +21 -12
  161. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +45 -30
  162. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +32 -19
  163. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +70 -49
  164. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +27 -14
  165. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +110 -43
  166. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +46 -25
  167. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +259 -100
  168. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +21 -12
  169. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +45 -30
  170. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +18 -11
  171. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +35 -26
  172. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +42 -23
  173. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +108 -70
  174. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +7 -4
  175. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +21 -16
  176. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +43 -24
  177. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +110 -75
  178. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +30 -17
  179. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +95 -50
  180. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +16 -9
  181. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -23
  182. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +60 -37
  183. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +150 -108
  184. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +74 -43
  185. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +357 -167
  186. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +44 -25
  187. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +114 -80
  188. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -20
  189. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +245 -82
  190. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +32 -19
  191. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +73 -51
  192. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +474 -296
  193. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2121 -1076
  194. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +18 -11
  195. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +35 -26
  196. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +34 -21
  197. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +112 -78
  198. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +72 -45
  199. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +193 -138
  200. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +34 -21
  201. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +119 -78
  202. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +18 -11
  203. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +35 -26
  204. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -4
  205. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +15 -10
  206. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +184 -96
  207. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +907 -360
  208. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +56 -33
  209. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -101
  210. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +188 -111
  211. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +816 -419
  212. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +32 -19
  213. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +109 -53
  214. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +10 -7
  215. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +18 -14
  216. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +300 -177
  217. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1284 -522
  218. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +42 -23
  219. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +188 -75
  220. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +130 -83
  221. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +510 -238
  222. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +22 -13
  223. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +55 -34
  224. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +39 -26
  225. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +124 -68
  226. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +21 -12
  227. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +47 -30
  228. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +52 -29
  229. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +92 -62
  230. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +37 -20
  231. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +133 -63
  232. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -13
  233. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +91 -40
  234. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -12
  235. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +50 -32
  236. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +18 -11
  237. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +37 -26
  238. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +46 -27
  239. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +101 -70
  240. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +13 -10
  241. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +25 -22
  242. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +40 -23
  243. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +161 -75
  244. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +31 -18
  245. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +114 -56
  246. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +46 -29
  247. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +139 -91
  248. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +65 -42
  249. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +200 -121
  250. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +80 -45
  251. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +208 -131
  252. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +34 -21
  253. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +74 -53
  254. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -4
  255. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +13 -8
  256. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +16 -9
  257. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +28 -18
  258. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +28 -15
  259. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +55 -34
  260. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +43 -22
  261. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +91 -53
  262. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +35 -20
  263. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +92 -57
  264. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +7 -4
  265. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +13 -8
  266. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -11
  267. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +48 -26
  268. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +23 -14
  269. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +61 -41
  270. data/src/core/ext/upb-generated/google/api/annotations.upb.c +14 -11
  271. data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -20
  272. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +255 -154
  273. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +934 -450
  274. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +299 -180
  275. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +946 -483
  276. data/src/core/ext/upb-generated/google/api/http.upb.c +68 -35
  277. data/src/core/ext/upb-generated/google/api/http.upb.h +284 -120
  278. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +22 -13
  279. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +95 -37
  280. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -10
  281. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +38 -22
  282. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +1018 -424
  283. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +3851 -1412
  284. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -10
  285. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +38 -22
  286. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +10 -7
  287. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +18 -14
  288. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +62 -39
  289. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +207 -102
  290. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -10
  291. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +38 -22
  292. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +90 -51
  293. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +157 -107
  294. data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -13
  295. data/src/core/ext/upb-generated/google/rpc/status.upb.h +95 -37
  296. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +59 -34
  297. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +154 -92
  298. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +43 -24
  299. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +118 -60
  300. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +250 -145
  301. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +919 -415
  302. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +34 -19
  303. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +76 -51
  304. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +25 -14
  305. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +45 -30
  306. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +144 -81
  307. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +405 -217
  308. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +51 -26
  309. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +153 -61
  310. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +173 -102
  311. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +855 -298
  312. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +68 -49
  313. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +155 -104
  314. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +26 -17
  315. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +55 -34
  316. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +12 -9
  317. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +31 -14
  318. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +26 -17
  319. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +55 -34
  320. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +23 -16
  321. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +45 -30
  322. data/src/core/ext/upb-generated/validate/validate.upb.c +845 -455
  323. data/src/core/ext/upb-generated/validate/validate.upb.h +4347 -1908
  324. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +68 -49
  325. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +155 -104
  326. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +26 -17
  327. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +55 -34
  328. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +12 -9
  329. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +31 -14
  330. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +65 -44
  331. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +137 -91
  332. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +23 -16
  333. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +45 -30
  334. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +16 -9
  335. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +28 -18
  336. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +21 -12
  337. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +45 -30
  338. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +37 -22
  339. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +96 -63
  340. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +26 -17
  341. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +52 -29
  342. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +21 -12
  343. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +45 -30
  344. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +23 -14
  345. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +62 -42
  346. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +44 -25
  347. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +169 -79
  348. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +27 -14
  349. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +65 -38
  350. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +69 -38
  351. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +167 -76
  352. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +21 -12
  353. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +89 -34
  354. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +18 -11
  355. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +35 -26
  356. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +32 -19
  357. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +150 -54
  358. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +10 -7
  359. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +18 -14
  360. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +34 -21
  361. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +161 -63
  362. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +162 -101
  363. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +501 -293
  364. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +85 -52
  365. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +430 -164
  366. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +24 -15
  367. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +53 -37
  368. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +40 -23
  369. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +161 -75
  370. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +37 -22
  371. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +92 -66
  372. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +43 -22
  373. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +91 -53
  374. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +21 -12
  375. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +45 -30
  376. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +1 -1
  377. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +6 -5
  378. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +1 -1
  379. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +6 -5
  380. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +1 -1
  381. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +6 -5
  382. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +1 -1
  383. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +6 -5
  384. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +1 -1
  385. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +6 -5
  386. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +1 -1
  387. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +6 -5
  388. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +1 -1
  389. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +6 -5
  390. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +1 -1
  391. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +6 -5
  392. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +1 -1
  393. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +6 -5
  394. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +1 -1
  395. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +6 -5
  396. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +1 -1
  397. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +6 -5
  398. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +1 -1
  399. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +6 -5
  400. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +1 -1
  401. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +6 -5
  402. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +1 -1
  403. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +6 -5
  404. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +252 -253
  405. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +6 -5
  406. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +1 -1
  407. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +6 -5
  408. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +1 -1
  409. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +6 -5
  410. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +1 -1
  411. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +6 -5
  412. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +1 -1
  413. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +6 -5
  414. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +1 -1
  415. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +6 -5
  416. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +1 -1
  417. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +6 -5
  418. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +1 -1
  419. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +6 -5
  420. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +1 -1
  421. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +6 -5
  422. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +13 -12
  423. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +11 -5
  424. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +1 -1
  425. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +6 -5
  426. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +1 -1
  427. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +6 -5
  428. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +1 -1
  429. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +6 -5
  430. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +1 -1
  431. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +6 -5
  432. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +1 -1
  433. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +6 -5
  434. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +1 -1
  435. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +6 -5
  436. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +44 -44
  437. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +6 -5
  438. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +1 -1
  439. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +6 -5
  440. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +1 -1
  441. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +6 -5
  442. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +1 -1
  443. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +6 -5
  444. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +1 -1
  445. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +6 -5
  446. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +1 -1
  447. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +6 -5
  448. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +1 -1
  449. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +6 -5
  450. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +1 -1
  451. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +6 -5
  452. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +1 -1
  453. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +6 -5
  454. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +1 -1
  455. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +6 -5
  456. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +1 -1
  457. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +6 -5
  458. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +1 -1
  459. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +6 -5
  460. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +1 -1
  461. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +6 -5
  462. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +1 -1
  463. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +6 -5
  464. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +1 -1
  465. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +6 -5
  466. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +1 -1
  467. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +6 -5
  468. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +1 -1
  469. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +6 -5
  470. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +134 -128
  471. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +11 -5
  472. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +1 -1
  473. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +6 -5
  474. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +1 -1
  475. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +6 -5
  476. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +1 -1
  477. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +6 -5
  478. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +1 -1
  479. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +6 -5
  480. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +1 -1
  481. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +6 -5
  482. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +1 -1
  483. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +6 -5
  484. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +1 -1
  485. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +6 -5
  486. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +1 -1
  487. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +6 -5
  488. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +1 -1
  489. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +6 -5
  490. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +1 -1
  491. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +6 -5
  492. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +1 -1
  493. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +6 -5
  494. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +1 -1
  495. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +6 -5
  496. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +1 -1
  497. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +6 -5
  498. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +1 -1
  499. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +6 -5
  500. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +1 -1
  501. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +6 -5
  502. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +1 -1
  503. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +6 -5
  504. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +1 -1
  505. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +6 -5
  506. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +1 -1
  507. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +6 -5
  508. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +1 -1
  509. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +6 -5
  510. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +1 -1
  511. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +6 -5
  512. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +1 -1
  513. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +6 -5
  514. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +379 -376
  515. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +6 -5
  516. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +1 -1
  517. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +6 -5
  518. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +1 -1
  519. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +6 -5
  520. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +138 -136
  521. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +6 -5
  522. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +1 -1
  523. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +6 -5
  524. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
  525. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +6 -5
  526. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +1 -1
  527. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +6 -5
  528. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +1 -1
  529. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +6 -5
  530. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +1 -1
  531. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +6 -5
  532. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +1 -1
  533. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +6 -5
  534. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +12 -13
  535. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +6 -5
  536. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +1 -1
  537. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +6 -5
  538. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +1 -1
  539. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +6 -5
  540. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +1 -1
  541. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +6 -5
  542. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +1 -1
  543. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +6 -5
  544. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +1 -1
  545. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +6 -5
  546. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +1 -1
  547. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +6 -5
  548. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +1 -1
  549. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +6 -5
  550. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +1 -1
  551. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +6 -5
  552. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +1 -1
  553. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +6 -5
  554. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +1 -1
  555. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +6 -5
  556. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +1 -1
  557. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +6 -5
  558. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +1 -1
  559. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +6 -5
  560. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +1 -1
  561. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +6 -5
  562. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +1 -1
  563. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +6 -5
  564. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +1 -1
  565. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +6 -5
  566. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +1 -1
  567. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +6 -5
  568. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +1 -1
  569. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +6 -5
  570. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +1 -1
  571. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +6 -5
  572. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +1 -1
  573. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +6 -5
  574. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +1 -1
  575. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +6 -5
  576. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +1 -1
  577. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +6 -5
  578. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +1 -1
  579. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +6 -5
  580. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +1 -1
  581. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +6 -5
  582. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +1 -1
  583. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +6 -5
  584. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +1 -1
  585. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +6 -5
  586. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +1 -1
  587. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +6 -5
  588. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +1 -1
  589. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +6 -5
  590. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +1 -1
  591. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +6 -5
  592. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +1 -1
  593. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +6 -5
  594. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +1 -1
  595. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +6 -5
  596. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +329 -273
  597. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +11 -5
  598. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +1 -1
  599. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +6 -5
  600. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +1 -1
  601. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +6 -5
  602. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +1 -1
  603. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +6 -5
  604. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +1 -1
  605. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +6 -5
  606. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +1 -1
  607. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +6 -5
  608. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +1 -1
  609. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +6 -5
  610. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +1 -1
  611. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +6 -5
  612. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +1 -1
  613. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +6 -5
  614. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +1 -1
  615. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +6 -5
  616. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +1 -1
  617. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +6 -5
  618. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +1 -1
  619. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +6 -5
  620. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +1 -1
  621. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +6 -5
  622. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +1 -1
  623. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +6 -5
  624. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +1 -1
  625. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +6 -5
  626. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +1 -1
  627. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +6 -5
  628. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +1 -1
  629. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +6 -5
  630. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +1 -1
  631. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +6 -5
  632. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +1 -1
  633. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +6 -5
  634. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +1 -1
  635. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +6 -5
  636. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +1 -1
  637. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +6 -5
  638. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +1 -1
  639. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +6 -5
  640. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +1 -1
  641. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +6 -5
  642. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +1 -1
  643. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +6 -5
  644. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +1 -1
  645. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +6 -5
  646. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +1 -1
  647. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +6 -5
  648. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +1 -1
  649. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +6 -5
  650. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +1 -1
  651. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +6 -5
  652. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +1 -1
  653. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +6 -5
  654. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +1 -1
  655. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +6 -5
  656. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +1 -1
  657. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +6 -5
  658. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +1 -1
  659. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +6 -5
  660. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +1 -1
  661. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +6 -5
  662. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +1 -1
  663. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +6 -5
  664. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +1 -1
  665. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +6 -5
  666. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +1 -1
  667. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +6 -5
  668. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +1 -1
  669. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +6 -5
  670. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +1 -1
  671. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +6 -5
  672. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +1 -1
  673. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +6 -5
  674. data/src/core/ext/xds/certificate_provider_store.cc +4 -4
  675. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +7 -7
  676. data/src/core/ext/xds/upb_utils.h +1 -1
  677. data/src/core/ext/xds/xds_api.cc +34 -14
  678. data/src/core/ext/xds/xds_api.h +2 -2
  679. data/src/core/ext/xds/xds_bootstrap.cc +3 -3
  680. data/src/core/ext/xds/xds_bootstrap_grpc.cc +15 -15
  681. data/src/core/ext/xds/xds_client.cc +24 -3
  682. data/src/core/ext/xds/xds_client.h +1 -1
  683. data/src/core/ext/xds/xds_cluster.cc +26 -34
  684. data/src/core/ext/xds/xds_cluster.h +1 -2
  685. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +4 -3
  686. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +2 -2
  687. data/src/core/ext/xds/xds_common_types.cc +5 -4
  688. data/src/core/ext/xds/xds_endpoint.cc +5 -2
  689. data/src/core/ext/xds/xds_endpoint.h +1 -1
  690. data/src/core/ext/xds/xds_http_fault_filter.cc +2 -2
  691. data/src/core/ext/xds/xds_http_fault_filter.h +1 -1
  692. data/src/core/ext/xds/xds_http_filters.h +3 -2
  693. data/src/core/ext/xds/xds_http_rbac_filter.cc +6 -8
  694. data/src/core/ext/xds/xds_http_rbac_filter.h +1 -1
  695. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +2 -2
  696. data/src/core/ext/xds/xds_http_stateful_session_filter.h +1 -1
  697. data/src/core/ext/xds/xds_lb_policy_registry.cc +4 -22
  698. data/src/core/ext/xds/xds_listener.cc +10 -4
  699. data/src/core/ext/xds/xds_listener.h +1 -1
  700. data/src/core/ext/xds/xds_resource_type.h +2 -2
  701. data/src/core/ext/xds/xds_route_config.cc +8 -5
  702. data/src/core/ext/xds/xds_route_config.h +1 -1
  703. data/src/core/lib/channel/channelz.cc +5 -4
  704. data/src/core/lib/channel/channelz_registry.cc +7 -6
  705. data/src/core/lib/channel/connected_channel.cc +82 -27
  706. data/src/core/lib/channel/promise_based_filter.cc +2 -8
  707. data/src/core/lib/debug/trace.cc +16 -7
  708. data/src/core/lib/debug/trace.h +12 -4
  709. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +8 -26
  710. data/src/core/lib/event_engine/posix_engine/posix_engine.h +0 -1
  711. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +0 -29
  712. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +0 -3
  713. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +6 -1
  714. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -0
  715. data/src/core/lib/event_engine/shim.cc +2 -0
  716. data/src/core/lib/event_engine/trace.cc +1 -0
  717. data/src/core/lib/event_engine/trace.h +6 -0
  718. data/src/core/lib/experiments/experiments.cc +3 -0
  719. data/src/core/lib/experiments/experiments.h +4 -1
  720. data/src/core/lib/gpr/posix/time.cc +5 -0
  721. data/src/core/lib/gprpp/status_helper.cc +2 -2
  722. data/src/core/lib/gprpp/validation_errors.cc +8 -3
  723. data/src/core/lib/gprpp/validation_errors.h +16 -9
  724. data/src/core/lib/iomgr/buffer_list.h +0 -1
  725. data/src/core/lib/iomgr/socket_utils_posix.cc +3 -0
  726. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  727. data/src/core/lib/iomgr/tcp_client_posix.cc +4 -0
  728. data/src/core/lib/iomgr/tcp_server_posix.cc +14 -39
  729. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -12
  730. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +0 -21
  731. data/src/core/lib/iomgr/timer_generic.cc +17 -16
  732. data/src/core/lib/json/json.h +61 -113
  733. data/src/core/lib/json/json_object_loader.cc +20 -20
  734. data/src/core/lib/json/json_object_loader.h +8 -3
  735. data/src/core/lib/json/json_reader.cc +58 -38
  736. data/src/core/lib/json/json_reader.h +34 -0
  737. data/src/core/lib/json/json_util.cc +6 -6
  738. data/src/core/lib/json/json_util.h +5 -4
  739. data/src/core/lib/json/json_writer.cc +19 -19
  740. data/src/core/lib/json/json_writer.h +33 -0
  741. data/src/core/lib/load_balancing/lb_policy_registry.cc +7 -7
  742. data/src/core/lib/promise/pipe.h +7 -0
  743. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +35 -37
  744. data/src/core/lib/security/credentials/external/external_account_credentials.cc +60 -62
  745. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +22 -21
  746. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +28 -27
  747. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -2
  748. data/src/core/lib/security/credentials/jwt/json_token.cc +6 -4
  749. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -5
  750. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +39 -38
  751. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +17 -16
  752. data/src/core/lib/security/util/json_util.cc +5 -5
  753. data/src/core/lib/service_config/service_config_impl.cc +11 -5
  754. data/src/core/lib/slice/slice.h +2 -0
  755. data/src/core/lib/surface/call.cc +71 -26
  756. data/src/core/lib/surface/call.h +1 -5
  757. data/src/core/lib/surface/completion_queue.cc +2 -1
  758. data/src/core/lib/surface/server.cc +47 -19
  759. data/src/core/lib/surface/version.cc +2 -2
  760. data/src/core/lib/transport/batch_builder.h +9 -1
  761. data/src/core/lib/transport/metadata_batch.h +2 -59
  762. data/src/core/lib/transport/metadata_compression_traits.h +67 -0
  763. data/src/core/lib/transport/simple_slice_based_metadata.h +48 -0
  764. data/src/core/lib/transport/transport.h +3 -0
  765. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -4
  766. data/src/ruby/lib/grpc/version.rb +1 -1
  767. data/third_party/abseil-cpp/absl/base/config.h +1 -1
  768. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +33 -47
  769. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +7 -4
  770. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +32 -2
  771. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +11 -12
  772. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +826 -0
  773. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +10 -12
  774. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +8 -10
  775. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +2 -1
  776. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +2 -1
  777. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +18 -14
  778. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +17 -21
  779. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +7 -3
  780. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +3 -4
  781. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -72
  782. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +4 -2
  783. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +4 -3
  784. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +7 -3
  785. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +4 -2
  786. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +1 -1
  787. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -8
  788. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +128 -0
  789. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +8 -1
  790. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +1 -1
  791. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +8 -12
  792. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1 -10
  793. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +9 -2
  794. data/third_party/boringssl-with-bazel/src/ssl/internal.h +17 -17
  795. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +8 -4
  796. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +2 -2
  797. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +72 -5
  798. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +19 -21
  799. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +2 -1
  800. data/third_party/upb/upb/{table_internal.h → alloc.h} +6 -6
  801. data/third_party/upb/upb/arena.h +4 -193
  802. data/third_party/upb/upb/array.h +4 -51
  803. data/third_party/upb/upb/base/descriptor_constants.h +104 -0
  804. data/third_party/upb/upb/base/log2.h +57 -0
  805. data/third_party/upb/upb/{status.c → base/status.c} +2 -7
  806. data/third_party/upb/upb/base/status.h +66 -0
  807. data/third_party/upb/upb/base/string_view.h +75 -0
  808. data/third_party/upb/upb/{array.c → collections/array.c} +67 -36
  809. data/third_party/upb/upb/collections/array.h +85 -0
  810. data/third_party/upb/upb/collections/array_internal.h +135 -0
  811. data/third_party/upb/upb/{map.c → collections/map.c} +53 -26
  812. data/third_party/upb/upb/collections/map.h +135 -0
  813. data/third_party/upb/upb/collections/map_gencode_util.h +78 -0
  814. data/third_party/upb/upb/collections/map_internal.h +170 -0
  815. data/third_party/upb/upb/collections/map_sorter.c +166 -0
  816. data/third_party/upb/upb/collections/map_sorter_internal.h +109 -0
  817. data/third_party/upb/upb/{message_value.h → collections/message_value.h} +12 -13
  818. data/third_party/upb/upb/decode.h +3 -62
  819. data/third_party/upb/upb/def.h +4 -384
  820. data/third_party/upb/upb/def.hpp +3 -411
  821. data/third_party/upb/upb/encode.h +3 -48
  822. data/third_party/upb/upb/extension_registry.h +3 -52
  823. data/third_party/upb/upb/{table.c → hash/common.c} +52 -110
  824. data/third_party/upb/upb/hash/common.h +199 -0
  825. data/third_party/upb/upb/hash/int_table.h +102 -0
  826. data/third_party/upb/upb/hash/str_table.h +161 -0
  827. data/third_party/upb/upb/{json_decode.c → json/decode.c} +63 -98
  828. data/third_party/upb/upb/json/decode.h +52 -0
  829. data/third_party/upb/upb/{json_encode.c → json/encode.c} +69 -45
  830. data/third_party/upb/upb/json/encode.h +70 -0
  831. data/third_party/upb/upb/json_decode.h +4 -15
  832. data/third_party/upb/upb/json_encode.h +4 -33
  833. data/third_party/upb/upb/lex/atoi.c +68 -0
  834. data/third_party/upb/upb/lex/atoi.h +53 -0
  835. data/third_party/upb/upb/{upb.c → lex/round_trip.c} +2 -11
  836. data/third_party/upb/upb/{internal/upb.h → lex/round_trip.h} +17 -30
  837. data/third_party/upb/upb/lex/strtod.c +97 -0
  838. data/third_party/upb/upb/lex/strtod.h +46 -0
  839. data/third_party/upb/upb/lex/unicode.c +57 -0
  840. data/third_party/upb/upb/lex/unicode.h +77 -0
  841. data/third_party/upb/upb/map.h +4 -85
  842. data/third_party/upb/upb/mem/alloc.c +47 -0
  843. data/third_party/upb/upb/mem/alloc.h +98 -0
  844. data/third_party/upb/upb/mem/arena.c +367 -0
  845. data/third_party/upb/upb/mem/arena.h +160 -0
  846. data/third_party/upb/upb/mem/arena_internal.h +114 -0
  847. data/third_party/upb/upb/message/accessors.c +68 -0
  848. data/third_party/upb/upb/message/accessors.h +379 -0
  849. data/third_party/upb/upb/message/accessors_internal.h +325 -0
  850. data/third_party/upb/upb/message/extension_internal.h +83 -0
  851. data/third_party/upb/upb/message/internal.h +135 -0
  852. data/third_party/upb/upb/message/message.c +180 -0
  853. data/third_party/upb/upb/message/message.h +69 -0
  854. data/third_party/upb/upb/mini_table/common.c +128 -0
  855. data/third_party/upb/upb/mini_table/common.h +170 -0
  856. data/third_party/upb/upb/mini_table/common_internal.h +111 -0
  857. data/third_party/upb/upb/{mini_table.c → mini_table/decode.c} +513 -533
  858. data/third_party/upb/upb/mini_table/decode.h +179 -0
  859. data/third_party/upb/upb/mini_table/encode.c +300 -0
  860. data/third_party/upb/upb/mini_table/encode_internal.h +111 -0
  861. data/third_party/upb/upb/{mini_table.hpp → mini_table/encode_internal.hpp} +32 -8
  862. data/third_party/upb/upb/mini_table/enum_internal.h +88 -0
  863. data/third_party/upb/upb/mini_table/extension_internal.h +47 -0
  864. data/third_party/upb/upb/{extension_registry.c → mini_table/extension_registry.c} +27 -24
  865. data/third_party/upb/upb/mini_table/extension_registry.h +104 -0
  866. data/third_party/upb/upb/mini_table/field_internal.h +192 -0
  867. data/third_party/upb/upb/mini_table/file_internal.h +47 -0
  868. data/third_party/upb/upb/mini_table/message_internal.h +136 -0
  869. data/third_party/upb/upb/mini_table/sub_internal.h +38 -0
  870. data/third_party/upb/upb/mini_table/types.h +40 -0
  871. data/third_party/upb/upb/mini_table.h +4 -157
  872. data/third_party/upb/upb/msg.h +3 -38
  873. data/third_party/upb/upb/port/atomic.h +101 -0
  874. data/third_party/upb/upb/{port_def.inc → port/def.inc} +94 -27
  875. data/third_party/upb/upb/{port_undef.inc → port/undef.inc} +13 -3
  876. data/third_party/upb/upb/{internal → port}/vsnprintf_compat.h +5 -7
  877. data/third_party/upb/upb/reflection/common.h +67 -0
  878. data/third_party/upb/upb/reflection/def.h +42 -0
  879. data/third_party/upb/upb/reflection/def.hpp +610 -0
  880. data/third_party/upb/upb/reflection/def_builder.c +357 -0
  881. data/third_party/upb/upb/reflection/def_builder_internal.h +157 -0
  882. data/third_party/upb/upb/reflection/def_pool.c +462 -0
  883. data/third_party/upb/upb/reflection/def_pool.h +108 -0
  884. data/third_party/upb/upb/reflection/def_pool_internal.h +77 -0
  885. data/third_party/upb/upb/reflection/def_type.c +50 -0
  886. data/third_party/upb/upb/reflection/def_type.h +81 -0
  887. data/third_party/upb/upb/reflection/desc_state.c +53 -0
  888. data/third_party/upb/upb/reflection/desc_state_internal.h +64 -0
  889. data/third_party/upb/upb/reflection/enum_def.c +310 -0
  890. data/third_party/upb/upb/reflection/enum_def.h +80 -0
  891. data/third_party/upb/upb/reflection/enum_def_internal.h +56 -0
  892. data/third_party/upb/upb/reflection/enum_reserved_range.c +84 -0
  893. data/third_party/upb/upb/reflection/enum_reserved_range.h +51 -0
  894. data/third_party/upb/upb/reflection/enum_reserved_range_internal.h +55 -0
  895. data/third_party/upb/upb/reflection/enum_value_def.c +144 -0
  896. data/third_party/upb/upb/reflection/enum_value_def.h +57 -0
  897. data/third_party/upb/upb/reflection/enum_value_def_internal.h +57 -0
  898. data/third_party/upb/upb/reflection/extension_range.c +93 -0
  899. data/third_party/upb/upb/reflection/extension_range.h +55 -0
  900. data/third_party/upb/upb/reflection/extension_range_internal.h +54 -0
  901. data/third_party/upb/upb/reflection/field_def.c +930 -0
  902. data/third_party/upb/upb/reflection/field_def.h +91 -0
  903. data/third_party/upb/upb/reflection/field_def_internal.h +76 -0
  904. data/third_party/upb/upb/reflection/file_def.c +370 -0
  905. data/third_party/upb/upb/reflection/file_def.h +77 -0
  906. data/third_party/upb/upb/reflection/file_def_internal.h +57 -0
  907. data/third_party/upb/upb/reflection/message.c +233 -0
  908. data/third_party/upb/upb/reflection/message.h +102 -0
  909. data/third_party/upb/upb/reflection/message.hpp +37 -0
  910. data/third_party/upb/upb/reflection/message_def.c +718 -0
  911. data/third_party/upb/upb/reflection/message_def.h +174 -0
  912. data/third_party/upb/upb/reflection/message_def_internal.h +63 -0
  913. data/third_party/upb/upb/reflection/message_reserved_range.c +81 -0
  914. data/third_party/upb/upb/reflection/message_reserved_range.h +51 -0
  915. data/third_party/upb/upb/reflection/message_reserved_range_internal.h +55 -0
  916. data/third_party/upb/upb/reflection/method_def.c +124 -0
  917. data/third_party/upb/upb/reflection/method_def.h +59 -0
  918. data/third_party/upb/upb/reflection/method_def_internal.h +53 -0
  919. data/third_party/upb/upb/reflection/oneof_def.c +226 -0
  920. data/third_party/upb/upb/reflection/oneof_def.h +66 -0
  921. data/third_party/upb/upb/reflection/oneof_def_internal.h +57 -0
  922. data/third_party/upb/upb/reflection/service_def.c +128 -0
  923. data/third_party/upb/upb/reflection/service_def.h +60 -0
  924. data/third_party/upb/upb/reflection/service_def_internal.h +53 -0
  925. data/third_party/upb/upb/reflection.h +4 -78
  926. data/third_party/upb/upb/reflection.hpp +3 -7
  927. data/third_party/upb/upb/status.h +4 -34
  928. data/third_party/upb/upb/{collections.h → string_view.h} +7 -7
  929. data/third_party/upb/upb/{text_encode.c → text/encode.c} +74 -70
  930. data/third_party/upb/upb/text/encode.h +69 -0
  931. data/third_party/upb/upb/text_encode.h +4 -32
  932. data/third_party/upb/upb/upb.h +6 -151
  933. data/third_party/upb/upb/upb.hpp +10 -18
  934. data/third_party/upb/upb/wire/common.h +44 -0
  935. data/third_party/upb/upb/wire/common_internal.h +50 -0
  936. data/third_party/upb/upb/wire/decode.c +1343 -0
  937. data/third_party/upb/upb/wire/decode.h +108 -0
  938. data/third_party/upb/upb/{decode_fast.c → wire/decode_fast.c} +184 -225
  939. data/third_party/upb/upb/{decode_fast.h → wire/decode_fast.h} +21 -7
  940. data/third_party/upb/upb/{internal/decode.h → wire/decode_internal.h} +44 -92
  941. data/third_party/upb/upb/{encode.c → wire/encode.c} +114 -95
  942. data/third_party/upb/upb/wire/encode.h +92 -0
  943. data/third_party/upb/upb/wire/eps_copy_input_stream.c +39 -0
  944. data/third_party/upb/upb/wire/eps_copy_input_stream.h +425 -0
  945. data/third_party/upb/upb/wire/reader.c +67 -0
  946. data/third_party/upb/upb/wire/reader.h +227 -0
  947. data/third_party/upb/upb/wire/swap_internal.h +63 -0
  948. data/third_party/upb/upb/wire/types.h +41 -0
  949. data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-neon.c +1 -1
  950. data/third_party/{upb/third_party/utf8_range → utf8_range}/utf8_range.h +12 -0
  951. metadata +155 -40
  952. data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
  953. data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
  954. data/third_party/upb/upb/arena.c +0 -277
  955. data/third_party/upb/upb/decode.c +0 -1221
  956. data/third_party/upb/upb/def.c +0 -3269
  957. data/third_party/upb/upb/internal/table.h +0 -385
  958. data/third_party/upb/upb/msg.c +0 -368
  959. data/third_party/upb/upb/msg_internal.h +0 -837
  960. data/third_party/upb/upb/reflection.c +0 -323
  961. /data/third_party/{upb/third_party/utf8_range → utf8_range}/naive.c +0 -0
  962. /data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-sse.c +0 -0
@@ -0,0 +1,92 @@
1
+ /*
2
+ * Copyright (c) 2009-2021, Google LLC
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are met:
7
+ * * Redistributions of source code must retain the above copyright
8
+ * notice, this list of conditions and the following disclaimer.
9
+ * * Redistributions in binary form must reproduce the above copyright
10
+ * notice, this list of conditions and the following disclaimer in the
11
+ * documentation and/or other materials provided with the distribution.
12
+ * * Neither the name of Google LLC nor the
13
+ * names of its contributors may be used to endorse or promote products
14
+ * derived from this software without specific prior written permission.
15
+ *
16
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
+ * ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
20
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ */
27
+
28
+ // upb_Encode: parsing from a upb_Message using a upb_MiniTable.
29
+
30
+ #ifndef UPB_WIRE_ENCODE_H_
31
+ #define UPB_WIRE_ENCODE_H_
32
+
33
+ #include "upb/message/message.h"
34
+
35
+ // Must be last.
36
+ #include "upb/port/def.inc"
37
+
38
+ #ifdef __cplusplus
39
+ extern "C" {
40
+ #endif
41
+
42
+ enum {
43
+ /* If set, the results of serializing will be deterministic across all
44
+ * instances of this binary. There are no guarantees across different
45
+ * binary builds.
46
+ *
47
+ * If your proto contains maps, the encoder will need to malloc()/free()
48
+ * memory during encode. */
49
+ kUpb_EncodeOption_Deterministic = 1,
50
+
51
+ // When set, unknown fields are not printed.
52
+ kUpb_EncodeOption_SkipUnknown = 2,
53
+
54
+ // When set, the encode will fail if any required fields are missing.
55
+ kUpb_EncodeOption_CheckRequired = 4,
56
+ };
57
+
58
+ typedef enum {
59
+ kUpb_EncodeStatus_Ok = 0,
60
+ kUpb_EncodeStatus_OutOfMemory = 1, // Arena alloc failed
61
+ kUpb_EncodeStatus_MaxDepthExceeded = 2,
62
+
63
+ // kUpb_EncodeOption_CheckRequired failed but the parse otherwise succeeded.
64
+ kUpb_EncodeStatus_MissingRequired = 3,
65
+ } upb_EncodeStatus;
66
+
67
+ UPB_INLINE uint32_t upb_EncodeOptions_MaxDepth(uint16_t depth) {
68
+ return (uint32_t)depth << 16;
69
+ }
70
+
71
+ UPB_INLINE uint16_t upb_EncodeOptions_GetMaxDepth(uint32_t options) {
72
+ return options >> 16;
73
+ }
74
+
75
+ // Enforce an upper bound on recursion depth.
76
+ UPB_INLINE int upb_Encode_LimitDepth(uint32_t encode_options, uint32_t limit) {
77
+ uint32_t max_depth = upb_EncodeOptions_GetMaxDepth(encode_options);
78
+ if (max_depth > limit) max_depth = limit;
79
+ return upb_EncodeOptions_MaxDepth(max_depth) | (encode_options & 0xffff);
80
+ }
81
+
82
+ upb_EncodeStatus upb_Encode(const void* msg, const upb_MiniTable* l,
83
+ int options, upb_Arena* arena, char** buf,
84
+ size_t* size);
85
+
86
+ #ifdef __cplusplus
87
+ } /* extern "C" */
88
+ #endif
89
+
90
+ #include "upb/port/undef.inc"
91
+
92
+ #endif /* UPB_WIRE_ENCODE_H_ */
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Copyright (c) 2009-2021, Google LLC
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are met:
7
+ * * Redistributions of source code must retain the above copyright
8
+ * notice, this list of conditions and the following disclaimer.
9
+ * * Redistributions in binary form must reproduce the above copyright
10
+ * notice, this list of conditions and the following disclaimer in the
11
+ * documentation and/or other materials provided with the distribution.
12
+ * * Neither the name of Google LLC nor the
13
+ * names of its contributors may be used to endorse or promote products
14
+ * derived from this software without specific prior written permission.
15
+ *
16
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
+ * ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
20
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ */
27
+
28
+ #include "upb/wire/eps_copy_input_stream.h"
29
+
30
+ static const char* _upb_EpsCopyInputStream_NoOpCallback(
31
+ upb_EpsCopyInputStream* e, const char* old_end, const char* new_start) {
32
+ return new_start;
33
+ }
34
+
35
+ const char* _upb_EpsCopyInputStream_IsDoneFallbackNoCallback(
36
+ upb_EpsCopyInputStream* e, const char* ptr, int overrun) {
37
+ return _upb_EpsCopyInputStream_IsDoneFallbackInline(
38
+ e, ptr, overrun, _upb_EpsCopyInputStream_NoOpCallback);
39
+ }
@@ -0,0 +1,425 @@
1
+ /*
2
+ * Copyright (c) 2009-2021, Google LLC
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are met:
7
+ * * Redistributions of source code must retain the above copyright
8
+ * notice, this list of conditions and the following disclaimer.
9
+ * * Redistributions in binary form must reproduce the above copyright
10
+ * notice, this list of conditions and the following disclaimer in the
11
+ * documentation and/or other materials provided with the distribution.
12
+ * * Neither the name of Google LLC nor the
13
+ * names of its contributors may be used to endorse or promote products
14
+ * derived from this software without specific prior written permission.
15
+ *
16
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
+ * ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
20
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ */
27
+
28
+ #ifndef UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
29
+ #define UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
30
+
31
+ #include <string.h>
32
+
33
+ #include "upb/mem/arena.h"
34
+
35
+ // Must be last.
36
+ #include "upb/port/def.inc"
37
+
38
+ #ifdef __cplusplus
39
+ extern "C" {
40
+ #endif
41
+
42
+ // The maximum number of bytes a single protobuf field can take up in the
43
+ // wire format. We only want to do one bounds check per field, so the input
44
+ // stream guarantees that after upb_EpsCopyInputStream_IsDone() is called,
45
+ // the decoder can read this many bytes without performing another bounds
46
+ // check. The stream will copy into a patch buffer as necessary to guarantee
47
+ // this invariant.
48
+ #define kUpb_EpsCopyInputStream_SlopBytes 16
49
+
50
+ enum {
51
+ kUpb_EpsCopyInputStream_NoAliasing = 0,
52
+ kUpb_EpsCopyInputStream_OnPatch = 1,
53
+ kUpb_EpsCopyInputStream_NoDelta = 2
54
+ };
55
+
56
+ typedef struct {
57
+ const char* end; // Can read up to SlopBytes bytes beyond this.
58
+ const char* limit_ptr; // For bounds checks, = end + UPB_MIN(limit, 0)
59
+ uintptr_t aliasing;
60
+ int limit; // Submessage limit relative to end
61
+ bool error; // To distinguish between EOF and error.
62
+ char patch[kUpb_EpsCopyInputStream_SlopBytes * 2];
63
+ } upb_EpsCopyInputStream;
64
+
65
+ // Returns true if the stream is in the error state. A stream enters the error
66
+ // state when the user reads past a limit (caught in IsDone()) or the
67
+ // ZeroCopyInputStream returns an error.
68
+ UPB_INLINE bool upb_EpsCopyInputStream_IsError(upb_EpsCopyInputStream* e) {
69
+ return e->error;
70
+ }
71
+
72
+ typedef const char* upb_EpsCopyInputStream_BufferFlipCallback(
73
+ upb_EpsCopyInputStream* e, const char* old_end, const char* new_start);
74
+
75
+ typedef const char* upb_EpsCopyInputStream_IsDoneFallbackFunc(
76
+ upb_EpsCopyInputStream* e, const char* ptr, int overrun);
77
+
78
+ // Initializes a upb_EpsCopyInputStream using the contents of the buffer
79
+ // [*ptr, size]. Updates `*ptr` as necessary to guarantee that at least
80
+ // kUpb_EpsCopyInputStream_SlopBytes are available to read.
81
+ UPB_INLINE void upb_EpsCopyInputStream_Init(upb_EpsCopyInputStream* e,
82
+ const char** ptr, size_t size,
83
+ bool enable_aliasing) {
84
+ if (size <= kUpb_EpsCopyInputStream_SlopBytes) {
85
+ memset(&e->patch, 0, 32);
86
+ if (size) memcpy(&e->patch, *ptr, size);
87
+ e->aliasing = enable_aliasing ? (uintptr_t)*ptr - (uintptr_t)e->patch
88
+ : kUpb_EpsCopyInputStream_NoAliasing;
89
+ *ptr = e->patch;
90
+ e->end = *ptr + size;
91
+ e->limit = 0;
92
+ } else {
93
+ e->end = *ptr + size - kUpb_EpsCopyInputStream_SlopBytes;
94
+ e->limit = kUpb_EpsCopyInputStream_SlopBytes;
95
+ e->aliasing = enable_aliasing ? kUpb_EpsCopyInputStream_NoDelta
96
+ : kUpb_EpsCopyInputStream_NoAliasing;
97
+ }
98
+ e->limit_ptr = e->end;
99
+ e->error = false;
100
+ }
101
+
102
+ typedef enum {
103
+ // The current stream position is at a limit.
104
+ kUpb_IsDoneStatus_Done,
105
+
106
+ // The current stream position is not at a limit.
107
+ kUpb_IsDoneStatus_NotDone,
108
+
109
+ // The current stream position is not at a limit, and the stream needs to
110
+ // be flipped to a new buffer before more data can be read.
111
+ kUpb_IsDoneStatus_NeedFallback,
112
+ } upb_IsDoneStatus;
113
+
114
+ // Returns the status of the current stream position. This is a low-level
115
+ // function, it is simpler to call upb_EpsCopyInputStream_IsDone() if possible.
116
+ UPB_INLINE upb_IsDoneStatus upb_EpsCopyInputStream_IsDoneStatus(
117
+ upb_EpsCopyInputStream* e, const char* ptr, int* overrun) {
118
+ *overrun = ptr - e->end;
119
+ if (UPB_LIKELY(ptr < e->limit_ptr)) {
120
+ return kUpb_IsDoneStatus_NotDone;
121
+ } else if (UPB_LIKELY(*overrun == e->limit)) {
122
+ return kUpb_IsDoneStatus_Done;
123
+ } else {
124
+ return kUpb_IsDoneStatus_NeedFallback;
125
+ }
126
+ }
127
+
128
+ // Returns true if the stream has hit a limit, either the current delimited
129
+ // limit or the overall end-of-stream. As a side effect, this function may flip
130
+ // the pointer to a new buffer if there are less than
131
+ // kUpb_EpsCopyInputStream_SlopBytes of data to be read in the current buffer.
132
+ //
133
+ // Postcondition: if the function returns false, there are at least
134
+ // kUpb_EpsCopyInputStream_SlopBytes of data available to read at *ptr.
135
+ UPB_INLINE bool upb_EpsCopyInputStream_IsDoneWithCallback(
136
+ upb_EpsCopyInputStream* e, const char** ptr,
137
+ upb_EpsCopyInputStream_IsDoneFallbackFunc* func) {
138
+ int overrun;
139
+ switch (upb_EpsCopyInputStream_IsDoneStatus(e, *ptr, &overrun)) {
140
+ case kUpb_IsDoneStatus_Done:
141
+ return true;
142
+ case kUpb_IsDoneStatus_NotDone:
143
+ return false;
144
+ case kUpb_IsDoneStatus_NeedFallback:
145
+ *ptr = func(e, *ptr, overrun);
146
+ return *ptr == NULL;
147
+ }
148
+ UPB_UNREACHABLE();
149
+ }
150
+
151
+ const char* _upb_EpsCopyInputStream_IsDoneFallbackNoCallback(
152
+ upb_EpsCopyInputStream* e, const char* ptr, int overrun);
153
+
154
+ // A simpler version of IsDoneWithCallback() that does not support a buffer flip
155
+ // callback. Useful in cases where we do not need to insert custom logic at
156
+ // every buffer flip.
157
+ //
158
+ // If this returns true, the user must call upb_EpsCopyInputStream_IsError()
159
+ // to distinguish between EOF and error.
160
+ UPB_INLINE bool upb_EpsCopyInputStream_IsDone(upb_EpsCopyInputStream* e,
161
+ const char** ptr) {
162
+ return upb_EpsCopyInputStream_IsDoneWithCallback(
163
+ e, ptr, _upb_EpsCopyInputStream_IsDoneFallbackNoCallback);
164
+ }
165
+
166
+ // Returns the total number of bytes that are safe to read from the current
167
+ // buffer without reading uninitialized or unallocated memory.
168
+ //
169
+ // Note that this check does not respect any semantic limits on the stream,
170
+ // either limits from PushLimit() or the overall stream end, so some of these
171
+ // bytes may have unpredictable, nonsense values in them. The guarantee is only
172
+ // that the bytes are valid to read from the perspective of the C language
173
+ // (ie. you can read without triggering UBSAN or ASAN).
174
+ UPB_INLINE size_t upb_EpsCopyInputStream_BytesAvailable(
175
+ upb_EpsCopyInputStream* e, const char* ptr) {
176
+ return (e->end - ptr) + kUpb_EpsCopyInputStream_SlopBytes;
177
+ }
178
+
179
+ // Returns true if the given delimited field size is valid (it does not extend
180
+ // beyond any previously-pushed limits). `ptr` should point to the beginning
181
+ // of the field data, after the delimited size.
182
+ //
183
+ // Note that this does *not* guarantee that all of the data for this field is in
184
+ // the current buffer.
185
+ UPB_INLINE bool upb_EpsCopyInputStream_CheckSize(
186
+ const upb_EpsCopyInputStream* e, const char* ptr, int size) {
187
+ UPB_ASSERT(size >= 0);
188
+ return ptr - e->end + size <= e->limit;
189
+ }
190
+
191
+ UPB_INLINE bool _upb_EpsCopyInputStream_CheckSizeAvailable(
192
+ upb_EpsCopyInputStream* e, const char* ptr, int size, bool submessage) {
193
+ // This is one extra branch compared to the more normal:
194
+ // return (size_t)(end - ptr) < size;
195
+ // However it is one less computation if we are just about to use "ptr + len":
196
+ // https://godbolt.org/z/35YGPz
197
+ // In microbenchmarks this shows a small improvement.
198
+ uintptr_t uptr = (uintptr_t)ptr;
199
+ uintptr_t uend = (uintptr_t)e->limit_ptr;
200
+ uintptr_t res = uptr + (size_t)size;
201
+ if (!submessage) uend += kUpb_EpsCopyInputStream_SlopBytes;
202
+ // NOTE: this check depends on having a linear address space. This is not
203
+ // technically guaranteed by uintptr_t.
204
+ bool ret = res >= uptr && res <= uend;
205
+ if (size < 0) UPB_ASSERT(!ret);
206
+ return ret;
207
+ }
208
+
209
+ // Returns true if the given delimited field size is valid (it does not extend
210
+ // beyond any previously-pushed limited) *and* all of the data for this field is
211
+ // available to be read in the current buffer.
212
+ //
213
+ // If the size is negative, this function will always return false. This
214
+ // property can be useful in some cases.
215
+ UPB_INLINE bool upb_EpsCopyInputStream_CheckDataSizeAvailable(
216
+ upb_EpsCopyInputStream* e, const char* ptr, int size) {
217
+ return _upb_EpsCopyInputStream_CheckSizeAvailable(e, ptr, size, false);
218
+ }
219
+
220
+ // Returns true if the given sub-message size is valid (it does not extend
221
+ // beyond any previously-pushed limited) *and* all of the data for this
222
+ // sub-message is available to be parsed in the current buffer.
223
+ //
224
+ // This implies that all fields from the sub-message can be parsed from the
225
+ // current buffer while maintaining the invariant that we always have at least
226
+ // kUpb_EpsCopyInputStream_SlopBytes of data available past the beginning of
227
+ // any individual field start.
228
+ //
229
+ // If the size is negative, this function will always return false. This
230
+ // property can be useful in some cases.
231
+ UPB_INLINE bool upb_EpsCopyInputStream_CheckSubMessageSizeAvailable(
232
+ upb_EpsCopyInputStream* e, const char* ptr, int size) {
233
+ return _upb_EpsCopyInputStream_CheckSizeAvailable(e, ptr, size, true);
234
+ }
235
+
236
+ // Returns true if aliasing_enabled=true was passed to
237
+ // upb_EpsCopyInputStream_Init() when this stream was initialized.
238
+ UPB_INLINE bool upb_EpsCopyInputStream_AliasingEnabled(
239
+ upb_EpsCopyInputStream* e) {
240
+ return e->aliasing != kUpb_EpsCopyInputStream_NoAliasing;
241
+ }
242
+
243
+ // Returns true if aliasing_enabled=true was passed to
244
+ // upb_EpsCopyInputStream_Init() when this stream was initialized *and* we can
245
+ // alias into the region [ptr, size] in an input buffer.
246
+ UPB_INLINE bool upb_EpsCopyInputStream_AliasingAvailable(
247
+ upb_EpsCopyInputStream* e, const char* ptr, size_t size) {
248
+ // When EpsCopyInputStream supports streaming, this will need to become a
249
+ // runtime check.
250
+ return upb_EpsCopyInputStream_CheckDataSizeAvailable(e, ptr, size) &&
251
+ e->aliasing >= kUpb_EpsCopyInputStream_NoDelta;
252
+ }
253
+
254
+ // Returns a pointer into an input buffer that corresponds to the parsing
255
+ // pointer `ptr`. The returned pointer may be the same as `ptr`, but also may
256
+ // be different if we are currently parsing out of the patch buffer.
257
+ //
258
+ // REQUIRES: Aliasing must be available for the given pointer. If the input is a
259
+ // flat buffer and aliasing is enabled, then aliasing will always be available.
260
+ UPB_INLINE const char* upb_EpsCopyInputStream_GetAliasedPtr(
261
+ upb_EpsCopyInputStream* e, const char* ptr) {
262
+ UPB_ASSUME(upb_EpsCopyInputStream_AliasingAvailable(e, ptr, 0));
263
+ uintptr_t delta =
264
+ e->aliasing == kUpb_EpsCopyInputStream_NoDelta ? 0 : e->aliasing;
265
+ return (const char*)((uintptr_t)ptr + delta);
266
+ }
267
+
268
+ // Reads string data from the input, aliasing into the input buffer instead of
269
+ // copying. The parsing pointer is passed in `*ptr`, and will be updated if
270
+ // necessary to point to the actual input buffer. Returns the new parsing
271
+ // pointer, which will be advanced past the string data.
272
+ //
273
+ // REQUIRES: Aliasing must be available for this data region (test with
274
+ // upb_EpsCopyInputStream_AliasingAvailable().
275
+ UPB_INLINE const char* upb_EpsCopyInputStream_ReadStringAliased(
276
+ upb_EpsCopyInputStream* e, const char** ptr, size_t size) {
277
+ UPB_ASSUME(upb_EpsCopyInputStream_AliasingAvailable(e, *ptr, size));
278
+ const char* ret = *ptr + size;
279
+ *ptr = upb_EpsCopyInputStream_GetAliasedPtr(e, *ptr);
280
+ UPB_ASSUME(ret != NULL);
281
+ return ret;
282
+ }
283
+
284
+ // Skips `size` bytes of data from the input and returns a pointer past the end.
285
+ // Returns NULL on end of stream or error.
286
+ UPB_INLINE const char* upb_EpsCopyInputStream_Skip(upb_EpsCopyInputStream* e,
287
+ const char* ptr, int size) {
288
+ if (!upb_EpsCopyInputStream_CheckDataSizeAvailable(e, ptr, size)) return NULL;
289
+ return ptr + size;
290
+ }
291
+
292
+ // Copies `size` bytes of data from the input `ptr` into the buffer `to`, and
293
+ // returns a pointer past the end. Returns NULL on end of stream or error.
294
+ UPB_INLINE const char* upb_EpsCopyInputStream_Copy(upb_EpsCopyInputStream* e,
295
+ const char* ptr, void* to,
296
+ int size) {
297
+ if (!upb_EpsCopyInputStream_CheckDataSizeAvailable(e, ptr, size)) return NULL;
298
+ memcpy(to, ptr, size);
299
+ return ptr + size;
300
+ }
301
+
302
+ // Reads string data from the stream and advances the pointer accordingly.
303
+ // If aliasing was enabled when the stream was initialized, then the returned
304
+ // pointer will point into the input buffer if possible, otherwise new data
305
+ // will be allocated from arena and copied into. We may be forced to copy even
306
+ // if aliasing was enabled if the input data spans input buffers.
307
+ //
308
+ // Returns NULL if memory allocation failed, or we reached a premature EOF.
309
+ UPB_INLINE const char* upb_EpsCopyInputStream_ReadString(
310
+ upb_EpsCopyInputStream* e, const char** ptr, size_t size,
311
+ upb_Arena* arena) {
312
+ if (upb_EpsCopyInputStream_AliasingAvailable(e, *ptr, size)) {
313
+ return upb_EpsCopyInputStream_ReadStringAliased(e, ptr, size);
314
+ } else {
315
+ // We need to allocate and copy.
316
+ if (!upb_EpsCopyInputStream_CheckDataSizeAvailable(e, *ptr, size)) {
317
+ return NULL;
318
+ }
319
+ UPB_ASSERT(arena);
320
+ char* data = (char*)upb_Arena_Malloc(arena, size);
321
+ if (!data) return NULL;
322
+ const char* ret = upb_EpsCopyInputStream_Copy(e, *ptr, data, size);
323
+ *ptr = data;
324
+ return ret;
325
+ }
326
+ }
327
+
328
+ UPB_INLINE void _upb_EpsCopyInputStream_CheckLimit(upb_EpsCopyInputStream* e) {
329
+ UPB_ASSERT(e->limit_ptr == e->end + UPB_MIN(0, e->limit));
330
+ }
331
+
332
+ // Pushes a limit onto the stack of limits for the current stream. The limit
333
+ // will extend for `size` bytes beyond the position in `ptr`. Future calls to
334
+ // upb_EpsCopyInputStream_IsDone() will return `true` when the stream position
335
+ // reaches this limit.
336
+ //
337
+ // Returns a delta that the caller must store and supply to PopLimit() below.
338
+ UPB_INLINE int upb_EpsCopyInputStream_PushLimit(upb_EpsCopyInputStream* e,
339
+ const char* ptr, int size) {
340
+ int limit = size + (int)(ptr - e->end);
341
+ int delta = e->limit - limit;
342
+ _upb_EpsCopyInputStream_CheckLimit(e);
343
+ UPB_ASSERT(limit <= e->limit);
344
+ e->limit = limit;
345
+ e->limit_ptr = e->end + UPB_MIN(0, limit);
346
+ _upb_EpsCopyInputStream_CheckLimit(e);
347
+ return delta;
348
+ }
349
+
350
+ // Pops the last limit that was pushed on this stream. This may only be called
351
+ // once IsDone() returns true. The user must pass the delta that was returned
352
+ // from PushLimit().
353
+ UPB_INLINE void upb_EpsCopyInputStream_PopLimit(upb_EpsCopyInputStream* e,
354
+ const char* ptr,
355
+ int saved_delta) {
356
+ UPB_ASSERT(ptr - e->end == e->limit);
357
+ _upb_EpsCopyInputStream_CheckLimit(e);
358
+ e->limit += saved_delta;
359
+ e->limit_ptr = e->end + UPB_MIN(0, e->limit);
360
+ _upb_EpsCopyInputStream_CheckLimit(e);
361
+ }
362
+
363
+ UPB_INLINE const char* _upb_EpsCopyInputStream_IsDoneFallbackInline(
364
+ upb_EpsCopyInputStream* e, const char* ptr, int overrun,
365
+ upb_EpsCopyInputStream_BufferFlipCallback* callback) {
366
+ if (overrun < e->limit) {
367
+ // Need to copy remaining data into patch buffer.
368
+ UPB_ASSERT(overrun < kUpb_EpsCopyInputStream_SlopBytes);
369
+ const char* old_end = ptr;
370
+ const char* new_start = &e->patch[0] + overrun;
371
+ memset(e->patch + kUpb_EpsCopyInputStream_SlopBytes, 0,
372
+ kUpb_EpsCopyInputStream_SlopBytes);
373
+ memcpy(e->patch, e->end, kUpb_EpsCopyInputStream_SlopBytes);
374
+ ptr = new_start;
375
+ e->end = &e->patch[kUpb_EpsCopyInputStream_SlopBytes];
376
+ e->limit -= kUpb_EpsCopyInputStream_SlopBytes;
377
+ e->limit_ptr = e->end + e->limit;
378
+ UPB_ASSERT(ptr < e->limit_ptr);
379
+ if (e->aliasing != kUpb_EpsCopyInputStream_NoAliasing) {
380
+ e->aliasing = (uintptr_t)old_end - (uintptr_t)new_start;
381
+ }
382
+ return callback(e, old_end, new_start);
383
+ } else {
384
+ UPB_ASSERT(overrun > e->limit);
385
+ e->error = true;
386
+ return callback(e, NULL, NULL);
387
+ }
388
+ }
389
+
390
+ typedef const char* upb_EpsCopyInputStream_ParseDelimitedFunc(
391
+ upb_EpsCopyInputStream* e, const char* ptr, void* ctx);
392
+
393
+ // Tries to perform a fast-path handling of the given delimited message data.
394
+ // If the sub-message beginning at `*ptr` and extending for `len` is short and
395
+ // fits within this buffer, calls `func` with `ctx` as a parameter, where the
396
+ // pushing and popping of limits is handled automatically and with lower cost
397
+ // than the normal PushLimit()/PopLimit() sequence.
398
+ static UPB_FORCEINLINE bool upb_EpsCopyInputStream_TryParseDelimitedFast(
399
+ upb_EpsCopyInputStream* e, const char** ptr, int len,
400
+ upb_EpsCopyInputStream_ParseDelimitedFunc* func, void* ctx) {
401
+ if (!upb_EpsCopyInputStream_CheckSubMessageSizeAvailable(e, *ptr, len)) {
402
+ return false;
403
+ }
404
+
405
+ // Fast case: Sub-message is <128 bytes and fits in the current buffer.
406
+ // This means we can preserve limit/limit_ptr verbatim.
407
+ const char* saved_limit_ptr = e->limit_ptr;
408
+ int saved_limit = e->limit;
409
+ e->limit_ptr = *ptr + len;
410
+ e->limit = e->limit_ptr - e->end;
411
+ UPB_ASSERT(e->limit_ptr == e->end + UPB_MIN(0, e->limit));
412
+ *ptr = func(e, *ptr, ctx);
413
+ e->limit_ptr = saved_limit_ptr;
414
+ e->limit = saved_limit;
415
+ UPB_ASSERT(e->limit_ptr == e->end + UPB_MIN(0, e->limit));
416
+ return true;
417
+ }
418
+
419
+ #ifdef __cplusplus
420
+ } /* extern "C" */
421
+ #endif
422
+
423
+ #include "upb/port/undef.inc"
424
+
425
+ #endif // UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright (c) 2009-2021, Google LLC
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are met:
7
+ * * Redistributions of source code must retain the above copyright
8
+ * notice, this list of conditions and the following disclaimer.
9
+ * * Redistributions in binary form must reproduce the above copyright
10
+ * notice, this list of conditions and the following disclaimer in the
11
+ * documentation and/or other materials provided with the distribution.
12
+ * * Neither the name of Google LLC nor the
13
+ * names of its contributors may be used to endorse or promote products
14
+ * derived from this software without specific prior written permission.
15
+ *
16
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
+ * ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
20
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ */
27
+
28
+ #include "upb/wire/reader.h"
29
+
30
+ #include "upb/wire/eps_copy_input_stream.h"
31
+ #include "upb/wire/types.h"
32
+
33
+ // Must be last.
34
+ #include "upb/port/def.inc"
35
+
36
+ UPB_NOINLINE _upb_WireReader_ReadLongVarintRet
37
+ _upb_WireReader_ReadLongVarint(const char* ptr, uint64_t val) {
38
+ _upb_WireReader_ReadLongVarintRet ret = {NULL, 0};
39
+ uint64_t byte;
40
+ int i;
41
+ for (i = 1; i < 10; i++) {
42
+ byte = (uint8_t)ptr[i];
43
+ val += (byte - 1) << (i * 7);
44
+ if (!(byte & 0x80)) {
45
+ ret.ptr = ptr + i + 1;
46
+ ret.val = val;
47
+ return ret;
48
+ }
49
+ }
50
+ return ret;
51
+ }
52
+
53
+ const char* _upb_WireReader_SkipGroup(const char* ptr, uint32_t tag,
54
+ int depth_limit,
55
+ upb_EpsCopyInputStream* stream) {
56
+ if (--depth_limit == 0) return NULL;
57
+ uint32_t end_group_tag = (tag & ~7ULL) | kUpb_WireType_EndGroup;
58
+ while (!upb_EpsCopyInputStream_IsDone(stream, &ptr)) {
59
+ uint32_t tag;
60
+ ptr = upb_WireReader_ReadTag(ptr, &tag);
61
+ if (!ptr) return NULL;
62
+ if (tag == end_group_tag) return ptr;
63
+ ptr = _upb_WireReader_SkipValue(ptr, tag, depth_limit, stream);
64
+ if (!ptr) return NULL;
65
+ }
66
+ return ptr;
67
+ }