grpc 1.48.0 → 1.56.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 (2600) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +501 -260
  3. data/include/grpc/byte_buffer.h +76 -1
  4. data/include/grpc/byte_buffer_reader.h +19 -1
  5. data/include/grpc/compression.h +2 -2
  6. data/include/grpc/event_engine/endpoint_config.h +11 -5
  7. data/include/grpc/event_engine/event_engine.h +99 -36
  8. data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -1
  9. data/include/grpc/event_engine/internal/slice_cast.h +67 -0
  10. data/include/grpc/event_engine/memory_allocator.h +1 -1
  11. data/include/grpc/event_engine/slice.h +24 -4
  12. data/include/grpc/event_engine/slice_buffer.h +44 -3
  13. data/include/grpc/fork.h +25 -1
  14. data/include/grpc/grpc.h +3 -13
  15. data/include/grpc/grpc_audit_logging.h +96 -0
  16. data/include/grpc/grpc_posix.h +1 -1
  17. data/include/grpc/grpc_security.h +4 -0
  18. data/include/grpc/impl/codegen/atm.h +3 -71
  19. data/include/grpc/impl/codegen/atm_gcc_atomic.h +3 -67
  20. data/include/grpc/impl/codegen/atm_gcc_sync.h +3 -61
  21. data/include/grpc/impl/codegen/atm_windows.h +3 -108
  22. data/include/grpc/impl/codegen/byte_buffer.h +4 -78
  23. data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -19
  24. data/include/grpc/impl/codegen/compression_types.h +3 -82
  25. data/include/grpc/impl/codegen/connectivity_state.h +3 -20
  26. data/include/grpc/impl/codegen/fork.h +4 -25
  27. data/include/grpc/impl/codegen/gpr_types.h +2 -34
  28. data/include/grpc/impl/codegen/grpc_types.h +3 -790
  29. data/include/grpc/impl/codegen/log.h +3 -86
  30. data/include/grpc/impl/codegen/port_platform.h +3 -766
  31. data/include/grpc/impl/codegen/propagation_bits.h +3 -28
  32. data/include/grpc/impl/codegen/slice.h +3 -106
  33. data/include/grpc/impl/codegen/status.h +4 -131
  34. data/include/grpc/impl/codegen/sync.h +3 -42
  35. data/include/grpc/impl/codegen/sync_abseil.h +3 -12
  36. data/include/grpc/impl/codegen/sync_custom.h +3 -14
  37. data/include/grpc/impl/codegen/sync_generic.h +3 -25
  38. data/include/grpc/impl/codegen/sync_posix.h +3 -28
  39. data/include/grpc/impl/codegen/sync_windows.h +3 -16
  40. data/include/grpc/impl/compression_types.h +109 -0
  41. data/include/grpc/impl/connectivity_state.h +47 -0
  42. data/include/grpc/impl/grpc_types.h +838 -0
  43. data/include/grpc/impl/propagation_bits.h +54 -0
  44. data/include/grpc/impl/slice_type.h +112 -0
  45. data/include/grpc/load_reporting.h +1 -1
  46. data/include/grpc/module.modulemap +7 -1
  47. data/include/grpc/slice.h +1 -1
  48. data/include/grpc/status.h +131 -1
  49. data/include/grpc/support/atm.h +70 -1
  50. data/include/grpc/support/atm_gcc_atomic.h +59 -1
  51. data/include/grpc/support/atm_gcc_sync.h +58 -1
  52. data/include/grpc/support/atm_windows.h +105 -1
  53. data/include/grpc/support/json.h +218 -0
  54. data/include/grpc/support/log.h +87 -1
  55. data/include/grpc/support/log_windows.h +1 -1
  56. data/include/grpc/support/port_platform.h +767 -1
  57. data/include/grpc/support/string_util.h +1 -1
  58. data/include/grpc/support/sync.h +35 -2
  59. data/include/grpc/support/sync_abseil.h +11 -1
  60. data/include/grpc/support/sync_custom.h +13 -1
  61. data/include/grpc/support/sync_generic.h +24 -1
  62. data/include/grpc/support/sync_posix.h +27 -1
  63. data/include/grpc/support/sync_windows.h +15 -1
  64. data/include/grpc/support/time.h +31 -6
  65. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +164 -0
  66. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +52 -0
  67. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +29 -0
  68. data/src/core/ext/filters/census/grpc_context.cc +17 -18
  69. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +34 -28
  70. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +7 -6
  71. data/src/core/ext/filters/channel_idle/idle_filter_state.h +4 -4
  72. data/src/core/ext/filters/client_channel/backend_metric.cc +12 -1
  73. data/src/core/ext/filters/client_channel/backend_metric.h +3 -3
  74. data/src/core/ext/filters/client_channel/backup_poller.cc +30 -41
  75. data/src/core/ext/filters/client_channel/backup_poller.h +24 -27
  76. data/src/core/ext/filters/client_channel/channel_connectivity.cc +51 -28
  77. data/src/core/ext/filters/client_channel/client_channel.cc +1135 -1201
  78. data/src/core/ext/filters/client_channel/client_channel.h +170 -195
  79. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +36 -37
  80. data/src/core/ext/filters/client_channel/client_channel_channelz.h +22 -22
  81. data/src/core/ext/filters/client_channel/client_channel_factory.cc +17 -46
  82. data/src/core/ext/filters/client_channel/client_channel_factory.h +5 -13
  83. data/src/core/ext/filters/client_channel/client_channel_internal.h +77 -0
  84. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +18 -34
  85. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
  86. data/src/core/ext/filters/client_channel/{resolver_result_parsing.h → client_channel_service_config.h} +26 -26
  87. data/src/core/ext/filters/client_channel/config_selector.h +34 -56
  88. data/src/core/ext/filters/client_channel/connector.h +13 -10
  89. data/src/core/ext/filters/client_channel/dynamic_filters.cc +28 -55
  90. data/src/core/ext/filters/client_channel/dynamic_filters.h +10 -11
  91. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +21 -21
  92. data/src/core/ext/filters/client_channel/http_proxy.cc +125 -112
  93. data/src/core/ext/filters/client_channel/http_proxy.h +36 -32
  94. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +3 -4
  95. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +3 -3
  96. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +29 -21
  97. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +27 -18
  98. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +14 -14
  99. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +66 -132
  100. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +40 -24
  101. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +325 -360
  102. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +26 -27
  103. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -4
  104. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +9 -7
  105. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +18 -20
  106. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +21 -22
  107. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +19 -19
  108. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +22 -24
  109. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +455 -0
  110. data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +54 -0
  111. data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +186 -0
  112. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +30 -104
  113. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +5 -5
  114. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h +117 -0
  115. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +436 -311
  116. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +69 -8
  117. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +61 -56
  118. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +261 -401
  119. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +288 -310
  120. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +32 -10
  121. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +561 -626
  122. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +60 -53
  123. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +94 -57
  124. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +198 -0
  125. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h +71 -0
  126. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +1002 -0
  127. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +176 -186
  128. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +166 -176
  129. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
  130. data/src/core/ext/filters/client_channel/lb_policy/xds/{xds.h → xds_attributes.h} +15 -17
  131. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +3 -3
  132. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +159 -262
  133. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +183 -215
  134. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +391 -444
  135. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +814 -0
  136. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +67 -0
  137. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +363 -0
  138. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +21 -21
  139. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +13 -18
  140. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +456 -286
  141. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +30 -0
  142. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +42 -43
  143. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +22 -23
  144. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +92 -87
  145. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +303 -232
  146. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +69 -57
  147. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +18 -18
  148. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +18 -18
  149. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +60 -0
  150. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h +27 -0
  151. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +549 -0
  152. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +35 -0
  153. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +97 -0
  154. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +32 -0
  155. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +29 -46
  156. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +24 -0
  157. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +8 -20
  158. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +15 -4
  159. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +127 -246
  160. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +122 -67
  161. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +25 -18
  162. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +8 -19
  163. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +431 -341
  164. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +19 -4
  165. data/src/core/ext/filters/client_channel/retry_filter.cc +220 -295
  166. data/src/core/ext/filters/client_channel/retry_filter.h +3 -3
  167. data/src/core/ext/filters/client_channel/retry_service_config.cc +195 -225
  168. data/src/core/ext/filters/client_channel/retry_service_config.h +22 -28
  169. data/src/core/ext/filters/client_channel/retry_throttle.cc +27 -29
  170. data/src/core/ext/filters/client_channel/retry_throttle.h +29 -28
  171. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +22 -53
  172. data/src/core/ext/filters/client_channel/subchannel.cc +211 -450
  173. data/src/core/ext/filters/client_channel/subchannel.h +42 -96
  174. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +4 -4
  175. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
  176. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +37 -46
  177. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +38 -42
  178. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +11 -8
  179. data/src/core/ext/filters/deadline/deadline_filter.cc +78 -69
  180. data/src/core/ext/filters/deadline/deadline_filter.h +8 -13
  181. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +26 -20
  182. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +12 -8
  183. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
  184. data/src/core/ext/filters/fault_injection/{service_config_parser.h → fault_injection_service_config_parser.h} +20 -13
  185. data/src/core/ext/filters/http/client/http_client_filter.cc +48 -46
  186. data/src/core/ext/filters/http/client/http_client_filter.h +21 -21
  187. data/src/core/ext/filters/http/client_authority_filter.cc +20 -21
  188. data/src/core/ext/filters/http/client_authority_filter.h +22 -22
  189. data/src/core/ext/filters/http/http_filters_plugin.cc +30 -57
  190. data/src/core/ext/filters/http/message_compress/compression_filter.cc +323 -0
  191. data/src/core/ext/filters/http/message_compress/compression_filter.h +139 -0
  192. data/src/core/ext/filters/http/server/http_server_filter.cc +55 -55
  193. data/src/core/ext/filters/http/server/http_server_filter.h +22 -22
  194. data/src/core/ext/filters/message_size/message_size_filter.cc +183 -290
  195. data/src/core/ext/filters/message_size/message_size_filter.h +72 -23
  196. data/src/core/ext/filters/rbac/rbac_filter.cc +16 -15
  197. data/src/core/ext/filters/rbac/rbac_filter.h +3 -3
  198. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +831 -536
  199. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +7 -8
  200. data/src/core/ext/filters/server_config_selector/server_config_selector.h +14 -11
  201. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +15 -21
  202. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +3 -3
  203. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +220 -0
  204. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +81 -0
  205. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
  206. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
  207. data/src/core/ext/gcp/metadata_query.cc +137 -0
  208. data/src/core/ext/gcp/metadata_query.h +87 -0
  209. data/src/core/ext/transport/chttp2/alpn/alpn.cc +18 -18
  210. data/src/core/ext/transport/chttp2/alpn/alpn.h +24 -24
  211. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +108 -130
  212. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +30 -24
  213. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +221 -242
  214. data/src/core/ext/transport/chttp2/server/chttp2_server.h +25 -27
  215. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +22 -22
  216. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +33 -33
  217. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +42 -38
  218. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +35 -31
  219. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +808 -730
  220. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +45 -24
  221. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +70 -0
  222. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +251 -0
  223. data/src/core/ext/transport/chttp2/transport/decode_huff.h +971 -0
  224. data/src/core/ext/transport/chttp2/transport/flow_control.cc +180 -60
  225. data/src/core/ext/transport/chttp2/transport/flow_control.h +78 -45
  226. data/src/core/ext/transport/chttp2/transport/frame.h +21 -21
  227. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -32
  228. data/src/core/ext/transport/chttp2/transport/frame_data.h +27 -27
  229. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +38 -36
  230. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +20 -20
  231. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +28 -33
  232. data/src/core/ext/transport/chttp2/transport/frame_ping.h +21 -24
  233. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +30 -25
  234. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +21 -21
  235. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +39 -37
  236. data/src/core/ext/transport/chttp2/transport/frame_settings.h +22 -22
  237. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +24 -21
  238. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +21 -21
  239. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +10 -4
  240. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +212 -365
  241. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +328 -160
  242. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +4 -2
  243. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +13 -5
  244. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +500 -754
  245. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -26
  246. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +42 -47
  247. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +41 -28
  248. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
  249. data/src/core/ext/transport/chttp2/transport/http2_settings.h +39 -37
  250. data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
  251. data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
  252. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
  253. data/src/core/ext/transport/chttp2/transport/huffsyms.h +21 -21
  254. data/src/core/ext/transport/chttp2/transport/internal.h +224 -193
  255. data/src/core/ext/transport/chttp2/transport/parsing.cc +307 -109
  256. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +19 -19
  257. data/src/core/ext/transport/chttp2/transport/stream_map.cc +23 -23
  258. data/src/core/ext/transport/chttp2/transport/stream_map.h +33 -33
  259. data/src/core/ext/transport/chttp2/transport/varint.cc +19 -20
  260. data/src/core/ext/transport/chttp2/transport/varint.h +37 -34
  261. data/src/core/ext/transport/chttp2/transport/writing.cc +94 -84
  262. data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -17
  263. data/src/core/ext/transport/inproc/inproc_transport.cc +184 -232
  264. data/src/core/ext/transport/inproc/inproc_transport.h +21 -21
  265. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +87 -52
  266. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +435 -182
  267. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -59
  268. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +502 -220
  269. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +93 -377
  270. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +468 -1881
  271. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +535 -0
  272. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +2796 -0
  273. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +30 -17
  274. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +152 -47
  275. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +34 -19
  276. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +176 -49
  277. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +27 -14
  278. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +82 -38
  279. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +20 -11
  280. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +52 -26
  281. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +20 -11
  282. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +52 -26
  283. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +109 -62
  284. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +574 -244
  285. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +21 -12
  286. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +49 -30
  287. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -19
  288. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +82 -29
  289. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +23 -16
  290. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +49 -30
  291. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +230 -143
  292. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +795 -406
  293. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +417 -256
  294. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1954 -858
  295. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -41
  296. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +298 -148
  297. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +537 -348
  298. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2136 -1171
  299. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -12
  300. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +49 -30
  301. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +89 -52
  302. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +351 -232
  303. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +264 -165
  304. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +948 -480
  305. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +154 -72
  306. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +631 -213
  307. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -13
  308. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +54 -36
  309. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +380 -219
  310. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1263 -598
  311. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +166 -94
  312. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +694 -292
  313. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +18 -11
  314. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +41 -26
  315. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +21 -12
  316. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +49 -30
  317. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +30 -17
  318. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +152 -47
  319. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +274 -167
  320. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +841 -440
  321. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +222 -128
  322. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +1152 -485
  323. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -13
  324. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +64 -37
  325. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +350 -207
  326. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1156 -620
  327. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +44 -11
  328. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +179 -18
  329. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +34 -19
  330. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +127 -57
  331. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +48 -16
  332. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +193 -44
  333. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +31 -18
  334. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +147 -65
  335. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +22 -13
  336. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +55 -37
  337. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +78 -43
  338. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +277 -127
  339. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +147 -84
  340. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +479 -227
  341. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +115 -62
  342. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +579 -227
  343. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +18 -11
  344. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +39 -26
  345. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +198 -94
  346. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +1072 -358
  347. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +172 -95
  348. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +893 -375
  349. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +49 -23
  350. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +186 -89
  351. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +40 -16
  352. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +95 -45
  353. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +28 -15
  354. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +75 -45
  355. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +131 -74
  356. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +521 -249
  357. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +135 -80
  358. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +542 -246
  359. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +263 -121
  360. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +1083 -374
  361. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +83 -48
  362. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +656 -232
  363. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +1317 -722
  364. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +5948 -2306
  365. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +49 -28
  366. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +177 -85
  367. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +223 -117
  368. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +847 -369
  369. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +20 -10
  370. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +57 -22
  371. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +21 -12
  372. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +49 -30
  373. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +32 -19
  374. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +78 -49
  375. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +27 -14
  376. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +114 -43
  377. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +46 -25
  378. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +263 -100
  379. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +55 -0
  380. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +122 -0
  381. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +18 -11
  382. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +39 -26
  383. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +42 -23
  384. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +116 -70
  385. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +8 -4
  386. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +21 -15
  387. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +43 -24
  388. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +118 -75
  389. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +30 -16
  390. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +104 -46
  391. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +16 -9
  392. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +77 -23
  393. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +60 -37
  394. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +170 -108
  395. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +74 -43
  396. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +369 -167
  397. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +47 -21
  398. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +146 -58
  399. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -18
  400. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +257 -67
  401. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +75 -0
  402. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +201 -0
  403. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +476 -283
  404. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2259 -1015
  405. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +53 -0
  406. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +107 -0
  407. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +69 -0
  408. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +246 -0
  409. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +138 -0
  410. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +499 -0
  411. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +36 -17
  412. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +148 -55
  413. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +18 -11
  414. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +39 -26
  415. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -4
  416. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +15 -10
  417. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +184 -94
  418. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +948 -349
  419. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +56 -33
  420. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +162 -101
  421. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +188 -109
  422. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +855 -408
  423. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +32 -19
  424. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +118 -54
  425. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +10 -7
  426. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +22 -14
  427. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +325 -85
  428. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1705 -299
  429. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +42 -23
  430. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +197 -76
  431. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +131 -84
  432. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +531 -239
  433. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +22 -13
  434. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +59 -34
  435. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +39 -26
  436. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +141 -69
  437. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +56 -0
  438. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +130 -0
  439. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +60 -26
  440. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +146 -51
  441. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +37 -20
  442. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +141 -63
  443. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -13
  444. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +95 -40
  445. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -12
  446. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +54 -32
  447. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +18 -11
  448. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +41 -26
  449. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +46 -27
  450. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +113 -70
  451. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +46 -0
  452. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +117 -0
  453. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +40 -23
  454. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +170 -76
  455. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +31 -18
  456. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +123 -57
  457. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +46 -29
  458. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +151 -91
  459. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +65 -42
  460. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +228 -121
  461. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +80 -45
  462. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +228 -131
  463. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +34 -21
  464. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +86 -53
  465. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -4
  466. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +13 -8
  467. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +16 -9
  468. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +32 -18
  469. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +28 -15
  470. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +63 -34
  471. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +43 -22
  472. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +103 -53
  473. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +78 -0
  474. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +237 -0
  475. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +7 -4
  476. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +16 -9
  477. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -11
  478. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +52 -26
  479. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +23 -14
  480. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +65 -41
  481. data/src/core/ext/upb-generated/google/api/annotations.upb.c +14 -11
  482. data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -20
  483. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +255 -154
  484. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +979 -451
  485. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +299 -180
  486. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +995 -484
  487. data/src/core/ext/upb-generated/google/api/http.upb.c +68 -35
  488. data/src/core/ext/upb-generated/google/api/http.upb.h +297 -121
  489. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +22 -13
  490. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -37
  491. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -10
  492. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +42 -22
  493. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +1037 -442
  494. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +3972 -1411
  495. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -10
  496. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +42 -22
  497. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +10 -7
  498. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +22 -14
  499. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +62 -39
  500. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +220 -103
  501. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -10
  502. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +42 -22
  503. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +90 -51
  504. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +193 -107
  505. data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -13
  506. data/src/core/ext/upb-generated/google/rpc/status.upb.h +99 -37
  507. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +59 -34
  508. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +170 -92
  509. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +43 -24
  510. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +122 -60
  511. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +250 -145
  512. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +960 -416
  513. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +34 -19
  514. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +84 -51
  515. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +25 -14
  516. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +53 -30
  517. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +144 -81
  518. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +442 -218
  519. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +51 -26
  520. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +161 -61
  521. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +173 -102
  522. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +884 -299
  523. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +68 -49
  524. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +167 -104
  525. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +26 -17
  526. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +59 -34
  527. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +12 -9
  528. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +31 -14
  529. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +26 -17
  530. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +59 -34
  531. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +23 -16
  532. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +49 -30
  533. data/src/core/ext/upb-generated/validate/validate.upb.c +846 -456
  534. data/src/core/ext/upb-generated/validate/validate.upb.h +4439 -1908
  535. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +68 -49
  536. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +167 -104
  537. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +26 -17
  538. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +59 -34
  539. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +12 -9
  540. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +31 -14
  541. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +65 -44
  542. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +153 -91
  543. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +23 -16
  544. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +49 -30
  545. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +16 -9
  546. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +32 -18
  547. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +56 -0
  548. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +122 -0
  549. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +37 -22
  550. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +104 -63
  551. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +26 -17
  552. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +56 -29
  553. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +21 -12
  554. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +49 -30
  555. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +23 -14
  556. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +66 -42
  557. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +44 -25
  558. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +177 -79
  559. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +27 -14
  560. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +69 -38
  561. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +86 -30
  562. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +227 -54
  563. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +21 -13
  564. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +93 -34
  565. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +53 -0
  566. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +107 -0
  567. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +75 -0
  568. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +270 -0
  569. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +39 -0
  570. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +78 -0
  571. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +78 -0
  572. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +289 -0
  573. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +162 -101
  574. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +539 -295
  575. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +160 -0
  576. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +740 -0
  577. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +24 -15
  578. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +61 -37
  579. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +40 -23
  580. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +170 -76
  581. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +82 -0
  582. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +240 -0
  583. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +85 -0
  584. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +246 -0
  585. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +21 -13
  586. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +49 -30
  587. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +1 -1
  588. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +6 -5
  589. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +55 -54
  590. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +6 -5
  591. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +68 -275
  592. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +6 -90
  593. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +277 -0
  594. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +126 -0
  595. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +1 -1
  596. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +6 -5
  597. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +15 -12
  598. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +6 -5
  599. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +1 -1
  600. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +6 -5
  601. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +1 -1
  602. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +6 -5
  603. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +1 -1
  604. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +6 -5
  605. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +1 -1
  606. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +6 -5
  607. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +1 -1
  608. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +6 -5
  609. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +1 -1
  610. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +6 -5
  611. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +1 -1
  612. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +6 -5
  613. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +108 -108
  614. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +6 -5
  615. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +251 -236
  616. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +6 -5
  617. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +1 -1
  618. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +6 -5
  619. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +233 -223
  620. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +6 -10
  621. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +1 -1
  622. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +6 -5
  623. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +1 -1
  624. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +6 -5
  625. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +1 -1
  626. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +6 -5
  627. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +96 -76
  628. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +11 -5
  629. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +1 -1
  630. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +6 -5
  631. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +188 -184
  632. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +6 -5
  633. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +13 -12
  634. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +11 -5
  635. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +1 -1
  636. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +6 -5
  637. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +1 -1
  638. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +6 -5
  639. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +1 -1
  640. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +6 -5
  641. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +1 -1
  642. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +6 -5
  643. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +82 -76
  644. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +6 -5
  645. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +1 -1
  646. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +6 -5
  647. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +194 -187
  648. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +6 -5
  649. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +32 -16
  650. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +11 -5
  651. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +1 -1
  652. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +6 -5
  653. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +8 -4
  654. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +11 -5
  655. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +17 -17
  656. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +6 -5
  657. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +1 -1
  658. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +6 -5
  659. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +1 -1
  660. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +6 -5
  661. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +72 -67
  662. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +6 -5
  663. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +1 -1
  664. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +6 -5
  665. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +1 -1
  666. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +6 -5
  667. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +161 -131
  668. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +26 -5
  669. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +1 -1
  670. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +6 -5
  671. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +55 -42
  672. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +6 -5
  673. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +40 -32
  674. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +6 -5
  675. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +1 -1
  676. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +6 -5
  677. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +1 -1
  678. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +6 -5
  679. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +1 -1
  680. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +6 -5
  681. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +162 -129
  682. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +21 -5
  683. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +83 -75
  684. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +8 -7
  685. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +744 -668
  686. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +26 -5
  687. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +1 -1
  688. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +6 -5
  689. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +151 -140
  690. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +11 -5
  691. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +17 -15
  692. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +6 -5
  693. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +1 -1
  694. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +6 -5
  695. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +1 -1
  696. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +6 -5
  697. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +1 -1
  698. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +6 -5
  699. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +1 -1
  700. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +6 -5
  701. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +45 -0
  702. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +36 -0
  703. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +1 -1
  704. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +6 -5
  705. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +1 -1
  706. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +6 -5
  707. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +17 -13
  708. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +6 -5
  709. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +1 -1
  710. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +6 -5
  711. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +21 -19
  712. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +6 -5
  713. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +1 -1
  714. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +6 -5
  715. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +1 -1
  716. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +6 -5
  717. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +1 -1
  718. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +6 -5
  719. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +47 -26
  720. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +6 -5
  721. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +54 -43
  722. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +6 -5
  723. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
  724. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +41 -0
  725. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +497 -468
  726. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +6 -5
  727. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
  728. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +36 -0
  729. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +1 -1
  730. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +6 -5
  731. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +138 -133
  732. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +6 -5
  733. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +1 -1
  734. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +6 -5
  735. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +151 -147
  736. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +6 -5
  737. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +1 -1
  738. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +6 -5
  739. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +6 -6
  740. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +6 -5
  741. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +157 -85
  742. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +41 -5
  743. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +6 -6
  744. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +6 -5
  745. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -114
  746. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +6 -5
  747. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +1 -1
  748. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +6 -5
  749. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +1 -1
  750. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +6 -5
  751. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +48 -0
  752. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +36 -0
  753. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +13 -10
  754. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +11 -5
  755. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +1 -1
  756. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +6 -5
  757. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +1 -1
  758. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +6 -5
  759. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +1 -1
  760. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +6 -5
  761. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +1 -1
  762. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +6 -5
  763. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +30 -29
  764. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +6 -5
  765. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +40 -0
  766. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +41 -0
  767. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +1 -1
  768. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +6 -5
  769. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +1 -1
  770. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +6 -5
  771. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +1 -1
  772. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +6 -5
  773. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +1 -1
  774. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +6 -5
  775. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +1 -1
  776. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +6 -5
  777. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +1 -1
  778. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +6 -5
  779. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +1 -1
  780. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +6 -5
  781. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +1 -1
  782. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +6 -5
  783. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +1 -1
  784. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +6 -5
  785. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +1 -1
  786. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +6 -5
  787. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
  788. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +41 -0
  789. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +11 -10
  790. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +6 -5
  791. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +1 -1
  792. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +6 -5
  793. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +1 -1
  794. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +6 -5
  795. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +1 -1
  796. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +6 -5
  797. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +1 -1
  798. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +6 -5
  799. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +1 -1
  800. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +6 -5
  801. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +1 -1
  802. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +6 -5
  803. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +1 -1
  804. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +6 -5
  805. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +1 -1
  806. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +6 -5
  807. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +328 -270
  808. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +11 -5
  809. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +1 -1
  810. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +6 -5
  811. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +1 -1
  812. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +6 -5
  813. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +1 -1
  814. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +6 -5
  815. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +1 -1
  816. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +6 -5
  817. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +1 -1
  818. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +6 -5
  819. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +1 -1
  820. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +6 -5
  821. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +1 -1
  822. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +6 -5
  823. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +1 -1
  824. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +6 -5
  825. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +1 -1
  826. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +6 -5
  827. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +1 -1
  828. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +6 -5
  829. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +1 -1
  830. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +6 -5
  831. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +1 -1
  832. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +6 -5
  833. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +1 -1
  834. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +6 -5
  835. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +1 -1
  836. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +6 -5
  837. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +1 -1
  838. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +6 -5
  839. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +1 -1
  840. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +6 -5
  841. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +1 -1
  842. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +6 -5
  843. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +1 -1
  844. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +6 -5
  845. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +1 -1
  846. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +6 -5
  847. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +1 -1
  848. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +6 -5
  849. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
  850. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +36 -0
  851. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +1 -1
  852. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +6 -5
  853. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +1 -1
  854. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +6 -5
  855. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +1 -1
  856. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +6 -5
  857. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +1 -1
  858. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +6 -5
  859. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +1 -1
  860. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +6 -5
  861. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +1 -1
  862. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +6 -5
  863. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
  864. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +36 -0
  865. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
  866. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +41 -0
  867. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
  868. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +36 -0
  869. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
  870. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +41 -0
  871. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +10 -10
  872. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +6 -5
  873. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
  874. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +61 -0
  875. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +1 -1
  876. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +6 -5
  877. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +1 -1
  878. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +6 -5
  879. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
  880. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +41 -0
  881. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
  882. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +46 -0
  883. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +5 -8
  884. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +6 -5
  885. data/src/core/ext/xds/certificate_provider_store.cc +58 -3
  886. data/src/core/ext/xds/certificate_provider_store.h +12 -4
  887. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +36 -50
  888. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +18 -13
  889. data/src/core/ext/xds/upb_utils.h +4 -25
  890. data/src/core/ext/xds/xds_api.cc +117 -198
  891. data/src/core/ext/xds/xds_api.h +32 -36
  892. data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
  893. data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
  894. data/src/core/ext/xds/xds_bootstrap.cc +7 -552
  895. data/src/core/ext/xds/xds_bootstrap.h +41 -94
  896. data/src/core/ext/xds/xds_bootstrap_grpc.cc +374 -0
  897. data/src/core/ext/xds/xds_bootstrap_grpc.h +189 -0
  898. data/src/core/ext/xds/xds_certificate_provider.cc +22 -25
  899. data/src/core/ext/xds/xds_certificate_provider.h +13 -4
  900. data/src/core/ext/xds/xds_channel_args.h +3 -3
  901. data/src/core/ext/xds/xds_channel_stack_modifier.cc +7 -7
  902. data/src/core/ext/xds/xds_channel_stack_modifier.h +12 -4
  903. data/src/core/ext/xds/xds_client.cc +830 -1348
  904. data/src/core/ext/xds/xds_client.h +46 -64
  905. data/src/core/ext/xds/xds_client_grpc.cc +235 -0
  906. data/src/core/ext/xds/xds_client_grpc.h +79 -0
  907. data/src/core/ext/xds/xds_client_stats.cc +50 -36
  908. data/src/core/ext/xds/xds_client_stats.h +46 -41
  909. data/src/core/ext/xds/xds_cluster.cc +396 -246
  910. data/src/core/ext/xds/xds_cluster.h +60 -43
  911. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +62 -77
  912. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +50 -25
  913. data/src/core/ext/xds/xds_common_types.cc +234 -130
  914. data/src/core/ext/xds/xds_common_types.h +24 -19
  915. data/src/core/ext/xds/xds_endpoint.cc +263 -164
  916. data/src/core/ext/xds/xds_endpoint.h +19 -15
  917. data/src/core/ext/xds/xds_health_status.cc +80 -0
  918. data/src/core/ext/xds/xds_health_status.h +109 -0
  919. data/src/core/ext/xds/xds_http_fault_filter.cc +72 -62
  920. data/src/core/ext/xds/xds_http_fault_filter.h +21 -28
  921. data/src/core/ext/xds/xds_http_filters.cc +65 -73
  922. data/src/core/ext/xds/xds_http_filters.h +78 -27
  923. data/src/core/ext/xds/xds_http_rbac_filter.cc +307 -295
  924. data/src/core/ext/xds/xds_http_rbac_filter.h +21 -23
  925. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +222 -0
  926. data/src/core/ext/xds/xds_http_stateful_session_filter.h +59 -0
  927. data/src/core/ext/xds/xds_lb_policy_registry.cc +215 -171
  928. data/src/core/ext/xds/xds_lb_policy_registry.h +15 -16
  929. data/src/core/ext/xds/xds_listener.cc +549 -478
  930. data/src/core/ext/xds/xds_listener.h +51 -54
  931. data/src/core/ext/xds/xds_resource_type.h +28 -22
  932. data/src/core/ext/xds/xds_resource_type_impl.h +13 -16
  933. data/src/core/ext/xds/xds_route_config.cc +610 -576
  934. data/src/core/ext/xds/xds_route_config.h +69 -44
  935. data/src/core/ext/xds/xds_routing.cc +7 -9
  936. data/src/core/ext/xds/xds_routing.h +12 -12
  937. data/src/core/ext/xds/xds_server_config_fetcher.cc +184 -184
  938. data/src/core/ext/xds/xds_transport.h +86 -0
  939. data/src/core/ext/xds/xds_transport_grpc.cc +358 -0
  940. data/src/core/ext/xds/xds_transport_grpc.h +135 -0
  941. data/src/core/lib/address_utils/parse_address.cc +49 -46
  942. data/src/core/lib/address_utils/parse_address.h +43 -40
  943. data/src/core/lib/address_utils/sockaddr_utils.cc +30 -28
  944. data/src/core/lib/address_utils/sockaddr_utils.h +36 -36
  945. data/src/core/lib/avl/avl.h +59 -32
  946. data/src/core/lib/backoff/backoff.cc +19 -21
  947. data/src/core/lib/backoff/backoff.h +20 -20
  948. data/src/core/lib/backoff/random_early_detection.cc +31 -0
  949. data/src/core/lib/backoff/random_early_detection.h +59 -0
  950. data/src/core/lib/channel/call_finalization.h +5 -7
  951. data/src/core/lib/channel/call_tracer.cc +51 -0
  952. data/src/core/lib/channel/call_tracer.h +106 -34
  953. data/src/core/lib/channel/channel_args.cc +188 -61
  954. data/src/core/lib/channel/channel_args.h +318 -112
  955. data/src/core/lib/channel/channel_args_preconditioning.h +4 -4
  956. data/src/core/lib/channel/channel_fwd.h +3 -3
  957. data/src/core/lib/channel/channel_stack.cc +60 -58
  958. data/src/core/lib/channel/channel_stack.h +148 -135
  959. data/src/core/lib/channel/channel_stack_builder.cc +21 -24
  960. data/src/core/lib/channel/channel_stack_builder.h +17 -9
  961. data/src/core/lib/channel/channel_stack_builder_impl.cc +55 -26
  962. data/src/core/lib/channel/channel_stack_builder_impl.h +5 -3
  963. data/src/core/lib/channel/channel_trace.cc +40 -38
  964. data/src/core/lib/channel/channel_trace.h +22 -22
  965. data/src/core/lib/channel/channelz.cc +190 -173
  966. data/src/core/lib/channel/channelz.h +80 -64
  967. data/src/core/lib/channel/channelz_registry.cc +41 -37
  968. data/src/core/lib/channel/channelz_registry.h +21 -21
  969. data/src/core/lib/channel/connected_channel.cc +764 -67
  970. data/src/core/lib/channel/connected_channel.h +20 -24
  971. data/src/core/lib/channel/context.h +33 -22
  972. data/src/core/lib/channel/promise_based_filter.cc +1607 -295
  973. data/src/core/lib/channel/promise_based_filter.h +485 -104
  974. data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
  975. data/src/core/lib/channel/status_util.cc +62 -17
  976. data/src/core/lib/channel/status_util.h +39 -22
  977. data/src/core/lib/compression/compression.cc +19 -19
  978. data/src/core/lib/compression/compression_internal.cc +38 -48
  979. data/src/core/lib/compression/compression_internal.h +25 -25
  980. data/src/core/lib/compression/message_compress.cc +26 -26
  981. data/src/core/lib/compression/message_compress.h +27 -27
  982. data/src/core/lib/config/config_vars.cc +153 -0
  983. data/src/core/lib/config/config_vars.h +127 -0
  984. data/src/core/lib/config/config_vars_non_generated.cc +51 -0
  985. data/src/core/lib/config/core_configuration.cc +5 -1
  986. data/src/core/lib/config/core_configuration.h +84 -38
  987. data/src/core/lib/config/load_config.cc +79 -0
  988. data/src/core/lib/config/load_config.h +55 -0
  989. data/src/core/lib/debug/event_log.cc +88 -0
  990. data/src/core/lib/debug/event_log.h +81 -0
  991. data/src/core/lib/debug/histogram_view.cc +69 -0
  992. data/src/core/lib/debug/histogram_view.h +37 -0
  993. data/src/core/lib/debug/stats.cc +47 -151
  994. data/src/core/lib/debug/stats.h +49 -57
  995. data/src/core/lib/debug/stats_data.cc +302 -646
  996. data/src/core/lib/debug/stats_data.h +295 -543
  997. data/src/core/lib/debug/trace.cc +56 -81
  998. data/src/core/lib/debug/trace.h +37 -54
  999. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +211 -0
  1000. data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
  1001. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
  1002. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
  1003. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
  1004. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +15 -18
  1005. data/src/core/lib/event_engine/channel_args_endpoint_config.h +16 -10
  1006. data/src/core/lib/event_engine/common_closures.h +71 -0
  1007. data/src/core/lib/event_engine/default_event_engine.cc +111 -0
  1008. data/src/core/lib/event_engine/default_event_engine.h +73 -0
  1009. data/src/core/lib/event_engine/default_event_engine_factory.cc +32 -5
  1010. data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine_factory.h} +4 -12
  1011. data/src/core/lib/event_engine/event_engine.cc +29 -36
  1012. data/src/core/lib/event_engine/forkable.cc +106 -0
  1013. data/src/core/lib/event_engine/forkable.h +61 -0
  1014. data/src/core/lib/event_engine/handle_containers.h +12 -20
  1015. data/src/core/lib/event_engine/memory_allocator.cc +1 -1
  1016. data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
  1017. data/src/core/lib/event_engine/poller.h +62 -0
  1018. data/src/core/lib/event_engine/posix.h +162 -0
  1019. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +642 -0
  1020. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +139 -0
  1021. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +895 -0
  1022. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
  1023. data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
  1024. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +68 -0
  1025. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +33 -0
  1026. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
  1027. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
  1028. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +254 -0
  1029. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
  1030. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1338 -0
  1031. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +726 -0
  1032. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +637 -0
  1033. data/src/core/lib/event_engine/posix_engine/posix_engine.h +259 -0
  1034. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
  1035. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +292 -0
  1036. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +278 -0
  1037. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +379 -0
  1038. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
  1039. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +867 -0
  1040. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +316 -0
  1041. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +51 -52
  1042. data/src/core/lib/event_engine/posix_engine/timer.h +194 -0
  1043. data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +29 -29
  1044. data/src/core/lib/event_engine/posix_engine/timer_heap.h +56 -0
  1045. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +173 -0
  1046. data/src/core/lib/event_engine/posix_engine/timer_manager.h +114 -0
  1047. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +332 -0
  1048. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +185 -0
  1049. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +127 -0
  1050. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
  1051. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +150 -0
  1052. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +45 -0
  1053. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
  1054. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
  1055. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
  1056. data/src/core/lib/event_engine/resolved_address.cc +21 -1
  1057. data/src/core/lib/event_engine/resolved_address_internal.h +34 -0
  1058. data/src/core/lib/event_engine/shim.cc +64 -0
  1059. data/src/core/lib/event_engine/shim.h +33 -0
  1060. data/src/core/lib/event_engine/slice.cc +8 -7
  1061. data/src/core/lib/event_engine/slice_buffer.cc +2 -2
  1062. data/src/core/lib/event_engine/tcp_socket_utils.cc +389 -0
  1063. data/src/core/lib/event_engine/tcp_socket_utils.h +90 -0
  1064. data/src/core/lib/event_engine/thread_local.cc +29 -0
  1065. data/src/core/lib/event_engine/thread_local.h +32 -0
  1066. data/src/core/lib/event_engine/thread_pool/original_thread_pool.cc +256 -0
  1067. data/src/core/lib/event_engine/thread_pool/original_thread_pool.h +137 -0
  1068. data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
  1069. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +40 -0
  1070. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +489 -0
  1071. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +249 -0
  1072. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +166 -0
  1073. data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → thready_event_engine/thready_event_engine.h} +51 -65
  1074. data/src/core/lib/event_engine/time_util.cc +30 -0
  1075. data/src/core/lib/event_engine/time_util.h +32 -0
  1076. data/src/core/lib/event_engine/trace.cc +7 -0
  1077. data/src/core/lib/event_engine/trace.h +22 -3
  1078. data/src/core/lib/event_engine/utils.cc +44 -0
  1079. data/src/core/lib/event_engine/utils.h +44 -0
  1080. data/src/core/lib/event_engine/windows/iocp.cc +141 -0
  1081. data/src/core/lib/event_engine/windows/iocp.h +69 -0
  1082. data/src/core/lib/event_engine/windows/win_socket.cc +218 -0
  1083. data/src/core/lib/event_engine/windows/win_socket.h +129 -0
  1084. data/src/core/lib/event_engine/windows/windows_endpoint.cc +379 -0
  1085. data/src/core/lib/event_engine/windows/windows_endpoint.h +120 -0
  1086. data/src/core/lib/event_engine/windows/windows_engine.cc +411 -0
  1087. data/src/core/lib/event_engine/windows/windows_engine.h +164 -0
  1088. data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
  1089. data/src/core/lib/event_engine/windows/windows_listener.h +156 -0
  1090. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
  1091. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
  1092. data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
  1093. data/src/core/lib/experiments/config.cc +185 -0
  1094. data/src/core/lib/experiments/config.h +69 -0
  1095. data/src/core/lib/experiments/experiments.cc +138 -0
  1096. data/src/core/lib/experiments/experiments.h +134 -0
  1097. data/src/core/lib/gpr/alloc.cc +19 -25
  1098. data/src/core/lib/gpr/alloc.h +20 -20
  1099. data/src/core/lib/gpr/{log_android.cc → android/log.cc} +22 -20
  1100. data/src/core/lib/gpr/atm.cc +17 -17
  1101. data/src/core/lib/gpr/iphone/cpu.cc +44 -0
  1102. data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +28 -23
  1103. data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +24 -24
  1104. data/src/core/lib/gpr/log.cc +42 -47
  1105. data/src/core/lib/gpr/log_internal.h +55 -0
  1106. data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +21 -20
  1107. data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +23 -22
  1108. data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +20 -19
  1109. data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +24 -24
  1110. data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +22 -34
  1111. data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +40 -36
  1112. data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +22 -20
  1113. data/src/core/lib/gpr/spinlock.h +20 -20
  1114. data/src/core/lib/gpr/string.cc +25 -24
  1115. data/src/core/lib/gpr/string.h +61 -61
  1116. data/src/core/lib/gpr/sync.cc +25 -25
  1117. data/src/core/lib/gpr/sync_abseil.cc +36 -40
  1118. data/src/core/lib/gpr/time.cc +34 -30
  1119. data/src/core/lib/gpr/time_precise.cc +22 -22
  1120. data/src/core/lib/gpr/time_precise.h +21 -22
  1121. data/src/core/lib/gpr/tmpfile.h +24 -24
  1122. data/src/core/lib/gpr/useful.h +83 -30
  1123. data/src/core/{ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc → lib/gpr/windows/cpu.cc} +16 -11
  1124. data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +25 -25
  1125. data/src/core/lib/gpr/windows/string.cc +69 -0
  1126. data/src/core/lib/gpr/windows/string_util.cc +55 -0
  1127. data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +29 -27
  1128. data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +25 -22
  1129. data/src/core/lib/gpr/windows/tmpfile.cc +68 -0
  1130. data/src/core/lib/gpr/wrap_memcpy.cc +23 -23
  1131. data/src/core/lib/gprpp/atomic_utils.h +20 -20
  1132. data/src/core/lib/gprpp/bitset.h +30 -16
  1133. data/src/core/lib/gprpp/chunked_vector.h +3 -3
  1134. data/src/core/lib/gprpp/construct_destruct.h +3 -3
  1135. data/src/core/lib/gprpp/cpp_impl_of.h +3 -3
  1136. data/src/core/lib/gprpp/crash.cc +43 -0
  1137. data/src/core/lib/gprpp/crash.h +37 -0
  1138. data/src/core/lib/gprpp/debug_location.h +60 -31
  1139. data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
  1140. data/src/core/lib/gprpp/env.h +53 -0
  1141. data/src/core/lib/gprpp/examine_stack.cc +17 -17
  1142. data/src/core/lib/gprpp/examine_stack.h +21 -21
  1143. data/src/core/lib/gprpp/fork.cc +63 -61
  1144. data/src/core/lib/gprpp/fork.h +29 -35
  1145. data/src/core/lib/gprpp/host_port.cc +28 -26
  1146. data/src/core/lib/gprpp/host_port.h +32 -31
  1147. data/src/core/lib/gprpp/linux/env.cc +80 -0
  1148. data/src/core/lib/gprpp/load_file.cc +75 -0
  1149. data/src/core/lib/gprpp/load_file.h +33 -0
  1150. data/src/core/lib/gprpp/manual_constructor.h +21 -21
  1151. data/src/core/lib/gprpp/match.h +3 -3
  1152. data/src/core/lib/gprpp/memory.h +21 -21
  1153. data/src/core/lib/gprpp/mpscq.cc +17 -17
  1154. data/src/core/lib/gprpp/mpscq.h +21 -21
  1155. data/src/core/lib/gprpp/no_destruct.h +95 -0
  1156. data/src/core/lib/gprpp/notification.h +67 -0
  1157. data/src/core/lib/gprpp/orphanable.h +25 -24
  1158. data/src/core/lib/gprpp/overload.h +3 -3
  1159. data/src/core/lib/gprpp/packed_table.h +40 -0
  1160. data/src/core/lib/gprpp/per_cpu.cc +33 -0
  1161. data/src/core/lib/gprpp/per_cpu.h +75 -0
  1162. data/src/core/lib/gprpp/posix/env.cc +47 -0
  1163. data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +5 -4
  1164. data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +75 -64
  1165. data/src/core/lib/gprpp/ref_counted.h +54 -55
  1166. data/src/core/lib/gprpp/ref_counted_ptr.h +41 -54
  1167. data/src/core/lib/gprpp/single_set_ptr.h +3 -3
  1168. data/src/core/lib/gprpp/sorted_pack.h +98 -0
  1169. data/src/core/lib/gprpp/stat.h +3 -3
  1170. data/src/core/lib/gprpp/status_helper.cc +6 -4
  1171. data/src/core/lib/gprpp/status_helper.h +9 -5
  1172. data/src/core/lib/gprpp/strerror.cc +43 -0
  1173. data/src/core/lib/gprpp/strerror.h +29 -0
  1174. data/src/core/lib/gprpp/sync.h +23 -23
  1175. data/src/core/lib/gprpp/table.h +12 -4
  1176. data/src/core/lib/gprpp/tchar.cc +49 -0
  1177. data/src/core/lib/gprpp/tchar.h +33 -0
  1178. data/src/core/lib/gprpp/thd.h +39 -23
  1179. data/src/core/lib/gprpp/time.cc +37 -8
  1180. data/src/core/lib/gprpp/time.h +69 -4
  1181. data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +23 -25
  1182. data/src/core/lib/gprpp/time_averaged_stats.h +79 -0
  1183. data/src/core/lib/gprpp/time_util.h +4 -4
  1184. data/src/core/lib/gprpp/unique_type_name.h +21 -21
  1185. data/src/core/lib/gprpp/validation_errors.cc +66 -0
  1186. data/src/core/lib/gprpp/validation_errors.h +134 -0
  1187. data/src/core/lib/gprpp/windows/env.cc +56 -0
  1188. data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +4 -2
  1189. data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +28 -28
  1190. data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
  1191. data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
  1192. data/src/core/lib/handshaker/proxy_mapper.h +53 -0
  1193. data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
  1194. data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
  1195. data/src/core/lib/http/format_request.cc +19 -18
  1196. data/src/core/lib/http/format_request.h +20 -20
  1197. data/src/core/lib/http/httpcli.cc +69 -84
  1198. data/src/core/lib/http/httpcli.h +29 -29
  1199. data/src/core/lib/http/httpcli_security_connector.cc +33 -36
  1200. data/src/core/lib/http/httpcli_ssl_credentials.h +3 -3
  1201. data/src/core/lib/http/parser.cc +76 -87
  1202. data/src/core/lib/http/parser.h +35 -35
  1203. data/src/core/lib/iomgr/block_annotate.h +23 -23
  1204. data/src/core/lib/iomgr/buffer_list.cc +156 -136
  1205. data/src/core/lib/iomgr/buffer_list.h +122 -101
  1206. data/src/core/lib/iomgr/call_combiner.cc +32 -64
  1207. data/src/core/lib/iomgr/call_combiner.h +26 -27
  1208. data/src/core/lib/iomgr/cfstream_handle.cc +34 -37
  1209. data/src/core/lib/iomgr/cfstream_handle.h +25 -25
  1210. data/src/core/lib/iomgr/closure.cc +27 -0
  1211. data/src/core/lib/iomgr/closure.h +95 -58
  1212. data/src/core/lib/iomgr/combiner.cc +20 -39
  1213. data/src/core/lib/iomgr/combiner.h +20 -20
  1214. data/src/core/lib/iomgr/dualstack_socket_posix.cc +21 -21
  1215. data/src/core/lib/iomgr/dynamic_annotations.h +22 -22
  1216. data/src/core/lib/iomgr/endpoint.cc +17 -17
  1217. data/src/core/lib/iomgr/endpoint.h +49 -49
  1218. data/src/core/lib/iomgr/endpoint_cfstream.cc +58 -53
  1219. data/src/core/lib/iomgr/endpoint_cfstream.h +32 -32
  1220. data/src/core/lib/iomgr/endpoint_pair.h +22 -22
  1221. data/src/core/lib/iomgr/endpoint_pair_posix.cc +36 -30
  1222. data/src/core/lib/iomgr/endpoint_pair_windows.cc +31 -22
  1223. data/src/core/lib/iomgr/error.cc +49 -834
  1224. data/src/core/lib/iomgr/error.h +45 -321
  1225. data/src/core/lib/iomgr/error_cfstream.cc +18 -23
  1226. data/src/core/lib/iomgr/error_cfstream.h +21 -21
  1227. data/src/core/lib/iomgr/ev_apple.cc +33 -33
  1228. data/src/core/lib/iomgr/ev_apple.h +21 -21
  1229. data/src/core/lib/iomgr/ev_epoll1_linux.cc +219 -236
  1230. data/src/core/lib/iomgr/ev_epoll1_linux.h +20 -20
  1231. data/src/core/lib/iomgr/ev_poll_posix.cc +231 -231
  1232. data/src/core/lib/iomgr/ev_poll_posix.h +20 -20
  1233. data/src/core/lib/iomgr/ev_posix.cc +47 -79
  1234. data/src/core/lib/iomgr/ev_posix.h +88 -87
  1235. data/src/core/lib/iomgr/ev_windows.cc +18 -18
  1236. data/src/core/lib/iomgr/event_engine_shims/closure.cc +62 -0
  1237. data/src/core/lib/iomgr/event_engine_shims/closure.h +39 -0
  1238. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +471 -0
  1239. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +43 -0
  1240. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +91 -0
  1241. data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +44 -0
  1242. data/src/core/lib/iomgr/exec_ctx.cc +34 -56
  1243. data/src/core/lib/iomgr/exec_ctx.h +151 -175
  1244. data/src/core/lib/iomgr/executor.cc +21 -31
  1245. data/src/core/lib/iomgr/executor.h +27 -30
  1246. data/src/core/lib/iomgr/fork_posix.cc +29 -26
  1247. data/src/core/lib/iomgr/fork_windows.cc +21 -21
  1248. data/src/core/lib/iomgr/gethostname.h +20 -20
  1249. data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
  1250. data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
  1251. data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
  1252. data/src/core/lib/iomgr/grpc_if_nametoindex.h +22 -22
  1253. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +20 -19
  1254. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +20 -19
  1255. data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
  1256. data/src/core/lib/iomgr/internal_errqueue.h +83 -83
  1257. data/src/core/lib/iomgr/iocp_windows.cc +47 -26
  1258. data/src/core/lib/iomgr/iocp_windows.h +32 -21
  1259. data/src/core/lib/iomgr/iomgr.cc +29 -34
  1260. data/src/core/lib/iomgr/iomgr.h +35 -35
  1261. data/src/core/lib/iomgr/iomgr_fwd.h +4 -3
  1262. data/src/core/lib/iomgr/iomgr_internal.cc +17 -17
  1263. data/src/core/lib/iomgr/iomgr_internal.h +28 -28
  1264. data/src/core/lib/iomgr/iomgr_posix.cc +20 -20
  1265. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +21 -20
  1266. data/src/core/lib/iomgr/iomgr_windows.cc +32 -24
  1267. data/src/core/lib/iomgr/load_file.cc +24 -27
  1268. data/src/core/lib/iomgr/load_file.h +22 -22
  1269. data/src/core/lib/iomgr/lockfree_event.cc +114 -131
  1270. data/src/core/lib/iomgr/lockfree_event.h +23 -23
  1271. data/src/core/lib/iomgr/nameser.h +86 -86
  1272. data/src/core/lib/iomgr/polling_entity.cc +25 -21
  1273. data/src/core/lib/iomgr/polling_entity.h +29 -29
  1274. data/src/core/lib/iomgr/pollset.cc +17 -17
  1275. data/src/core/lib/iomgr/pollset.h +55 -55
  1276. data/src/core/lib/iomgr/pollset_set.cc +17 -17
  1277. data/src/core/lib/iomgr/pollset_set.h +25 -26
  1278. data/src/core/lib/iomgr/pollset_set_windows.cc +27 -27
  1279. data/src/core/lib/iomgr/pollset_set_windows.h +20 -20
  1280. data/src/core/lib/iomgr/pollset_windows.cc +33 -32
  1281. data/src/core/lib/iomgr/pollset_windows.h +24 -24
  1282. data/src/core/lib/iomgr/port.h +34 -31
  1283. data/src/core/lib/iomgr/python_util.h +24 -24
  1284. data/src/core/lib/iomgr/resolve_address.cc +26 -20
  1285. data/src/core/lib/iomgr/resolve_address.h +54 -31
  1286. data/src/core/lib/iomgr/resolve_address_impl.h +5 -4
  1287. data/src/core/lib/iomgr/resolve_address_posix.cc +74 -49
  1288. data/src/core/lib/iomgr/resolve_address_posix.h +23 -10
  1289. data/src/core/lib/iomgr/resolve_address_windows.cc +59 -26
  1290. data/src/core/lib/iomgr/resolve_address_windows.h +23 -10
  1291. data/src/core/lib/iomgr/resolved_address.h +3 -3
  1292. data/src/core/lib/iomgr/sockaddr.h +23 -23
  1293. data/src/core/lib/iomgr/sockaddr_posix.h +21 -21
  1294. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +20 -18
  1295. data/src/core/lib/iomgr/sockaddr_windows.h +21 -21
  1296. data/src/core/lib/iomgr/socket_factory_posix.cc +18 -18
  1297. data/src/core/lib/iomgr/socket_factory_posix.h +32 -32
  1298. data/src/core/lib/iomgr/socket_mutator.cc +19 -18
  1299. data/src/core/lib/iomgr/socket_mutator.h +39 -39
  1300. data/src/core/lib/iomgr/socket_utils.h +27 -27
  1301. data/src/core/lib/iomgr/socket_utils_common_posix.cc +99 -104
  1302. data/src/core/lib/iomgr/socket_utils_linux.cc +18 -17
  1303. data/src/core/lib/iomgr/socket_utils_posix.cc +106 -19
  1304. data/src/core/lib/iomgr/socket_utils_posix.h +179 -84
  1305. data/src/core/lib/iomgr/socket_utils_windows.cc +20 -19
  1306. data/src/core/lib/iomgr/socket_windows.cc +97 -42
  1307. data/src/core/lib/iomgr/socket_windows.h +68 -63
  1308. data/src/core/lib/iomgr/systemd_utils.cc +116 -0
  1309. data/src/core/lib/iomgr/systemd_utils.h +33 -0
  1310. data/src/core/lib/iomgr/tcp_client.cc +23 -24
  1311. data/src/core/lib/iomgr/tcp_client.h +39 -39
  1312. data/src/core/lib/iomgr/tcp_client_cfstream.cc +43 -35
  1313. data/src/core/lib/iomgr/tcp_client_posix.cc +117 -100
  1314. data/src/core/lib/iomgr/tcp_client_posix.h +54 -51
  1315. data/src/core/lib/iomgr/tcp_client_windows.cc +57 -48
  1316. data/src/core/lib/iomgr/tcp_posix.cc +448 -350
  1317. data/src/core/lib/iomgr/tcp_posix.h +32 -30
  1318. data/src/core/lib/iomgr/tcp_server.cc +33 -24
  1319. data/src/core/lib/iomgr/tcp_server.h +78 -69
  1320. data/src/core/lib/iomgr/tcp_server_posix.cc +390 -126
  1321. data/src/core/lib/iomgr/tcp_server_utils_posix.h +68 -55
  1322. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +93 -58
  1323. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +40 -40
  1324. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +19 -19
  1325. data/src/core/lib/iomgr/tcp_server_windows.cc +280 -123
  1326. data/src/core/lib/iomgr/tcp_windows.cc +121 -102
  1327. data/src/core/lib/iomgr/tcp_windows.h +34 -35
  1328. data/src/core/lib/iomgr/timer.cc +17 -17
  1329. data/src/core/lib/iomgr/timer.h +68 -68
  1330. data/src/core/lib/iomgr/timer_generic.cc +142 -150
  1331. data/src/core/lib/iomgr/timer_generic.h +21 -21
  1332. data/src/core/lib/iomgr/timer_heap.cc +25 -25
  1333. data/src/core/lib/iomgr/timer_heap.h +22 -22
  1334. data/src/core/lib/iomgr/timer_manager.cc +31 -31
  1335. data/src/core/lib/iomgr/timer_manager.h +27 -27
  1336. data/src/core/lib/iomgr/unix_sockets_posix.cc +20 -21
  1337. data/src/core/lib/iomgr/unix_sockets_posix.h +21 -21
  1338. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +19 -17
  1339. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +23 -23
  1340. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +23 -23
  1341. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +29 -26
  1342. data/src/core/lib/iomgr/wakeup_fd_pipe.h +20 -20
  1343. data/src/core/lib/iomgr/wakeup_fd_posix.cc +18 -18
  1344. data/src/core/lib/iomgr/wakeup_fd_posix.h +52 -52
  1345. data/src/core/lib/json/json.h +21 -240
  1346. data/src/core/{ext/filters/http/message_compress/message_decompress_filter.h → lib/json/json_args.h} +13 -11
  1347. data/src/core/lib/json/json_channel_args.h +42 -0
  1348. data/src/core/lib/json/json_object_loader.cc +216 -0
  1349. data/src/core/lib/json/json_object_loader.h +646 -0
  1350. data/src/core/lib/json/json_reader.cc +181 -129
  1351. data/src/core/lib/json/json_reader.h +34 -0
  1352. data/src/core/lib/json/json_util.cc +23 -55
  1353. data/src/core/lib/json/json_util.h +12 -11
  1354. data/src/core/lib/json/json_writer.cc +80 -81
  1355. data/src/core/{ext/xds/xds_resource_type.cc → lib/json/json_writer.h} +11 -11
  1356. data/src/core/lib/load_balancing/lb_policy.cc +98 -0
  1357. data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +49 -36
  1358. data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
  1359. data/src/core/lib/load_balancing/lb_policy_registry.cc +143 -0
  1360. data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
  1361. data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +9 -14
  1362. data/src/core/lib/matchers/matchers.cc +10 -9
  1363. data/src/core/lib/matchers/matchers.h +5 -4
  1364. data/src/core/lib/promise/activity.cc +43 -6
  1365. data/src/core/lib/promise/activity.h +159 -48
  1366. data/src/core/lib/promise/arena_promise.h +105 -72
  1367. data/src/core/lib/promise/cancel_callback.h +77 -0
  1368. data/src/core/lib/promise/context.h +17 -10
  1369. data/src/core/lib/promise/detail/basic_join.h +197 -0
  1370. data/src/core/lib/promise/detail/basic_seq.h +28 -33
  1371. data/src/core/lib/promise/detail/promise_factory.h +66 -14
  1372. data/src/core/lib/promise/detail/promise_like.h +3 -3
  1373. data/src/core/lib/promise/detail/status.h +31 -3
  1374. data/src/core/lib/promise/detail/switch.h +21 -21
  1375. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +23 -15
  1376. data/src/core/lib/promise/for_each.h +176 -0
  1377. data/src/core/lib/promise/if.h +204 -0
  1378. data/src/core/lib/promise/interceptor_list.h +329 -0
  1379. data/src/core/lib/promise/latch.h +197 -23
  1380. data/src/core/lib/promise/loop.h +22 -16
  1381. data/src/core/lib/promise/map.h +11 -6
  1382. data/src/core/lib/promise/party.cc +304 -0
  1383. data/src/core/lib/promise/party.h +508 -0
  1384. data/src/core/lib/promise/pipe.h +762 -0
  1385. data/src/core/lib/promise/poll.h +177 -11
  1386. data/src/core/lib/promise/prioritized_race.h +95 -0
  1387. data/src/core/lib/promise/promise.h +6 -7
  1388. data/src/core/lib/promise/race.h +6 -9
  1389. data/src/core/lib/promise/seq.h +32 -12
  1390. data/src/core/lib/promise/sleep.cc +53 -43
  1391. data/src/core/lib/promise/sleep.h +34 -26
  1392. data/src/core/lib/promise/trace.cc +20 -0
  1393. data/src/core/lib/promise/trace.h +24 -0
  1394. data/src/core/lib/promise/try_join.h +82 -0
  1395. data/src/core/lib/promise/try_seq.h +39 -21
  1396. data/src/core/lib/resolver/resolver.cc +17 -64
  1397. data/src/core/lib/resolver/resolver.h +18 -18
  1398. data/src/core/lib/resolver/resolver_factory.h +6 -7
  1399. data/src/core/lib/resolver/resolver_registry.cc +16 -1
  1400. data/src/core/lib/resolver/resolver_registry.h +5 -6
  1401. data/src/core/lib/resolver/server_address.cc +29 -39
  1402. data/src/core/lib/resolver/server_address.h +25 -37
  1403. data/src/core/lib/resource_quota/api.cc +10 -2
  1404. data/src/core/lib/resource_quota/api.h +10 -4
  1405. data/src/core/lib/resource_quota/arena.cc +101 -21
  1406. data/src/core/lib/resource_quota/arena.h +310 -23
  1407. data/src/core/lib/resource_quota/memory_quota.cc +280 -59
  1408. data/src/core/lib/resource_quota/memory_quota.h +165 -36
  1409. data/src/core/lib/resource_quota/periodic_update.cc +78 -0
  1410. data/src/core/lib/resource_quota/periodic_update.h +71 -0
  1411. data/src/core/lib/resource_quota/resource_quota.h +4 -4
  1412. data/src/core/lib/resource_quota/thread_quota.h +3 -3
  1413. data/src/core/lib/resource_quota/trace.h +3 -3
  1414. data/src/core/lib/security/authorization/audit_logging.cc +98 -0
  1415. data/src/core/lib/security/authorization/audit_logging.h +73 -0
  1416. data/src/core/lib/security/authorization/authorization_engine.h +3 -3
  1417. data/src/core/lib/security/authorization/authorization_policy_provider.h +4 -4
  1418. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +0 -1
  1419. data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
  1420. data/src/core/lib/security/authorization/evaluate_args.h +3 -3
  1421. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -4
  1422. data/src/core/lib/security/authorization/grpc_authorization_engine.h +21 -4
  1423. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -4
  1424. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +4 -4
  1425. data/src/core/lib/security/authorization/matchers.cc +38 -32
  1426. data/src/core/lib/security/authorization/matchers.h +3 -3
  1427. data/src/core/lib/security/authorization/rbac_policy.cc +39 -8
  1428. data/src/core/lib/security/authorization/rbac_policy.h +22 -5
  1429. data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
  1430. data/src/core/lib/security/authorization/stdout_logger.h +61 -0
  1431. data/src/core/{ext/xds → lib/security/certificate_provider}/certificate_provider_factory.h +11 -7
  1432. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +50 -0
  1433. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +76 -0
  1434. data/src/core/lib/security/context/security_context.cc +22 -23
  1435. data/src/core/lib/security/context/security_context.h +43 -33
  1436. data/src/core/lib/security/credentials/alts/alts_credentials.cc +19 -20
  1437. data/src/core/lib/security/credentials/alts/alts_credentials.h +56 -57
  1438. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +19 -19
  1439. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +43 -43
  1440. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +17 -17
  1441. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +18 -17
  1442. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +18 -17
  1443. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +19 -19
  1444. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
  1445. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +38 -39
  1446. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +18 -18
  1447. data/src/core/lib/security/credentials/call_creds_util.h +3 -3
  1448. data/src/core/lib/security/credentials/channel_creds_registry.h +3 -3
  1449. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +4 -4
  1450. data/src/core/lib/security/credentials/composite/composite_credentials.cc +25 -29
  1451. data/src/core/lib/security/credentials/composite/composite_credentials.h +25 -28
  1452. data/src/core/lib/security/credentials/credentials.cc +19 -18
  1453. data/src/core/lib/security/credentials/credentials.h +53 -48
  1454. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +131 -120
  1455. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -3
  1456. data/src/core/lib/security/credentials/external/aws_request_signer.cc +5 -3
  1457. data/src/core/lib/security/credentials/external/aws_request_signer.h +3 -3
  1458. data/src/core/lib/security/credentials/external/external_account_credentials.cc +121 -121
  1459. data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
  1460. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +40 -43
  1461. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +3 -3
  1462. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +51 -54
  1463. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +3 -3
  1464. data/src/core/lib/security/credentials/fake/fake_credentials.cc +23 -31
  1465. data/src/core/lib/security/credentials/fake/fake_credentials.h +37 -42
  1466. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +22 -25
  1467. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +105 -156
  1468. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +22 -25
  1469. data/src/core/lib/security/credentials/iam/iam_credentials.cc +19 -18
  1470. data/src/core/lib/security/credentials/iam/iam_credentials.h +20 -20
  1471. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
  1472. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +6 -7
  1473. data/src/core/lib/security/credentials/jwt/json_token.cc +54 -43
  1474. data/src/core/lib/security/credentials/jwt/json_token.h +35 -35
  1475. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +27 -26
  1476. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +22 -22
  1477. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +125 -124
  1478. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +47 -47
  1479. data/src/core/lib/security/credentials/local/local_credentials.cc +20 -21
  1480. data/src/core/lib/security/credentials/local/local_credentials.h +26 -27
  1481. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +89 -91
  1482. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -23
  1483. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +24 -24
  1484. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +25 -25
  1485. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +31 -40
  1486. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +23 -24
  1487. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +20 -28
  1488. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +7 -14
  1489. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +48 -47
  1490. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +15 -5
  1491. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +1 -1
  1492. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +3 -3
  1493. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +18 -18
  1494. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +3 -3
  1495. data/src/core/lib/security/credentials/tls/tls_credentials.cc +30 -43
  1496. data/src/core/lib/security/credentials/tls/tls_credentials.h +24 -25
  1497. data/src/core/lib/security/credentials/tls/tls_utils.cc +3 -1
  1498. data/src/core/lib/security/credentials/tls/tls_utils.h +3 -3
  1499. data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -31
  1500. data/src/core/lib/security/credentials/xds/xds_credentials.h +6 -6
  1501. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +43 -61
  1502. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +43 -44
  1503. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +58 -78
  1504. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +24 -25
  1505. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +7 -7
  1506. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +11 -15
  1507. data/src/core/lib/security/security_connector/load_system_roots.h +20 -20
  1508. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +18 -18
  1509. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +24 -31
  1510. data/src/core/lib/security/security_connector/load_system_roots_supported.h +22 -23
  1511. data/src/core/lib/security/security_connector/local/local_security_connector.cc +43 -45
  1512. data/src/core/lib/security/security_connector/local/local_security_connector.h +44 -45
  1513. data/src/core/lib/security/security_connector/security_connector.cc +17 -17
  1514. data/src/core/lib/security/security_connector/security_connector.h +40 -39
  1515. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +40 -43
  1516. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +40 -41
  1517. data/src/core/lib/security/security_connector/ssl_utils.cc +48 -64
  1518. data/src/core/lib/security/security_connector/ssl_utils.h +35 -35
  1519. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +59 -53
  1520. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +26 -26
  1521. data/src/core/lib/security/transport/auth_filters.h +46 -24
  1522. data/src/core/lib/security/transport/client_auth_filter.cc +36 -26
  1523. data/src/core/lib/security/transport/secure_endpoint.cc +58 -62
  1524. data/src/core/lib/security/transport/secure_endpoint.h +25 -25
  1525. data/src/core/lib/security/transport/security_handshaker.cc +111 -114
  1526. data/src/core/lib/security/transport/security_handshaker.h +24 -23
  1527. data/src/core/lib/security/transport/server_auth_filter.cc +160 -274
  1528. data/src/core/lib/security/transport/tsi_error.cc +23 -20
  1529. data/src/core/lib/security/transport/tsi_error.h +20 -20
  1530. data/src/core/lib/security/util/json_util.cc +27 -27
  1531. data/src/core/lib/security/util/json_util.h +20 -20
  1532. data/src/core/lib/service_config/service_config.h +15 -4
  1533. data/src/core/lib/service_config/service_config_call_data.h +54 -19
  1534. data/src/core/lib/service_config/service_config_impl.cc +113 -152
  1535. data/src/core/lib/service_config/service_config_impl.h +19 -24
  1536. data/src/core/lib/service_config/service_config_parser.cc +10 -28
  1537. data/src/core/lib/service_config/service_config_parser.h +13 -21
  1538. data/src/core/lib/slice/b64.cc +26 -26
  1539. data/src/core/lib/slice/b64.h +32 -32
  1540. data/src/core/lib/slice/percent_encoding.cc +21 -30
  1541. data/src/core/lib/slice/percent_encoding.h +28 -28
  1542. data/src/core/lib/slice/slice.cc +58 -46
  1543. data/src/core/lib/slice/slice.h +59 -18
  1544. data/src/core/lib/slice/slice_buffer.cc +63 -59
  1545. data/src/core/lib/slice/slice_buffer.h +35 -4
  1546. data/src/core/lib/slice/slice_internal.h +34 -42
  1547. data/src/core/lib/slice/slice_refcount.cc +3 -18
  1548. data/src/core/lib/slice/slice_refcount.h +53 -18
  1549. data/src/core/lib/slice/slice_string_helpers.cc +17 -17
  1550. data/src/core/lib/slice/slice_string_helpers.h +21 -21
  1551. data/src/core/lib/surface/api_trace.cc +17 -17
  1552. data/src/core/lib/surface/api_trace.h +25 -25
  1553. data/src/core/lib/surface/builtins.cc +2 -0
  1554. data/src/core/lib/surface/builtins.h +3 -3
  1555. data/src/core/lib/surface/byte_buffer.cc +22 -23
  1556. data/src/core/lib/surface/byte_buffer_reader.cc +23 -23
  1557. data/src/core/lib/surface/call.cc +2305 -547
  1558. data/src/core/lib/surface/call.h +123 -42
  1559. data/src/core/lib/surface/call_details.cc +20 -21
  1560. data/src/core/lib/surface/call_log_batch.cc +19 -18
  1561. data/src/core/lib/surface/call_test_only.h +33 -33
  1562. data/src/core/lib/surface/call_trace.cc +123 -0
  1563. data/src/core/lib/surface/call_trace.h +30 -0
  1564. data/src/core/lib/surface/channel.cc +65 -69
  1565. data/src/core/lib/surface/channel.h +43 -35
  1566. data/src/core/lib/surface/channel_init.cc +17 -17
  1567. data/src/core/lib/surface/channel_init.h +20 -20
  1568. data/src/core/lib/surface/channel_ping.cc +19 -19
  1569. data/src/core/lib/surface/channel_stack_type.cc +21 -17
  1570. data/src/core/lib/surface/channel_stack_type.h +22 -20
  1571. data/src/core/lib/surface/completion_queue.cc +195 -221
  1572. data/src/core/lib/surface/completion_queue.h +37 -40
  1573. data/src/core/lib/surface/completion_queue_factory.cc +33 -28
  1574. data/src/core/lib/surface/completion_queue_factory.h +22 -22
  1575. data/src/core/lib/surface/event_string.cc +18 -17
  1576. data/src/core/lib/surface/event_string.h +22 -22
  1577. data/src/core/lib/surface/init.cc +44 -72
  1578. data/src/core/lib/surface/init.h +20 -20
  1579. data/src/core/lib/surface/init_internally.cc +25 -0
  1580. data/src/core/lib/surface/init_internally.h +37 -0
  1581. data/src/core/lib/surface/lame_client.cc +33 -29
  1582. data/src/core/lib/surface/lame_client.h +22 -22
  1583. data/src/core/lib/surface/metadata_array.cc +17 -18
  1584. data/src/core/lib/surface/server.cc +371 -130
  1585. data/src/core/lib/surface/server.h +20 -21
  1586. data/src/core/lib/surface/validate_metadata.cc +64 -74
  1587. data/src/core/lib/surface/validate_metadata.h +30 -21
  1588. data/src/core/lib/surface/version.cc +21 -21
  1589. data/src/core/lib/transport/batch_builder.cc +182 -0
  1590. data/src/core/lib/transport/batch_builder.h +480 -0
  1591. data/src/core/lib/transport/bdp_estimator.cc +25 -27
  1592. data/src/core/lib/transport/bdp_estimator.h +31 -28
  1593. data/src/core/lib/transport/connectivity_state.cc +19 -20
  1594. data/src/core/lib/transport/connectivity_state.h +23 -23
  1595. data/src/core/lib/transport/custom_metadata.h +30 -0
  1596. data/src/core/lib/transport/error_utils.cc +51 -81
  1597. data/src/core/lib/transport/error_utils.h +24 -24
  1598. data/src/core/lib/transport/handshaker.cc +66 -54
  1599. data/src/core/lib/transport/handshaker.h +51 -47
  1600. data/src/core/lib/transport/handshaker_factory.h +49 -24
  1601. data/src/core/lib/transport/handshaker_registry.cc +27 -20
  1602. data/src/core/lib/transport/handshaker_registry.h +25 -28
  1603. data/src/core/lib/transport/http2_errors.h +22 -22
  1604. data/src/core/lib/transport/http_connect_handshaker.cc +56 -57
  1605. data/src/core/lib/transport/http_connect_handshaker.h +21 -21
  1606. data/src/core/lib/transport/metadata_batch.cc +31 -10
  1607. data/src/core/lib/transport/metadata_batch.h +252 -65
  1608. data/src/core/lib/transport/metadata_compression_traits.h +67 -0
  1609. data/src/core/lib/transport/parsed_metadata.cc +2 -6
  1610. data/src/core/lib/transport/parsed_metadata.h +23 -11
  1611. data/src/core/lib/transport/pid_controller.cc +20 -20
  1612. data/src/core/lib/transport/pid_controller.h +27 -27
  1613. data/src/core/lib/transport/simple_slice_based_metadata.h +48 -0
  1614. data/src/core/lib/transport/status_conversion.cc +23 -25
  1615. data/src/core/lib/transport/status_conversion.h +22 -22
  1616. data/src/core/lib/transport/tcp_connect_handshaker.cc +34 -42
  1617. data/src/core/lib/transport/tcp_connect_handshaker.h +3 -3
  1618. data/src/core/lib/transport/timeout_encoding.cc +28 -23
  1619. data/src/core/lib/transport/timeout_encoding.h +20 -20
  1620. data/src/core/lib/transport/transport.cc +113 -43
  1621. data/src/core/lib/transport/transport.h +275 -218
  1622. data/src/core/lib/transport/transport_fwd.h +3 -3
  1623. data/src/core/lib/transport/transport_impl.h +53 -47
  1624. data/src/core/lib/transport/transport_op_string.cc +75 -63
  1625. data/src/core/lib/uri/uri_parser.cc +1 -1
  1626. data/src/core/lib/uri/uri_parser.h +3 -3
  1627. data/src/core/plugin_registry/grpc_plugin_registry.cc +55 -79
  1628. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +22 -39
  1629. data/src/core/tsi/alts/crypt/aes_gcm.cc +20 -20
  1630. data/src/core/tsi/alts/crypt/gsec.cc +26 -26
  1631. data/src/core/tsi/alts/crypt/gsec.h +336 -336
  1632. data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
  1633. data/src/core/tsi/alts/frame_protector/alts_counter.h +68 -68
  1634. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
  1635. data/src/core/tsi/alts/frame_protector/alts_crypter.h +209 -209
  1636. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +73 -71
  1637. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +40 -40
  1638. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
  1639. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +82 -83
  1640. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
  1641. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
  1642. data/src/core/tsi/alts/frame_protector/frame_handler.cc +26 -25
  1643. data/src/core/tsi/alts/frame_protector/frame_handler.h +169 -169
  1644. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +137 -100
  1645. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +109 -104
  1646. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +18 -17
  1647. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +43 -44
  1648. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +52 -44
  1649. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +60 -60
  1650. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +24 -24
  1651. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +21 -20
  1652. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +38 -38
  1653. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +19 -19
  1654. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +105 -104
  1655. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +45 -44
  1656. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +40 -41
  1657. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +38 -36
  1658. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +35 -36
  1659. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +67 -68
  1660. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +32 -31
  1661. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +55 -56
  1662. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +54 -53
  1663. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +141 -142
  1664. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +58 -57
  1665. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +43 -44
  1666. data/src/core/tsi/fake_transport_security.cc +133 -109
  1667. data/src/core/tsi/fake_transport_security.h +33 -33
  1668. data/src/core/tsi/local_transport_security.cc +43 -38
  1669. data/src/core/tsi/local_transport_security.h +33 -33
  1670. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +9 -4
  1671. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +3 -3
  1672. data/src/core/tsi/ssl/session_cache/ssl_session.h +21 -21
  1673. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +19 -19
  1674. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +18 -17
  1675. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +31 -22
  1676. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +25 -20
  1677. data/src/core/tsi/ssl_transport_security.cc +302 -371
  1678. data/src/core/tsi/ssl_transport_security.h +206 -203
  1679. data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
  1680. data/src/core/tsi/ssl_transport_security_utils.h +147 -0
  1681. data/src/core/tsi/ssl_types.h +27 -27
  1682. data/src/core/tsi/transport_security.cc +44 -32
  1683. data/src/core/tsi/transport_security.h +49 -48
  1684. data/src/core/tsi/transport_security_grpc.cc +20 -20
  1685. data/src/core/tsi/transport_security_grpc.h +41 -41
  1686. data/src/core/tsi/transport_security_interface.h +344 -332
  1687. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
  1688. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
  1689. data/src/ruby/ext/grpc/ext-export.clang +0 -1
  1690. data/src/ruby/ext/grpc/ext-export.gcc +1 -2
  1691. data/src/ruby/ext/grpc/extconf.rb +57 -11
  1692. data/src/ruby/ext/grpc/rb_call.c +1 -0
  1693. data/src/ruby/ext/grpc/rb_channel.c +1 -0
  1694. data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
  1695. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  1696. data/src/ruby/ext/grpc/rb_grpc.c +1 -0
  1697. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -38
  1698. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -59
  1699. data/src/ruby/ext/grpc/rb_loader.c +6 -2
  1700. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
  1701. data/src/ruby/lib/grpc/version.rb +1 -1
  1702. data/src/ruby/pb/generate_proto_ruby.sh +0 -6
  1703. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
  1704. data/src/ruby/spec/channel_spec.rb +5 -43
  1705. data/src/ruby/spec/client_server_spec.rb +20 -8
  1706. data/src/ruby/spec/generic/active_call_spec.rb +12 -3
  1707. data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
  1708. data/src/ruby/spec/user_agent_spec.rb +1 -1
  1709. data/third_party/abseil-cpp/absl/algorithm/container.h +56 -57
  1710. data/third_party/abseil-cpp/absl/base/attributes.h +39 -19
  1711. data/third_party/abseil-cpp/absl/base/config.h +45 -4
  1712. data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +3 -18
  1713. data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
  1714. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -1
  1715. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +3 -3
  1716. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +2 -2
  1717. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +1 -1
  1718. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +10 -6
  1719. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +23 -24
  1720. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -3
  1721. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +2 -6
  1722. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +4 -1
  1723. data/third_party/abseil-cpp/absl/base/internal/strerror.cc +4 -4
  1724. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -10
  1725. data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +9 -0
  1726. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -0
  1727. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -40
  1728. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
  1729. data/third_party/abseil-cpp/absl/base/macros.h +4 -21
  1730. data/third_party/abseil-cpp/absl/base/optimization.h +58 -6
  1731. data/third_party/abseil-cpp/absl/base/options.h +1 -7
  1732. data/third_party/abseil-cpp/absl/base/policy_checks.h +15 -13
  1733. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  1734. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  1735. data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -5
  1736. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -7
  1737. data/third_party/abseil-cpp/absl/container/inlined_vector.h +66 -18
  1738. data/third_party/abseil-cpp/absl/container/internal/common.h +3 -3
  1739. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +132 -0
  1740. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +13 -1
  1741. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +4 -55
  1742. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +50 -5
  1743. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +14 -46
  1744. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +110 -32
  1745. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +155 -4
  1746. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +661 -341
  1747. data/third_party/abseil-cpp/absl/crc/crc32c.cc +99 -0
  1748. data/third_party/abseil-cpp/absl/crc/crc32c.h +183 -0
  1749. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +256 -0
  1750. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +57 -0
  1751. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +468 -0
  1752. data/third_party/abseil-cpp/absl/crc/internal/crc.h +91 -0
  1753. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +269 -0
  1754. data/third_party/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
  1755. data/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
  1756. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +130 -0
  1757. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
  1758. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +179 -0
  1759. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h +119 -0
  1760. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +75 -0
  1761. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +434 -0
  1762. data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
  1763. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +725 -0
  1764. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +79 -0
  1765. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +180 -0
  1766. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +1 -1
  1767. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +67 -38
  1768. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +1 -1
  1769. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -13
  1770. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -9
  1771. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +1 -1
  1772. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +40 -85
  1773. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +5 -4
  1774. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +33 -8
  1775. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +3 -2
  1776. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +3 -2
  1777. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +118 -94
  1778. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +7 -6
  1779. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
  1780. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
  1781. data/third_party/abseil-cpp/absl/flags/config.h +68 -0
  1782. data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
  1783. data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
  1784. data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
  1785. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc +26 -0
  1786. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  1787. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
  1788. data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
  1789. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
  1790. data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  1791. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
  1792. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
  1793. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
  1794. data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  1795. data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
  1796. data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  1797. data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
  1798. data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
  1799. data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
  1800. data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
  1801. data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
  1802. data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
  1803. data/third_party/abseil-cpp/absl/functional/any_invocable.h +316 -0
  1804. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +878 -0
  1805. data/third_party/abseil-cpp/absl/hash/internal/city.cc +10 -10
  1806. data/third_party/abseil-cpp/absl/hash/internal/hash.h +18 -4
  1807. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +3 -14
  1808. data/third_party/abseil-cpp/absl/memory/memory.h +26 -447
  1809. data/third_party/abseil-cpp/absl/meta/type_traits.h +104 -12
  1810. data/third_party/abseil-cpp/absl/numeric/bits.h +2 -3
  1811. data/third_party/abseil-cpp/absl/numeric/int128.cc +10 -8
  1812. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +14 -6
  1813. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
  1814. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +1 -1
  1815. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +2 -23
  1816. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +9 -9
  1817. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +2 -2
  1818. data/third_party/abseil-cpp/absl/random/random.h +6 -6
  1819. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +1 -0
  1820. data/third_party/abseil-cpp/absl/status/status.cc +19 -12
  1821. data/third_party/abseil-cpp/absl/status/status.h +2 -2
  1822. data/third_party/abseil-cpp/absl/strings/ascii.cc +5 -5
  1823. data/third_party/abseil-cpp/absl/strings/charconv.cc +534 -96
  1824. data/third_party/abseil-cpp/absl/strings/cord.cc +92 -40
  1825. data/third_party/abseil-cpp/absl/strings/cord.h +71 -80
  1826. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +8 -5
  1827. data/third_party/abseil-cpp/absl/strings/escaping.cc +73 -62
  1828. data/third_party/abseil-cpp/absl/strings/escaping.h +24 -19
  1829. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +14 -12
  1830. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +4 -4
  1831. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  1832. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +330 -70
  1833. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +8 -4
  1834. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +26 -14
  1835. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +5 -5
  1836. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +9 -7
  1837. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +5 -4
  1838. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +7 -15
  1839. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +3 -3
  1840. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +8 -5
  1841. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +7 -7
  1842. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +4 -4
  1843. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +93 -0
  1844. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +34 -0
  1845. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +12 -10
  1846. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +7 -9
  1847. data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +55 -0
  1848. data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +9 -6
  1849. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +14 -7
  1850. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +35 -10
  1851. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +113 -46
  1852. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +126 -29
  1853. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -2
  1854. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +4 -3
  1855. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +49 -287
  1856. data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +351 -0
  1857. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +2 -1
  1858. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +4 -2
  1859. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +215 -181
  1860. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +10 -209
  1861. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +10 -101
  1862. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -1
  1863. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
  1864. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +57 -0
  1865. data/third_party/abseil-cpp/absl/strings/numbers.cc +34 -31
  1866. data/third_party/abseil-cpp/absl/strings/str_cat.cc +9 -6
  1867. data/third_party/abseil-cpp/absl/strings/str_cat.h +50 -3
  1868. data/third_party/abseil-cpp/absl/strings/str_format.h +71 -9
  1869. data/third_party/abseil-cpp/absl/strings/string_view.cc +6 -6
  1870. data/third_party/abseil-cpp/absl/strings/string_view.h +3 -10
  1871. data/third_party/abseil-cpp/absl/strings/substitute.cc +8 -6
  1872. data/third_party/abseil-cpp/absl/strings/substitute.h +46 -20
  1873. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +20 -17
  1874. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +37 -31
  1875. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +22 -8
  1876. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +104 -55
  1877. data/third_party/abseil-cpp/absl/synchronization/mutex.h +85 -46
  1878. data/third_party/abseil-cpp/absl/synchronization/notification.cc +0 -1
  1879. data/third_party/abseil-cpp/absl/synchronization/notification.h +0 -1
  1880. data/third_party/abseil-cpp/absl/time/civil_time.cc +26 -0
  1881. data/third_party/abseil-cpp/absl/time/civil_time.h +25 -0
  1882. data/third_party/abseil-cpp/absl/time/clock.cc +17 -11
  1883. data/third_party/abseil-cpp/absl/time/duration.cc +7 -7
  1884. data/third_party/abseil-cpp/absl/time/format.cc +2 -1
  1885. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
  1886. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +26 -5
  1887. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +7 -6
  1888. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +36 -35
  1889. data/third_party/abseil-cpp/absl/time/time.cc +2 -2
  1890. data/third_party/abseil-cpp/absl/time/time.h +253 -158
  1891. data/third_party/abseil-cpp/absl/types/internal/span.h +30 -19
  1892. data/third_party/abseil-cpp/absl/types/internal/variant.h +28 -40
  1893. data/third_party/abseil-cpp/absl/types/span.h +29 -7
  1894. data/third_party/boringssl-with-bazel/err_data.c +728 -712
  1895. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
  1896. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
  1897. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
  1898. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
  1899. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
  1900. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
  1901. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
  1902. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +177 -196
  1903. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
  1904. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
  1905. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
  1906. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
  1907. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
  1908. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
  1909. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
  1910. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
  1911. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
  1912. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
  1913. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
  1914. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
  1915. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +135 -90
  1916. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
  1917. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +797 -793
  1918. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +529 -526
  1919. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
  1920. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
  1921. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
  1922. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
  1923. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
  1924. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +17 -11
  1925. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +37 -51
  1926. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
  1927. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +13 -9
  1928. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +22 -19
  1929. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +5 -5
  1930. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
  1931. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
  1932. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
  1933. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +40 -27
  1934. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
  1935. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
  1936. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
  1937. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
  1938. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
  1939. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
  1940. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
  1941. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
  1942. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
  1943. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
  1944. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
  1945. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
  1946. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
  1947. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
  1948. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
  1949. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
  1950. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +34 -37
  1951. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +22 -11
  1952. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
  1953. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
  1954. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
  1955. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
  1956. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
  1957. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
  1958. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
  1959. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
  1960. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +62 -0
  1961. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
  1962. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
  1963. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
  1964. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
  1965. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
  1966. data/third_party/boringssl-with-bazel/src/crypto/{cpu-ppc64le.c → cpu_arm_openbsd.c} +10 -17
  1967. data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
  1968. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
  1969. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +22 -31
  1970. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +795 -795
  1971. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -5
  1972. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
  1973. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
  1974. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
  1975. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
  1976. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
  1977. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
  1978. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +43 -16
  1979. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
  1980. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  1981. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
  1982. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +229 -102
  1983. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +31 -7
  1984. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
  1985. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
  1986. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
  1987. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
  1988. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
  1989. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
  1990. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
  1991. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
  1992. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
  1993. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
  1994. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
  1995. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
  1996. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
  1997. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +6 -6
  1998. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
  1999. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
  2000. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
  2001. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
  2002. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
  2003. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
  2004. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
  2005. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
  2006. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
  2007. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
  2008. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
  2009. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
  2010. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +36 -27
  2011. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
  2012. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
  2013. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
  2014. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
  2015. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
  2016. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  2017. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
  2018. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
  2019. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
  2020. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
  2021. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
  2022. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
  2023. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
  2024. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
  2025. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
  2026. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
  2027. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
  2028. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
  2029. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
  2030. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
  2031. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
  2032. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
  2033. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
  2034. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
  2035. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
  2036. data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
  2037. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
  2038. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +24 -6
  2039. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
  2040. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
  2041. data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
  2042. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +49 -49
  2043. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +92 -18
  2044. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +12 -12
  2045. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +108 -86
  2046. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +55 -25
  2047. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +55 -71
  2048. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
  2049. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +72 -65
  2050. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
  2051. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +62 -51
  2052. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
  2053. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
  2054. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +12 -17
  2055. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +25 -26
  2056. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +13 -14
  2057. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +9 -1
  2058. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +44 -16
  2059. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
  2060. data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +1 -1
  2061. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
  2062. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -23
  2063. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
  2064. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +3 -8
  2065. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +170 -160
  2066. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
  2067. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +69 -61
  2068. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -12
  2069. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
  2070. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
  2071. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
  2072. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
  2073. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
  2074. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
  2075. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
  2076. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +22 -68
  2077. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
  2078. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +43 -16
  2079. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +42 -314
  2080. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +244 -139
  2081. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +144 -205
  2082. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
  2083. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +593 -421
  2084. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  2085. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
  2086. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
  2087. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
  2088. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
  2089. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
  2090. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
  2091. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +52 -6
  2092. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +192 -18
  2093. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
  2094. data/third_party/boringssl-with-bazel/src/crypto/internal.h +391 -18
  2095. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +91 -0
  2096. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +204 -0
  2097. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +833 -0
  2098. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
  2099. data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
  2100. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
  2101. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +9 -4
  2102. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
  2103. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
  2104. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +633 -613
  2105. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
  2106. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
  2107. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
  2108. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
  2109. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
  2110. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
  2111. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
  2112. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
  2113. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
  2114. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
  2115. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
  2116. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  2117. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
  2118. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
  2119. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
  2120. data/third_party/boringssl-with-bazel/src/crypto/{refcount_lock.c → refcount_no_threads.c} +6 -17
  2121. data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +89 -0
  2122. data/third_party/boringssl-with-bazel/src/crypto/{asn1/a_print.c → rsa_extra/internal.h} +15 -21
  2123. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
  2124. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
  2125. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
  2126. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
  2127. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
  2128. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +128 -34
  2129. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +418 -133
  2130. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +116 -284
  2131. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +701 -87
  2132. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
  2133. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +63 -55
  2134. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
  2135. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
  2136. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
  2137. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +285 -331
  2138. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
  2139. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
  2140. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +68 -50
  2141. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +132 -151
  2142. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +790 -0
  2143. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
  2144. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
  2145. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
  2146. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +220 -254
  2147. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
  2148. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
  2149. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +136 -270
  2150. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
  2151. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
  2152. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
  2153. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
  2154. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +528 -616
  2155. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
  2156. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +164 -181
  2157. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
  2158. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +186 -203
  2159. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
  2160. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
  2161. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1864 -2050
  2162. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +380 -480
  2163. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
  2164. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +266 -265
  2165. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
  2166. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
  2167. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
  2168. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
  2169. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
  2170. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +329 -416
  2171. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
  2172. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
  2173. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
  2174. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
  2175. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
  2176. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
  2177. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
  2178. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
  2179. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
  2180. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
  2181. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
  2182. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
  2183. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +79 -171
  2184. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
  2185. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
  2186. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
  2187. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
  2188. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
  2189. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +294 -344
  2190. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +342 -365
  2191. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
  2192. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
  2193. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
  2194. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
  2195. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
  2196. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +120 -125
  2197. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
  2198. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +228 -265
  2199. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
  2200. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
  2201. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
  2202. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
  2203. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +130 -135
  2204. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +652 -691
  2205. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +90 -75
  2206. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1063 -1145
  2207. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +13 -11
  2208. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
  2209. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +217 -191
  2210. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
  2211. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +50 -14
  2212. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +29 -14
  2213. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
  2214. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
  2215. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
  2216. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
  2217. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
  2218. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
  2219. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
  2220. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
  2221. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
  2222. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
  2223. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  2224. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
  2225. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
  2226. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
  2227. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
  2228. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +25 -33
  2229. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  2230. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
  2231. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +69 -16
  2232. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
  2233. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +128 -0
  2234. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
  2235. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +7 -3
  2236. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +8 -1
  2237. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
  2238. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -18
  2239. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
  2240. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
  2241. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +98 -5
  2242. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
  2243. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +18 -21
  2244. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +285 -92
  2245. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
  2246. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +381 -287
  2247. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +9 -6
  2248. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
  2249. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +22 -7
  2250. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +57 -23
  2251. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
  2252. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2075 -1407
  2253. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +242 -214
  2254. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
  2255. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
  2256. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
  2257. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
  2258. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
  2259. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +45 -26
  2260. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +64 -35
  2261. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
  2262. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
  2263. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +53 -34
  2264. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
  2265. data/third_party/boringssl-with-bazel/src/ssl/internal.h +200 -121
  2266. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +47 -12
  2267. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  2268. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
  2269. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
  2270. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +47 -69
  2271. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
  2272. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
  2273. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +217 -226
  2274. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +78 -101
  2275. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +106 -142
  2276. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +244 -35
  2277. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +167 -64
  2278. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +41 -32
  2279. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
  2280. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
  2281. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
  2282. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +7 -44
  2283. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
  2284. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +7 -23
  2285. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +25 -34
  2286. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
  2287. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
  2288. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
  2289. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
  2290. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
  2291. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
  2292. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
  2293. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
  2294. data/third_party/cares/cares/include/ares.h +23 -1
  2295. data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
  2296. data/third_party/cares/cares/include/ares_rules.h +2 -2
  2297. data/third_party/cares/cares/include/ares_version.h +3 -3
  2298. data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
  2299. data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
  2300. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
  2301. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
  2302. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
  2303. data/third_party/cares/cares/src/lib/ares_data.c +16 -0
  2304. data/third_party/cares/cares/src/lib/ares_data.h +7 -0
  2305. data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
  2306. data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
  2307. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
  2308. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
  2309. data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
  2310. data/third_party/cares/cares/src/lib/ares_init.c +97 -485
  2311. data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
  2312. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
  2313. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
  2314. data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
  2315. data/third_party/cares/cares/src/lib/ares_private.h +30 -16
  2316. data/third_party/cares/cares/src/lib/ares_process.c +55 -16
  2317. data/third_party/cares/cares/src/lib/ares_query.c +1 -35
  2318. data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
  2319. data/third_party/cares/cares/src/lib/ares_send.c +5 -7
  2320. data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
  2321. data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
  2322. data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
  2323. data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
  2324. data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
  2325. data/third_party/re2/re2/bitstate.cc +3 -3
  2326. data/third_party/re2/re2/dfa.cc +13 -13
  2327. data/third_party/re2/re2/nfa.cc +4 -4
  2328. data/third_party/re2/re2/onepass.cc +2 -2
  2329. data/third_party/re2/re2/prefilter_tree.cc +27 -59
  2330. data/third_party/re2/re2/prefilter_tree.h +3 -2
  2331. data/third_party/re2/re2/prog.cc +11 -2
  2332. data/third_party/re2/re2/prog.h +17 -5
  2333. data/third_party/re2/re2/re2.cc +6 -11
  2334. data/third_party/re2/re2/re2.h +1 -1
  2335. data/third_party/re2/re2/regexp.cc +1 -2
  2336. data/third_party/re2/re2/stringpiece.h +10 -7
  2337. data/third_party/re2/re2/unicode_casefold.cc +25 -11
  2338. data/third_party/re2/re2/unicode_groups.cc +319 -151
  2339. data/third_party/re2/re2/walker-inl.h +3 -2
  2340. data/third_party/re2/util/mutex.h +4 -4
  2341. data/third_party/upb/upb/alloc.h +36 -0
  2342. data/third_party/upb/upb/arena.h +36 -0
  2343. data/third_party/upb/upb/array.h +36 -0
  2344. data/third_party/upb/upb/base/descriptor_constants.h +104 -0
  2345. data/third_party/upb/upb/base/log2.h +57 -0
  2346. data/third_party/upb/upb/base/status.c +81 -0
  2347. data/third_party/upb/upb/base/status.h +66 -0
  2348. data/third_party/upb/upb/base/string_view.h +75 -0
  2349. data/third_party/upb/upb/collections/array.c +145 -0
  2350. data/third_party/upb/upb/collections/array.h +85 -0
  2351. data/third_party/upb/upb/collections/array_internal.h +135 -0
  2352. data/third_party/upb/upb/collections/map.c +135 -0
  2353. data/third_party/upb/upb/collections/map.h +135 -0
  2354. data/third_party/upb/upb/collections/map_gencode_util.h +78 -0
  2355. data/third_party/upb/upb/collections/map_internal.h +170 -0
  2356. data/third_party/upb/upb/collections/map_sorter.c +166 -0
  2357. data/third_party/upb/upb/collections/map_sorter_internal.h +109 -0
  2358. data/third_party/upb/upb/collections/message_value.h +65 -0
  2359. data/third_party/upb/upb/decode.h +3 -61
  2360. data/third_party/upb/upb/def.h +4 -377
  2361. data/third_party/upb/upb/def.hpp +3 -408
  2362. data/third_party/upb/upb/encode.h +3 -38
  2363. data/third_party/upb/upb/extension_registry.h +35 -0
  2364. data/third_party/upb/upb/{table.c → hash/common.c} +51 -109
  2365. data/third_party/upb/upb/hash/common.h +199 -0
  2366. data/third_party/upb/upb/hash/int_table.h +102 -0
  2367. data/third_party/upb/upb/hash/str_table.h +161 -0
  2368. data/third_party/upb/upb/json/decode.c +1477 -0
  2369. data/third_party/upb/upb/json/decode.h +52 -0
  2370. data/third_party/upb/upb/{json_encode.c → json/encode.c} +74 -46
  2371. data/third_party/upb/upb/json/encode.h +70 -0
  2372. data/third_party/upb/upb/json_decode.h +36 -0
  2373. data/third_party/upb/upb/json_encode.h +4 -30
  2374. data/third_party/upb/upb/lex/atoi.c +68 -0
  2375. data/third_party/upb/upb/lex/atoi.h +53 -0
  2376. data/third_party/upb/upb/lex/round_trip.c +67 -0
  2377. data/third_party/upb/upb/{upb_internal.h → lex/round_trip.h} +17 -30
  2378. data/third_party/upb/upb/lex/strtod.c +97 -0
  2379. data/third_party/upb/upb/lex/strtod.h +46 -0
  2380. data/third_party/upb/upb/lex/unicode.c +57 -0
  2381. data/third_party/upb/upb/lex/unicode.h +77 -0
  2382. data/third_party/upb/upb/map.h +36 -0
  2383. data/third_party/upb/upb/mem/alloc.c +47 -0
  2384. data/third_party/upb/upb/mem/alloc.h +98 -0
  2385. data/third_party/upb/upb/mem/arena.c +367 -0
  2386. data/third_party/upb/upb/mem/arena.h +160 -0
  2387. data/third_party/upb/upb/mem/arena_internal.h +114 -0
  2388. data/third_party/upb/upb/message/accessors.c +68 -0
  2389. data/third_party/upb/upb/message/accessors.h +379 -0
  2390. data/third_party/upb/upb/message/accessors_internal.h +325 -0
  2391. data/third_party/upb/upb/message/extension_internal.h +83 -0
  2392. data/third_party/upb/upb/message/internal.h +135 -0
  2393. data/third_party/upb/upb/message/message.c +180 -0
  2394. data/third_party/upb/upb/message/message.h +69 -0
  2395. data/third_party/upb/upb/mini_table/common.c +128 -0
  2396. data/third_party/upb/upb/mini_table/common.h +170 -0
  2397. data/third_party/upb/upb/mini_table/common_internal.h +111 -0
  2398. data/third_party/upb/upb/mini_table/decode.c +1127 -0
  2399. data/third_party/upb/upb/mini_table/decode.h +179 -0
  2400. data/third_party/upb/upb/mini_table/encode.c +300 -0
  2401. data/third_party/upb/upb/mini_table/encode_internal.h +111 -0
  2402. data/third_party/upb/upb/mini_table/encode_internal.hpp +136 -0
  2403. data/third_party/upb/upb/mini_table/enum_internal.h +88 -0
  2404. data/third_party/upb/upb/mini_table/extension_internal.h +47 -0
  2405. data/third_party/upb/upb/mini_table/extension_registry.c +96 -0
  2406. data/third_party/upb/upb/mini_table/extension_registry.h +104 -0
  2407. data/third_party/upb/upb/mini_table/field_internal.h +192 -0
  2408. data/third_party/upb/upb/mini_table/file_internal.h +47 -0
  2409. data/third_party/upb/upb/mini_table/message_internal.h +136 -0
  2410. data/third_party/upb/upb/mini_table/sub_internal.h +38 -0
  2411. data/third_party/upb/upb/mini_table/types.h +40 -0
  2412. data/third_party/upb/upb/mini_table.h +36 -0
  2413. data/third_party/upb/upb/msg.h +3 -81
  2414. data/third_party/upb/upb/port/atomic.h +101 -0
  2415. data/third_party/upb/upb/{port_def.inc → port/def.inc} +96 -28
  2416. data/third_party/upb/upb/{port_undef.inc → port/undef.inc} +14 -3
  2417. data/third_party/upb/upb/port/vsnprintf_compat.h +50 -0
  2418. data/third_party/upb/upb/reflection/common.h +67 -0
  2419. data/third_party/upb/upb/reflection/def.h +42 -0
  2420. data/third_party/upb/upb/reflection/def.hpp +610 -0
  2421. data/third_party/upb/upb/reflection/def_builder.c +357 -0
  2422. data/third_party/upb/upb/reflection/def_builder_internal.h +157 -0
  2423. data/third_party/upb/upb/reflection/def_pool.c +462 -0
  2424. data/third_party/upb/upb/reflection/def_pool.h +108 -0
  2425. data/third_party/upb/upb/reflection/def_pool_internal.h +77 -0
  2426. data/third_party/upb/upb/reflection/def_type.c +50 -0
  2427. data/third_party/upb/upb/reflection/def_type.h +81 -0
  2428. data/third_party/upb/upb/reflection/desc_state.c +53 -0
  2429. data/third_party/upb/upb/reflection/desc_state_internal.h +64 -0
  2430. data/third_party/upb/upb/reflection/enum_def.c +310 -0
  2431. data/third_party/upb/upb/reflection/enum_def.h +80 -0
  2432. data/third_party/upb/upb/reflection/enum_def_internal.h +56 -0
  2433. data/third_party/upb/upb/reflection/enum_reserved_range.c +84 -0
  2434. data/third_party/upb/upb/reflection/enum_reserved_range.h +51 -0
  2435. data/third_party/upb/upb/reflection/enum_reserved_range_internal.h +55 -0
  2436. data/third_party/upb/upb/reflection/enum_value_def.c +144 -0
  2437. data/third_party/upb/upb/reflection/enum_value_def.h +57 -0
  2438. data/third_party/upb/upb/reflection/enum_value_def_internal.h +57 -0
  2439. data/third_party/upb/upb/reflection/extension_range.c +93 -0
  2440. data/third_party/upb/upb/reflection/extension_range.h +55 -0
  2441. data/third_party/upb/upb/reflection/extension_range_internal.h +54 -0
  2442. data/third_party/upb/upb/reflection/field_def.c +930 -0
  2443. data/third_party/upb/upb/reflection/field_def.h +91 -0
  2444. data/third_party/upb/upb/reflection/field_def_internal.h +76 -0
  2445. data/third_party/upb/upb/reflection/file_def.c +370 -0
  2446. data/third_party/upb/upb/reflection/file_def.h +77 -0
  2447. data/third_party/upb/upb/reflection/file_def_internal.h +57 -0
  2448. data/third_party/upb/upb/reflection/message.c +233 -0
  2449. data/third_party/upb/upb/reflection/message.h +102 -0
  2450. data/third_party/upb/upb/reflection/message.hpp +37 -0
  2451. data/third_party/upb/upb/reflection/message_def.c +718 -0
  2452. data/third_party/upb/upb/reflection/message_def.h +174 -0
  2453. data/third_party/upb/upb/reflection/message_def_internal.h +63 -0
  2454. data/third_party/upb/upb/reflection/message_reserved_range.c +81 -0
  2455. data/third_party/upb/upb/reflection/message_reserved_range.h +51 -0
  2456. data/third_party/upb/upb/reflection/message_reserved_range_internal.h +55 -0
  2457. data/third_party/upb/upb/reflection/method_def.c +124 -0
  2458. data/third_party/upb/upb/reflection/method_def.h +59 -0
  2459. data/third_party/upb/upb/reflection/method_def_internal.h +53 -0
  2460. data/third_party/upb/upb/reflection/oneof_def.c +226 -0
  2461. data/third_party/upb/upb/reflection/oneof_def.h +66 -0
  2462. data/third_party/upb/upb/reflection/oneof_def_internal.h +57 -0
  2463. data/third_party/upb/upb/reflection/service_def.c +128 -0
  2464. data/third_party/upb/upb/reflection/service_def.h +60 -0
  2465. data/third_party/upb/upb/reflection/service_def_internal.h +53 -0
  2466. data/third_party/upb/upb/reflection.h +4 -188
  2467. data/third_party/upb/upb/reflection.hpp +3 -7
  2468. data/third_party/upb/upb/status.h +36 -0
  2469. data/third_party/upb/upb/string_view.h +36 -0
  2470. data/third_party/upb/upb/{text_encode.c → text/encode.c} +75 -70
  2471. data/third_party/upb/upb/text/encode.h +69 -0
  2472. data/third_party/upb/upb/text_encode.h +4 -32
  2473. data/third_party/upb/upb/upb.h +6 -340
  2474. data/third_party/upb/upb/upb.hpp +10 -18
  2475. data/third_party/upb/upb/wire/common.h +44 -0
  2476. data/third_party/upb/upb/wire/common_internal.h +50 -0
  2477. data/third_party/upb/upb/wire/decode.c +1343 -0
  2478. data/third_party/upb/upb/wire/decode.h +108 -0
  2479. data/third_party/upb/upb/{decode_fast.c → wire/decode_fast.c} +184 -225
  2480. data/third_party/upb/upb/{decode_fast.h → wire/decode_fast.h} +21 -7
  2481. data/third_party/upb/upb/{decode_internal.h → wire/decode_internal.h} +44 -92
  2482. data/third_party/upb/upb/{encode.c → wire/encode.c} +130 -102
  2483. data/third_party/upb/upb/wire/encode.h +92 -0
  2484. data/third_party/upb/upb/wire/eps_copy_input_stream.c +39 -0
  2485. data/third_party/upb/upb/wire/eps_copy_input_stream.h +425 -0
  2486. data/third_party/upb/upb/wire/reader.c +67 -0
  2487. data/third_party/upb/upb/wire/reader.h +227 -0
  2488. data/third_party/upb/upb/wire/swap_internal.h +63 -0
  2489. data/third_party/upb/upb/wire/types.h +41 -0
  2490. data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-neon.c +1 -1
  2491. data/third_party/utf8_range/utf8_range.h +21 -0
  2492. data/third_party/zlib/compress.c +3 -3
  2493. data/third_party/zlib/crc32.c +21 -12
  2494. data/third_party/zlib/deflate.c +112 -106
  2495. data/third_party/zlib/deflate.h +2 -2
  2496. data/third_party/zlib/gzlib.c +1 -1
  2497. data/third_party/zlib/gzread.c +3 -5
  2498. data/third_party/zlib/gzwrite.c +1 -1
  2499. data/third_party/zlib/infback.c +10 -7
  2500. data/third_party/zlib/inflate.c +5 -2
  2501. data/third_party/zlib/inftrees.c +2 -2
  2502. data/third_party/zlib/inftrees.h +1 -1
  2503. data/third_party/zlib/trees.c +61 -62
  2504. data/third_party/zlib/uncompr.c +2 -2
  2505. data/third_party/zlib/zconf.h +16 -3
  2506. data/third_party/zlib/zlib.h +10 -10
  2507. data/third_party/zlib/zutil.c +9 -7
  2508. data/third_party/zlib/zutil.h +1 -0
  2509. metadata +597 -174
  2510. data/include/grpc/impl/codegen/gpr_slice.h +0 -71
  2511. data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -176
  2512. data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
  2513. data/src/core/ext/filters/client_channel/lb_policy.cc +0 -134
  2514. data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
  2515. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -190
  2516. data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -70
  2517. data/src/core/ext/filters/client_channel/proxy_mapper.h +0 -54
  2518. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -90
  2519. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -55
  2520. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +0 -30
  2521. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -180
  2522. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -182
  2523. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -334
  2524. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -52
  2525. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -324
  2526. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +0 -62
  2527. data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
  2528. data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
  2529. data/src/core/ext/xds/certificate_provider_registry.cc +0 -103
  2530. data/src/core/ext/xds/certificate_provider_registry.h +0 -59
  2531. data/src/core/lib/event_engine/iomgr_engine/iomgr_engine.cc +0 -159
  2532. data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +0 -123
  2533. data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +0 -70
  2534. data/src/core/lib/event_engine/iomgr_engine/time_averaged_stats.h +0 -81
  2535. data/src/core/lib/event_engine/iomgr_engine/timer.h +0 -193
  2536. data/src/core/lib/event_engine/iomgr_engine/timer_heap.h +0 -56
  2537. data/src/core/lib/event_engine/iomgr_engine/timer_manager.cc +0 -254
  2538. data/src/core/lib/event_engine/iomgr_engine/timer_manager.h +0 -111
  2539. data/src/core/lib/event_engine/promise.h +0 -69
  2540. data/src/core/lib/gpr/cpu_iphone.cc +0 -44
  2541. data/src/core/lib/gpr/cpu_windows.cc +0 -33
  2542. data/src/core/lib/gpr/env.h +0 -40
  2543. data/src/core/lib/gpr/env_linux.cc +0 -75
  2544. data/src/core/lib/gpr/env_posix.cc +0 -46
  2545. data/src/core/lib/gpr/env_windows.cc +0 -74
  2546. data/src/core/lib/gpr/murmur_hash.cc +0 -82
  2547. data/src/core/lib/gpr/murmur_hash.h +0 -29
  2548. data/src/core/lib/gpr/string_util_windows.cc +0 -82
  2549. data/src/core/lib/gpr/string_windows.cc +0 -69
  2550. data/src/core/lib/gpr/string_windows.h +0 -32
  2551. data/src/core/lib/gpr/tls.h +0 -156
  2552. data/src/core/lib/gpr/tmpfile_windows.cc +0 -69
  2553. data/src/core/lib/gprpp/global_config.h +0 -93
  2554. data/src/core/lib/gprpp/global_config_custom.h +0 -29
  2555. data/src/core/lib/gprpp/global_config_env.cc +0 -138
  2556. data/src/core/lib/gprpp/global_config_env.h +0 -133
  2557. data/src/core/lib/gprpp/global_config_generic.h +0 -40
  2558. data/src/core/lib/iomgr/error_internal.h +0 -66
  2559. data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
  2560. data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
  2561. data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
  2562. data/src/core/lib/iomgr/executor/threadpool.h +0 -150
  2563. data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
  2564. data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
  2565. data/src/core/lib/profiling/basic_timers.cc +0 -295
  2566. data/src/core/lib/profiling/stap_timers.cc +0 -50
  2567. data/src/core/lib/profiling/timers.h +0 -94
  2568. data/src/core/lib/promise/call_push_pull.h +0 -148
  2569. data/src/core/lib/promise/intra_activity_waiter.h +0 -49
  2570. data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
  2571. data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -30
  2572. data/src/core/lib/slice/slice_api.cc +0 -39
  2573. data/src/core/lib/slice/slice_buffer_api.cc +0 -35
  2574. data/src/core/lib/slice/slice_refcount_base.h +0 -60
  2575. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
  2576. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
  2577. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
  2578. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
  2579. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
  2580. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
  2581. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
  2582. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
  2583. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
  2584. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
  2585. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
  2586. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
  2587. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
  2588. data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
  2589. data/third_party/upb/third_party/utf8_range/utf8_range.h +0 -9
  2590. data/third_party/upb/upb/decode.c +0 -1125
  2591. data/third_party/upb/upb/def.c +0 -3261
  2592. data/third_party/upb/upb/msg.c +0 -428
  2593. data/third_party/upb/upb/msg_internal.h +0 -831
  2594. data/third_party/upb/upb/reflection.c +0 -480
  2595. data/third_party/upb/upb/table_internal.h +0 -385
  2596. data/third_party/upb/upb/upb.c +0 -362
  2597. /data/src/ruby/ext/grpc/{ext-export-truffleruby.clang → ext-export-truffleruby-with-ruby-abi-version.clang} +0 -0
  2598. /data/src/ruby/ext/grpc/{ext-export-truffleruby.gcc → ext-export-truffleruby-with-ruby-abi-version.gcc} +0 -0
  2599. /data/third_party/{upb/third_party/utf8_range → utf8_range}/naive.c +0 -0
  2600. /data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-sse.c +0 -0
