grpc 1.28.0 → 1.30.2

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 (503) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +7694 -11190
  3. data/include/grpc/grpc.h +2 -2
  4. data/include/grpc/grpc_security.h +30 -9
  5. data/include/grpc/grpc_security_constants.h +1 -0
  6. data/include/grpc/impl/codegen/grpc_types.h +19 -21
  7. data/include/grpc/impl/codegen/port_platform.h +6 -2
  8. data/include/grpc/module.modulemap +24 -39
  9. data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
  10. data/src/core/ext/filters/client_channel/client_channel.cc +212 -241
  11. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
  12. data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
  13. data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
  14. data/src/core/ext/filters/client_channel/http_proxy.cc +17 -10
  15. data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
  16. data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
  17. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
  18. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
  19. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -4
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +240 -301
  21. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +89 -0
  22. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +40 -0
  23. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +11 -9
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
  25. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
  26. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -11
  28. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
  29. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +84 -37
  30. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
  31. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
  32. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
  33. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
  34. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +6 -2
  35. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
  36. data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
  37. data/src/core/ext/filters/client_channel/resolver.cc +5 -8
  38. data/src/core/ext/filters/client_channel/resolver.h +12 -14
  39. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +73 -59
  40. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
  41. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +16 -20
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +184 -133
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -3
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +7 -4
  48. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +40 -43
  49. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +93 -102
  50. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
  51. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -2
  52. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +32 -5
  53. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
  54. data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
  55. data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
  56. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +16 -16
  57. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +19 -16
  58. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +20 -31
  59. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +4 -3
  60. data/src/core/ext/filters/client_channel/server_address.cc +6 -9
  61. data/src/core/ext/filters/client_channel/server_address.h +6 -12
  62. data/src/core/ext/filters/client_channel/service_config.cc +104 -144
  63. data/src/core/ext/filters/client_channel/service_config.h +28 -98
  64. data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
  65. data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
  66. data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
  67. data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
  68. data/src/core/ext/filters/client_channel/subchannel.h +35 -11
  69. data/src/core/ext/filters/client_channel/xds/xds_api.cc +348 -221
  70. data/src/core/ext/filters/client_channel/xds/xds_api.h +37 -37
  71. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +44 -49
  72. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +4 -3
  73. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +4 -2
  74. data/src/core/ext/filters/client_channel/xds/xds_client.cc +532 -339
  75. data/src/core/ext/filters/client_channel/xds/xds_client.h +57 -22
  76. data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +11 -12
  77. data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +31 -19
  78. data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
  79. data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
  80. data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
  81. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
  82. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
  83. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
  84. data/src/core/ext/filters/message_size/message_size_filter.cc +7 -10
  85. data/src/core/ext/filters/message_size/message_size_filter.h +4 -4
  86. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +4 -4
  87. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
  88. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +23 -22
  89. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  90. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  91. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
  92. data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
  93. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
  94. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
  95. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
  96. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
  97. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
  98. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
  99. data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
  100. data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
  101. data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
  102. data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
  103. data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
  104. data/src/core/ext/transport/chttp2/transport/writing.cc +15 -8
  105. data/src/core/ext/transport/inproc/inproc_transport.cc +19 -0
  106. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +4 -229
  107. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -875
  108. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
  109. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
  110. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
  111. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
  112. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
  113. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
  114. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +1 -0
  115. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +21 -8
  116. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +43 -7
  117. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +1 -0
  118. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
  119. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
  120. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +2 -1
  121. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
  122. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
  123. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +47 -26
  124. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +115 -65
  125. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +1 -0
  126. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
  127. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
  128. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +2 -1
  129. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +24 -20
  130. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +28 -13
  131. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
  132. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +38 -18
  133. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +88 -6
  134. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
  135. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
  136. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -0
  137. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +1 -0
  138. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -0
  139. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -0
  140. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +9 -6
  141. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +12 -4
  142. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
  143. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +1 -0
  144. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +15 -10
  145. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +16 -0
  146. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +1 -0
  147. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +2 -1
  148. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +1 -0
  149. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +1 -0
  150. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +1 -0
  151. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +1 -0
  152. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +63 -41
  153. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +173 -77
  154. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +1 -0
  155. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +1 -0
  156. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -0
  157. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +48 -28
  158. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +90 -30
  159. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +1 -0
  160. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
  161. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
  162. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
  163. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
  164. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
  165. data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
  166. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +16 -0
  167. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +36 -0
  168. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +1 -0
  169. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +1 -0
  170. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
  171. data/src/core/ext/upb-generated/envoy/type/range.upb.c +1 -0
  172. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +1 -0
  173. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +1 -0
  174. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
  175. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
  176. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
  177. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
  178. data/src/core/ext/upb-generated/validate/validate.upb.c +21 -20
  179. data/src/core/ext/upb-generated/validate/validate.upb.h +69 -63
  180. data/src/core/lib/channel/channel_args.cc +15 -14
  181. data/src/core/lib/channel/channel_args.h +3 -1
  182. data/src/core/lib/channel/channel_stack.h +20 -13
  183. data/src/core/lib/channel/channelz.cc +5 -6
  184. data/src/core/lib/channel/channelz.h +3 -2
  185. data/src/core/lib/channel/channelz_registry.cc +5 -3
  186. data/src/core/lib/channel/connected_channel.cc +7 -5
  187. data/src/core/lib/channel/context.h +1 -1
  188. data/src/core/lib/channel/handshaker.cc +11 -13
  189. data/src/core/lib/channel/handshaker.h +4 -2
  190. data/src/core/lib/channel/handshaker_registry.cc +5 -17
  191. data/src/core/lib/channel/status_util.cc +2 -3
  192. data/src/core/lib/compression/message_compress.cc +5 -1
  193. data/src/core/lib/debug/stats.cc +21 -27
  194. data/src/core/lib/debug/stats.h +3 -1
  195. data/src/core/lib/gpr/spinlock.h +2 -3
  196. data/src/core/lib/gpr/string.cc +2 -26
  197. data/src/core/lib/gpr/string.h +0 -16
  198. data/src/core/lib/gpr/sync_abseil.cc +2 -0
  199. data/src/core/lib/gpr/time.cc +4 -0
  200. data/src/core/lib/gpr/time_posix.cc +1 -1
  201. data/src/core/lib/gprpp/atomic.h +6 -6
  202. data/src/core/lib/gprpp/fork.cc +1 -1
  203. data/src/core/lib/gprpp/host_port.cc +29 -35
  204. data/src/core/lib/gprpp/host_port.h +14 -17
  205. data/src/core/lib/gprpp/map.h +5 -11
  206. data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
  207. data/src/core/lib/http/format_request.cc +46 -65
  208. data/src/core/lib/http/httpcli.cc +2 -3
  209. data/src/core/lib/http/httpcli.h +2 -3
  210. data/src/core/lib/http/httpcli_security_connector.cc +5 -5
  211. data/src/core/lib/http/parser.h +2 -3
  212. data/src/core/lib/iomgr/buffer_list.h +22 -21
  213. data/src/core/lib/iomgr/call_combiner.h +3 -2
  214. data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
  215. data/src/core/lib/iomgr/closure.h +2 -3
  216. data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
  217. data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
  218. data/src/core/lib/iomgr/endpoint_pair.h +2 -3
  219. data/src/core/lib/iomgr/error.cc +6 -9
  220. data/src/core/lib/iomgr/error.h +0 -1
  221. data/src/core/lib/iomgr/ev_apple.cc +356 -0
  222. data/src/core/lib/iomgr/ev_apple.h +43 -0
  223. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
  224. data/src/core/lib/iomgr/ev_epollex_linux.cc +2 -3
  225. data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
  226. data/src/core/lib/iomgr/ev_posix.cc +2 -3
  227. data/src/core/lib/iomgr/exec_ctx.h +14 -2
  228. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
  229. data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
  230. data/src/core/lib/{gprpp/optional.h → iomgr/pollset_uv.h} +11 -12
  231. data/src/core/lib/iomgr/port.h +1 -0
  232. data/src/core/lib/iomgr/python_util.h +46 -0
  233. data/src/core/lib/iomgr/resolve_address.h +4 -6
  234. data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
  235. data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
  236. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
  237. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
  238. data/src/core/lib/iomgr/resource_quota.cc +4 -6
  239. data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
  240. data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
  241. data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
  242. data/src/core/lib/iomgr/socket_mutator.h +2 -3
  243. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
  244. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  245. data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
  246. data/src/core/lib/iomgr/tcp_client_posix.cc +8 -5
  247. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
  248. data/src/core/lib/iomgr/tcp_custom.cc +2 -3
  249. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
  250. data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
  251. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
  252. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
  253. data/src/core/lib/iomgr/tcp_uv.cc +3 -2
  254. data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
  255. data/src/core/lib/iomgr/timer_generic.cc +2 -3
  256. data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +19 -17
  257. data/src/core/lib/iomgr/timer_heap.h +2 -3
  258. data/src/core/lib/iomgr/udp_server.cc +9 -14
  259. data/src/core/lib/json/json.h +3 -2
  260. data/src/core/lib/json/json_reader.cc +5 -5
  261. data/src/core/lib/json/json_writer.cc +13 -12
  262. data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
  263. data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
  264. data/src/core/lib/security/credentials/credentials.cc +0 -84
  265. data/src/core/lib/security/credentials/credentials.h +8 -59
  266. data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
  267. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +3 -8
  268. data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
  269. data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
  270. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  271. data/src/core/lib/security/credentials/jwt/json_token.h +2 -5
  272. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
  273. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -15
  274. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
  275. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +55 -27
  276. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +9 -3
  277. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
  278. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
  279. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
  280. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +38 -11
  281. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
  282. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
  283. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
  284. data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
  285. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  286. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -25
  287. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
  288. data/src/core/lib/security/security_connector/ssl_utils.cc +59 -12
  289. data/src/core/lib/security/security_connector/ssl_utils.h +12 -10
  290. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +77 -51
  291. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +27 -5
  292. data/src/core/lib/security/transport/auth_filters.h +0 -5
  293. data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
  294. data/src/core/lib/slice/slice_intern.cc +2 -3
  295. data/src/core/lib/slice/slice_internal.h +14 -0
  296. data/src/core/lib/slice/slice_utils.h +9 -0
  297. data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
  298. data/src/core/lib/surface/call.cc +2 -3
  299. data/src/core/lib/surface/call_log_batch.cc +50 -58
  300. data/src/core/lib/surface/channel.cc +53 -31
  301. data/src/core/lib/surface/channel.h +35 -4
  302. data/src/core/lib/surface/channel_ping.cc +2 -3
  303. data/src/core/lib/surface/completion_queue.cc +33 -33
  304. data/src/core/lib/surface/event_string.cc +18 -25
  305. data/src/core/lib/surface/event_string.h +3 -1
  306. data/src/core/lib/surface/init_secure.cc +1 -4
  307. data/src/core/lib/surface/server.cc +570 -369
  308. data/src/core/lib/surface/server.h +32 -0
  309. data/src/core/lib/surface/version.cc +2 -2
  310. data/src/core/lib/transport/byte_stream.h +7 -2
  311. data/src/core/lib/transport/connectivity_state.cc +7 -6
  312. data/src/core/lib/transport/connectivity_state.h +5 -3
  313. data/src/core/lib/transport/metadata.cc +3 -3
  314. data/src/core/lib/transport/metadata_batch.h +2 -3
  315. data/src/core/lib/transport/static_metadata.h +1 -1
  316. data/src/core/lib/transport/status_conversion.cc +6 -14
  317. data/src/core/lib/transport/transport.cc +2 -3
  318. data/src/core/lib/transport/transport.h +3 -2
  319. data/src/core/lib/transport/transport_op_string.cc +61 -102
  320. data/src/core/lib/uri/uri_parser.h +2 -3
  321. data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
  322. data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
  323. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +8 -1
  324. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
  325. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -2
  326. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
  327. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
  328. data/src/core/tsi/fake_transport_security.cc +10 -15
  329. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
  330. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
  331. data/src/core/tsi/ssl_transport_security.cc +52 -39
  332. data/src/core/tsi/ssl_transport_security.h +8 -8
  333. data/src/core/tsi/ssl_types.h +0 -2
  334. data/src/core/tsi/transport_security.h +6 -9
  335. data/src/core/tsi/transport_security_grpc.h +2 -3
  336. data/src/core/tsi/transport_security_interface.h +3 -3
  337. data/src/ruby/ext/grpc/rb_call.c +9 -1
  338. data/src/ruby/ext/grpc/rb_call_credentials.c +3 -2
  339. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
  340. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
  341. data/src/ruby/lib/grpc/errors.rb +103 -42
  342. data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
  343. data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
  344. data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
  345. data/src/ruby/lib/grpc/generic/service.rb +5 -4
  346. data/src/ruby/lib/grpc/structs.rb +1 -1
  347. data/src/ruby/lib/grpc/version.rb +1 -1
  348. data/src/ruby/pb/generate_proto_ruby.sh +5 -3
  349. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
  350. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
  351. data/src/ruby/spec/debug_message_spec.rb +134 -0
  352. data/src/ruby/spec/generic/service_spec.rb +2 -0
  353. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
  354. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +7 -0
  355. data/src/ruby/spec/pb/codegen/package_option_spec.rb +7 -1
  356. data/src/ruby/spec/support/services.rb +10 -4
  357. data/src/ruby/spec/testdata/ca.pem +18 -13
  358. data/src/ruby/spec/testdata/client.key +26 -14
  359. data/src/ruby/spec/testdata/client.pem +18 -12
  360. data/src/ruby/spec/testdata/server1.key +26 -14
  361. data/src/ruby/spec/testdata/server1.pem +20 -14
  362. data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
  363. data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
  364. data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
  365. data/third_party/abseil-cpp/absl/time/clock.h +74 -0
  366. data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
  367. data/third_party/abseil-cpp/absl/time/format.cc +153 -0
  368. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  369. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
  370. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
  371. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  372. data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  373. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  374. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  375. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
  376. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
  377. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
  378. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
  379. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
  380. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
  381. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
  382. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
  383. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
  384. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
  385. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  386. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  387. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
  388. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
  389. data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  390. data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  391. data/third_party/abseil-cpp/absl/time/time.cc +499 -0
  392. data/third_party/abseil-cpp/absl/time/time.h +1584 -0
  393. data/third_party/boringssl-with-bazel/err_data.c +329 -297
  394. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
  395. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +7 -5
  396. data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
  397. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
  398. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +18 -26
  399. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
  400. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +14 -22
  401. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
  402. data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +15 -0
  403. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -0
  404. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
  405. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
  406. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
  407. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +33 -32
  408. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
  409. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
  410. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
  411. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +14 -11
  412. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
  413. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
  414. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +16 -0
  415. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +289 -117
  416. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +13 -27
  417. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
  418. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
  419. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +432 -160
  420. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
  421. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -14
  422. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
  423. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
  424. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
  425. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
  426. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +90 -11
  427. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
  428. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
  429. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
  430. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
  431. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
  432. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
  433. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
  434. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
  435. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +41 -5
  436. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +32 -17
  437. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +24 -114
  438. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
  439. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +1 -0
  440. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +51 -38
  441. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +15 -1
  442. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +44 -35
  443. data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -12
  444. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
  445. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -10
  446. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +16 -0
  447. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -0
  448. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
  449. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
  450. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
  451. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
  452. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +16 -0
  453. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +5 -0
  454. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +4 -3
  455. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -1
  456. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +9 -4
  457. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +20 -0
  458. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
  459. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
  460. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +6 -0
  461. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -0
  462. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
  463. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -17
  464. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +31 -0
  465. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
  466. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +172 -77
  467. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
  468. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
  469. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +5 -3
  470. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -0
  471. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -4
  472. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
  473. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
  474. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +146 -57
  475. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +14 -3
  476. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +28 -20
  477. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +12 -4
  478. data/third_party/boringssl-with-bazel/src/ssl/internal.h +64 -47
  479. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +10 -10
  480. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  481. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -21
  482. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +29 -0
  483. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -0
  484. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +6 -1
  485. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +13 -2
  486. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +64 -5
  487. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +6 -0
  488. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +6 -2
  489. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +47 -53
  490. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -1
  491. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -27
  492. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +23 -75
  493. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +50 -20
  494. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +63 -25
  495. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
  496. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
  497. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
  498. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
  499. metadata +115 -39
  500. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1754
  501. data/src/core/lib/gprpp/string_view.h +0 -60
  502. data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
  503. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
@@ -0,0 +1,28 @@
1
+ /* This file was generated by upbc (the upb compiler) from the input
2
+ * file:
3
+ *
4
+ * udpa/annotations/status.proto
5
+ *
6
+ * Do not edit -- your changes will be discarded when the file is
7
+ * regenerated. */
8
+
9
+ #include <stddef.h>
10
+ #include "upb/msg.h"
11
+ #include "udpa/annotations/status.upb.h"
12
+ #include "google/protobuf/descriptor.upb.h"
13
+
14
+ #include "upb/port_def.inc"
15
+
16
+ static const upb_msglayout_field udpa_annotations_StatusAnnotation__fields[2] = {
17
+ {1, UPB_SIZE(8, 8), 0, 0, 8, 1},
18
+ {2, UPB_SIZE(0, 0), 0, 0, 14, 1},
19
+ };
20
+
21
+ const upb_msglayout udpa_annotations_StatusAnnotation_msginit = {
22
+ NULL,
23
+ &udpa_annotations_StatusAnnotation__fields[0],
24
+ UPB_SIZE(16, 16), 2, false,
25
+ };
26
+
27
+ #include "upb/port_undef.inc"
28
+
@@ -0,0 +1,65 @@
1
+ /* This file was generated by upbc (the upb compiler) from the input
2
+ * file:
3
+ *
4
+ * udpa/annotations/status.proto
5
+ *
6
+ * Do not edit -- your changes will be discarded when the file is
7
+ * regenerated. */
8
+
9
+ #ifndef UDPA_ANNOTATIONS_STATUS_PROTO_UPB_H_
10
+ #define UDPA_ANNOTATIONS_STATUS_PROTO_UPB_H_
11
+
12
+ #include "upb/generated_util.h"
13
+ #include "upb/msg.h"
14
+ #include "upb/decode.h"
15
+ #include "upb/encode.h"
16
+
17
+ #include "upb/port_def.inc"
18
+
19
+ #ifdef __cplusplus
20
+ extern "C" {
21
+ #endif
22
+
23
+ struct udpa_annotations_StatusAnnotation;
24
+ typedef struct udpa_annotations_StatusAnnotation udpa_annotations_StatusAnnotation;
25
+ extern const upb_msglayout udpa_annotations_StatusAnnotation_msginit;
26
+
27
+ typedef enum {
28
+ udpa_annotations_UNKNOWN = 0,
29
+ udpa_annotations_FROZEN = 1,
30
+ udpa_annotations_ACTIVE = 2,
31
+ udpa_annotations_NEXT_MAJOR_VERSION_CANDIDATE = 3
32
+ } udpa_annotations_PackageVersionStatus;
33
+
34
+
35
+ /* udpa.annotations.StatusAnnotation */
36
+
37
+ UPB_INLINE udpa_annotations_StatusAnnotation *udpa_annotations_StatusAnnotation_new(upb_arena *arena) {
38
+ return (udpa_annotations_StatusAnnotation *)upb_msg_new(&udpa_annotations_StatusAnnotation_msginit, arena);
39
+ }
40
+ UPB_INLINE udpa_annotations_StatusAnnotation *udpa_annotations_StatusAnnotation_parse(const char *buf, size_t size,
41
+ upb_arena *arena) {
42
+ udpa_annotations_StatusAnnotation *ret = udpa_annotations_StatusAnnotation_new(arena);
43
+ return (ret && upb_decode(buf, size, ret, &udpa_annotations_StatusAnnotation_msginit, arena)) ? ret : NULL;
44
+ }
45
+ UPB_INLINE char *udpa_annotations_StatusAnnotation_serialize(const udpa_annotations_StatusAnnotation *msg, upb_arena *arena, size_t *len) {
46
+ return upb_encode(msg, &udpa_annotations_StatusAnnotation_msginit, arena, len);
47
+ }
48
+
49
+ UPB_INLINE bool udpa_annotations_StatusAnnotation_work_in_progress(const udpa_annotations_StatusAnnotation *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(8, 8)); }
50
+ UPB_INLINE int32_t udpa_annotations_StatusAnnotation_package_version_status(const udpa_annotations_StatusAnnotation *msg) { return UPB_FIELD_AT(msg, int32_t, UPB_SIZE(0, 0)); }
51
+
52
+ UPB_INLINE void udpa_annotations_StatusAnnotation_set_work_in_progress(udpa_annotations_StatusAnnotation *msg, bool value) {
53
+ UPB_FIELD_AT(msg, bool, UPB_SIZE(8, 8)) = value;
54
+ }
55
+ UPB_INLINE void udpa_annotations_StatusAnnotation_set_package_version_status(udpa_annotations_StatusAnnotation *msg, int32_t value) {
56
+ UPB_FIELD_AT(msg, int32_t, UPB_SIZE(0, 0)) = value;
57
+ }
58
+
59
+ #ifdef __cplusplus
60
+ } /* extern "C" */
61
+ #endif
62
+
63
+ #include "upb/port_undef.inc"
64
+
65
+ #endif /* UDPA_ANNOTATIONS_STATUS_PROTO_UPB_H_ */
@@ -273,37 +273,38 @@ const upb_msglayout validate_BoolRules_msginit = {
273
273
  UPB_SIZE(2, 2), 1, false,
274
274
  };