@@ -55,8 +55,8 @@
55
55
  * [including the GNU Public Licence.]
56
56
  */
57
57
 
58
- #ifndef HEADER_ASN1_H
59
- #define HEADER_ASN1_H
58
+ #ifndef OPENSSL_HEADER_ASN1_H
59
+ #define OPENSSL_HEADER_ASN1_H
60
60
 
61
61
  #include <openssl/base.h>
62
62
 
@@ -213,38 +213,10 @@ OPENSSL_EXPORT const char *ASN1_tag2str(int tag);
213
213
  //
214
214
  // Note: If |out| and |*out| are both non-NULL, the object at |*out| is not
215
215
  // updated in-place. Instead, it is freed, and the pointer is updated to the
216
- // new object. This differs from OpenSSL, which behaves more like
217
- // |d2i_SAMPLE_with_reuse|. Callers are recommended to set |out| to NULL and
218
- // instead use the return value.
216
+ // new object. This differs from OpenSSL. Callers are recommended to set |out|
217
+ // to NULL and instead use the return value.
219
218
  SAMPLE *d2i_SAMPLE(SAMPLE **out, const uint8_t **inp, long len);
220
219
 
221
- // d2i_SAMPLE_with_reuse parses a structure from up to |len| bytes at |*inp|. On
222
- // success, it advances |*inp| by the number of bytes read and returns a
223
- // non-NULL pointer to an object containing the parsed structure. The object is
224
- // determined from |out| as follows:
225
- //
226
- // If |out| is NULL, the function places the result in a newly-allocated
227
- // |SAMPLE| object and returns it. This mode is recommended.
228
- //
229
- // If |out| is non-NULL, but |*out| is NULL, the function also places the result
230
- // in a newly-allocated |SAMPLE| object. It sets |*out| to this object and also
231
- // returns it.
232
- //
233
- // If |out| and |*out| are both non-NULL, the function updates the object at
234
- // |*out| in-place with the result and returns |*out|.
235
- //
236
- // If any of the above fail, the function returns NULL.
237
- //
238
- // This function does not reject trailing data in the input. This allows the
239
- // caller to parse a sequence of concatenated structures. Callers parsing only
240
- // one structure should check for trailing data by comparing the updated |*inp|
241
- // with the end of the input.
242
- //
243
- // WARNING: Callers should not rely on the in-place update mode. It often
244
- // produces the wrong result or breaks the type's internal invariants. Future
245
- // revisions of BoringSSL may standardize on the |d2i_SAMPLE| behavior.
246
- SAMPLE *d2i_SAMPLE_with_reuse(SAMPLE **out, const uint8_t **inp, long len);
247
-
248
220
  // i2d_SAMPLE marshals |in|. On error, it returns a negative value. On success,