275
275
 
276
- static const upb_msglayout_field validate_StringRules__fields[24] = {
277
- {1, UPB_SIZE(56, 56), 7, 0, 9, 1},
276
+ static const upb_msglayout_field validate_StringRules__fields[25] = {
277
+ {1, UPB_SIZE(60, 64), 8, 0, 9, 1},
278
278
  {2, UPB_SIZE(8, 8), 1, 0, 4, 1},
279
279
  {3, UPB_SIZE(16, 16), 2, 0, 4, 1},
280
280
  {4, UPB_SIZE(24, 24), 3, 0, 4, 1},
281
281
  {5, UPB_SIZE(32, 32), 4, 0, 4, 1},
282
- {6, UPB_SIZE(64, 72), 8, 0, 9, 1},
283
- {7, UPB_SIZE(72, 88), 9, 0, 9, 1},
284
- {8, UPB_SIZE(80, 104), 10, 0, 9, 1},
285
- {9, UPB_SIZE(88, 120), 11, 0, 9, 1},
286
- {10, UPB_SIZE(104, 152), 0, 0, 9, 3},
287
- {11, UPB_SIZE(108, 160), 0, 0, 9, 3},
288
- {12, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 8, 1},
289
- {13, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 8, 1},
290
- {14, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 8, 1},
291
- {15, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 8, 1},
292
- {16, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 8, 1},
293
- {17, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 8, 1},
294
- {18, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 8, 1},
282
+ {6, UPB_SIZE(68, 80), 9, 0, 9, 1},
283
+ {7, UPB_SIZE(76, 96), 10, 0, 9, 1},
284
+ {8, UPB_SIZE(84, 112), 11, 0, 9, 1},
285
+ {9, UPB_SIZE(92, 128), 12, 0, 9, 1},
286
+ {10, UPB_SIZE(108, 160), 0, 0, 9, 3},
287
+ {11, UPB_SIZE(112, 168), 0, 0, 9, 3},
288
+ {12, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 8, 1},
289
+ {13, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 8, 1},
290
+ {14, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 8, 1},
291
+ {15, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 8, 1},
292
+ {16, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 8, 1},
293
+ {17, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 8, 1},
294
+ {18, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 8, 1},
295
295
  {19, UPB_SIZE(40, 40), 5, 0, 4, 1},
296
296
  {20, UPB_SIZE(48, 48), 6, 0, 4, 1},
297
- {21, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 8, 1},
298
- {22, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 8, 1},
299
- {23, UPB_SIZE(96, 136), 12, 0, 9, 1},
300
- {24, UPB_SIZE(112, 168), UPB_SIZE(-121, -177), 0, 14, 1},
297
+ {21, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 8, 1},
298
+ {22, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 8, 1},
299
+ {23, UPB_SIZE(100, 144), 13, 0, 9, 1},
300
+ {24, UPB_SIZE(120, 176), UPB_SIZE(-129, -185), 0, 14, 1},
301
+ {25, UPB_SIZE(56, 56), 7, 0, 8, 1},
301
302
  };
302
303
 
303
304
  const upb_msglayout validate_StringRules_msginit = {
304
305
  NULL,
305
306
  &validate_StringRules__fields[0],
306
- UPB_SIZE(128, 192), 24, false,
307
+ UPB_SIZE(136, 192), 25, false,
307
308
  };
308
309
 
309
310
  static const upb_msglayout_field validate_BytesRules__fields[13] = {
@@ -1317,10 +1317,10 @@ typedef enum {
1317
1317
  validate_StringRules_well_known_well_known_regex = 24,
1318
1318
  validate_StringRules_well_known_NOT_SET = 0
1319
1319
  } validate_StringRules_well_known_oneofcases;
1320
- UPB_INLINE validate_StringRules_well_known_oneofcases validate_StringRules_well_known_case(const validate_StringRules* msg) { return (validate_StringRules_well_known_oneofcases)UPB_FIELD_AT(msg, int32_t, UPB_SIZE(120, 176)); }
1320
+ UPB_INLINE validate_StringRules_well_known_oneofcases validate_StringRules_well_known_case(const validate_StringRules* msg) { return (validate_StringRules_well_known_oneofcases)UPB_FIELD_AT(msg, int32_t, UPB_SIZE(128, 184)); }
1321
1321
 
1322
- UPB_INLINE bool validate_StringRules_has_const(const validate_StringRules *msg) { return _upb_has_field(msg, 7); }
1323
- UPB_INLINE upb_strview validate_StringRules_const(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(56, 56)); }
1322
+ UPB_INLINE bool validate_StringRules_has_const(const validate_StringRules *msg) { return _upb_has_field(msg, 8); }
1323
+ UPB_INLINE upb_strview validate_StringRules_const(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(60, 64)); }
1324
1324
  UPB_INLINE bool validate_StringRules_has_min_len(const validate_StringRules *msg) { return _upb_has_field(msg, 1); }