249
221
  // it returns the length of the result and outputs it via |outp| as follows:
250
222
  //
@@ -348,8 +320,8 @@ OPENSSL_EXPORT ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it);
348
320
  OPENSSL_EXPORT void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it);
349
321
 
350
322
  // ASN1_item_d2i parses the ASN.1 type |it| from up to |len| bytes at |*inp|.
351
- // It behaves like |d2i_SAMPLE_with_reuse|, except that |out| and the return
352
- // value are cast to |ASN1_VALUE| pointers.
323
+ // It behaves like |d2i_SAMPLE|, except that |out| and the return value are cast
324
+ // to |ASN1_VALUE| pointers.
353
325
  //
354
326
  // TODO(https://crbug.com/boringssl/444): C strict aliasing forbids type-punning
355
327
  // |T*| and |ASN1_VALUE*| the way this function signature does. When that bug is
@@ -447,10 +419,22 @@ OPENSSL_EXPORT ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it,
447
419
  // integer type. FALSE is zero, TRUE is 0xff, and an omitted OPTIONAL BOOLEAN is
448
420
  // -1.
449
421
 
422
+ // ASN1_BOOLEAN_FALSE is FALSE as an |ASN1_BOOLEAN|.
423
+ #define ASN1_BOOLEAN_FALSE 0
424
+
425
+ // ASN1_BOOLEAN_TRUE is TRUE as an |ASN1_BOOLEAN|. Some code incorrectly uses
426
+ // 1, so prefer |b != ASN1_BOOLEAN_FALSE| over |b == ASN1_BOOLEAN_TRUE|.
427
+ #define ASN1_BOOLEAN_TRUE 0xff
428
+
429
+ // ASN1_BOOLEAN_NONE, in contexts where the |ASN1_BOOLEAN| represents an
430
+ // OPTIONAL BOOLEAN, is an omitted value. Using this value in other contexts is
431
+ // undefined and may be misinterpreted as TRUE.
432
+ #define ASN1_BOOLEAN_NONE (-1)
433
+
450
434
  // d2i_ASN1_BOOLEAN parses a DER-encoded ASN.1 BOOLEAN from up to |len| bytes at
451
435
  // |*inp|. On success, it advances |*inp| by the number of bytes read and
452
436
  // returns the result. If |out| is non-NULL, it additionally writes the result
453
- // to |*out|. On error, it returns -1.
437
+ // to |*out|. On error, it returns |ASN1_BOOLEAN_NONE|.
454
438
  //
455
439
  // This function does not reject trailing data in the input. This allows the
456
440
  // caller to parse a sequence of concatenated structures. Callers parsing only
@@ -459,9 +443,6 @@ OPENSSL_EXPORT ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it,
459
443
  //
460
444
  // WARNING: This function's is slightly different from other |d2i_*| functions
461
445
  // because |ASN1_BOOLEAN| is not a pointer type.
462
- //
463
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
464
- // BER, but this will be removed in the future.
465
446
  OPENSSL_EXPORT ASN1_BOOLEAN d2i_ASN1_BOOLEAN(ASN1_BOOLEAN *out,
466
447
  const unsigned char **inp,
467
448
  long len);
@@ -472,7 +453,8 @@ OPENSSL_EXPORT int i2d_ASN1_BOOLEAN(ASN1_BOOLEAN a, unsigned char **outp);
472
453
 
473
454
  // The following |ASN1_ITEM|s have ASN.1 type BOOLEAN and C type |ASN1_BOOLEAN|.