1325
1325
  UPB_INLINE uint64_t validate_StringRules_min_len(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, uint64_t, UPB_SIZE(8, 8)); }
1326
1326
  UPB_INLINE bool validate_StringRules_has_max_len(const validate_StringRules *msg) { return _upb_has_field(msg, 2); }
@@ -1329,46 +1329,48 @@ UPB_INLINE bool validate_StringRules_has_min_bytes(const validate_StringRules *m
1329
1329
  UPB_INLINE uint64_t validate_StringRules_min_bytes(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, uint64_t, UPB_SIZE(24, 24)); }
1330
1330
  UPB_INLINE bool validate_StringRules_has_max_bytes(const validate_StringRules *msg) { return _upb_has_field(msg, 4); }
1331
1331
  UPB_INLINE uint64_t validate_StringRules_max_bytes(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, uint64_t, UPB_SIZE(32, 32)); }
1332
- UPB_INLINE bool validate_StringRules_has_pattern(const validate_StringRules *msg) { return _upb_has_field(msg, 8); }
1333
- UPB_INLINE upb_strview validate_StringRules_pattern(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(64, 72)); }
1334
- UPB_INLINE bool validate_StringRules_has_prefix(const validate_StringRules *msg) { return _upb_has_field(msg, 9); }
1335
- UPB_INLINE upb_strview validate_StringRules_prefix(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(72, 88)); }
1336
- UPB_INLINE bool validate_StringRules_has_suffix(const validate_StringRules *msg) { return _upb_has_field(msg, 10); }
1337
- UPB_INLINE upb_strview validate_StringRules_suffix(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(80, 104)); }
1338
- UPB_INLINE bool validate_StringRules_has_contains(const validate_StringRules *msg) { return _upb_has_field(msg, 11); }
1339
- UPB_INLINE upb_strview validate_StringRules_contains(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(88, 120)); }
1340
- UPB_INLINE upb_strview const* validate_StringRules_in(const validate_StringRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(104, 152), len); }
1341
- UPB_INLINE upb_strview const* validate_StringRules_not_in(const validate_StringRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(108, 160), len); }
1342
- UPB_INLINE bool validate_StringRules_has_email(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 12); }
1343
- UPB_INLINE bool validate_StringRules_email(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 12, false); }
1344
- UPB_INLINE bool validate_StringRules_has_hostname(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 13); }
1345
- UPB_INLINE bool validate_StringRules_hostname(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 13, false); }
1346
- UPB_INLINE bool validate_StringRules_has_ip(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 14); }
1347
- UPB_INLINE bool validate_StringRules_ip(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 14, false); }
1348
- UPB_INLINE bool validate_StringRules_has_ipv4(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 15); }
1349
- UPB_INLINE bool validate_StringRules_ipv4(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 15, false); }
1350
- UPB_INLINE bool validate_StringRules_has_ipv6(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 16); }
1351
- UPB_INLINE bool validate_StringRules_ipv6(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 16, false); }
1352
- UPB_INLINE bool validate_StringRules_has_uri(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 17); }
1353
- UPB_INLINE bool validate_StringRules_uri(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 17, false); }
1354
- UPB_INLINE bool validate_StringRules_has_uri_ref(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 18); }
1355
- UPB_INLINE bool validate_StringRules_uri_ref(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 18, false); }
1332
+ UPB_INLINE bool validate_StringRules_has_pattern(const validate_StringRules *msg) { return _upb_has_field(msg, 9); }
1333
+ UPB_INLINE upb_strview validate_StringRules_pattern(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(68, 80)); }
1334
+ UPB_INLINE bool validate_StringRules_has_prefix(const validate_StringRules *msg) { return _upb_has_field(msg, 10); }
1335
+ UPB_INLINE upb_strview validate_StringRules_prefix(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(76, 96)); }
1336
+ UPB_INLINE bool validate_StringRules_has_suffix(const validate_StringRules *msg) { return _upb_has_field(msg, 11); }
1337
+ UPB_INLINE upb_strview validate_StringRules_suffix(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(84, 112)); }
1338
+ UPB_INLINE bool validate_StringRules_has_contains(const validate_StringRules *msg) { return _upb_has_field(msg, 12); }
1339
+ UPB_INLINE upb_strview validate_StringRules_contains(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(92, 128)); }
1340
+ UPB_INLINE upb_strview const* validate_StringRules_in(const validate_StringRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(108, 160), len); }
1341
+ UPB_INLINE upb_strview const* validate_StringRules_not_in(const validate_StringRules *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(112, 168), len); }
1342
+ UPB_INLINE bool validate_StringRules_has_email(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 12); }
1343
+ UPB_INLINE bool validate_StringRules_email(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 12, false); }
1344
+ UPB_INLINE bool validate_StringRules_has_hostname(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 13); }
1345
+ UPB_INLINE bool validate_StringRules_hostname(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 13, false); }
1346
+ UPB_INLINE bool validate_StringRules_has_ip(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 14); }
1347
+ UPB_INLINE bool validate_StringRules_ip(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 14, false); }
1348
+ UPB_INLINE bool validate_StringRules_has_ipv4(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 15); }
1349
+ UPB_INLINE bool validate_StringRules_ipv4(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 15, false); }
1350
+ UPB_INLINE bool validate_StringRules_has_ipv6(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 16); }
1351
+ UPB_INLINE bool validate_StringRules_ipv6(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 16, false); }
1352
+ UPB_INLINE bool validate_StringRules_has_uri(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 17); }
1353
+ UPB_INLINE bool validate_StringRules_uri(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 17, false); }
1354
+ UPB_INLINE bool validate_StringRules_has_uri_ref(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 18); }
1355
+ UPB_INLINE bool validate_StringRules_uri_ref(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 18, false); }
1356
1356
  UPB_INLINE bool validate_StringRules_has_len(const validate_StringRules *msg) { return _upb_has_field(msg, 5); }