474
455
  // |ASN1_TBOOLEAN| and |ASN1_FBOOLEAN| must be marked OPTIONAL. When omitted,
475
- // they are parsed as TRUE and FALSE, respectively, rather than -1.
456
+ // they are parsed as TRUE and FALSE, respectively, rather than
457
+ // |ASN1_BOOLEAN_NONE|.
476
458
  DECLARE_ASN1_ITEM(ASN1_BOOLEAN)
477
459
  DECLARE_ASN1_ITEM(ASN1_TBOOLEAN)
478
460
  DECLARE_ASN1_ITEM(ASN1_FBOOLEAN)
@@ -485,31 +467,39 @@ DECLARE_ASN1_ITEM(ASN1_FBOOLEAN)
485
467
  // |ASN1_STRING|, to represent most values.
486
468
 
487
469
  // An asn1_string_st (aka |ASN1_STRING|) represents a value of a string-like
488
- // ASN.1 type. It contains a type field, and a byte string data field with a
470
+ // ASN.1 type. It contains a |type| field, and a byte string |data| field with a
489
471
  // type-specific representation.
490
472
  //
491
- // When representing a string value, the type field is one of
492
- // |V_ASN1_OCTET_STRING|, |V_ASN1_UTF8STRING|, |V_ASN1_NUMERICSTRING|,
493
- // |V_ASN1_PRINTABLESTRING|, |V_ASN1_T61STRING|, |V_ASN1_VIDEOTEXSTRING|,
494
- // |V_ASN1_IA5STRING|, |V_ASN1_GRAPHICSTRING|, |V_ASN1_ISO64STRING|,
495
- // |V_ASN1_VISIBLESTRING|, |V_ASN1_GENERALSTRING|, |V_ASN1_UNIVERSALSTRING|, or
496
- // |V_ASN1_BMPSTRING|. The data contains the byte representation of of the
473
+ // If |type| is one of |V_ASN1_OCTET_STRING|, |V_ASN1_UTF8STRING|,
474
+ // |V_ASN1_NUMERICSTRING|, |V_ASN1_PRINTABLESTRING|, |V_ASN1_T61STRING|,
475
+ // |V_ASN1_VIDEOTEXSTRING|, |V_ASN1_IA5STRING|, |V_ASN1_GRAPHICSTRING|,
476
+ // |V_ASN1_ISO64STRING|, |V_ASN1_VISIBLESTRING|, |V_ASN1_GENERALSTRING|,
477
+ // |V_ASN1_UNIVERSALSTRING|, or |V_ASN1_BMPSTRING|, the object represents an
478
+ // ASN.1 string type. The data contains the byte representation of the
497
479
  // string.
498
480
  //
499
- // When representing a BIT STRING value, the type field is |V_ASN1_BIT_STRING|.
500
- // See bit string documentation below for how the data and flags are used.
481
+ // If |type| is |V_ASN1_BIT_STRING|, the object represents a BIT STRING value.
482
+ // See bit string documentation below for the data and flags.
501
483
  //
502
- // When representing an INTEGER or ENUMERATED value, the type field is one of
503
- // |V_ASN1_INTEGER|, |V_ASN1_NEG_INTEGER|, |V_ASN1_ENUMERATED|, or
504
- // |V_ASN1_NEG_ENUMERATED|. See integer documentation below for details.
484
+ // If |type| is one of |V_ASN1_INTEGER|, |V_ASN1_NEG_INTEGER|,
485
+ // |V_ASN1_ENUMERATED|, or |V_ASN1_NEG_ENUMERATED|, the object represents an
486
+ // INTEGER or ENUMERATED value. See integer documentation below for details.
505
487
  //
506
- // When representing a GeneralizedTime or UTCTime value, the type field is
507
- // |V_ASN1_GENERALIZEDTIME| or |V_ASN1_UTCTIME|, respectively. The data contains
508
- // the DER encoding of the value. For example, the UNIX epoch would be
488
+ // If |type| is |V_ASN1_GENERALIZEDTIME| or |V_ASN1_UTCTIME|, the object
489
+ // represents a GeneralizedTime or UTCTime value, respectively. The data
490
+ // contains the DER encoding of the value. For example, the UNIX epoch would be
509
491
  // "19700101000000Z" for a GeneralizedTime and "700101000000Z" for a UTCTime.
510
492
  //
511
- // |ASN1_STRING|, when stored in an |ASN1_TYPE|, may also represent an element
512
- // with tag not directly supported by this library. See |ASN1_TYPE| for details.
493
+ // If |type| is |V_ASN1_SEQUENCE|, |V_ASN1_SET|, or |V_ASN1_OTHER|, the object
494
+ // represents a SEQUENCE, SET, or arbitrary ASN.1 value, respectively. Unlike
495
+ // the above cases, the data contains the DER encoding of the entire structure,
496
+ // including the header. If the value is explicitly or implicitly tagged, this
497
+ // too will be reflected in the data field. As this case handles unknown types,
498
+ // the contents are not checked when parsing or serializing.
499
+ //
500
+ // Other values of |type| do not represent a valid ASN.1 value, though
501
+ // default-constructed objects may set |type| to -1. Such objects cannot be
502
+ // serialized.
513
503
  //