1357
1357
  UPB_INLINE uint64_t validate_StringRules_len(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, uint64_t, UPB_SIZE(40, 40)); }
1358
1358
  UPB_INLINE bool validate_StringRules_has_len_bytes(const validate_StringRules *msg) { return _upb_has_field(msg, 6); }
1359
1359
  UPB_INLINE uint64_t validate_StringRules_len_bytes(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, uint64_t, UPB_SIZE(48, 48)); }
1360
- UPB_INLINE bool validate_StringRules_has_address(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 21); }
1361
- UPB_INLINE bool validate_StringRules_address(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 21, false); }
1362
- UPB_INLINE bool validate_StringRules_has_uuid(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 22); }
1363
- UPB_INLINE bool validate_StringRules_uuid(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 22, false); }
1364
- UPB_INLINE bool validate_StringRules_has_not_contains(const validate_StringRules *msg) { return _upb_has_field(msg, 12); }
1365
- UPB_INLINE upb_strview validate_StringRules_not_contains(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(96, 136)); }
1366
- UPB_INLINE bool validate_StringRules_has_well_known_regex(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(120, 176), 24); }
1367
- UPB_INLINE int32_t validate_StringRules_well_known_regex(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, int32_t, UPB_SIZE(112, 168), UPB_SIZE(120, 176), 24, validate_UNKNOWN); }
1360
+ UPB_INLINE bool validate_StringRules_has_address(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 21); }
1361
+ UPB_INLINE bool validate_StringRules_address(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 21, false); }
1362
+ UPB_INLINE bool validate_StringRules_has_uuid(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 22); }
1363
+ UPB_INLINE bool validate_StringRules_uuid(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 22, false); }
1364
+ UPB_INLINE bool validate_StringRules_has_not_contains(const validate_StringRules *msg) { return _upb_has_field(msg, 13); }
1365
+ UPB_INLINE upb_strview validate_StringRules_not_contains(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(100, 144)); }
1366
+ UPB_INLINE bool validate_StringRules_has_well_known_regex(const validate_StringRules *msg) { return _upb_has_oneof_field(msg, UPB_SIZE(128, 184), 24); }
1367
+ UPB_INLINE int32_t validate_StringRules_well_known_regex(const validate_StringRules *msg) { return UPB_READ_ONEOF(msg, int32_t, UPB_SIZE(120, 176), UPB_SIZE(128, 184), 24, validate_UNKNOWN); }
1368
+ UPB_INLINE bool validate_StringRules_has_strict(const validate_StringRules *msg) { return _upb_has_field(msg, 7); }
1369
+ UPB_INLINE bool validate_StringRules_strict(const validate_StringRules *msg) { return UPB_FIELD_AT(msg, bool, UPB_SIZE(56, 56)); }
1368
1370
 