514
504
  // |ASN1_STRING| additionally has the following typedefs: |ASN1_BIT_STRING|,
515
505
  // |ASN1_BMPSTRING|, |ASN1_ENUMERATED|, |ASN1_GENERALIZEDTIME|,
@@ -526,15 +516,14 @@ DECLARE_ASN1_ITEM(ASN1_FBOOLEAN)
526
516
  // |ASN1_STRING_length|.
527
517
  //
528
518
  // If a function returns an |ASN1_STRING| where the typedef or ASN.1 structure
529
- // implies constraints on the type field, callers may assume that the type field
530
- // is correct. However, if a function takes an |ASN1_STRING| as input, callers
531
- // must ensure the type field matches. These invariants are not captured by the
532
- // C type system and may not be checked at runtime. For example, callers may
533
- // assume the output of |X509_get0_serialNumber| has type |V_ASN1_INTEGER| or
534
- // |V_ASN1_NEG_INTEGER|. Callers must not pass a string of type
535
- // |V_ASN1_OCTET_STRING| to |X509_set_serialNumber|. Doing so may break
536
- // invariants on the |X509| object and break the |X509_get0_serialNumber|
537
- // invariant.
519
+ // implies constraints on |type|, callers may assume that |type| is correct.
520
+ // However, if a function takes an |ASN1_STRING| as input, callers must ensure
521
+ // |type| matches. These invariants are not captured by the C type system and
522
+ // may not be checked at runtime. For example, callers may assume the output of
523
+ // |X509_get0_serialNumber| has type |V_ASN1_INTEGER| or |V_ASN1_NEG_INTEGER|.
524
+ // Callers must not pass a string of type |V_ASN1_OCTET_STRING| to
525
+ // |X509_set_serialNumber|. Doing so may break invariants on the |X509| object
526
+ // and break the |X509_get0_serialNumber| invariant.
538
527
  //
539
528
  // TODO(https://crbug.com/boringssl/445): This is very unfriendly. Getting the
540
529
  // type field wrong should not cause memory errors, but it may do strange
@@ -605,8 +594,11 @@ OPENSSL_EXPORT int ASN1_STRING_length(const ASN1_STRING *str);
605
594
  OPENSSL_EXPORT int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b);
606
595
 
607
596
  // ASN1_STRING_set sets the contents of |str| to a copy of |len| bytes from
608
- // |data|. It returns one on success and zero on error.
609
- OPENSSL_EXPORT int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
597
+ // |data|. It returns one on success and zero on error. If |data| is NULL, it
598
+ // updates the length and allocates the buffer as needed, but does not
599
+ // initialize the contents.
600
+ OPENSSL_EXPORT int ASN1_STRING_set(ASN1_STRING *str, const void *data,
601
+ ossl_ssize_t len);
610
602
 
611
603
  // ASN1_STRING_set0 sets the contents of |str| to |len| bytes from |data|. It
612
604
  // takes ownership of |data|, which must have been allocated with
@@ -638,10 +630,7 @@ OPENSSL_EXPORT void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *str);
638
630
 
639
631
  // The following functions parse up to |len| bytes from |*inp| as a
640
632
  // DER-encoded ASN.1 value of the corresponding type, as described in
641
- // |d2i_SAMPLE_with_reuse|.
642
- //
643
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
644
- // BER, but this will be removed in the future.
633
+ // |d2i_SAMPLE|.
645
634
  OPENSSL_EXPORT ASN1_BMPSTRING *d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **out,
646
635
  const uint8_t **inp,
647
636
  long len);
@@ -751,15 +740,17 @@ OPENSSL_EXPORT int ASN1_STRING_to_UTF8(unsigned char **out,
751
740
  // the result. If |out| is NULL, it returns the selected output type without
752
741
  // constructing an |ASN1_STRING|. On error, this function returns -1.
753
742
  OPENSSL_EXPORT int ASN1_mbstring_copy(ASN1_STRING **out, const uint8_t *in,
754
- int len, int inform, unsigned long mask);
743
+ ossl_ssize_t len, int inform,
744
+ unsigned long mask);
755
745
 
756
746
  // ASN1_mbstring_ncopy behaves like |ASN1_mbstring_copy| but returns an error if
757
747
  // the input is less than |minsize| or greater than |maxsize| codepoints long. A
758
748
  // |maxsize| value of zero is ignored. Note the sizes are measured in
759
749
  // codepoints, not output bytes.
760
750
  OPENSSL_EXPORT int ASN1_mbstring_ncopy(ASN1_STRING **out, const uint8_t *in,
761
- int len, int inform, unsigned long mask,
762
- long minsize, long maxsize);
751
+ ossl_ssize_t len, int inform,
752
+ unsigned long mask, ossl_ssize_t minsize,
753
+ ossl_ssize_t maxsize);
763
754
 
764
755
  // ASN1_STRING_set_by_NID behaves like |ASN1_mbstring_ncopy|, but determines
765
756
  // |mask|, |minsize|, and |maxsize| based on |nid|. When |nid| is a recognized
@@ -785,7 +776,7 @@ OPENSSL_EXPORT int ASN1_mbstring_ncopy(ASN1_STRING **out, const uint8_t *in,
785
776
  // to call |ASN1_mbstring_ncopy| directly instead.
786
777
  OPENSSL_EXPORT ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out,
787
778
  const unsigned char *in,
788
- int len, int inform,
779
+ ossl_ssize_t len, int inform,
789
780
  int nid);
790
781
 
791
782
  // STABLE_NO_MASK causes |ASN1_STRING_TABLE_add| to allow types other than
@@ -830,7 +821,7 @@ OPENSSL_EXPORT ASN1_STRING *DIRECTORYSTRING_new(void);
830
821
  OPENSSL_EXPORT void DIRECTORYSTRING_free(ASN1_STRING *str);
831
822
 
832
823
  // d2i_DIRECTORYSTRING parses up to |len| bytes from |*inp| as a DER-encoded
833
- // X.509 DirectoryString (RFC 5280), as described in |d2i_SAMPLE_with_reuse|.
824
+ // X.509 DirectoryString (RFC 5280), as described in |d2i_SAMPLE|.
834
825
  //
835
826
  // TODO(https://crbug.com/boringssl/354): This function currently also accepts
836
827
  // BER, but this will be removed in the future.
@@ -863,7 +854,7 @@ OPENSSL_EXPORT ASN1_STRING *DISPLAYTEXT_new(void);
863
854
  OPENSSL_EXPORT void DISPLAYTEXT_free(ASN1_STRING *str);
864
855
 
865
856
  // d2i_DISPLAYTEXT parses up to |len| bytes from |*inp| as a DER-encoded X.509
866
- // DisplayText (RFC 5280), as described in |d2i_SAMPLE_with_reuse|.
857
+ // DisplayText (RFC 5280), as described in |d2i_SAMPLE|.
867
858
  //
868
859
  // TODO(https://crbug.com/boringssl/354): This function currently also accepts
869
860
  // BER, but this will be removed in the future.
@@ -924,10 +915,7 @@ OPENSSL_EXPORT ASN1_BIT_STRING *ASN1_BIT_STRING_new(void);
924
915
  OPENSSL_EXPORT void ASN1_BIT_STRING_free(ASN1_BIT_STRING *str);
925
916
 
926
917
  // d2i_ASN1_BIT_STRING parses up to |len| bytes from |*inp| as a DER-encoded
927
- // ASN.1 BIT STRING, as described in |d2i_SAMPLE_with_reuse|.
928
- //
929
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
930
- // BER, but this will be removed in the future.
918
+ // ASN.1 BIT STRING, as described in |d2i_SAMPLE|.
931
919
  OPENSSL_EXPORT ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **out,
932
920
  const uint8_t **inp,
933
921
  long len);
@@ -939,11 +927,7 @@ OPENSSL_EXPORT int i2d_ASN1_BIT_STRING(const ASN1_BIT_STRING *in,
939
927
 
940
928
  // c2i_ASN1_BIT_STRING decodes |len| bytes from |*inp| as the contents of a
941
929
  // DER-encoded BIT STRING, excluding the tag and length. It behaves like
942
- // |d2i_SAMPLE_with_reuse| except, on success, it always consumes all |len|
943
- // bytes.
944
- //
945
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
946
- // BER, but this will be removed in the future.
930
+ // |d2i_SAMPLE| except, on success, it always consumes all |len| bytes.
947
931
  OPENSSL_EXPORT ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **out,
948
932
  const uint8_t **inp,
949
933
  long len);
@@ -983,7 +967,8 @@ OPENSSL_EXPORT int ASN1_BIT_STRING_num_bytes(const ASN1_BIT_STRING *str,
983
967
  // TODO(davidben): Maybe it should? Wrapping a byte string in a bit string is a
984
968
  // common use case.
985
969
  OPENSSL_EXPORT int ASN1_BIT_STRING_set(ASN1_BIT_STRING *str,
986
- const unsigned char *d, int length);
970
+ const unsigned char *d,
971
+ ossl_ssize_t length);
987
972
 
988
973
  // ASN1_BIT_STRING_set_bit sets bit |n| of |str| to one if |value| is non-zero
989
974
  // and zero if |value| is zero, resizing |str| as needed. It then truncates
@@ -1014,6 +999,12 @@ OPENSSL_EXPORT int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *str,
1014
999
  // |V_ASN1_INTEGER| or |V_ASN1_ENUMERATED|, while negative values have a type of
1015
1000
  // |V_ASN1_NEG_INTEGER| or |V_ASN1_NEG_ENUMERATED|. Note this differs from DER's
1016
1001
  // two's complement representation.
1002
+ //
1003
+ // The data in the |ASN1_STRING| may not have leading zeros. Note this means
1004
+ // zero is represented as the empty string. Parsing functions will never return
1005
+ // invalid representations. If an invalid input is constructed, the marshaling
1006
+ // functions will skip leading zeros, however other functions, such as
1007
+ // |ASN1_INTEGER_cmp| or |ASN1_INTEGER_get|, may not return the correct result.
1017
1008
 
1018
1009
  DEFINE_STACK_OF(ASN1_INTEGER)
1019
1010
 
@@ -1028,10 +1019,7 @@ OPENSSL_EXPORT void ASN1_INTEGER_free(ASN1_INTEGER *str);
1028
1019
  OPENSSL_EXPORT ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x);
1029
1020
 
1030
1021
  // d2i_ASN1_INTEGER parses up to |len| bytes from |*inp| as a DER-encoded
1031
- // ASN.1 INTEGER, as described in |d2i_SAMPLE_with_reuse|.
1032
- //
1033
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1034
- // BER, but this will be removed in the future.
1022
+ // ASN.1 INTEGER, as described in |d2i_SAMPLE|.
1035
1023
  OPENSSL_EXPORT ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **out,
1036
1024
  const uint8_t **inp, long len);
1037
1025
 
@@ -1041,11 +1029,7 @@ OPENSSL_EXPORT int i2d_ASN1_INTEGER(const ASN1_INTEGER *in, uint8_t **outp);
1041
1029
 
1042
1030
  // c2i_ASN1_INTEGER decodes |len| bytes from |*inp| as the contents of a
1043
1031
  // DER-encoded INTEGER, excluding the tag and length. It behaves like
1044
- // |d2i_SAMPLE_with_reuse| except, on success, it always consumes all |len|
1045
- // bytes.
1046
- //
1047
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1048
- // some invalid inputs, but this will be removed in the future.
1032
+ // |d2i_SAMPLE| except, on success, it always consumes all |len| bytes.
1049
1033
  OPENSSL_EXPORT ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **in,
1050
1034
  const uint8_t **outp, long len);
1051
1035
 
@@ -1068,17 +1052,24 @@ OPENSSL_EXPORT int i2c_ASN1_INTEGER(const ASN1_INTEGER *in, uint8_t **outp);
1068
1052
  // |ASN1_INTEGER*|.
1069
1053
  DECLARE_ASN1_ITEM(ASN1_INTEGER)
1070
1054
 
1071
- // ASN1_INTEGER_set sets |a| to an INTEGER with value |v|. It returns one on
1072
- // success and zero on error.
1073
- OPENSSL_EXPORT int ASN1_INTEGER_set(ASN1_INTEGER *a, long v);
1074
-
1075
1055
  // ASN1_INTEGER_set_uint64 sets |a| to an INTEGER with value |v|. It returns one
1076
1056
  // on success and zero on error.
1077
1057
  OPENSSL_EXPORT int ASN1_INTEGER_set_uint64(ASN1_INTEGER *out, uint64_t v);
1078
1058
 
1079
- // ASN1_INTEGER_get returns the value of |a| as a |long|, or -1 if |a| is out of
1080
- // range or the wrong type.
1081
- OPENSSL_EXPORT long ASN1_INTEGER_get(const ASN1_INTEGER *a);
1059
+ // ASN1_INTEGER_set_int64 sets |a| to an INTEGER with value |v|. It returns one
1060
+ // on success and zero on error.
1061
+ OPENSSL_EXPORT int ASN1_INTEGER_set_int64(ASN1_INTEGER *out, int64_t v);
1062
+
1063
+ // ASN1_INTEGER_get_uint64 converts |a| to a |uint64_t|. On success, it returns
1064
+ // one and sets |*out| to the result. If |a| did not fit or has the wrong type,
1065
+ // it returns zero.
1066
+ OPENSSL_EXPORT int ASN1_INTEGER_get_uint64(uint64_t *out,
1067
+ const ASN1_INTEGER *a);
1068
+
1069
+ // ASN1_INTEGER_get_int64 converts |a| to a |int64_t|. On success, it returns
1070
+ // one and sets |*out| to the result. If |a| did not fit or has the wrong type,
1071
+ // it returns zero.
1072
+ OPENSSL_EXPORT int ASN1_INTEGER_get_int64(int64_t *out, const ASN1_INTEGER *a);
1082
1073
 
1083
1074
  // BN_to_ASN1_INTEGER sets |ai| to an INTEGER with value |bn| and returns |ai|
1084
1075
  // on success or NULL or error. If |ai| is NULL, it returns a newly-allocated
@@ -1106,10 +1097,7 @@ OPENSSL_EXPORT ASN1_ENUMERATED *ASN1_ENUMERATED_new(void);
1106
1097
  OPENSSL_EXPORT void ASN1_ENUMERATED_free(ASN1_ENUMERATED *str);
1107
1098
 
1108
1099
  // d2i_ASN1_ENUMERATED parses up to |len| bytes from |*inp| as a DER-encoded
1109
- // ASN.1 ENUMERATED, as described in |d2i_SAMPLE_with_reuse|.
1110
- //
1111
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1112
- // BER, but this will be removed in the future.
1100
+ // ASN.1 ENUMERATED, as described in |d2i_SAMPLE|.
1113
1101
  OPENSSL_EXPORT ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **out,
1114
1102
  const uint8_t **inp,
1115
1103
  long len);
@@ -1123,18 +1111,30 @@ OPENSSL_EXPORT int i2d_ASN1_ENUMERATED(const ASN1_ENUMERATED *in,
1123
1111
  // |ASN1_ENUMERATED*|.
1124
1112
  DECLARE_ASN1_ITEM(ASN1_ENUMERATED)
1125
1113
 
1126
- // ASN1_ENUMERATED_set sets |a| to an ENUMERATED with value |v|. It returns one
1127
- // on success and zero on error.
1128
- OPENSSL_EXPORT int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v);
1114
+ // ASN1_ENUMERATED_set_uint64 sets |a| to an ENUMERATED with value |v|. It
1115
+ // returns one on success and zero on error.
1116
+ OPENSSL_EXPORT int ASN1_ENUMERATED_set_uint64(ASN1_ENUMERATED *out, uint64_t v);
1129
1117
 
1130
- // ASN1_ENUMERATED_get returns the value of |a| as a |long|, or -1 if |a| is out
1131
- // of range or the wrong type.
1132
- OPENSSL_EXPORT long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a);
1118
+ // ASN1_ENUMERATED_set_int64 sets |a| to an ENUMERATED with value |v|. It
1119
+ // returns one on success and zero on error.
1120
+ OPENSSL_EXPORT int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *out, int64_t v);
1121
+
1122
+ // ASN1_ENUMERATED_get_uint64 converts |a| to a |uint64_t|. On success, it
1123
+ // returns one and sets |*out| to the result. If |a| did not fit or has the
1124
+ // wrong type, it returns zero.
1125
+ OPENSSL_EXPORT int ASN1_ENUMERATED_get_uint64(uint64_t *out,
1126
+ const ASN1_ENUMERATED *a);
1127
+
1128
+ // ASN1_ENUMERATED_get_int64 converts |a| to a |int64_t|. On success, it
1129
+ // returns one and sets |*out| to the result. If |a| did not fit or has the
1130
+ // wrong type, it returns zero.
1131
+ OPENSSL_EXPORT int ASN1_ENUMERATED_get_int64(int64_t *out,
1132
+ const ASN1_ENUMERATED *a);
1133
1133
 
1134
1134
  // BN_to_ASN1_ENUMERATED sets |ai| to an ENUMERATED with value |bn| and returns
1135
1135
  // |ai| on success or NULL or error. If |ai| is NULL, it returns a
1136
- // newly-allocated |ASN1_INTEGER| on success instead, which the caller must
1137
- // release with |ASN1_INTEGER_free|.
1136
+ // newly-allocated |ASN1_ENUMERATED| on success instead, which the caller must
1137
+ // release with |ASN1_ENUMERATED_free|.
1138
1138
  OPENSSL_EXPORT ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn,
1139
1139
  ASN1_ENUMERATED *ai);
1140
1140
 
@@ -1172,7 +1172,7 @@ OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_new(void);
1172
1172
  OPENSSL_EXPORT void ASN1_UTCTIME_free(ASN1_UTCTIME *str);
1173
1173
 
1174
1174
  // d2i_ASN1_UTCTIME parses up to |len| bytes from |*inp| as a DER-encoded
1175
- // ASN.1 UTCTime, as described in |d2i_SAMPLE_with_reuse|.
1175
+ // ASN.1 UTCTime, as described in |d2i_SAMPLE|.
1176
1176
  //
1177
1177
  // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1178
1178
  // BER, but this will be removed in the future.
@@ -1190,20 +1190,23 @@ DECLARE_ASN1_ITEM(ASN1_UTCTIME)
1190
1190
  // ASN1_UTCTIME_check returns one if |a| is a valid UTCTime and zero otherwise.
1191
1191
  OPENSSL_EXPORT int ASN1_UTCTIME_check(const ASN1_UTCTIME *a);
1192
1192
 
1193
- // ASN1_UTCTIME_set represents |t| as a UTCTime and writes the result to |s|. It
1194
- // returns |s| on success and NULL on error. If |s| is NULL, it returns a
1195
- // newly-allocated |ASN1_UTCTIME| instead.
1193
+ // ASN1_UTCTIME_set represents |posix_time| as a UTCTime and writes the result
1194
+ // to |s|. It returns |s| on success and NULL on error. If |s| is NULL, it
1195
+ // returns a newly-allocated |ASN1_UTCTIME| instead.
1196
1196
  //
1197
1197
  // Note this function may fail if the time is out of range for UTCTime.
1198
- OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t);
1198
+ OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s,
1199
+ int64_t posix_time);
1199
1200
 
1200
- // ASN1_UTCTIME_adj adds |offset_day| days and |offset_sec| seconds to |t| and
1201
- // writes the result to |s| as a UTCTime. It returns |s| on success and NULL on
1202
- // error. If |s| is NULL, it returns a newly-allocated |ASN1_UTCTIME| instead.
1201
+ // ASN1_UTCTIME_adj adds |offset_day| days and |offset_sec| seconds to
1202
+ // |posix_time| and writes the result to |s| as a UTCTime. It returns |s| on
1203
+ // success and NULL on error. If |s| is NULL, it returns a newly-allocated
1204
+ // |ASN1_UTCTIME| instead.
1203
1205
  //
1204
1206
  // Note this function may fail if the time overflows or is out of range for
1205
1207
  // UTCTime.
1206
- OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t,
1208
+ OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s,
1209
+ int64_t posix_time,
1207
1210
  int offset_day, long offset_sec);
1208
1211
 
1209
1212
  // ASN1_UTCTIME_set_string sets |s| to a UTCTime whose contents are a copy of
@@ -1226,10 +1229,7 @@ OPENSSL_EXPORT ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_new(void);
1226
1229
  OPENSSL_EXPORT void ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *str);
1227
1230
 
1228
1231
  // d2i_ASN1_GENERALIZEDTIME parses up to |len| bytes from |*inp| as a