1369
1371
  UPB_INLINE void validate_StringRules_set_const(validate_StringRules *msg, upb_strview value) {
1370
- _upb_sethas(msg, 7);
1371
- UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(56, 56)) = value;
1372
+ _upb_sethas(msg, 8);
1373
+ UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(60, 64)) = value;
1372
1374
  }
1373
1375
  UPB_INLINE void validate_StringRules_set_min_len(validate_StringRules *msg, uint64_t value) {
1374
1376
  _upb_sethas(msg, 1);
@@ -1387,61 +1389,61 @@ UPB_INLINE void validate_StringRules_set_max_bytes(validate_StringRules *msg, ui
1387
1389
  UPB_FIELD_AT(msg, uint64_t, UPB_SIZE(32, 32)) = value;
1388
1390
  }
1389
1391
  UPB_INLINE void validate_StringRules_set_pattern(validate_StringRules *msg, upb_strview value) {
1390
- _upb_sethas(msg, 8);
1391
- UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(64, 72)) = value;
1392
+ _upb_sethas(msg, 9);
1393
+ UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(68, 80)) = value;
1392
1394
  }
1393
1395
  UPB_INLINE void validate_StringRules_set_prefix(validate_StringRules *msg, upb_strview value) {
1394
- _upb_sethas(msg, 9);
1395
- UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(72, 88)) = value;
1396
+ _upb_sethas(msg, 10);
1397
+ UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(76, 96)) = value;
1396
1398
  }
1397
1399
  UPB_INLINE void validate_StringRules_set_suffix(validate_StringRules *msg, upb_strview value) {
1398
- _upb_sethas(msg, 10);
1399
- UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(80, 104)) = value;
1400
+ _upb_sethas(msg, 11);
1401
+ UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(84, 112)) = value;
1400
1402
  }
1401
1403
  UPB_INLINE void validate_StringRules_set_contains(validate_StringRules *msg, upb_strview value) {
1402
- _upb_sethas(msg, 11);
1403
- UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(88, 120)) = value;
1404
+ _upb_sethas(msg, 12);
1405
+ UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(92, 128)) = value;
1404
1406
  }
1405
1407
  UPB_INLINE upb_strview* validate_StringRules_mutable_in(validate_StringRules *msg, size_t *len) {
1406
- return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(104, 152), len);
1408
+ return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(108, 160), len);
1407
1409
  }
1408
1410
  UPB_INLINE upb_strview* validate_StringRules_resize_in(validate_StringRules *msg, size_t len, upb_arena *arena) {
1409
- return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(104, 152), len, UPB_SIZE(8, 16), UPB_TYPE_STRING, arena);
1411
+ return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(108, 160), len, UPB_SIZE(8, 16), UPB_TYPE_STRING, arena);
1410
1412
  }
1411
1413
  UPB_INLINE bool validate_StringRules_add_in(validate_StringRules *msg, upb_strview val, upb_arena *arena) {
1412
1414
  return _upb_array_append_accessor(
1413
- msg, UPB_SIZE(104, 152), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val, arena);
1415
+ msg, UPB_SIZE(108, 160), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val, arena);
1414
1416
  }
1415
1417
  UPB_INLINE upb_strview* validate_StringRules_mutable_not_in(validate_StringRules *msg, size_t *len) {
1416
- return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(108, 160), len);
1418
+ return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(112, 168), len);
1417
1419
  }
1418
1420
  UPB_INLINE upb_strview* validate_StringRules_resize_not_in(validate_StringRules *msg, size_t len, upb_arena *arena) {
1419
- return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(108, 160), len, UPB_SIZE(8, 16), UPB_TYPE_STRING, arena);
1421
+ return (upb_strview*)_upb_array_resize_accessor(msg, UPB_SIZE(112, 168), len, UPB_SIZE(8, 16), UPB_TYPE_STRING, arena);
1420
1422
  }
1421
1423
  UPB_INLINE bool validate_StringRules_add_not_in(validate_StringRules *msg, upb_strview val, upb_arena *arena) {
1422
1424
  return _upb_array_append_accessor(
1423
- msg, UPB_SIZE(108, 160), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val, arena);
1425
+ msg, UPB_SIZE(112, 168), UPB_SIZE(8, 16), UPB_TYPE_STRING, &val, arena);
1424
1426
  }
1425
1427
  UPB_INLINE void validate_StringRules_set_email(validate_StringRules *msg, bool value) {
1426
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 12);
1428
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 12);
1427
1429
  }
1428
1430
  UPB_INLINE void validate_StringRules_set_hostname(validate_StringRules *msg, bool value) {
1429
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 13);
1431
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 13);
1430
1432
  }
1431
1433
  UPB_INLINE void validate_StringRules_set_ip(validate_StringRules *msg, bool value) {
1432
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 14);
1434
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 14);
1433
1435
  }
1434
1436
  UPB_INLINE void validate_StringRules_set_ipv4(validate_StringRules *msg, bool value) {
1435
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 15);
1437
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 15);
1436
1438
  }
1437
1439
  UPB_INLINE void validate_StringRules_set_ipv6(validate_StringRules *msg, bool value) {
1438
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 16);
1440
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 16);
1439
1441
  }
1440
1442
  UPB_INLINE void validate_StringRules_set_uri(validate_StringRules *msg, bool value) {
1441
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 17);
1443
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 17);
1442
1444
  }
1443
1445
  UPB_INLINE void validate_StringRules_set_uri_ref(validate_StringRules *msg, bool value) {
1444
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 18);
1446
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 18);
1445
1447
  }
1446
1448
  UPB_INLINE void validate_StringRules_set_len(validate_StringRules *msg, uint64_t value) {
1447
1449
  _upb_sethas(msg, 5);
@@ -1452,17 +1454,21 @@ UPB_INLINE void validate_StringRules_set_len_bytes(validate_StringRules *msg, ui
1452
1454
  UPB_FIELD_AT(msg, uint64_t, UPB_SIZE(48, 48)) = value;
1453
1455
  }
1454
1456
  UPB_INLINE void validate_StringRules_set_address(validate_StringRules *msg, bool value) {
1455
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 21);
1457
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 21);
1456
1458
  }
1457
1459
  UPB_INLINE void validate_StringRules_set_uuid(validate_StringRules *msg, bool value) {
1458
- UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 22);
1460
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 22);
1459
1461
  }
1460
1462
  UPB_INLINE void validate_StringRules_set_not_contains(validate_StringRules *msg, upb_strview value) {
1461
- _upb_sethas(msg, 12);
1462
- UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(96, 136)) = value;
1463
+ _upb_sethas(msg, 13);
1464
+ UPB_FIELD_AT(msg, upb_strview, UPB_SIZE(100, 144)) = value;
1463
1465
  }
1464
1466
  UPB_INLINE void validate_StringRules_set_well_known_regex(validate_StringRules *msg, int32_t value) {
1465
- UPB_WRITE_ONEOF(msg, int32_t, UPB_SIZE(112, 168), value, UPB_SIZE(120, 176), 24);
1467
+ UPB_WRITE_ONEOF(msg, int32_t, UPB_SIZE(120, 176), value, UPB_SIZE(128, 184), 24);
1468
+ }
1469
+ UPB_INLINE void validate_StringRules_set_strict(validate_StringRules *msg, bool value) {
1470
+ _upb_sethas(msg, 7);
1471
+ UPB_FIELD_AT(msg, bool, UPB_SIZE(56, 56)) = value;
1466
1472
  }
1467
1473
 
1468
1474
  /* validate.BytesRules */
@@ -21,6 +21,11 @@
21
21
  #include <limits.h>
22
22
  #include <string.h>
23
23
 
24
+ #include <vector>
25
+
26
+ #include "absl/strings/str_format.h"
27
+ #include "absl/strings/str_join.h"
28
+
24
29
  #include <grpc/grpc.h>
25
30
  #include <grpc/impl/codegen/grpc_types.h>