1229
- // DER-encoded ASN.1 GeneralizedTime, as described in |d2i_SAMPLE_with_reuse|.
1230
- //
1231
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1232
- // BER, but this will be removed in the future.
1232
+ // DER-encoded ASN.1 GeneralizedTime, as described in |d2i_SAMPLE|.
1233
1233
  OPENSSL_EXPORT ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(
1234
1234
  ASN1_GENERALIZEDTIME **out, const uint8_t **inp, long len);
1235
1235
 
@@ -1246,23 +1246,24 @@ DECLARE_ASN1_ITEM(ASN1_GENERALIZEDTIME)
1246
1246
  // zero otherwise.
1247
1247
  OPENSSL_EXPORT int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a);
1248
1248
 
1249
- // ASN1_GENERALIZEDTIME_set represents |t| as a GeneralizedTime and writes the
1250
- // result to |s|. It returns |s| on success and NULL on error. If |s| is NULL,
1251
- // it returns a newly-allocated |ASN1_GENERALIZEDTIME| instead.
1249
+ // ASN1_GENERALIZEDTIME_set represents |posix_time| as a GeneralizedTime and
1250
+ // writes the result to |s|. It returns |s| on success and NULL on error. If |s|
1251
+ // is NULL, it returns a newly-allocated |ASN1_GENERALIZEDTIME| instead.
1252
1252
  //
1253
1253
  // Note this function may fail if the time is out of range for GeneralizedTime.
1254
1254
  OPENSSL_EXPORT ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(
1255
- ASN1_GENERALIZEDTIME *s, time_t t);
1255
+ ASN1_GENERALIZEDTIME *s, int64_t posix_time);
1256
1256
 
1257
1257
  // ASN1_GENERALIZEDTIME_adj adds |offset_day| days and |offset_sec| seconds to
1258
- // |t| and writes the result to |s| as a GeneralizedTime. It returns |s| on
1259
- // success and NULL on error. If |s| is NULL, it returns a newly-allocated
1260
- // |ASN1_GENERALIZEDTIME| instead.
1258
+ // |posix_time| and writes the result to |s| as a GeneralizedTime. It returns
1259
+ // |s| on success and NULL on error. If |s| is NULL, it returns a
1260
+ // newly-allocated |ASN1_GENERALIZEDTIME| instead.
1261
1261
  //
1262
1262
  // Note this function may fail if the time overflows or is out of range for
1263
1263
  // GeneralizedTime.
1264
1264
  OPENSSL_EXPORT ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(
1265
- ASN1_GENERALIZEDTIME *s, time_t t, int offset_day, long offset_sec);
1265
+ ASN1_GENERALIZEDTIME *s, int64_t posix_time, int offset_day,
1266
+ long offset_sec);
1266
1267
 
1267
1268
  // ASN1_GENERALIZEDTIME_set_string sets |s| to a GeneralizedTime whose contents
1268
1269
  // are a copy of |str|. It returns one on success and zero on error or if |str|
@@ -1284,7 +1285,7 @@ OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_new(void);
1284
1285
  OPENSSL_EXPORT void ASN1_TIME_free(ASN1_TIME *str);
1285
1286
 
1286
1287
  // d2i_ASN1_TIME parses up to |len| bytes from |*inp| as a DER-encoded X.509
1287
- // Time (RFC 5280), as described in |d2i_SAMPLE_with_reuse|.
1288
+ // Time (RFC 5280), as described in |d2i_SAMPLE|.
1288
1289
  //
1289
1290
  // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1290
1291
  // BER, but this will be removed in the future.
@@ -1312,24 +1313,29 @@ DECLARE_ASN1_ITEM(ASN1_TIME)
1312
1313
  OPENSSL_EXPORT int ASN1_TIME_diff(int *out_days, int *out_seconds,
1313
1314
  const ASN1_TIME *from, const ASN1_TIME *to);
1314
1315
 
1315
- // ASN1_TIME_set represents |t| as a GeneralizedTime or UTCTime and writes
1316
- // the result to |s|. As in RFC 5280, section 4.1.2.5, it uses UTCTime when the
1317
- // time fits and GeneralizedTime otherwise. It returns |s| on success and NULL
1318
- // on error. If |s| is NULL, it returns a newly-allocated |ASN1_TIME| instead.
1316
+ // ASN1_TIME_set_posix represents |posix_time| as a GeneralizedTime or UTCTime
1317
+ // and writes the result to |s|. As in RFC 5280, section 4.1.2.5, it uses
1318
+ // UTCTime when the time fits and GeneralizedTime otherwise. It returns |s| on
1319
+ // success and NULL on error. If |s| is NULL, it returns a newly-allocated
1320
+ // |ASN1_TIME| instead.
1319
1321
  //
1320
1322
  // Note this function may fail if the time is out of range for GeneralizedTime.
1321
- OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t);
1323
+ OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_set_posix(ASN1_TIME *s, int64_t posix_time);
1324
+
1325
+ // ASN1_TIME_set is exactly the same as |ASN1_TIME_set_posix| but with a
1326
+ // time_t as input for compatibility.
1327
+ OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t time);
1322
1328
 
1323
1329
  // ASN1_TIME_adj adds |offset_day| days and |offset_sec| seconds to
1324
- // |t| and writes the result to |s|. As in RFC 5280, section 4.1.2.5, it uses
1325
- // UTCTime when the time fits and GeneralizedTime otherwise. It returns |s| on
1326
- // success and NULL on error. If |s| is NULL, it returns a newly-allocated
1327
- // |ASN1_GENERALIZEDTIME| instead.
1330
+ // |posix_time| and writes the result to |s|. As in RFC 5280, section 4.1.2.5,
1331
+ // it uses UTCTime when the time fits and GeneralizedTime otherwise. It returns
1332
+ // |s| on success and NULL on error. If |s| is NULL, it returns a
1333
+ // newly-allocated |ASN1_GENERALIZEDTIME| instead.
1328
1334
  //
1329
1335
  // Note this function may fail if the time overflows or is out of range for
1330
1336
  // GeneralizedTime.
1331
- OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, int offset_day,
1332
- long offset_sec);
1337
+ OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, int64_t posix_time,
1338
+ int offset_day, long offset_sec);
1333
1339
 
1334
1340
  // ASN1_TIME_check returns one if |t| is a valid UTCTime or GeneralizedTime, and
1335
1341
  // zero otherwise. |t|'s type determines which check is performed. This
@@ -1349,6 +1355,15 @@ OPENSSL_EXPORT ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(
1349
1355
  // GeneralizedTime. If |str| is neither, it returns zero.
1350
1356
  OPENSSL_EXPORT int ASN1_TIME_set_string(ASN1_TIME *s, const char *str);
1351
1357
 
1358
+ // ASN1_TIME_to_time_t converts |t| to a time_t value in |out|. On
1359
+ // success, one is returned. On failure zero is returned. This function
1360
+ // will fail if the time can not be represented in a time_t.
1361
+ OPENSSL_EXPORT int ASN1_TIME_to_time_t(const ASN1_TIME *t, time_t *out);
1362
+
1363
+ // ASN1_TIME_to_posix converts |t| to a POSIX time value in |out|. On
1364
+ // success, one is returned. On failure zero is returned.
1365
+ OPENSSL_EXPORT int ASN1_TIME_to_posix(const ASN1_TIME *t, int64_t *out);
1366
+
1352
1367
  // TODO(davidben): Expand and document function prototypes generated in macros.
1353
1368
 
1354
1369
 
@@ -1368,9 +1383,6 @@ OPENSSL_EXPORT void ASN1_NULL_free(ASN1_NULL *null);
1368
1383
 
1369
1384
  // d2i_ASN1_NULL parses a DER-encoded ASN.1 NULL value from up to |len| bytes
1370
1385
  // at |*inp|, as described in |d2i_SAMPLE|.
1371
- //
1372
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1373
- // BER, but this will be removed in the future.
1374
1386
  OPENSSL_EXPORT ASN1_NULL *d2i_ASN1_NULL(ASN1_NULL **out, const uint8_t **inp,
1375
1387
  long len);
1376
1388
 
@@ -1405,7 +1417,7 @@ DEFINE_STACK_OF(ASN1_OBJECT)
1405
1417
  // TODO(davidben): Should we just ignore all those parameters? NIDs and names
1406
1418
  // are only relevant for |ASN1_OBJECT|s in the obj.h table.
1407
1419
  OPENSSL_EXPORT ASN1_OBJECT *ASN1_OBJECT_create(int nid, const uint8_t *data,
1408
- int len, const char *sn,
1420
+ size_t len, const char *sn,
1409
1421
  const char *ln);
1410
1422
 
1411
1423
  // ASN1_OBJECT_free releases memory associated with |a|. If |a| is a static
@@ -1413,21 +1425,17 @@ OPENSSL_EXPORT ASN1_OBJECT *ASN1_OBJECT_create(int nid, const uint8_t *data,
1413
1425
  OPENSSL_EXPORT void ASN1_OBJECT_free(ASN1_OBJECT *a);
1414
1426
 
1415
1427
  // d2i_ASN1_OBJECT parses a DER-encoded ASN.1 OBJECT IDENTIFIER from up to |len|
1416
- // bytes at |*inp|, as described in |d2i_SAMPLE_with_reuse|.
1417
- //
1418
- // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1419
- // BER, but this will be removed in the future.
1428
+ // bytes at |*inp|, as described in |d2i_SAMPLE|.
1420
1429
  OPENSSL_EXPORT ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **out,
1421
1430
  const uint8_t **inp, long len);
1422
1431
 
1423
1432
  // i2d_ASN1_OBJECT marshals |in| as a DER-encoded ASN.1 OBJECT IDENTIFIER, as
1424
1433
  // described in |i2d_SAMPLE|.
1425
- OPENSSL_EXPORT int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, uint8_t **outp);
1434
+ OPENSSL_EXPORT int i2d_ASN1_OBJECT(const ASN1_OBJECT *in, uint8_t **outp);
1426
1435
 
1427
1436
  // c2i_ASN1_OBJECT decodes |len| bytes from |*inp| as the contents of a
1428
1437
  // DER-encoded OBJECT IDENTIFIER, excluding the tag and length. It behaves like
1429
- // |d2i_SAMPLE_with_reuse| except, on success, it always consumes all |len|
1430
- // bytes.
1438
+ // |d2i_SAMPLE| except, on success, it always consumes all |len| bytes.
1431
1439
  OPENSSL_EXPORT ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **out,
1432
1440
  const uint8_t **inp, long len);
1433
1441
 
@@ -1469,15 +1477,14 @@ DECLARE_ASN1_ITEM(ASN1_OBJECT)
1469
1477
  // |ASN1_BOOLEAN|.
1470
1478
  //
1471
1479
  // If |type| is |V_ASN1_SEQUENCE|, |V_ASN1_SET|, or |V_ASN1_OTHER|, the tag is
1472
- // SEQUENCE, SET, or some non-universal tag, respectively. |value| is an
1473
- // |ASN1_STRING| containing the entire element, including the tag and length.
1474
- // The |ASN1_STRING|'s |type| field matches the containing |ASN1_TYPE|'s |type|.
1475
- //
1476
- // Other positive values of |type|, up to |V_ASN1_MAX_UNIVERSAL|, correspond to
1477
- // universal primitive tags not directly supported by this library. |value| is
1478
- // an |ASN1_STRING| containing the body of the element, excluding the tag
1479
- // and length. The |ASN1_STRING|'s |type| field matches the containing
1480
- // |ASN1_TYPE|'s |type|.
1480
+ // SEQUENCE, SET, or some arbitrary tag, respectively. |value| uses the
1481
+ // corresponding |ASN1_STRING| representation. Although any type may be
1482
+ // represented in |V_ASN1_OTHER|, the parser will always return the more
1483
+ // specific encoding when available.
1484
+ //
1485
+ // Other values of |type| do not represent a valid ASN.1 value, though
1486
+ // default-constructed objects may set |type| to -1. Such objects cannot be
1487
+ // serialized.
1481
1488
  struct asn1_type_st {
1482
1489
  int type;
1483
1490
  union {
@@ -1517,10 +1524,10 @@ OPENSSL_EXPORT ASN1_TYPE *ASN1_TYPE_new(void);
1517
1524
  OPENSSL_EXPORT void ASN1_TYPE_free(ASN1_TYPE *a);
1518
1525
 
1519
1526
  // d2i_ASN1_TYPE parses up to |len| bytes from |*inp| as an ASN.1 value of any
1520
- // type, as described in |d2i_SAMPLE_with_reuse|. Note this function only
1521
- // validates primitive, universal types supported by this library. Values of
1522
- // type |V_ASN1_SEQUENCE|, |V_ASN1_SET|, |V_ASN1_OTHER|, or an unsupported
1523
- // primitive type must be validated by the caller when interpreting.
1527
+ // type, as described in |d2i_SAMPLE|. Note this function only validates
1528
+ // primitive, universal types supported by this library. Values of type
1529
+ // |V_ASN1_SEQUENCE|, |V_ASN1_SET|, |V_ASN1_OTHER|, or an unsupported primitive
1530
+ // type must be validated by the caller when interpreting.
1524
1531
  //
1525
1532
  // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1526
1533
  // BER, but this will be removed in the future.
@@ -1564,9 +1571,9 @@ OPENSSL_EXPORT int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b);
1564
1571
  typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY;
1565
1572
 
1566
1573
  // d2i_ASN1_SEQUENCE_ANY parses up to |len| bytes from |*inp| as a DER-encoded
1567
- // ASN.1 SEQUENCE OF ANY structure, as described in |d2i_SAMPLE_with_reuse|. The
1568
- // resulting |ASN1_SEQUENCE_ANY| owns its contents and thus must be released
1569
- // with |sk_ASN1_TYPE_pop_free| and |ASN1_TYPE_free|, not |sk_ASN1_TYPE_free|.
1574
+ // ASN.1 SEQUENCE OF ANY structure, as described in |d2i_SAMPLE|. The resulting
1575
+ // |ASN1_SEQUENCE_ANY| owns its contents and thus must be released with
1576
+ // |sk_ASN1_TYPE_pop_free| and |ASN1_TYPE_free|, not |sk_ASN1_TYPE_free|.
1570
1577
  //
1571
1578
  // TODO(https://crbug.com/boringssl/354): This function currently also accepts
1572
1579
  // BER, but this will be removed in the future.
@@ -1580,7 +1587,7 @@ OPENSSL_EXPORT int i2d_ASN1_SEQUENCE_ANY(const ASN1_SEQUENCE_ANY *in,
1580
1587
  uint8_t **outp);
1581
1588
 
1582
1589
  // d2i_ASN1_SET_ANY parses up to |len| bytes from |*inp| as a DER-encoded ASN.1
1583
- // SET OF ANY structure, as described in |d2i_SAMPLE_with_reuse|. The resulting
1590
+ // SET OF ANY structure, as described in |d2i_SAMPLE|. The resulting
1584
1591
  // |ASN1_SEQUENCE_ANY| owns its contents and thus must be released with
1585
1592
  // |sk_ASN1_TYPE_pop_free| and |ASN1_TYPE_free|, not |sk_ASN1_TYPE_free|.
1586
1593
  //
@@ -1620,6 +1627,8 @@ OPENSSL_EXPORT int ASN1_TIME_print(BIO *out, const ASN1_TIME *a);
1620
1627
  // replaced with '.'.
1621
1628
  OPENSSL_EXPORT int ASN1_STRING_print(BIO *out, const ASN1_STRING *str);
1622
1629
 
1630
+ // The following flags must not collide with |XN_FLAG_*|.
1631
+
1623
1632
  // ASN1_STRFLGS_ESC_2253 causes characters to be escaped as in RFC 2253, section
1624
1633
  // 2.4.
1625
1634
  #define ASN1_STRFLGS_ESC_2253 1
@@ -1727,13 +1736,11 @@ OPENSSL_EXPORT int i2t_ASN1_OBJECT(char *buf, int buf_len,
1727
1736
  // |*out_length|, |*out_tag|, and |*out_class| to the element's length, tag
1728
1737
  // number, and tag class, respectively,
1729
1738
  //
1730
- // Unlike OpenSSL, this function does not support indefinite-length elements.
1739
+ // Unlike OpenSSL, this function only supports DER. Indefinite and non-minimal
1740
+ // lengths are rejected.
1731
1741
  //
1732
1742
  // This function is difficult to use correctly. Use |CBS_get_asn1| and related
1733
1743
  // functions from bytestring.h.
1734
- //
1735
- // TODO(https://crbug.com/boringssl/354): Remove support for non-minimal
1736
- // lengths.
1737
1744
  OPENSSL_EXPORT int ASN1_get_object(const unsigned char **inp, long *out_length,
1738
1745
  int *out_tag, int *out_class, long max_len);
1739
1746
 
@@ -1809,15 +1816,6 @@ OPENSSL_EXPORT int ASN1_object_size(int constructed, int length, int tag);
1809
1816
 
1810
1817
  // Deprecated functions.
1811
1818
 
1812
- // ASN1_PRINTABLE_type interprets |len| bytes from |s| as a Latin-1 string. It
1813
- // returns the first of |V_ASN1_PRINTABLESTRING|, |V_ASN1_IA5STRING|, or
1814
- // |V_ASN1_T61STRING| that can represent every character. If |len| is negative,
1815
- // |strlen(s)| is used instead.
1816
- //
1817
- // TODO(davidben): Remove this once all copies of Conscrypt have been updated
1818
- // past https://github.com/google/conscrypt/pull/1032.
1819
- OPENSSL_EXPORT int ASN1_PRINTABLE_type(const unsigned char *s, int len);
1820
-
1821
1819
  // ASN1_STRING_set_default_mask does nothing.
1822
1820
  OPENSSL_EXPORT void ASN1_STRING_set_default_mask(unsigned long mask);
1823
1821
 
@@ -1899,7 +1897,7 @@ OPENSSL_EXPORT void ASN1_PRINTABLE_free(ASN1_STRING *str);
1899
1897
 
1900
1898
  // d2i_ASN1_PRINTABLE parses up to |len| bytes from |*inp| as a DER-encoded
1901
1899
  // CHOICE of an ad-hoc subset of string-like types, as described in
1902
- // |d2i_SAMPLE_with_reuse|.
1900
+ // |d2i_SAMPLE|.
1903
1901
  //
1904
1902
  // Do not use this. Despite, the name it has no connection to PrintableString or
1905
1903
  // printable characters. See https://crbug.com/boringssl/412.
@@ -1922,6 +1920,32 @@ OPENSSL_EXPORT int i2d_ASN1_PRINTABLE(const ASN1_STRING *in, uint8_t **outp);
1922
1920
  // printable characters. See https://crbug.com/boringssl/412.
1923
1921
  DECLARE_ASN1_ITEM(ASN1_PRINTABLE)
1924
1922
 
1923
+ // ASN1_INTEGER_set sets |a| to an INTEGER with value |v|. It returns one on
1924
+ // success and zero on error.
1925
+ //
1926
+ // Use |ASN1_INTEGER_set_uint64| and |ASN1_INTEGER_set_int64| instead.
1927
+ OPENSSL_EXPORT int ASN1_INTEGER_set(ASN1_INTEGER *a, long v);
1928
+
1929
+ // ASN1_ENUMERATED_set sets |a| to an ENUMERATED with value |v|. It returns one
1930
+ // on success and zero on error.
1931
+ //
1932
+ // Use |ASN1_ENUMERATED_set_uint64| and |ASN1_ENUMERATED_set_int64| instead.
1933
+ OPENSSL_EXPORT int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v);
1934
+
1935
+ // ASN1_INTEGER_get returns the value of |a| as a |long|, or -1 if |a| is out of
1936
+ // range or the wrong type.
1937
+ //
1938
+ // WARNING: This function's return value cannot distinguish errors from -1.
1939
+ // Use |ASN1_INTEGER_get_uint64| and |ASN1_INTEGER_get_int64| instead.
1940
+ OPENSSL_EXPORT long ASN1_INTEGER_get(const ASN1_INTEGER *a);
1941
+
1942
+ // ASN1_ENUMERATED_get returns the value of |a| as a |long|, or -1 if |a| is out
1943
+ // of range or the wrong type.
1944
+ //
1945
+ // WARNING: This function's return value cannot distinguish errors from -1.
1946
+ // Use |ASN1_ENUMERATED_get_uint64| and |ASN1_ENUMERATED_get_int64| instead.
1947
+ OPENSSL_EXPORT long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a);
1948
+
1925
1949
 
1926
1950
  #if defined(__cplusplus)
1927
1951
  } // extern C
@@ -2035,5 +2059,7 @@ BSSL_NAMESPACE_END
2035
2059
  #define ASN1_R_NESTED_TOO_DEEP 192
2036
2060
  #define ASN1_R_BAD_TEMPLATE 193
2037
2061
  #define ASN1_R_INVALID_BIT_STRING_PADDING 194
2062
+ #define ASN1_R_WRONG_INTEGER_TYPE 195
2063
+ #define ASN1_R_INVALID_INTEGER 196
2038
2064
 
2039
- #endif
2065
+ #endif // OPENSSL_HEADER_ASN1_H