26
31
  #include <grpc/impl/codegen/log.h>
@@ -336,32 +341,28 @@ grpc_arg grpc_channel_arg_pointer_create(
336
341
  return arg;
337
342
  }
338
343
 
339
- char* grpc_channel_args_string(const grpc_channel_args* args) {
340
- if (args == nullptr) return nullptr;
341
- gpr_strvec v;
342
- gpr_strvec_init(&v);
344
+ std::string grpc_channel_args_string(const grpc_channel_args* args) {
345
+ if (args == nullptr) return "";
346
+ std::vector<std::string> arg_strings;
343
347
  for (size_t i = 0; i < args->num_args; ++i) {
344
348
  const grpc_arg& arg = args->args[i];
345
- char* s;
349
+ std::string arg_string;
346
350
  switch (arg.type) {
347
351
  case GRPC_ARG_INTEGER:
348
- gpr_asprintf(&s, "%s=%d", arg.key, arg.value.integer);
352
+ arg_string = absl::StrFormat("%s=%d", arg.key, arg.value.integer);
349
353
  break;
350
354
  case GRPC_ARG_STRING:
351
- gpr_asprintf(&s, "%s=%s", arg.key, arg.value.string);
355
+ arg_string = absl::StrFormat("%s=%s", arg.key, arg.value.string);
352
356
  break;
353
357
  case GRPC_ARG_POINTER:
354
- gpr_asprintf(&s, "%s=%p", arg.key, arg.value.pointer.p);
358
+ arg_string = absl::StrFormat("%s=%p", arg.key, arg.value.pointer.p);
355
359
  break;
356
360
  default:
357
- gpr_asprintf(&s, "arg with unknown type");
361
+ arg_string = "arg with unknown type";
358
362
  }
359
- gpr_strvec_add(&v, s);
363
+ arg_strings.push_back(arg_string);
360
364
  }
361
- char* result =
362
- gpr_strjoin_sep(const_cast<const char**>(v.strs), v.count, ", ", nullptr);
363
- gpr_strvec_destroy(&v);
364
- return result;
365
+ return absl::StrJoin(arg_strings, ", ");
365
366
  }
366
367
 
367
368
  namespace {
@@ -21,6 +21,8 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
+ #include <string>
25
+
24
26
  #include <grpc/grpc.h>
25
27
 
26
28
  #include "src/core/lib/surface/channel_stack_type.h"
@@ -116,7 +118,7 @@ grpc_arg grpc_channel_arg_pointer_create(char* name, void* value,
116
118
 
117
119
  // Returns a string representing channel args in human-readable form.
118
120
  // Callers takes ownership of result.
119
- char* grpc_channel_args_string(const grpc_channel_args* args);
121
+ std::string grpc_channel_args_string(const grpc_channel_args* args);
120
122
 
121
123
  // Takes ownership of the old_args
122
124
  typedef grpc_channel_args* (*grpc_channel_args_client_channel_creation_mutator)(
@@ -31,7 +31,18 @@
31
31
  chains are linear, then channel stacks provide a mechanism to minimize
32
32
  allocations for that chain.
33
33
  Call stacks are created by channel stacks and represent the per-call data
34
- for that stack. */
34
+ for that stack.
35
+
36
+ Implementations should take care of the following details for a batch -
37
+ 1. Synchronization is achieved with a CallCombiner. View
38
+ src/core/lib/iomgr/call_combiner.h for more details.
39
+ 2. If the filter wants to inject an error on the way down, it needs to call
40
+ grpc_transport_stream_op_batch_finish_with_failure from within the call
41
+ combiner. This will cause any batch callbacks to be called with that error.
42
+ 3. If the filter wants to inject an error on the way up (from a callback), it
43
+ should also inject that error in the recv_trailing_metadata callback so that
44
+ it can have an effect on the call status.
45
+ */
35
46
 
36
47
  #include <grpc/support/port_platform.h>
37
48
 
@@ -54,16 +65,15 @@ typedef struct grpc_call_element grpc_call_element;
54
65
  typedef struct grpc_channel_stack grpc_channel_stack;
55
66
  typedef struct grpc_call_stack grpc_call_stack;
56
67
 
57
- typedef struct {
68
+ struct grpc_channel_element_args {
58
69
  grpc_channel_stack* channel_stack;
59
70
  const grpc_channel_args* channel_args;
60
71
  /** Transport, iff it is known */
61
72
  grpc_transport* optional_transport;
62
73
  int is_first;
63
74
  int is_last;
64
- } grpc_channel_element_args;
65
-
66
- typedef struct {
75
+ };
76
+ struct grpc_call_element_args {
67
77
  grpc_call_stack* call_stack;
68
78
  const void* server_transport_data;
69
79
  grpc_call_context_element* context;
@@ -72,13 +82,11 @@ typedef struct {
72
82
  grpc_millis deadline;
73
83
  grpc_core::Arena* arena;
74
84
  grpc_core::CallCombiner* call_combiner;
75
- } grpc_call_element_args;
76
-
77
- typedef struct {
85
+ };
86
+ struct grpc_call_stats {
78
87
  grpc_transport_stream_stats transport_stream_stats;
79
88
  gpr_timespec latency; /* From call creating to enqueing of received status */
80
- } grpc_call_stats;
81
-
89
+ };
82
90
  /** Information about the call upon completion. */
83
91
  struct grpc_call_final_info {
84
92
  grpc_call_stats stats;
@@ -96,7 +104,7 @@ struct grpc_call_final_info {
96
104
  4. a name, which is useful when debugging
97
105
 
98
106
  Members are laid out in approximate frequency of use order. */
99
- typedef struct {
107
+ struct grpc_channel_filter {
100
108
  /* Called to eg. send/receive data on a call.
101
109
  See grpc_call_next_op on how to call the next element in the stack */
102
110
  void (*start_transport_stream_op_batch)(grpc_call_element* elem,
@@ -152,8 +160,7 @@ typedef struct {
152
160
 
153
161
  /* The name of this filter */
154
162
  const char* name;
155
- } grpc_channel_filter;
156
-
163
+ };
157
164
  /* A channel_element tracks its filter and the filter requested memory within
158
165
  a channel allocation */
159
166
  struct grpc_channel_element {