grpc 1.37.0 → 1.45.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 (2039) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +501 -260
  3. data/etc/roots.pem +335 -326
  4. data/include/grpc/byte_buffer.h +1 -1
  5. data/include/grpc/byte_buffer_reader.h +1 -1
  6. data/include/grpc/event_engine/README.md +38 -0
  7. data/include/grpc/event_engine/endpoint_config.h +43 -0
  8. data/include/grpc/event_engine/event_engine.h +399 -0
  9. data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
  10. data/include/grpc/event_engine/memory_allocator.h +226 -0
  11. data/include/grpc/event_engine/memory_request.h +57 -0
  12. data/include/grpc/event_engine/port.h +39 -0
  13. data/include/grpc/fork.h +1 -1
  14. data/include/grpc/grpc.h +65 -22
  15. data/include/grpc/grpc_posix.h +22 -18
  16. data/include/grpc/grpc_security.h +358 -191
  17. data/include/grpc/grpc_security_constants.h +17 -14
  18. data/include/grpc/impl/codegen/atm.h +5 -3
  19. data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
  20. data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
  21. data/include/grpc/impl/codegen/atm_windows.h +2 -0
  22. data/include/grpc/impl/codegen/byte_buffer.h +2 -0
  23. data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
  24. data/include/grpc/impl/codegen/compression_types.h +2 -2
  25. data/include/grpc/impl/codegen/connectivity_state.h +2 -0
  26. data/include/grpc/impl/codegen/fork.h +2 -0
  27. data/include/grpc/impl/codegen/gpr_slice.h +2 -0
  28. data/include/grpc/impl/codegen/gpr_types.h +2 -0
  29. data/include/grpc/impl/codegen/grpc_types.h +61 -28
  30. data/include/grpc/impl/codegen/log.h +2 -0
  31. data/include/grpc/impl/codegen/port_platform.h +83 -22
  32. data/include/grpc/impl/codegen/propagation_bits.h +2 -0
  33. data/include/grpc/impl/codegen/slice.h +6 -1
  34. data/include/grpc/impl/codegen/status.h +2 -0
  35. data/include/grpc/impl/codegen/sync.h +8 -5
  36. data/include/grpc/impl/codegen/sync_abseil.h +2 -0
  37. data/include/grpc/impl/codegen/sync_custom.h +2 -0
  38. data/include/grpc/impl/codegen/sync_generic.h +3 -0
  39. data/include/grpc/impl/codegen/sync_posix.h +4 -2
  40. data/include/grpc/impl/codegen/sync_windows.h +2 -0
  41. data/include/grpc/module.modulemap +14 -14
  42. data/include/grpc/slice.h +1 -12
  43. data/include/grpc/status.h +1 -1
  44. data/include/grpc/support/atm.h +1 -1
  45. data/include/grpc/support/atm_gcc_atomic.h +1 -1
  46. data/include/grpc/support/atm_gcc_sync.h +1 -1
  47. data/include/grpc/support/atm_windows.h +1 -1
  48. data/include/grpc/support/log.h +1 -1
  49. data/include/grpc/support/port_platform.h +1 -1
  50. data/include/grpc/support/sync.h +1 -1
  51. data/include/grpc/support/sync_abseil.h +1 -1
  52. data/include/grpc/support/sync_custom.h +1 -1
  53. data/include/grpc/support/sync_generic.h +1 -1
  54. data/include/grpc/support/sync_posix.h +1 -1
  55. data/include/grpc/support/sync_windows.h +1 -1
  56. data/include/grpc/support/time.h +2 -2
  57. data/src/core/ext/filters/census/grpc_context.cc +1 -0
  58. data/src/core/ext/filters/client_channel/backend_metric.cc +24 -27
  59. data/src/core/ext/filters/client_channel/backend_metric.h +4 -3
  60. data/src/core/ext/filters/client_channel/backup_poller.cc +17 -12
  61. data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
  62. data/src/core/ext/filters/client_channel/channel_connectivity.cc +158 -202
  63. data/src/core/ext/filters/client_channel/client_channel.cc +1231 -3574
  64. data/src/core/ext/filters/client_channel/client_channel.h +563 -56
  65. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
  66. data/src/core/ext/filters/client_channel/client_channel_channelz.h +2 -2
  67. data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -1
  68. data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
  69. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +19 -22
  70. data/src/core/ext/filters/client_channel/config_selector.cc +2 -1
  71. data/src/core/ext/filters/client_channel/config_selector.h +22 -10
  72. data/src/core/ext/filters/client_channel/connector.h +20 -20
  73. data/src/core/ext/filters/client_channel/dynamic_filters.cc +15 -17
  74. data/src/core/ext/filters/client_channel/dynamic_filters.h +5 -5
  75. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
  76. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -16
  77. data/src/core/ext/filters/client_channel/health/health_check_client.cc +72 -68
  78. data/src/core/ext/filters/client_channel/health/health_check_client.h +38 -36
  79. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +54 -55
  80. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
  81. data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
  82. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
  83. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
  84. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -2
  85. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +12 -24
  86. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +300 -201
  87. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +3 -6
  88. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
  89. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
  90. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -4
  91. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +6 -5
  92. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +17 -18
  93. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
  94. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +86 -61
  95. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +73 -68
  96. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +785 -0
  97. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
  98. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2551 -0
  99. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +77 -78
  100. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -14
  101. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +37 -34
  102. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +112 -167
  103. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
  104. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
  105. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +188 -111
  106. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +46 -65
  107. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +198 -312
  108. data/src/core/ext/filters/client_channel/lb_policy.cc +17 -30
  109. data/src/core/ext/filters/client_channel/lb_policy.h +170 -137
  110. data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -1
  111. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -11
  112. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  113. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +133 -0
  114. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +292 -149
  115. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +23 -12
  116. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
  117. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +24 -19
  118. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +51 -69
  119. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +168 -281
  120. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +39 -26
  121. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
  122. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
  123. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +138 -120
  124. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +42 -47
  125. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -6
  126. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +102 -79
  127. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +41 -40
  128. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +547 -468
  129. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +42 -253
  130. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +34 -57
  131. data/src/core/ext/filters/client_channel/retry_filter.cc +2640 -0
  132. data/src/core/ext/filters/{workarounds/workaround_cronet_compression_filter.h → client_channel/retry_filter.h} +9 -6
  133. data/src/core/ext/filters/client_channel/retry_service_config.cc +314 -0
  134. data/src/core/ext/filters/client_channel/retry_service_config.h +102 -0
  135. data/src/core/ext/filters/client_channel/retry_throttle.cc +14 -59
  136. data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
  137. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +56 -41
  138. data/src/core/ext/filters/client_channel/subchannel.cc +143 -207
  139. data/src/core/ext/filters/client_channel/subchannel.h +43 -62
  140. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
  141. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
  142. data/src/core/ext/filters/client_idle/client_idle_filter.cc +109 -348
  143. data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
  144. data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
  145. data/src/core/ext/filters/deadline/deadline_filter.cc +41 -43
  146. data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
  147. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +105 -102
  148. data/src/core/ext/filters/fault_injection/service_config_parser.cc +21 -31
  149. data/src/core/ext/filters/fault_injection/service_config_parser.h +11 -5
  150. data/src/core/ext/filters/http/client/http_client_filter.cc +108 -183
  151. data/src/core/ext/filters/http/client_authority_filter.cc +36 -95
  152. data/src/core/ext/filters/http/client_authority_filter.h +23 -5
  153. data/src/core/ext/filters/http/http_filters_plugin.cc +52 -73
  154. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +67 -157
  155. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +43 -56
  156. data/src/core/ext/filters/http/server/http_server_filter.cc +115 -207
  157. data/src/core/ext/filters/max_age/max_age_filter.cc +75 -69
  158. data/src/core/ext/filters/message_size/message_size_filter.cc +63 -69
  159. data/src/core/ext/filters/message_size/message_size_filter.h +11 -4
  160. data/src/core/ext/filters/rbac/rbac_filter.cc +162 -0
  161. data/src/core/ext/filters/rbac/rbac_filter.h +76 -0
  162. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +606 -0
  163. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +75 -0
  164. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
  165. data/src/core/ext/filters/server_config_selector/server_config_selector.h +71 -0
  166. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +271 -0
  167. data/src/core/{lib/transport/authority_override.h → ext/filters/server_config_selector/server_config_selector_filter.h} +8 -13
  168. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  169. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +251 -19
  170. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  171. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +339 -138
  172. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
  173. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -2
  174. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
  175. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
  176. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +386 -463
  177. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -4
  178. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -6
  179. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -6
  180. data/src/core/ext/transport/chttp2/transport/flow_control.cc +66 -47
  181. data/src/core/ext/transport/chttp2/transport/flow_control.h +27 -21
  182. data/src/core/ext/transport/chttp2/transport/frame_data.cc +23 -24
  183. data/src/core/ext/transport/chttp2/transport/frame_data.h +11 -10
  184. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +21 -20
  185. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +7 -6
  186. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +17 -17
  187. data/src/core/ext/transport/chttp2/transport/frame_ping.h +8 -6
  188. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +17 -15
  189. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +7 -6
  190. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +49 -17
  191. data/src/core/ext/transport/chttp2/transport/frame_settings.h +7 -6
  192. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +16 -13
  193. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -6
  194. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
  195. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +520 -749
  196. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +183 -71
  197. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
  198. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +71 -0
  199. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +811 -1193
  200. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +101 -83
  201. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +239 -0
  202. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +115 -0
  203. data/src/core/ext/transport/chttp2/transport/internal.h +51 -74
  204. data/src/core/ext/transport/chttp2/transport/parsing.cc +157 -293
  205. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
  206. data/src/core/ext/transport/chttp2/transport/varint.cc +13 -7
  207. data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
  208. data/src/core/ext/transport/chttp2/transport/writing.cc +113 -164
  209. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
  210. data/src/core/ext/transport/inproc/inproc_transport.cc +186 -215
  211. data/src/core/ext/transport/inproc/inproc_transport.h +1 -4
  212. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +114 -0
  213. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +402 -0
  214. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +119 -0
  215. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +453 -0
  216. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +244 -210
  217. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +932 -575
  218. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
  219. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +138 -0
  220. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
  221. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +146 -0
  222. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
  223. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +106 -0
  224. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
  225. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +93 -0
  226. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
  227. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +88 -0
  228. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +103 -0
  229. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +466 -0
  230. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
  231. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +95 -0
  232. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +44 -1
  233. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +20 -1
  234. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +31 -5
  235. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +40 -19
  236. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +144 -117
  237. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +513 -317
  238. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +241 -188
  239. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +954 -530
  240. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +44 -29
  241. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +137 -81
  242. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +328 -250
  243. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1266 -657
  244. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -8
  245. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +41 -23
  246. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +41 -28
  247. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +136 -80
  248. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +290 -0
  249. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1122 -0
  250. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +73 -54
  251. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +265 -159
  252. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +21 -8
  253. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +41 -23
  254. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +238 -153
  255. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +894 -471
  256. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +63 -46
  257. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +210 -130
  258. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +20 -7
  259. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +33 -19
  260. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +32 -18
  261. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +88 -53
  262. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
  263. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +138 -0
  264. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +144 -118
  265. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +529 -329
  266. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +112 -91
  267. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +425 -259
  268. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -9
  269. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +44 -26
  270. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +212 -91
  271. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +932 -266
  272. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +18 -5
  273. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +33 -17
  274. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +60 -0
  275. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +152 -0
  276. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +23 -10
  277. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +47 -25
  278. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +28 -14
  279. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +53 -35
  280. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +48 -0
  281. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +108 -0
  282. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +52 -36
  283. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +133 -85
  284. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -39
  285. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +325 -107
  286. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +71 -54
  287. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +244 -144
  288. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +20 -7
  289. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +36 -20
  290. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +97 -69
  291. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +400 -226
  292. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +99 -78
  293. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +340 -213
  294. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +61 -0
  295. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +199 -0
  296. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +27 -11
  297. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +86 -49
  298. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
  299. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +120 -0
  300. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +82 -62
  301. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +294 -185
  302. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +93 -60
  303. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +349 -181
  304. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +127 -100
  305. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +307 -185
  306. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +59 -27
  307. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +195 -88
  308. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +648 -559
  309. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2460 -1505
  310. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +39 -20
  311. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +127 -64
  312. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +216 -0
  313. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +870 -0
  314. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
  315. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +82 -0
  316. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
  317. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +95 -0
  318. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +28 -14
  319. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +69 -40
  320. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
  321. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +119 -0
  322. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +62 -0
  323. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +203 -0
  324. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
  325. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +89 -0
  326. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
  327. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +184 -0
  328. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
  329. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
  330. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
  331. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +192 -0
  332. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
  333. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +126 -0
  334. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +18 -5
  335. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +37 -23
  336. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +46 -29
  337. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +156 -92
  338. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +52 -36
  339. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +175 -107
  340. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +63 -0
  341. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +165 -0
  342. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +27 -13
  343. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +69 -41
  344. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +272 -200
  345. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1095 -552
  346. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +10 -1
  347. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +7 -4
  348. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +108 -52
  349. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +448 -171
  350. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +42 -27
  351. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +115 -71
  352. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +103 -83
  353. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +341 -213
  354. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
  355. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +146 -0
  356. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +16 -3
  357. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +29 -15
  358. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +92 -73
  359. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +335 -218
  360. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +32 -18
  361. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +87 -54
  362. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +85 -40
  363. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +303 -104
  364. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
  365. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +101 -0
  366. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +76 -0
  367. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +228 -0
  368. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
  369. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +202 -0
  370. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +29 -14
  371. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +81 -46
  372. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -9
  373. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +42 -26
  374. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -8
  375. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +33 -19
  376. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +20 -7
  377. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +33 -19
  378. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +37 -21
  379. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +105 -61
  380. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +32 -18
  381. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +79 -52
  382. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +27 -13
  383. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +70 -43
  384. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +38 -23
  385. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +94 -58
  386. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +51 -32
  387. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +206 -124
  388. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +54 -37
  389. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +191 -115
  390. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
  391. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +183 -0
  392. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +10 -1
  393. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +4 -1
  394. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
  395. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +136 -0
  396. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +24 -10
  397. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +65 -34
  398. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +31 -16
  399. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +100 -52
  400. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
  401. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
  402. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -7
  403. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +39 -19
  404. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
  405. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +114 -0
  406. data/src/core/ext/upb-generated/google/api/annotations.upb.c +23 -1
  407. data/src/core/ext/upb-generated/google/api/annotations.upb.h +9 -1
  408. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +151 -126
  409. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +439 -281
  410. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +153 -127
  411. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +483 -298
  412. data/src/core/ext/upb-generated/google/api/http.upb.c +44 -29
  413. data/src/core/ext/upb-generated/google/api/http.upb.h +137 -89
  414. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
  415. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -0
  416. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -6
  417. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +40 -22
  418. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +367 -277
  419. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1252 -764
  420. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -6
  421. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +36 -18
  422. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +16 -3
  423. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +29 -15
  424. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +48 -32
  425. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +100 -64
  426. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -6
  427. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +36 -18
  428. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +58 -37
  429. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +269 -149
  430. data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -9
  431. data/src/core/ext/upb-generated/google/rpc/status.upb.h +44 -26
  432. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
  433. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +276 -0
  434. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +33 -19
  435. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +68 -42
  436. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +132 -108
  437. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +458 -285
  438. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +27 -13
  439. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +72 -39
  440. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +23 -9
  441. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +64 -35
  442. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +82 -62
  443. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +321 -197
  444. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +70 -0
  445. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +175 -0
  446. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +76 -14
  447. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +132 -63
  448. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +32 -8
  449. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +41 -18
  450. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +22 -1
  451. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +9 -1
  452. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +32 -6
  453. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +41 -18
  454. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +31 -5
  455. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +40 -19
  456. data/src/core/ext/upb-generated/validate/validate.upb.c +396 -295
  457. data/src/core/ext/upb-generated/validate/validate.upb.h +1395 -768
  458. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
  459. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +191 -0
  460. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
  461. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +87 -0
  462. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
  463. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +38 -0
  464. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +105 -0
  465. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +230 -0
  466. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
  467. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +81 -0
  468. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +19 -6
  469. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +35 -19
  470. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +32 -18
  471. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +77 -46
  472. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +27 -13
  473. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +39 -25
  474. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
  475. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +95 -0
  476. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +24 -11
  477. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +47 -27
  478. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +35 -21
  479. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +87 -54
  480. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +24 -11
  481. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +51 -29
  482. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +73 -0
  483. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +144 -0
  484. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +203 -0
  485. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +726 -0
  486. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
  487. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +132 -0
  488. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
  489. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +173 -0
  490. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +46 -0
  491. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +95 -0
  492. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
  493. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
  494. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
  495. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
  496. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +16 -61
  497. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
  498. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
  499. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
  500. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
  501. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
  502. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
  503. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
  504. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
  505. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
  506. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
  507. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
  508. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
  509. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
  510. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
  511. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
  512. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +22 -12
  513. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
  514. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +10 -13
  515. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
  516. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +69 -98
  517. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
  518. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +349 -339
  519. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +57 -52
  520. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +18 -24
  521. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
  522. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +488 -484
  523. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +80 -70
  524. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +16 -18
  525. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
  526. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +18 -20
  527. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
  528. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
  529. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
  530. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +17 -32
  531. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
  532. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +17 -19
  533. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
  534. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +224 -229
  535. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +79 -64
  536. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +23 -33
  537. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +16 -16
  538. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +16 -19
  539. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
  540. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +17 -21
  541. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +7 -7
  542. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
  543. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
  544. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +23 -51
  545. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
  546. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +76 -89
  547. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +25 -25
  548. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +16 -19
  549. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
  550. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +267 -200
  551. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +59 -34
  552. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +14 -16
  553. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
  554. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +55 -0
  555. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
  556. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +16 -18
  557. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
  558. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +40 -38
  559. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
  560. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +49 -0
  561. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
  562. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +20 -28
  563. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
  564. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +98 -83
  565. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +23 -13
  566. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +20 -30
  567. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
  568. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +16 -18
  569. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
  570. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +157 -155
  571. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +21 -16
  572. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +147 -153
  573. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
  574. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +88 -0
  575. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
  576. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +40 -36
  577. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
  578. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
  579. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
  580. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +19 -35
  581. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
  582. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +40 -47
  583. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +30 -25
  584. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +190 -0
  585. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
  586. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +79 -71
  587. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +12 -7
  588. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +717 -773
  589. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +162 -157
  590. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +54 -48
  591. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
  592. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
  593. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
  594. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
  595. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
  596. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
  597. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
  598. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +17 -21
  599. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
  600. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
  601. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
  602. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
  603. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
  604. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
  605. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
  606. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
  607. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
  608. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
  609. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
  610. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
  611. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
  612. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
  613. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
  614. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +17 -18
  615. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
  616. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +19 -29
  617. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
  618. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +27 -30
  619. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
  620. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +59 -0
  621. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
  622. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +26 -24
  623. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
  624. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +455 -429
  625. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +62 -52
  626. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +17 -13
  627. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
  628. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +178 -138
  629. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +26 -16
  630. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +21 -27
  631. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
  632. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +194 -200
  633. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +19 -19
  634. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
  635. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
  636. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +16 -18
  637. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
  638. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +19 -33
  639. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
  640. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +18 -22
  641. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
  642. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +120 -97
  643. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +18 -13
  644. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
  645. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
  646. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +56 -0
  647. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
  648. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
  649. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
  650. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +24 -27
  651. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
  652. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +17 -19
  653. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
  654. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +17 -19
  655. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
  656. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +17 -19
  657. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
  658. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +45 -48
  659. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
  660. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +17 -21
  661. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
  662. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +16 -21
  663. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
  664. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +18 -24
  665. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
  666. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +15 -29
  667. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
  668. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +16 -26
  669. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
  670. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
  671. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
  672. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +12 -10
  673. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
  674. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
  675. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
  676. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +14 -19
  677. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
  678. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +13 -19
  679. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
  680. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
  681. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
  682. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +13 -16
  683. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
  684. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
  685. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
  686. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +7 -7
  687. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
  688. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
  689. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
  690. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
  691. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
  692. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +5 -14
  693. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
  694. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
  695. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
  696. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +5 -10
  697. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
  698. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +107 -164
  699. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
  700. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +5 -10
  701. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
  702. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +5 -10
  703. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
  704. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +5 -16
  705. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
  706. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +5 -10
  707. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
  708. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +5 -26
  709. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
  710. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +9 -14
  711. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
  712. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
  713. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
  714. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +10 -18
  715. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
  716. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +24 -33
  717. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
  718. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +9 -8
  719. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
  720. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +10 -13
  721. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
  722. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +10 -14
  723. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
  724. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +189 -216
  725. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
  726. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
  727. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
  728. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
  729. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
  730. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
  731. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
  732. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +64 -0
  733. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
  734. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
  735. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
  736. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +18 -22
  737. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
  738. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +32 -38
  739. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
  740. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +20 -26
  741. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
  742. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
  743. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
  744. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +23 -27
  745. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
  746. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +39 -45
  747. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
  748. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +25 -29
  749. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
  750. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
  751. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
  752. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
  753. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
  754. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
  755. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
  756. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +40 -0
  757. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
  758. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  759. data/src/core/ext/xds/certificate_provider_registry.cc +3 -3
  760. data/src/core/ext/xds/certificate_provider_store.h +4 -4
  761. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +7 -7
  762. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +4 -4
  763. data/src/core/ext/xds/upb_utils.h +67 -0
  764. data/src/core/ext/xds/xds_api.cc +232 -3313
  765. data/src/core/ext/xds/xds_api.h +70 -550
  766. data/src/core/ext/xds/xds_bootstrap.cc +315 -300
  767. data/src/core/ext/xds/xds_bootstrap.h +54 -33
  768. data/src/core/ext/xds/xds_certificate_provider.cc +7 -7
  769. data/src/core/ext/xds/xds_certificate_provider.h +6 -6
  770. data/src/core/ext/xds/xds_channel_args.h +5 -2
  771. data/src/core/ext/xds/xds_channel_stack_modifier.cc +109 -0
  772. data/src/core/ext/xds/xds_channel_stack_modifier.h +53 -0
  773. data/src/core/ext/xds/xds_client.cc +1093 -957
  774. data/src/core/ext/xds/xds_client.h +143 -168
  775. data/src/core/ext/xds/xds_client_stats.cc +31 -30
  776. data/src/core/ext/xds/xds_client_stats.h +15 -13
  777. data/src/core/ext/xds/xds_cluster.cc +453 -0
  778. data/src/core/ext/xds/xds_cluster.h +108 -0
  779. data/src/core/ext/xds/xds_common_types.cc +388 -0
  780. data/src/core/ext/xds/xds_common_types.h +95 -0
  781. data/src/core/ext/xds/xds_endpoint.cc +364 -0
  782. data/src/core/ext/xds/xds_endpoint.h +135 -0
  783. data/src/core/ext/xds/xds_http_fault_filter.cc +10 -9
  784. data/src/core/ext/xds/xds_http_fault_filter.h +6 -5
  785. data/src/core/ext/xds/xds_http_filters.cc +15 -7
  786. data/src/core/ext/xds/xds_http_filters.h +7 -4
  787. data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
  788. data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
  789. data/src/core/ext/xds/xds_listener.cc +1039 -0
  790. data/src/core/ext/xds/xds_listener.h +220 -0
  791. data/src/core/{lib/transport/authority_override.cc → ext/xds/xds_resource_type.cc} +10 -17
  792. data/src/core/ext/xds/xds_resource_type.h +98 -0
  793. data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
  794. data/src/core/ext/xds/xds_route_config.cc +985 -0
  795. data/src/core/ext/xds/xds_route_config.h +215 -0
  796. data/src/core/ext/xds/xds_routing.cc +250 -0
  797. data/src/core/ext/xds/xds_routing.h +101 -0
  798. data/src/core/ext/xds/xds_server_config_fetcher.cc +1083 -296
  799. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +43 -25
  800. data/src/core/lib/{iomgr → address_utils}/parse_address.h +12 -7
  801. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +34 -41
  802. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +5 -15
  803. data/src/core/lib/avl/avl.h +389 -88
  804. data/src/core/lib/backoff/backoff.cc +9 -38
  805. data/src/core/lib/backoff/backoff.h +11 -11
  806. data/src/core/lib/channel/call_finalization.h +86 -0
  807. data/src/core/lib/channel/call_tracer.h +85 -0
  808. data/src/core/lib/channel/channel_args.cc +87 -9
  809. data/src/core/lib/channel/channel_args.h +13 -1
  810. data/src/core/lib/channel/channel_args_preconditioning.cc +48 -0
  811. data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
  812. data/src/core/lib/channel/channel_stack.cc +25 -15
  813. data/src/core/lib/channel/channel_stack.h +53 -16
  814. data/src/core/lib/channel/channel_stack_builder.cc +68 -262
  815. data/src/core/lib/channel/channel_stack_builder.h +95 -155
  816. data/src/core/lib/channel/channel_trace.cc +8 -10
  817. data/src/core/lib/channel/channel_trace.h +2 -1
  818. data/src/core/lib/channel/channelz.cc +65 -52
  819. data/src/core/lib/channel/channelz.h +32 -29
  820. data/src/core/lib/channel/channelz_registry.cc +8 -7
  821. data/src/core/lib/channel/channelz_registry.h +1 -1
  822. data/src/core/lib/channel/connected_channel.cc +14 -10
  823. data/src/core/lib/channel/connected_channel.h +1 -2
  824. data/src/core/lib/channel/context.h +14 -0
  825. data/src/core/lib/channel/handshaker.cc +10 -8
  826. data/src/core/lib/channel/handshaker.h +7 -8
  827. data/src/core/lib/channel/handshaker_factory.h +10 -2
  828. data/src/core/lib/channel/handshaker_registry.cc +15 -70
  829. data/src/core/lib/channel/handshaker_registry.h +29 -12
  830. data/src/core/lib/channel/promise_based_filter.cc +669 -0
  831. data/src/core/lib/channel/promise_based_filter.h +423 -0
  832. data/src/core/lib/channel/status_util.h +6 -2
  833. data/src/core/lib/compression/compression.cc +22 -114
  834. data/src/core/lib/compression/compression_internal.cc +145 -207
  835. data/src/core/lib/compression/compression_internal.h +64 -69
  836. data/src/core/lib/compression/message_compress.cc +13 -13
  837. data/src/core/lib/compression/message_compress.h +2 -2
  838. data/src/core/lib/config/core_configuration.cc +104 -0
  839. data/src/core/lib/config/core_configuration.h +196 -0
  840. data/src/core/lib/debug/stats.cc +1 -1
  841. data/src/core/lib/debug/stats.h +2 -1
  842. data/src/core/lib/debug/stats_data.cc +15 -14
  843. data/src/core/lib/debug/stats_data.h +1 -0
  844. data/src/core/lib/debug/trace.cc +1 -0
  845. data/src/core/lib/debug/trace.h +4 -3
  846. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +46 -0
  847. data/src/core/lib/event_engine/channel_args_endpoint_config.h +42 -0
  848. data/src/core/lib/event_engine/default_event_engine_factory.cc +27 -0
  849. data/src/core/lib/event_engine/event_engine.cc +52 -0
  850. data/src/core/lib/event_engine/event_engine_factory.h +36 -0
  851. data/src/core/lib/event_engine/memory_allocator.cc +66 -0
  852. data/src/core/lib/event_engine/resolved_address.cc +39 -0
  853. data/src/core/lib/event_engine/sockaddr.cc +40 -0
  854. data/src/core/lib/event_engine/sockaddr.h +44 -0
  855. data/src/core/lib/gpr/alloc.cc +4 -3
  856. data/src/core/lib/gpr/atm.cc +1 -1
  857. data/src/core/lib/gpr/cpu_posix.cc +1 -1
  858. data/src/core/lib/gpr/env_linux.cc +1 -2
  859. data/src/core/lib/gpr/env_posix.cc +2 -3
  860. data/src/core/lib/gpr/log.cc +3 -3
  861. data/src/core/lib/gpr/log_android.cc +3 -2
  862. data/src/core/lib/gpr/log_linux.cc +7 -4
  863. data/src/core/lib/gpr/log_posix.cc +6 -3
  864. data/src/core/lib/gpr/murmur_hash.cc +4 -2
  865. data/src/core/lib/gpr/string.cc +2 -2
  866. data/src/core/lib/gpr/string.h +2 -2
  867. data/src/core/lib/gpr/sync.cc +2 -2
  868. data/src/core/lib/gpr/sync_abseil.cc +7 -6
  869. data/src/core/lib/gpr/sync_posix.cc +4 -3
  870. data/src/core/lib/gpr/time.cc +5 -3
  871. data/src/core/lib/gpr/time_windows.cc +3 -2
  872. data/src/core/lib/gpr/tls.h +125 -40
  873. data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
  874. data/src/core/lib/gpr/useful.h +97 -32
  875. data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
  876. data/src/core/lib/gprpp/atomic_utils.h +47 -0
  877. data/src/core/lib/gprpp/bitset.h +195 -0
  878. data/src/core/lib/gprpp/capture.h +76 -0
  879. data/src/core/lib/gprpp/chunked_vector.h +253 -0
  880. data/src/core/lib/gprpp/construct_destruct.h +39 -0
  881. data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
  882. data/src/core/lib/gprpp/debug_location.h +2 -0
  883. data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
  884. data/src/core/lib/gprpp/fork.cc +14 -12
  885. data/src/core/lib/gprpp/fork.h +4 -4
  886. data/src/core/lib/gprpp/global_config.h +1 -2
  887. data/src/core/lib/gprpp/global_config_env.cc +14 -14
  888. data/src/core/lib/gprpp/global_config_env.h +2 -2
  889. data/src/core/lib/gprpp/global_config_generic.h +2 -2
  890. data/src/core/lib/gprpp/manual_constructor.h +11 -9
  891. data/src/core/lib/gprpp/memory.h +9 -3
  892. data/src/core/lib/gprpp/mpscq.cc +7 -7
  893. data/src/core/lib/gprpp/mpscq.h +6 -5
  894. data/src/core/lib/gprpp/orphanable.h +7 -7
  895. data/src/core/lib/gprpp/ref_counted.h +47 -33
  896. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
  897. data/src/core/lib/gprpp/status_helper.cc +419 -0
  898. data/src/core/lib/gprpp/status_helper.h +181 -0
  899. data/src/core/lib/gprpp/sync.h +5 -31
  900. data/src/core/lib/gprpp/table.h +434 -0
  901. data/src/core/lib/gprpp/thd_posix.cc +5 -5
  902. data/src/core/lib/gprpp/thd_windows.cc +4 -11
  903. data/src/core/lib/gprpp/time.cc +186 -0
  904. data/src/core/lib/gprpp/time.h +292 -0
  905. data/src/core/lib/gprpp/time_util.cc +2 -2
  906. data/src/core/lib/gprpp/time_util.h +2 -2
  907. data/src/core/lib/http/format_request.cc +28 -23
  908. data/src/core/lib/http/format_request.h +8 -6
  909. data/src/core/lib/http/httpcli.cc +299 -209
  910. data/src/core/lib/http/httpcli.h +183 -85
  911. data/src/core/lib/http/httpcli_security_connector.cc +71 -81
  912. data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
  913. data/src/core/lib/http/parser.cc +18 -18
  914. data/src/core/lib/http/parser.h +6 -5
  915. data/src/core/lib/iomgr/buffer_list.cc +16 -17
  916. data/src/core/lib/iomgr/buffer_list.h +22 -24
  917. data/src/core/lib/iomgr/call_combiner.cc +55 -23
  918. data/src/core/lib/iomgr/call_combiner.h +12 -14
  919. data/src/core/lib/iomgr/cfstream_handle.cc +4 -4
  920. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  921. data/src/core/lib/iomgr/closure.h +33 -12
  922. data/src/core/lib/iomgr/combiner.cc +46 -36
  923. data/src/core/lib/iomgr/combiner.h +3 -2
  924. data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
  925. data/src/core/lib/iomgr/endpoint.cc +1 -5
  926. data/src/core/lib/iomgr/endpoint.h +3 -6
  927. data/src/core/lib/iomgr/endpoint_cfstream.cc +25 -54
  928. data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
  929. data/src/core/lib/iomgr/endpoint_pair.h +1 -0
  930. data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +32 -0
  931. data/src/core/lib/iomgr/endpoint_pair_posix.cc +11 -9
  932. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
  933. data/src/core/lib/iomgr/error.cc +270 -99
  934. data/src/core/lib/iomgr/error.h +277 -113
  935. data/src/core/lib/iomgr/error_cfstream.cc +10 -4
  936. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  937. data/src/core/lib/iomgr/error_internal.h +6 -1
  938. data/src/core/lib/iomgr/ev_apple.cc +10 -9
  939. data/src/core/lib/iomgr/ev_apple.h +1 -1
  940. data/src/core/lib/iomgr/ev_epoll1_linux.cc +42 -48
  941. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -81
  942. data/src/core/lib/iomgr/ev_poll_posix.cc +73 -73
  943. data/src/core/lib/iomgr/ev_posix.cc +12 -12
  944. data/src/core/lib/iomgr/ev_posix.h +9 -9
  945. data/src/core/lib/iomgr/event_engine/closure.cc +77 -0
  946. data/src/core/lib/iomgr/event_engine/closure.h +42 -0
  947. data/src/core/lib/iomgr/event_engine/endpoint.cc +172 -0
  948. data/src/core/lib/iomgr/event_engine/endpoint.h +52 -0
  949. data/src/core/lib/iomgr/event_engine/iomgr.cc +85 -0
  950. data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
  951. data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
  952. data/src/core/lib/iomgr/event_engine/promise.h +51 -0
  953. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +47 -0
  954. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +37 -0
  955. data/src/core/lib/iomgr/event_engine/resolver.cc +133 -0
  956. data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
  957. data/src/core/lib/iomgr/event_engine/tcp.cc +296 -0
  958. data/src/core/lib/iomgr/event_engine/timer.cc +62 -0
  959. data/src/core/lib/iomgr/exec_ctx.cc +29 -102
  960. data/src/core/lib/iomgr/exec_ctx.h +32 -57
  961. data/src/core/lib/iomgr/executor/mpmcqueue.cc +15 -16
  962. data/src/core/lib/iomgr/executor/mpmcqueue.h +7 -11
  963. data/src/core/lib/iomgr/executor/threadpool.cc +4 -5
  964. data/src/core/lib/iomgr/executor/threadpool.h +4 -3
  965. data/src/core/lib/iomgr/executor.cc +37 -46
  966. data/src/core/lib/iomgr/executor.h +3 -3
  967. data/src/core/lib/iomgr/fork_posix.cc +3 -2
  968. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
  969. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
  970. data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
  971. data/src/core/lib/iomgr/iocp_windows.cc +10 -9
  972. data/src/core/lib/iomgr/iocp_windows.h +1 -1
  973. data/src/core/lib/iomgr/iomgr.cc +5 -3
  974. data/src/core/lib/iomgr/iomgr.h +3 -3
  975. data/src/core/lib/iomgr/iomgr_internal.cc +8 -12
  976. data/src/core/lib/iomgr/iomgr_internal.h +6 -5
  977. data/src/core/lib/iomgr/iomgr_posix.cc +5 -3
  978. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +44 -14
  979. data/src/core/lib/iomgr/iomgr_windows.cc +4 -5
  980. data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
  981. data/src/core/lib/iomgr/load_file.cc +6 -6
  982. data/src/core/lib/iomgr/load_file.h +2 -2
  983. data/src/core/lib/iomgr/lockfree_event.cc +23 -5
  984. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  985. data/src/core/lib/iomgr/polling_entity.cc +2 -2
  986. data/src/core/lib/iomgr/polling_entity.h +6 -0
  987. data/src/core/lib/iomgr/pollset.cc +5 -5
  988. data/src/core/lib/iomgr/pollset.h +9 -9
  989. data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
  990. data/src/core/lib/iomgr/pollset_windows.cc +6 -6
  991. data/src/core/lib/iomgr/port.h +8 -14
  992. data/src/core/lib/iomgr/python_util.h +3 -2
  993. data/src/core/lib/iomgr/resolve_address.cc +10 -24
  994. data/src/core/lib/iomgr/resolve_address.h +48 -43
  995. data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
  996. data/src/core/lib/iomgr/resolve_address_posix.cc +91 -79
  997. data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
  998. data/src/core/lib/iomgr/resolve_address_windows.cc +102 -85
  999. data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
  1000. data/src/core/lib/iomgr/resolved_address.h +39 -0
  1001. data/src/core/lib/iomgr/sockaddr.h +2 -1
  1002. data/src/core/lib/iomgr/{socket_utils_uv.cc → sockaddr_utils_posix.cc} +21 -8
  1003. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  1004. data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
  1005. data/src/core/lib/iomgr/socket_mutator.cc +17 -4
  1006. data/src/core/lib/iomgr/socket_mutator.h +27 -3
  1007. data/src/core/lib/iomgr/socket_utils_common_posix.cc +28 -44
  1008. data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
  1009. data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
  1010. data/src/core/lib/iomgr/socket_utils_posix.h +22 -22
  1011. data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
  1012. data/src/core/lib/iomgr/tcp_client.cc +1 -1
  1013. data/src/core/lib/iomgr/tcp_client.h +5 -2
  1014. data/src/core/lib/iomgr/tcp_client_cfstream.cc +12 -28
  1015. data/src/core/lib/iomgr/tcp_client_posix.cc +38 -45
  1016. data/src/core/lib/iomgr/tcp_client_posix.h +7 -6
  1017. data/src/core/lib/iomgr/tcp_client_windows.cc +15 -15
  1018. data/src/core/lib/iomgr/tcp_posix.cc +129 -159
  1019. data/src/core/lib/iomgr/tcp_posix.h +17 -12
  1020. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  1021. data/src/core/lib/iomgr/tcp_server.h +16 -14
  1022. data/src/core/lib/iomgr/tcp_server_posix.cc +44 -34
  1023. data/src/core/lib/iomgr/tcp_server_utils_posix.h +34 -29
  1024. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +23 -20
  1025. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +12 -12
  1026. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  1027. data/src/core/lib/iomgr/tcp_server_windows.cc +32 -35
  1028. data/src/core/lib/iomgr/tcp_windows.cc +35 -52
  1029. data/src/core/lib/iomgr/tcp_windows.h +3 -3
  1030. data/src/core/lib/iomgr/timer.cc +3 -2
  1031. data/src/core/lib/iomgr/timer.h +17 -8
  1032. data/src/core/lib/iomgr/timer_generic.cc +116 -127
  1033. data/src/core/lib/iomgr/timer_generic.h +1 -0
  1034. data/src/core/lib/iomgr/timer_heap.cc +2 -3
  1035. data/src/core/lib/iomgr/timer_manager.cc +16 -15
  1036. data/src/core/lib/iomgr/unix_sockets_posix.cc +25 -39
  1037. data/src/core/lib/iomgr/unix_sockets_posix.h +6 -10
  1038. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +12 -18
  1039. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  1040. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -0
  1041. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -7
  1042. data/src/core/lib/iomgr/wakeup_fd_posix.cc +4 -3
  1043. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  1044. data/src/core/lib/iomgr/work_serializer.cc +120 -44
  1045. data/src/core/lib/iomgr/work_serializer.h +33 -5
  1046. data/src/core/lib/json/json.h +1 -1
  1047. data/src/core/lib/json/json_reader.cc +97 -58
  1048. data/src/core/lib/json/json_util.cc +71 -3
  1049. data/src/core/lib/json/json_util.h +66 -116
  1050. data/src/core/lib/json/json_writer.cc +0 -3
  1051. data/src/core/lib/matchers/matchers.cc +47 -59
  1052. data/src/core/lib/matchers/matchers.h +30 -30
  1053. data/src/core/lib/profiling/basic_timers.cc +8 -6
  1054. data/src/core/lib/profiling/stap_timers.cc +2 -2
  1055. data/src/core/lib/promise/activity.cc +121 -0
  1056. data/src/core/lib/promise/activity.h +540 -0
  1057. data/src/core/lib/promise/arena_promise.h +188 -0
  1058. data/src/core/lib/promise/context.h +86 -0
  1059. data/src/core/lib/promise/detail/basic_seq.h +496 -0
  1060. data/src/core/lib/promise/detail/promise_factory.h +189 -0
  1061. data/src/core/lib/promise/detail/promise_like.h +85 -0
  1062. data/src/core/lib/promise/detail/status.h +49 -0
  1063. data/src/core/lib/promise/detail/switch.h +1455 -0
  1064. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
  1065. data/src/core/lib/promise/loop.h +134 -0
  1066. data/src/core/lib/promise/map.h +88 -0
  1067. data/src/core/lib/promise/poll.h +66 -0
  1068. data/src/core/lib/promise/promise.h +95 -0
  1069. data/src/core/lib/promise/race.h +84 -0
  1070. data/src/core/lib/promise/seq.h +89 -0
  1071. data/src/core/lib/promise/sleep.cc +74 -0
  1072. data/src/core/lib/promise/sleep.h +66 -0
  1073. data/src/core/lib/promise/try_seq.h +157 -0
  1074. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
  1075. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
  1076. data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +32 -29
  1077. data/src/core/lib/resolver/resolver_registry.cc +156 -0
  1078. data/src/core/lib/resolver/resolver_registry.h +113 -0
  1079. data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +2 -2
  1080. data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +5 -5
  1081. data/src/core/lib/resource_quota/api.cc +108 -0
  1082. data/src/core/lib/resource_quota/api.h +40 -0
  1083. data/src/core/lib/{gprpp → resource_quota}/arena.cc +18 -14
  1084. data/src/core/lib/{gprpp → resource_quota}/arena.h +37 -16
  1085. data/src/core/lib/resource_quota/memory_quota.cc +478 -0
  1086. data/src/core/lib/resource_quota/memory_quota.h +457 -0
  1087. data/src/core/lib/resource_quota/resource_quota.cc +33 -0
  1088. data/src/core/lib/resource_quota/resource_quota.h +58 -0
  1089. data/src/core/lib/resource_quota/thread_quota.cc +43 -0
  1090. data/src/core/lib/resource_quota/thread_quota.h +57 -0
  1091. data/src/core/lib/resource_quota/trace.cc +19 -0
  1092. data/src/core/lib/resource_quota/trace.h +24 -0
  1093. data/src/core/lib/security/authorization/authorization_engine.h +44 -0
  1094. data/src/core/lib/security/authorization/authorization_policy_provider.h +33 -0
  1095. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
  1096. data/src/core/lib/security/authorization/evaluate_args.cc +212 -0
  1097. data/src/core/lib/security/authorization/evaluate_args.h +92 -0
  1098. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
  1099. data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
  1100. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +109 -0
  1101. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +51 -0
  1102. data/src/core/lib/security/authorization/matchers.cc +227 -0
  1103. data/src/core/lib/security/authorization/matchers.h +211 -0
  1104. data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
  1105. data/src/core/lib/security/authorization/rbac_policy.h +171 -0
  1106. data/src/core/lib/security/context/security_context.cc +15 -10
  1107. data/src/core/lib/security/context/security_context.h +1 -1
  1108. data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -0
  1109. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
  1110. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
  1111. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
  1112. data/src/core/lib/security/credentials/call_creds_util.cc +87 -0
  1113. data/src/core/lib/security/credentials/call_creds_util.h +42 -0
  1114. data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
  1115. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
  1116. data/src/core/lib/security/credentials/composite/composite_credentials.cc +21 -84
  1117. data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -9
  1118. data/src/core/lib/security/credentials/credentials.cc +11 -10
  1119. data/src/core/lib/security/credentials/credentials.h +75 -59
  1120. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +78 -72
  1121. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +15 -13
  1122. data/src/core/lib/security/credentials/external/aws_request_signer.cc +5 -4
  1123. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  1124. data/src/core/lib/security/credentials/external/external_account_credentials.cc +127 -80
  1125. data/src/core/lib/security/credentials/external/external_account_credentials.h +15 -17
  1126. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -5
  1127. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  1128. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +43 -26
  1129. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -7
  1130. data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -18
  1131. data/src/core/lib/security/credentials/fake/fake_credentials.h +14 -16
  1132. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
  1133. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +85 -30
  1134. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +6 -0
  1135. data/src/core/lib/security/credentials/iam/iam_credentials.cc +21 -28
  1136. data/src/core/lib/security/credentials/iam/iam_credentials.h +11 -9
  1137. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +13 -7
  1138. data/src/core/lib/security/credentials/jwt/json_token.cc +7 -9
  1139. data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
  1140. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +52 -51
  1141. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +23 -15
  1142. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +66 -59
  1143. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -4
  1144. data/src/core/lib/security/credentials/local/local_credentials.h +6 -0
  1145. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +166 -193
  1146. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +54 -34
  1147. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +97 -157
  1148. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +54 -27
  1149. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -14
  1150. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -4
  1151. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +11 -9
  1152. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +19 -15
  1153. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +80 -25
  1154. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +20 -12
  1155. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
  1156. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
  1157. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +35 -85
  1158. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +38 -85
  1159. data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
  1160. data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
  1161. data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
  1162. data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
  1163. data/src/core/lib/security/credentials/xds/xds_credentials.cc +31 -36
  1164. data/src/core/lib/security/credentials/xds/xds_credentials.h +6 -1
  1165. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +22 -18
  1166. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
  1167. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +24 -25
  1168. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
  1169. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +8 -18
  1170. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +21 -16
  1171. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
  1172. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +5 -6
  1173. data/src/core/lib/security/security_connector/local/local_security_connector.cc +32 -24
  1174. data/src/core/lib/security/security_connector/security_connector.cc +8 -15
  1175. data/src/core/lib/security/security_connector/security_connector.h +24 -24
  1176. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +24 -22
  1177. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
  1178. data/src/core/lib/security/security_connector/ssl_utils.cc +67 -39
  1179. data/src/core/lib/security/security_connector/ssl_utils.h +17 -21
  1180. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +409 -272
  1181. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +118 -79
  1182. data/src/core/lib/security/transport/auth_filters.h +38 -4
  1183. data/src/core/lib/security/transport/client_auth_filter.cc +88 -353
  1184. data/src/core/lib/security/transport/secure_endpoint.cc +8 -18
  1185. data/src/core/lib/security/transport/secure_endpoint.h +1 -0
  1186. data/src/core/lib/security/transport/security_handshaker.cc +138 -90
  1187. data/src/core/lib/security/transport/security_handshaker.h +2 -1
  1188. data/src/core/lib/security/transport/server_auth_filter.cc +58 -48
  1189. data/src/core/lib/security/transport/tsi_error.cc +5 -6
  1190. data/src/core/lib/security/transport/tsi_error.h +2 -1
  1191. data/src/core/lib/security/util/json_util.cc +8 -10
  1192. data/src/core/lib/security/util/json_util.h +1 -1
  1193. data/src/core/lib/service_config/service_config.h +82 -0
  1194. data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_call_data.h +17 -31
  1195. data/src/core/{ext/filters/client_channel/service_config.cc → lib/service_config/service_config_impl.cc} +31 -27
  1196. data/src/core/{ext/filters/client_channel/service_config.h → lib/service_config/service_config_impl.h} +22 -23
  1197. data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_parser.cc +35 -31
  1198. data/src/core/lib/service_config/service_config_parser.h +106 -0
  1199. data/src/core/lib/slice/percent_encoding.cc +84 -97
  1200. data/src/core/lib/slice/percent_encoding.h +23 -28
  1201. data/src/core/lib/slice/slice.cc +81 -191
  1202. data/src/core/lib/slice/slice.h +384 -0
  1203. data/src/core/lib/{gpr/tls_pthread.cc → slice/slice_api.cc} +15 -6
  1204. data/src/core/lib/slice/slice_buffer.cc +10 -7
  1205. data/src/core/lib/slice/slice_internal.h +15 -276
  1206. data/src/core/lib/slice/slice_refcount.cc +35 -0
  1207. data/src/core/lib/slice/slice_refcount.h +46 -0
  1208. data/src/core/lib/slice/slice_refcount_base.h +61 -0
  1209. data/src/core/lib/slice/slice_split.cc +100 -0
  1210. data/src/core/lib/slice/slice_split.h +40 -0
  1211. data/src/core/lib/slice/slice_string_helpers.cc +0 -83
  1212. data/src/core/lib/slice/slice_string_helpers.h +0 -11
  1213. data/src/core/lib/surface/api_trace.cc +2 -1
  1214. data/src/core/lib/surface/api_trace.h +1 -0
  1215. data/src/core/lib/surface/builtins.cc +49 -0
  1216. data/src/core/lib/surface/builtins.h +26 -0
  1217. data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
  1218. data/src/core/lib/surface/call.cc +316 -521
  1219. data/src/core/lib/surface/call.h +14 -9
  1220. data/src/core/lib/surface/call_details.cc +2 -2
  1221. data/src/core/lib/surface/call_log_batch.cc +2 -2
  1222. data/src/core/lib/surface/channel.cc +75 -107
  1223. data/src/core/lib/surface/channel.h +17 -24
  1224. data/src/core/lib/surface/channel_init.cc +23 -76
  1225. data/src/core/lib/surface/channel_init.h +52 -44
  1226. data/src/core/lib/surface/channel_ping.cc +2 -3
  1227. data/src/core/lib/surface/channel_stack_type.cc +2 -1
  1228. data/src/core/lib/surface/completion_queue.cc +136 -145
  1229. data/src/core/lib/surface/completion_queue.h +3 -2
  1230. data/src/core/lib/surface/completion_queue_factory.cc +3 -3
  1231. data/src/core/lib/surface/completion_queue_factory.h +1 -0
  1232. data/src/core/lib/surface/event_string.cc +1 -0
  1233. data/src/core/lib/surface/init.cc +82 -60
  1234. data/src/core/lib/surface/init.h +10 -4
  1235. data/src/core/lib/surface/lame_client.cc +50 -35
  1236. data/src/core/lib/surface/lame_client.h +1 -1
  1237. data/src/core/lib/surface/metadata_array.cc +2 -2
  1238. data/src/core/lib/surface/server.cc +100 -128
  1239. data/src/core/lib/surface/server.h +58 -53
  1240. data/src/core/lib/surface/validate_metadata.cc +55 -24
  1241. data/src/core/lib/surface/validate_metadata.h +3 -2
  1242. data/src/core/lib/surface/version.cc +2 -2
  1243. data/src/core/lib/transport/bdp_estimator.cc +11 -12
  1244. data/src/core/lib/transport/bdp_estimator.h +2 -2
  1245. data/src/core/lib/transport/byte_stream.cc +9 -5
  1246. data/src/core/lib/transport/byte_stream.h +9 -8
  1247. data/src/core/lib/transport/connectivity_state.cc +9 -6
  1248. data/src/core/lib/transport/connectivity_state.h +2 -2
  1249. data/src/core/lib/transport/error_utils.cc +68 -29
  1250. data/src/core/lib/transport/error_utils.h +13 -6
  1251. data/src/core/lib/transport/metadata_batch.h +1348 -163
  1252. data/src/core/lib/transport/parsed_metadata.cc +37 -0
  1253. data/src/core/lib/transport/parsed_metadata.h +401 -0
  1254. data/src/core/lib/transport/pid_controller.cc +4 -4
  1255. data/src/core/lib/transport/status_conversion.cc +2 -2
  1256. data/src/core/lib/transport/status_conversion.h +1 -1
  1257. data/src/core/lib/transport/timeout_encoding.cc +204 -67
  1258. data/src/core/lib/transport/timeout_encoding.h +40 -10
  1259. data/src/core/lib/transport/transport.cc +15 -35
  1260. data/src/core/lib/transport/transport.h +94 -8
  1261. data/src/core/lib/transport/transport_impl.h +13 -0
  1262. data/src/core/lib/transport/transport_op_string.cc +13 -35
  1263. data/src/core/lib/uri/uri_parser.cc +237 -63
  1264. data/src/core/lib/uri/uri_parser.h +39 -23
  1265. data/src/core/plugin_registry/grpc_plugin_registry.cc +75 -102
  1266. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
  1267. data/src/core/tsi/alts/crypt/aes_gcm.cc +6 -3
  1268. data/src/core/tsi/alts/crypt/gsec.h +5 -0
  1269. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
  1270. data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
  1271. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +36 -31
  1272. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
  1273. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
  1274. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +38 -19
  1275. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  1276. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
  1277. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
  1278. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
  1279. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
  1280. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
  1281. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  1282. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
  1283. data/src/core/tsi/fake_transport_security.cc +15 -7
  1284. data/src/core/tsi/local_transport_security.cc +42 -87
  1285. data/src/core/tsi/local_transport_security.h +1 -4
  1286. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
  1287. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
  1288. data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -4
  1289. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +20 -53
  1290. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +6 -7
  1291. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
  1292. data/src/core/tsi/ssl_transport_security.cc +186 -38
  1293. data/src/core/tsi/ssl_transport_security.h +45 -11
  1294. data/src/core/tsi/transport_security.cc +15 -3
  1295. data/src/core/tsi/transport_security.h +16 -1
  1296. data/src/core/tsi/transport_security_grpc.h +1 -0
  1297. data/src/core/tsi/transport_security_interface.h +26 -0
  1298. data/src/ruby/bin/math_services_pb.rb +1 -1
  1299. data/src/ruby/ext/grpc/extconf.rb +22 -10
  1300. data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
  1301. data/src/ruby/ext/grpc/rb_call.c +5 -5
  1302. data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
  1303. data/src/ruby/ext/grpc/rb_channel.c +15 -10
  1304. data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
  1305. data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
  1306. data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
  1307. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
  1308. data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
  1309. data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
  1310. data/src/ruby/ext/grpc/rb_grpc.c +5 -4
  1311. data/src/ruby/ext/grpc/rb_grpc.h +1 -0
  1312. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -34
  1313. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +56 -53
  1314. data/src/ruby/ext/grpc/rb_server.c +13 -9
  1315. data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
  1316. data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
  1317. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
  1318. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
  1319. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
  1320. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
  1321. data/src/ruby/lib/grpc/version.rb +1 -1
  1322. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  1323. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -0
  1324. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  1325. data/src/ruby/spec/client_server_spec.rb +1 -1
  1326. data/third_party/abseil-cpp/absl/algorithm/container.h +104 -94
  1327. data/third_party/abseil-cpp/absl/base/attributes.h +88 -35
  1328. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  1329. data/third_party/abseil-cpp/absl/base/config.h +102 -44
  1330. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +25 -36
  1331. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  1332. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  1333. data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
  1334. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  1335. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  1336. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  1337. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  1338. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +17 -6
  1339. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  1340. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  1341. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  1342. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +13 -11
  1343. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  1344. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +70 -1
  1345. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -6
  1346. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +58 -52
  1347. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  1348. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  1349. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +17 -3
  1350. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
  1351. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  1352. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  1353. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  1354. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  1355. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  1356. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  1357. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -7
  1358. data/third_party/abseil-cpp/absl/container/inlined_vector.h +110 -100
  1359. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  1360. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
  1361. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -103
  1362. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +39 -79
  1363. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  1364. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +469 -429
  1365. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  1366. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
  1367. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +21 -2
  1368. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +374 -243
  1369. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +27 -13
  1370. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
  1371. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
  1372. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  1373. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +15 -17
  1374. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
  1375. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  1376. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
  1377. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
  1378. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +11 -7
  1379. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
  1380. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
  1381. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
  1382. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  1383. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +16 -2
  1384. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
  1385. data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
  1386. data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
  1387. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  1388. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  1389. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +27 -13
  1390. data/third_party/abseil-cpp/absl/hash/internal/hash.h +145 -45
  1391. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +123 -0
  1392. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +50 -0
  1393. data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
  1394. data/third_party/abseil-cpp/absl/meta/type_traits.h +47 -3
  1395. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  1396. data/third_party/abseil-cpp/absl/numeric/int128.cc +6 -13
  1397. data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
  1398. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
  1399. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
  1400. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  1401. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  1402. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
  1403. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
  1404. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
  1405. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
  1406. data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
  1407. data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
  1408. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
  1409. data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
  1410. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
  1411. data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
  1412. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
  1413. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
  1414. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
  1415. data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
  1416. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
  1417. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
  1418. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
  1419. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
  1420. data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
  1421. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
  1422. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
  1423. data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
  1424. data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
  1425. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
  1426. data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
  1427. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
  1428. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
  1429. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
  1430. data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
  1431. data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
  1432. data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
  1433. data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
  1434. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
  1435. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
  1436. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
  1437. data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
  1438. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
  1439. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
  1440. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
  1441. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
  1442. data/third_party/abseil-cpp/absl/random/random.h +189 -0
  1443. data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
  1444. data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
  1445. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
  1446. data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
  1447. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
  1448. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
  1449. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
  1450. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  1451. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  1452. data/third_party/abseil-cpp/absl/status/status.cc +27 -28
  1453. data/third_party/abseil-cpp/absl/status/status.h +98 -33
  1454. data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
  1455. data/third_party/abseil-cpp/absl/status/statusor.h +34 -24
  1456. data/third_party/abseil-cpp/absl/strings/charconv.cc +8 -8
  1457. data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
  1458. data/third_party/abseil-cpp/absl/strings/cord.cc +619 -570
  1459. data/third_party/abseil-cpp/absl/strings/cord.h +346 -101
  1460. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  1461. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +7 -7
  1462. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +89 -0
  1463. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +478 -31
  1464. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
  1465. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
  1466. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
  1467. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
  1468. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
  1469. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
  1470. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
  1471. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
  1472. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  1473. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +771 -0
  1474. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +607 -0
  1475. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +118 -0
  1476. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
  1477. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
  1478. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
  1479. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
  1480. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
  1481. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
  1482. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
  1483. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  1484. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
  1485. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
  1486. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  1487. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +22 -0
  1488. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +18 -5
  1489. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +20 -5
  1490. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  1491. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
  1492. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
  1493. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  1494. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  1495. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +76 -73
  1496. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +38 -16
  1497. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +49 -74
  1498. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  1499. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  1500. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  1501. data/third_party/abseil-cpp/absl/strings/numbers.cc +133 -5
  1502. data/third_party/abseil-cpp/absl/strings/numbers.h +44 -10
  1503. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  1504. data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
  1505. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  1506. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  1507. data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
  1508. data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
  1509. data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
  1510. data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
  1511. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
  1512. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
  1513. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  1514. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  1515. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  1516. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  1517. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +2 -66
  1518. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  1519. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  1520. data/third_party/abseil-cpp/absl/synchronization/mutex.h +82 -65
  1521. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
  1522. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  1523. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  1524. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  1525. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  1526. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
  1527. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  1528. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
  1529. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
  1530. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  1531. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
  1532. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +5 -5
  1533. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
  1534. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  1535. data/third_party/abseil-cpp/absl/time/time.h +93 -60
  1536. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
  1537. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
  1538. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  1539. data/third_party/abseil-cpp/absl/types/span.h +3 -3
  1540. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  1541. data/third_party/address_sorting/address_sorting_posix.c +1 -0
  1542. data/third_party/boringssl-with-bazel/err_data.c +696 -662
  1543. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +67 -54
  1544. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +22 -23
  1545. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
  1546. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
  1547. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
  1548. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +64 -44
  1549. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
  1550. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +269 -272
  1551. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
  1552. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +4 -4
  1553. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +19 -9
  1554. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -40
  1555. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
  1556. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +60 -49
  1557. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
  1558. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
  1559. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
  1560. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
  1561. data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_locl.h → internal.h} +91 -1
  1562. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +57 -281
  1563. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +292 -200
  1564. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +10 -10
  1565. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -14
  1566. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
  1567. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -1
  1568. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
  1569. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +24 -8
  1570. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
  1571. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
  1572. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
  1573. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
  1574. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
  1575. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
  1576. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
  1577. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
  1578. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
  1579. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +8 -0
  1580. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
  1581. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +49 -65
  1582. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  1583. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
  1584. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  1585. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
  1586. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
  1587. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  1588. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +6 -3
  1589. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
  1590. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  1591. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
  1592. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
  1593. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
  1594. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
  1595. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +26 -9
  1596. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
  1597. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +6 -3
  1598. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
  1599. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
  1600. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +23 -3
  1601. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +35 -2
  1602. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
  1603. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
  1604. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +9 -0
  1605. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  1606. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
  1607. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
  1608. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
  1609. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  1610. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +105 -95
  1611. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  1612. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +56 -72
  1613. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +56 -73
  1614. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  1615. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  1616. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  1617. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  1618. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
  1619. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  1620. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  1621. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +6 -13
  1622. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +2 -15
  1623. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +30 -13
  1624. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +50 -33
  1625. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +14 -9
  1626. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  1627. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +21 -16
  1628. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +93 -107
  1629. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +91 -113
  1630. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +50 -86
  1631. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +397 -311
  1632. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
  1633. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
  1634. data/third_party/boringssl-with-bazel/src/crypto/internal.h +125 -0
  1635. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
  1636. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
  1637. data/third_party/boringssl-with-bazel/src/crypto/mem.c +46 -9
  1638. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +10 -6
  1639. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
  1640. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
  1641. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
  1642. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
  1643. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
  1644. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
  1645. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +38 -4
  1646. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +156 -15
  1647. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
  1648. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
  1649. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +96 -49
  1650. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +1 -1
  1651. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
  1652. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -22
  1653. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
  1654. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
  1655. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
  1656. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
  1657. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
  1658. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
  1659. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
  1660. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  1661. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
  1662. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
  1663. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
  1664. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
  1665. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
  1666. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +351 -13
  1667. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
  1668. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +15 -4
  1669. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -5
  1670. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  1671. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
  1672. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +7 -2
  1673. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +24 -47
  1674. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
  1675. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
  1676. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
  1677. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
  1678. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
  1679. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
  1680. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
  1681. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +25 -22
  1682. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +25 -69
  1683. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +54 -74
  1684. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +32 -0
  1685. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
  1686. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
  1687. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -19
  1688. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -16
  1689. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
  1690. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +14 -11
  1691. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
  1692. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +23 -21
  1693. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  1694. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
  1695. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
  1696. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  1697. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +12 -11
  1698. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
  1699. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +239 -11
  1700. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +2 -1
  1701. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +2 -2
  1702. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
  1703. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +2 -1
  1704. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
  1705. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +5 -4
  1706. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +24 -5
  1707. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +18 -8
  1708. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -0
  1709. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
  1710. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +8 -11
  1711. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
  1712. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +5 -0
  1713. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +23 -4
  1714. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
  1715. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
  1716. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -13
  1717. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +2 -2
  1718. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
  1719. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +80 -38
  1720. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
  1721. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
  1722. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1517 -495
  1723. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +5 -12
  1724. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +57 -13
  1725. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
  1726. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
  1727. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
  1728. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +10 -0
  1729. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  1730. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +21 -11
  1731. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
  1732. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  1733. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
  1734. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +9 -2
  1735. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -41
  1736. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
  1737. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
  1738. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +41 -10
  1739. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  1740. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +55 -104
  1741. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  1742. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
  1743. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +350 -0
  1744. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
  1745. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
  1746. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +12 -3
  1747. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +26 -6
  1748. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -20
  1749. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +42 -18
  1750. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +15 -2
  1751. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
  1752. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  1753. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +128 -91
  1754. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +37 -15
  1755. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +386 -104
  1756. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +41 -48
  1757. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1160 -331
  1758. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -679
  1759. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +54 -17
  1760. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +16 -18
  1761. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
  1762. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1084 -0
  1763. data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +660 -747
  1764. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
  1765. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +90 -43
  1766. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +307 -201
  1767. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +173 -36
  1768. data/third_party/boringssl-with-bazel/src/ssl/internal.h +474 -156
  1769. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
  1770. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
  1771. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
  1772. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  1773. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
  1774. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +34 -31
  1775. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +56 -110
  1776. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
  1777. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +129 -96
  1778. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
  1779. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +10 -15
  1780. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +11 -3
  1781. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
  1782. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +79 -34
  1783. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +235 -178
  1784. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +146 -110
  1785. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +241 -132
  1786. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  1787. data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
  1788. data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
  1789. data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
  1790. data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
  1791. data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
  1792. data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
  1793. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
  1794. data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
  1795. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
  1796. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
  1797. data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
  1798. data/third_party/cares/cares/src/lib/ares_android.c +444 -0
  1799. data/third_party/cares/cares/src/lib/ares_android.h +27 -0
  1800. data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
  1801. data/third_party/cares/cares/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
  1802. data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
  1803. data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
  1804. data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
  1805. data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
  1806. data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
  1807. data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
  1808. data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
  1809. data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
  1810. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
  1811. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
  1812. data/third_party/cares/cares/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
  1813. data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
  1814. data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
  1815. data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
  1816. data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
  1817. data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
  1818. data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
  1819. data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
  1820. data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
  1821. data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
  1822. data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
  1823. data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
  1824. data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
  1825. data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
  1826. data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
  1827. data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
  1828. data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
  1829. data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
  1830. data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
  1831. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
  1832. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
  1833. data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
  1834. data/third_party/cares/cares/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
  1835. data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
  1836. data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
  1837. data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
  1838. data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
  1839. data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
  1840. data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
  1841. data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
  1842. data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
  1843. data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
  1844. data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
  1845. data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
  1846. data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
  1847. data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
  1848. data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
  1849. data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
  1850. data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
  1851. data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
  1852. data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
  1853. data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
  1854. data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -0
  1855. data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
  1856. data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
  1857. data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
  1858. data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
  1859. data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
  1860. data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
  1861. data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
  1862. data/third_party/cares/cares/src/lib/config-dos.h +115 -0
  1863. data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
  1864. data/third_party/cares/cares/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
  1865. data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
  1866. data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
  1867. data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
  1868. data/third_party/re2/re2/compile.cc +91 -109
  1869. data/third_party/re2/re2/dfa.cc +27 -39
  1870. data/third_party/re2/re2/filtered_re2.cc +18 -2
  1871. data/third_party/re2/re2/filtered_re2.h +10 -5
  1872. data/third_party/re2/re2/nfa.cc +1 -1
  1873. data/third_party/re2/re2/parse.cc +42 -23
  1874. data/third_party/re2/re2/perl_groups.cc +34 -34
  1875. data/third_party/re2/re2/prefilter.cc +3 -2
  1876. data/third_party/re2/re2/prog.cc +182 -4
  1877. data/third_party/re2/re2/prog.h +28 -9
  1878. data/third_party/re2/re2/re2.cc +87 -118
  1879. data/third_party/re2/re2/re2.h +156 -141
  1880. data/third_party/re2/re2/regexp.cc +12 -5
  1881. data/third_party/re2/re2/regexp.h +8 -2
  1882. data/third_party/re2/re2/set.cc +31 -9
  1883. data/third_party/re2/re2/set.h +9 -4
  1884. data/third_party/re2/re2/simplify.cc +11 -3
  1885. data/third_party/re2/re2/tostring.cc +1 -1
  1886. data/third_party/re2/re2/walker-inl.h +1 -1
  1887. data/third_party/re2/util/mutex.h +2 -2
  1888. data/third_party/re2/util/pcre.h +3 -3
  1889. data/third_party/upb/third_party/utf8_range/naive.c +92 -0
  1890. data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
  1891. data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
  1892. data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
  1893. data/third_party/upb/upb/decode.c +758 -351
  1894. data/third_party/upb/upb/decode.h +66 -12
  1895. data/third_party/upb/upb/decode_fast.c +596 -581
  1896. data/third_party/upb/upb/decode_fast.h +40 -13
  1897. data/third_party/upb/upb/decode_internal.h +211 -0
  1898. data/third_party/upb/upb/def.c +2089 -1069
  1899. data/third_party/upb/upb/def.h +341 -256
  1900. data/third_party/upb/upb/def.hpp +160 -161
  1901. data/third_party/upb/upb/encode.c +285 -165
  1902. data/third_party/upb/upb/encode.h +38 -13
  1903. data/third_party/upb/upb/msg.c +276 -102
  1904. data/third_party/upb/upb/msg.h +84 -582
  1905. data/third_party/upb/upb/msg_internal.h +818 -0
  1906. data/third_party/upb/upb/port_def.inc +85 -24
  1907. data/third_party/upb/upb/port_undef.inc +38 -1
  1908. data/third_party/upb/upb/reflection.c +312 -240
  1909. data/third_party/upb/upb/reflection.h +119 -67
  1910. data/third_party/upb/upb/reflection.hpp +37 -0
  1911. data/third_party/upb/upb/table.c +398 -193
  1912. data/third_party/upb/upb/table_internal.h +383 -0
  1913. data/third_party/upb/upb/text_encode.c +141 -90
  1914. data/third_party/upb/upb/text_encode.h +31 -5
  1915. data/third_party/upb/upb/upb.c +164 -66
  1916. data/third_party/upb/upb/upb.h +145 -139
  1917. data/third_party/upb/upb/upb.hpp +50 -23
  1918. data/third_party/upb/upb/upb_internal.h +68 -0
  1919. data/third_party/xxhash/xxhash.h +679 -542
  1920. metadata +597 -254
  1921. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
  1922. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -84
  1923. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
  1924. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
  1925. data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -197
  1926. data/src/core/ext/filters/client_channel/resolver_registry.h +0 -89
  1927. data/src/core/ext/filters/client_channel/service_config_parser.h +0 -92
  1928. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -210
  1929. data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
  1930. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
  1931. data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
  1932. data/src/core/ext/transport/chttp2/client/authority.h +0 -36
  1933. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -125
  1934. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -90
  1935. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -213
  1936. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -55
  1937. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -76
  1938. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -130
  1939. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -37
  1940. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -242
  1941. data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
  1942. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
  1943. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
  1944. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -27
  1945. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -56
  1946. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -27
  1947. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -56
  1948. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -27
  1949. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -56
  1950. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -27
  1951. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -56
  1952. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -27
  1953. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -56
  1954. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
  1955. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -124
  1956. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +0 -33
  1957. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -77
  1958. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -72
  1959. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
  1960. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -73
  1961. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
  1962. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -72
  1963. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
  1964. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -80
  1965. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
  1966. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -74
  1967. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
  1968. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
  1969. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
  1970. data/src/core/lib/avl/avl.cc +0 -306
  1971. data/src/core/lib/compression/algorithm_metadata.h +0 -61
  1972. data/src/core/lib/compression/compression_args.cc +0 -135
  1973. data/src/core/lib/compression/compression_args.h +0 -56
  1974. data/src/core/lib/compression/stream_compression.cc +0 -80
  1975. data/src/core/lib/compression/stream_compression.h +0 -116
  1976. data/src/core/lib/compression/stream_compression_gzip.cc +0 -230
  1977. data/src/core/lib/compression/stream_compression_gzip.h +0 -28
  1978. data/src/core/lib/compression/stream_compression_identity.cc +0 -90
  1979. data/src/core/lib/compression/stream_compression_identity.h +0 -29
  1980. data/src/core/lib/gpr/arena.h +0 -47
  1981. data/src/core/lib/gpr/tls_gcc.h +0 -52
  1982. data/src/core/lib/gpr/tls_msvc.h +0 -54
  1983. data/src/core/lib/gpr/tls_pthread.h +0 -56
  1984. data/src/core/lib/gpr/tls_stdcpp.h +0 -48
  1985. data/src/core/lib/gprpp/atomic.h +0 -104
  1986. data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
  1987. data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
  1988. data/src/core/lib/iomgr/iomgr_custom.h +0 -49
  1989. data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
  1990. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  1991. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  1992. data/src/core/lib/iomgr/pollset_custom.cc +0 -106
  1993. data/src/core/lib/iomgr/pollset_custom.h +0 -35
  1994. data/src/core/lib/iomgr/pollset_set_custom.cc +0 -48
  1995. data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
  1996. data/src/core/lib/iomgr/pollset_uv.cc +0 -93
  1997. data/src/core/lib/iomgr/pollset_uv.h +0 -32
  1998. data/src/core/lib/iomgr/resolve_address_custom.cc +0 -168
  1999. data/src/core/lib/iomgr/resolve_address_custom.h +0 -45
  2000. data/src/core/lib/iomgr/resource_quota.cc +0 -1016
  2001. data/src/core/lib/iomgr/resource_quota.h +0 -177
  2002. data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
  2003. data/src/core/lib/iomgr/tcp_client_custom.cc +0 -161
  2004. data/src/core/lib/iomgr/tcp_custom.cc +0 -391
  2005. data/src/core/lib/iomgr/tcp_custom.h +0 -84
  2006. data/src/core/lib/iomgr/tcp_server_custom.cc +0 -483
  2007. data/src/core/lib/iomgr/tcp_uv.cc +0 -419
  2008. data/src/core/lib/iomgr/timer_custom.cc +0 -95
  2009. data/src/core/lib/iomgr/timer_custom.h +0 -43
  2010. data/src/core/lib/iomgr/timer_uv.cc +0 -66
  2011. data/src/core/lib/iomgr/udp_server.cc +0 -747
  2012. data/src/core/lib/iomgr/udp_server.h +0 -103
  2013. data/src/core/lib/security/credentials/credentials_metadata.cc +0 -62
  2014. data/src/core/lib/slice/slice_intern.cc +0 -373
  2015. data/src/core/lib/slice/slice_utils.h +0 -200
  2016. data/src/core/lib/surface/init_secure.cc +0 -81
  2017. data/src/core/lib/transport/metadata.cc +0 -693
  2018. data/src/core/lib/transport/metadata.h +0 -446
  2019. data/src/core/lib/transport/metadata_batch.cc +0 -419
  2020. data/src/core/lib/transport/static_metadata.cc +0 -1249
  2021. data/src/core/lib/transport/static_metadata.h +0 -604
  2022. data/src/core/lib/transport/status_metadata.cc +0 -62
  2023. data/src/core/lib/transport/status_metadata.h +0 -48
  2024. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  2025. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  2026. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
  2027. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
  2028. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
  2029. data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
  2030. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
  2031. data/third_party/cares/cares/ares_getopt.c +0 -122
  2032. data/third_party/cares/cares/ares_getopt.h +0 -53
  2033. data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
  2034. data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
  2035. data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
  2036. data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
  2037. data/third_party/upb/upb/decode.int.h +0 -163
  2038. data/third_party/upb/upb/table.int.h +0 -475
  2039. data/third_party/upb/upb/upb.int.h +0 -29
@@ -362,10 +362,31 @@ OPENSSL_EXPORT int SSL_read(SSL *ssl, void *buf, int num);
362
362
  // SSL_peek behaves like |SSL_read| but does not consume any bytes returned.
363
363
  OPENSSL_EXPORT int SSL_peek(SSL *ssl, void *buf, int num);
364
364
 
365
- // SSL_pending returns the number of bytes available in |ssl|. It does not read
366
- // from the transport.
365
+ // SSL_pending returns the number of buffered, decrypted bytes available for
366
+ // read in |ssl|. It does not read from the transport.
367
+ //
368
+ // In DTLS, it is possible for this function to return zero while there is
369
+ // buffered, undecrypted data from the transport in |ssl|. For example,
370
+ // |SSL_read| may read a datagram with two records, decrypt the first, and leave
371
+ // the second buffered for a subsequent call to |SSL_read|. Callers that wish to
372
+ // detect this case can use |SSL_has_pending|.
367
373
  OPENSSL_EXPORT int SSL_pending(const SSL *ssl);
368
374
 
375
+ // SSL_has_pending returns one if |ssl| has buffered, decrypted bytes available
376
+ // for read, or if |ssl| has buffered data from the transport that has not yet
377
+ // been decrypted. If |ssl| has neither, this function returns zero.
378
+ //
379
+ // In TLS, BoringSSL does not implement read-ahead, so this function returns one
380
+ // if and only if |SSL_pending| would return a non-zero value. In DTLS, it is
381
+ // possible for this function to return one while |SSL_pending| returns zero.
382
+ // For example, |SSL_read| may read a datagram with two records, decrypt the
383
+ // first, and leave the second buffered for a subsequent call to |SSL_read|.
384
+ //
385
+ // As a result, if this function returns one, the next call to |SSL_read| may
386
+ // still fail, read from the transport, or both. The buffered, undecrypted data
387
+ // may be invalid or incomplete.
388
+ OPENSSL_EXPORT int SSL_has_pending(const SSL *ssl);
389
+
369
390
  // SSL_write writes up to |num| bytes from |buf| into |ssl|. It implicitly runs
370
391
  // any pending handshakes, including renegotiations when enabled. On success, it
371
392
  // returns the number of bytes written. Otherwise, it returns <= 0. The caller
@@ -508,12 +529,10 @@ OPENSSL_EXPORT int SSL_get_error(const SSL *ssl, int ret_code);
508
529
  // TODO(davidben): Remove this. It's used by accept BIOs which are bizarre.
509
530
  #define SSL_ERROR_WANT_ACCEPT 8
510
531
 
511
- // SSL_ERROR_WANT_CHANNEL_ID_LOOKUP indicates the operation failed looking up
512
- // the Channel ID key. The caller may retry the operation when |channel_id_cb|
513
- // is ready to return a key or one has been configured with
514
- // |SSL_set1_tls_channel_id|.
532
+ // SSL_ERROR_WANT_CHANNEL_ID_LOOKUP is never used.
515
533
  //
516
- // See also |SSL_CTX_set_channel_id_cb|.
534
+ // TODO(davidben): Remove this. Some callers reference it when stringifying
535
+ // errors. They should use |SSL_error_description| instead.
517
536
  #define SSL_ERROR_WANT_CHANNEL_ID_LOOKUP 9
518
537
 
519
538
  // SSL_ERROR_PENDING_SESSION indicates the operation failed because the session
@@ -567,6 +586,11 @@ OPENSSL_EXPORT int SSL_get_error(const SSL *ssl, int ret_code);
567
586
  // See also |ssl_renegotiate_explicit|.
568
587
  #define SSL_ERROR_WANT_RENEGOTIATE 19
569
588
 
589
+ // SSL_ERROR_HANDSHAKE_HINTS_READY indicates the handshake has progressed enough
590
+ // for |SSL_serialize_handshake_hints| to be called. See also
591
+ // |SSL_request_handshake_hints|.
592
+ #define SSL_ERROR_HANDSHAKE_HINTS_READY 20
593
+
570
594
  // SSL_error_description returns a string representation of |err|, where |err|
571
595
  // is one of the |SSL_ERROR_*| constants returned by |SSL_get_error|, or NULL
572
596
  // if the value is unrecognized.
@@ -1216,6 +1240,11 @@ enum ssl_private_key_result_t BORINGSSL_ENUM_INT {
1216
1240
  // key hooks. This is used to off-load signing operations to a custom,
1217
1241
  // potentially asynchronous, backend. Metadata about the key such as the type
1218
1242
  // and size are parsed out of the certificate.
1243
+ //
1244
+ // Callers that use this structure should additionally call
1245
+ // |SSL_set_signing_algorithm_prefs| or |SSL_CTX_set_signing_algorithm_prefs|
1246
+ // with the private key's capabilities. This ensures BoringSSL will select a
1247
+ // suitable signature algorithm for the private key.
1219
1248
  struct ssl_private_key_method_st {
1220
1249
  // sign signs the message |in| in using the specified signature algorithm. On
1221
1250
  // success, it returns |ssl_private_key_success| and writes at most |max_out|
@@ -1276,6 +1305,15 @@ OPENSSL_EXPORT void SSL_set_private_key_method(
1276
1305
  OPENSSL_EXPORT void SSL_CTX_set_private_key_method(
1277
1306
  SSL_CTX *ctx, const SSL_PRIVATE_KEY_METHOD *key_method);
1278
1307
 
1308
+ // SSL_can_release_private_key returns one if |ssl| will no longer call into the
1309
+ // private key and zero otherwise. If the function returns one, the caller can
1310
+ // release state associated with the private key.
1311
+ //
1312
+ // NOTE: This function assumes the caller does not use |SSL_clear| to reuse
1313
+ // |ssl| for a second connection. If |SSL_clear| is used, BoringSSL may still
1314
+ // use the private key on the second connection.
1315
+ OPENSSL_EXPORT int SSL_can_release_private_key(const SSL *ssl);
1316
+
1279
1317
 
1280
1318
  // Cipher suites.
1281
1319
  //
@@ -1632,6 +1670,11 @@ OPENSSL_EXPORT int SSL_export_keying_material(
1632
1670
  // abbreviated handshake. It is reference-counted and immutable. Once
1633
1671
  // established, an |SSL_SESSION| may be shared by multiple |SSL| objects on
1634
1672
  // different threads and must not be modified.
1673
+ //
1674
+ // Note the TLS notion of "session" is not suitable for application-level
1675
+ // session state. It is an optional caching mechanism for the handshake. Not all
1676
+ // connections within an application-level session will reuse TLS sessions. TLS
1677
+ // sessions may be dropped by the client or ignored by the server at any time.
1635
1678
 
1636
1679
  DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
1637
1680
 
@@ -1686,6 +1729,19 @@ OPENSSL_EXPORT int SSL_SESSION_set_protocol_version(SSL_SESSION *session,
1686
1729
 
1687
1730
  // SSL_SESSION_get_id returns a pointer to a buffer containing |session|'s
1688
1731
  // session ID and sets |*out_len| to its length.
1732
+ //
1733
+ // This function should only be used for implementing a TLS session cache. TLS
1734
+ // sessions are not suitable for application-level session state, and a session
1735
+ // ID is an implementation detail of the TLS resumption handshake mechanism. Not
1736
+ // all resumption flows use session IDs, and not all connections within an
1737
+ // application-level session will reuse TLS sessions.
1738
+ //
1739
+ // To determine if resumption occurred, use |SSL_session_reused| instead.
1740
+ // Comparing session IDs will not give the right result in all cases.
1741
+ //
1742
+ // As a workaround for some broken applications, BoringSSL sometimes synthesizes
1743
+ // arbitrary session IDs for non-ID-based sessions. This behavior may be
1744
+ // removed in the future.
1689
1745
  OPENSSL_EXPORT const uint8_t *SSL_SESSION_get_id(const SSL_SESSION *session,
1690
1746
  unsigned *out_len);
1691
1747
 
@@ -1779,8 +1835,10 @@ OPENSSL_EXPORT int SSL_SESSION_set1_id_context(SSL_SESSION *session,
1779
1835
  // used without leaking a correlator.
1780
1836
  OPENSSL_EXPORT int SSL_SESSION_should_be_single_use(const SSL_SESSION *session);
1781
1837
 
1782
- // SSL_SESSION_is_resumable returns one if |session| is resumable and zero
1783
- // otherwise.
1838
+ // SSL_SESSION_is_resumable returns one if |session| is complete and contains a
1839
+ // session ID or ticket. It returns zero otherwise. Note this function does not
1840
+ // ensure |session| will be resumed. It may be expired, dropped by the server,
1841
+ // or associated with incompatible parameters.
1784
1842
  OPENSSL_EXPORT int SSL_SESSION_is_resumable(const SSL_SESSION *session);
1785
1843
 
1786
1844
  // SSL_SESSION_has_ticket returns one if |session| has a ticket and zero
@@ -2723,8 +2781,9 @@ OPENSSL_EXPORT SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx);
2723
2781
 
2724
2782
  // SSL_CTX_set_alpn_protos sets the client ALPN protocol list on |ctx| to
2725
2783
  // |protos|. |protos| must be in wire-format (i.e. a series of non-empty, 8-bit
2726
- // length-prefixed strings). It returns zero on success and one on failure.
2727
- // Configuring this list enables ALPN on a client.
2784
+ // length-prefixed strings), or the empty string to disable ALPN. It returns
2785
+ // zero on success and one on failure. Configuring a non-empty string enables
2786
+ // ALPN on a client.
2728
2787
  //
2729
2788
  // WARNING: this function is dangerous because it breaks the usual return value
2730
2789
  // convention.
@@ -2733,8 +2792,9 @@ OPENSSL_EXPORT int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const uint8_t *protos,
2733
2792
 
2734
2793
  // SSL_set_alpn_protos sets the client ALPN protocol list on |ssl| to |protos|.
2735
2794
  // |protos| must be in wire-format (i.e. a series of non-empty, 8-bit
2736
- // length-prefixed strings). It returns zero on success and one on failure.
2737
- // Configuring this list enables ALPN on a client.
2795
+ // length-prefixed strings), or the empty string to disable ALPN. It returns
2796
+ // zero on success and one on failure. Configuring a non-empty string enables
2797
+ // ALPN on a client.
2738
2798
  //
2739
2799
  // WARNING: this function is dangerous because it breaks the usual return value
2740
2800
  // convention.
@@ -2956,15 +3016,16 @@ OPENSSL_EXPORT int SSL_select_next_proto(uint8_t **out, uint8_t *out_len,
2956
3016
 
2957
3017
  // Channel ID.
2958
3018
  //
2959
- // See draft-balfanz-tls-channelid-01.
3019
+ // See draft-balfanz-tls-channelid-01. This is an old, experimental mechanism
3020
+ // and should not be used in new code.
2960
3021
 
2961
3022
  // SSL_CTX_set_tls_channel_id_enabled configures whether connections associated
2962
- // with |ctx| should enable Channel ID.
3023
+ // with |ctx| should enable Channel ID as a server.
2963
3024
  OPENSSL_EXPORT void SSL_CTX_set_tls_channel_id_enabled(SSL_CTX *ctx,
2964
3025
  int enabled);
2965
3026
 
2966
3027
  // SSL_set_tls_channel_id_enabled configures whether |ssl| should enable Channel
2967
- // ID.
3028
+ // ID as a server.
2968
3029
  OPENSSL_EXPORT void SSL_set_tls_channel_id_enabled(SSL *ssl, int enabled);
2969
3030
 
2970
3031
  // SSL_CTX_set1_tls_channel_id configures a TLS client to send a TLS Channel ID
@@ -2978,55 +3039,15 @@ OPENSSL_EXPORT int SSL_CTX_set1_tls_channel_id(SSL_CTX *ctx,
2978
3039
  // success and zero on error.
2979
3040
  OPENSSL_EXPORT int SSL_set1_tls_channel_id(SSL *ssl, EVP_PKEY *private_key);
2980
3041
 
2981
- // SSL_get_tls_channel_id gets the client's TLS Channel ID from a server |SSL*|
3042
+ // SSL_get_tls_channel_id gets the client's TLS Channel ID from a server |SSL|
2982
3043
  // and copies up to the first |max_out| bytes into |out|. The Channel ID
2983
3044
  // consists of the client's P-256 public key as an (x,y) pair where each is a
2984
3045
  // 32-byte, big-endian field element. It returns 0 if the client didn't offer a
2985
- // Channel ID and the length of the complete Channel ID otherwise.
3046
+ // Channel ID and the length of the complete Channel ID otherwise. This function
3047
+ // always returns zero if |ssl| is a client.
2986
3048
  OPENSSL_EXPORT size_t SSL_get_tls_channel_id(SSL *ssl, uint8_t *out,
2987
3049
  size_t max_out);
2988
3050
 
2989
- // SSL_CTX_set_channel_id_cb sets a callback to be called when a TLS Channel ID
2990
- // is requested. The callback may set |*out_pkey| to a key, passing a reference
2991
- // to the caller. If none is returned, the handshake will pause and
2992
- // |SSL_get_error| will return |SSL_ERROR_WANT_CHANNEL_ID_LOOKUP|.
2993
- //
2994
- // See also |SSL_ERROR_WANT_CHANNEL_ID_LOOKUP|.
2995
- OPENSSL_EXPORT void SSL_CTX_set_channel_id_cb(
2996
- SSL_CTX *ctx, void (*channel_id_cb)(SSL *ssl, EVP_PKEY **out_pkey));
2997
-
2998
- // SSL_CTX_get_channel_id_cb returns the callback set by
2999
- // |SSL_CTX_set_channel_id_cb|.
3000
- OPENSSL_EXPORT void (*SSL_CTX_get_channel_id_cb(SSL_CTX *ctx))(
3001
- SSL *ssl, EVP_PKEY **out_pkey);
3002
-
3003
-
3004
- // Token Binding.
3005
- //
3006
- // See draft-ietf-tokbind-protocol-16.
3007
-
3008
- // SSL_set_token_binding_params sets |params| as the Token Binding Key
3009
- // parameters (section 3 of draft-ietf-tokbind-protocol-16) to negotiate on the
3010
- // connection. If this function is not called, or if |len| is 0, then this
3011
- // endpoint will not attempt to negotiate Token Binding. |params| are provided
3012
- // in preference order, with the more preferred parameters at the beginning of
3013
- // the list. This function returns 1 on success and 0 on failure.
3014
- OPENSSL_EXPORT int SSL_set_token_binding_params(SSL *ssl, const uint8_t *params,
3015
- size_t len);
3016
-
3017
- // SSL_is_token_binding_negotiated returns 1 if Token Binding was negotiated
3018
- // on this connection and 0 otherwise. On a server, it is possible for this
3019
- // function to return 1 when the client's view of the connection is that Token
3020
- // Binding was not negotiated. This occurs when the server indicates a version
3021
- // of Token Binding less than the client's minimum version.
3022
- OPENSSL_EXPORT int SSL_is_token_binding_negotiated(const SSL *ssl);
3023
-
3024
- // SSL_get_negotiated_token_binding_param returns the TokenBindingKeyParameters
3025
- // enum value that was negotiated. It is only valid to call this function if
3026
- // SSL_is_token_binding_negotiated returned 1, otherwise this function returns
3027
- // an undefined value.
3028
- OPENSSL_EXPORT uint8_t SSL_get_negotiated_token_binding_param(const SSL *ssl);
3029
-
3030
3051
 
3031
3052
  // DTLS-SRTP.
3032
3053
  //
@@ -3063,8 +3084,8 @@ OPENSSL_EXPORT int SSL_CTX_set_srtp_profiles(SSL_CTX *ctx,
3063
3084
  OPENSSL_EXPORT int SSL_set_srtp_profiles(SSL *ssl, const char *profiles);
3064
3085
 
3065
3086
  // SSL_get_srtp_profiles returns the SRTP profiles supported by |ssl|.
3066
- OPENSSL_EXPORT STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(
3067
- SSL *ssl);
3087
+ OPENSSL_EXPORT const STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(
3088
+ const SSL *ssl);
3068
3089
 
3069
3090
  // SSL_get_selected_srtp_profile returns the selected SRTP profile, or NULL if
3070
3091
  // SRTP was not negotiated.
@@ -3195,7 +3216,7 @@ OPENSSL_EXPORT int SSL_delegated_credential_used(const SSL *ssl);
3195
3216
  //
3196
3217
  // QUIC acts as an underlying transport for the TLS 1.3 handshake. The following
3197
3218
  // functions allow a QUIC implementation to serve as the underlying transport as
3198
- // described in draft-ietf-quic-tls.
3219
+ // described in RFC 9001.
3199
3220
  //
3200
3221
  // When configured for QUIC, |SSL_do_handshake| will drive the handshake as
3201
3222
  // before, but it will not use the configured |BIO|. It will call functions on
@@ -3215,8 +3236,7 @@ OPENSSL_EXPORT int SSL_delegated_credential_used(const SSL *ssl);
3215
3236
  // confirm the handshake. As a client, |SSL_ERROR_EARLY_DATA_REJECTED| and
3216
3237
  // |SSL_reset_early_data_reject| behave as usual.
3217
3238
  //
3218
- // See https://tools.ietf.org/html/draft-ietf-quic-tls-15#section-4.1 for more
3219
- // details.
3239
+ // See https://www.rfc-editor.org/rfc/rfc9001.html#section-4.1 for more details.
3220
3240
  //
3221
3241
  // To avoid DoS attacks, the QUIC implementation must limit the amount of data
3222
3242
  // being queued up. The implementation can call
@@ -3227,7 +3247,8 @@ OPENSSL_EXPORT int SSL_delegated_credential_used(const SSL *ssl);
3227
3247
  // |SSL_set_quic_transport_params|. |SSL_get_peer_quic_transport_params| may be
3228
3248
  // used to query the value received from the peer. BoringSSL handles this
3229
3249
  // extension as an opaque byte string. The caller is responsible for serializing
3230
- // and parsing them. See draft-ietf-quic-transport (section 7.3) for details.
3250
+ // and parsing them. See https://www.rfc-editor.org/rfc/rfc9000#section-7.4 for
3251
+ // details.
3231
3252
  //
3232
3253
  // QUIC additionally imposes restrictions on 0-RTT. In particular, the QUIC
3233
3254
  // transport layer requires that if a server accepts 0-RTT data, then the
@@ -3339,7 +3360,7 @@ struct ssl_quic_method_st {
3339
3360
  // that may be received at the given encryption level. This function should be
3340
3361
  // used to limit buffering in the QUIC implementation.
3341
3362
  //
3342
- // See https://tools.ietf.org/html/draft-ietf-quic-transport-16#section-4.4.
3363
+ // See https://www.rfc-editor.org/rfc/rfc9000#section-7.5
3343
3364
  OPENSSL_EXPORT size_t SSL_quic_max_handshake_flight_len(
3344
3365
  const SSL *ssl, enum ssl_encryption_level_t level);
3345
3366
 
@@ -3402,8 +3423,8 @@ OPENSSL_EXPORT void SSL_get_peer_quic_transport_params(
3402
3423
 
3403
3424
  // SSL_set_quic_use_legacy_codepoint configures whether to use the legacy QUIC
3404
3425
  // extension codepoint 0xffa5 as opposed to the official value 57. Call with
3405
- // |use_legacy| set to 1 to use 0xffa5 and call with 0 to use 57. The default
3406
- // value for this is currently 1 but it will change to 0 at a later date.
3426
+ // |use_legacy| set to 1 to use 0xffa5 and call with 0 to use 57. By default,
3427
+ // the standard code point is used.
3407
3428
  OPENSSL_EXPORT void SSL_set_quic_use_legacy_codepoint(SSL *ssl, int use_legacy);
3408
3429
 
3409
3430
  // SSL_set_quic_early_data_context configures a context string in QUIC servers
@@ -3552,8 +3573,7 @@ enum ssl_early_data_reason_t BORINGSSL_ENUM_INT {
3552
3573
  ssl_early_data_alpn_mismatch = 9,
3553
3574
  // The connection negotiated Channel ID, which is incompatible with 0-RTT.
3554
3575
  ssl_early_data_channel_id = 10,
3555
- // The connection negotiated token binding, which is incompatible with 0-RTT.
3556
- ssl_early_data_token_binding = 11,
3576
+ // Value 11 is reserved. (It has historically |ssl_early_data_token_binding|.)
3557
3577
  // The client and server ticket age were too far apart.
3558
3578
  ssl_early_data_ticket_age_skew = 12,
3559
3579
  // QUIC parameters differ between this connection and the original.
@@ -3575,20 +3595,183 @@ OPENSSL_EXPORT const char *SSL_early_data_reason_string(
3575
3595
  enum ssl_early_data_reason_t reason);
3576
3596
 
3577
3597
 
3578
- // Encrypted Client Hello.
3598
+ // Encrypted ClientHello.
3579
3599
  //
3580
3600
  // ECH is a mechanism for encrypting the entire ClientHello message in TLS 1.3.
3581
3601
  // This can prevent observers from seeing cleartext information about the
3582
3602
  // connection, such as the server_name extension.
3583
3603
  //
3604
+ // By default, BoringSSL will treat the server name, session ticket, and client
3605
+ // certificate as secret, but most other parameters, such as the ALPN protocol
3606
+ // list will be treated as public and sent in the cleartext ClientHello. Other
3607
+ // APIs may be added for applications with different secrecy requirements.
3608
+ //
3584
3609
  // ECH support in BoringSSL is still experimental and under development.
3585
3610
  //
3586
- // See https://tools.ietf.org/html/draft-ietf-tls-esni-09.
3611
+ // See https://tools.ietf.org/html/draft-ietf-tls-esni-13.
3587
3612
 
3588
- // SSL_set_enable_ech_grease configures whether the client may send ECH GREASE
3589
- // as part of this connection.
3613
+ // SSL_set_enable_ech_grease configures whether the client will send a GREASE
3614
+ // ECH extension when no supported ECHConfig is available.
3590
3615
  OPENSSL_EXPORT void SSL_set_enable_ech_grease(SSL *ssl, int enable);
3591
3616
 
3617
+ // SSL_set1_ech_config_list configures |ssl| to, as a client, offer ECH with the
3618
+ // specified configuration. |ech_config_list| should contain a serialized
3619
+ // ECHConfigList structure. It returns one on success and zero on error.
3620
+ //
3621
+ // This function returns an error if the input is malformed. If the input is
3622
+ // valid but none of the ECHConfigs implement supported parameters, it will
3623
+ // return success and proceed without ECH.
3624
+ //
3625
+ // If a supported ECHConfig is found, |ssl| will encrypt the true ClientHello
3626
+ // parameters. If the server cannot decrypt it, e.g. due to a key mismatch, ECH
3627
+ // has a recovery flow. |ssl| will handshake using the cleartext parameters,
3628
+ // including a public name in the ECHConfig. If using
3629
+ // |SSL_CTX_set_custom_verify|, callers should use |SSL_get0_ech_name_override|
3630
+ // to verify the certificate with the public name. If using the built-in
3631
+ // verifier, the |X509_STORE_CTX| will be configured automatically.
3632
+ //
3633
+ // If no other errors are found in this handshake, it will fail with
3634
+ // |SSL_R_ECH_REJECTED|. Since it didn't use the true parameters, the connection
3635
+ // cannot be used for application data. Instead, callers should handle this
3636
+ // error by calling |SSL_get0_ech_retry_configs| and retrying the connection
3637
+ // with updated ECH parameters. If the retry also fails with
3638
+ // |SSL_R_ECH_REJECTED|, the caller should report a connection failure.
3639
+ OPENSSL_EXPORT int SSL_set1_ech_config_list(SSL *ssl,
3640
+ const uint8_t *ech_config_list,
3641
+ size_t ech_config_list_len);
3642
+
3643
+ // SSL_get0_ech_name_override, if |ssl| is a client and the server rejected ECH,
3644
+ // sets |*out_name| and |*out_name_len| to point to a buffer containing the ECH
3645
+ // public name. Otherwise, the buffer will be empty.
3646
+ //
3647
+ // When offering ECH as a client, this function should be called during the
3648
+ // certificate verification callback (see |SSL_CTX_set_custom_verify|). If
3649
+ // |*out_name_len| is non-zero, the caller should verify the certificate against
3650
+ // the result, interpreted as a DNS name, rather than the true server name. In
3651
+ // this case, the handshake will never succeed and is only used to authenticate
3652
+ // retry configs. See also |SSL_get0_ech_retry_configs|.
3653
+ OPENSSL_EXPORT void SSL_get0_ech_name_override(const SSL *ssl,
3654
+ const char **out_name,
3655
+ size_t *out_name_len);
3656
+
3657
+ // SSL_get0_ech_retry_configs sets |*out_retry_configs| and
3658
+ // |*out_retry_configs_len| to a buffer containing a serialized ECHConfigList.
3659
+ // If the server did not provide an ECHConfigList, |*out_retry_configs_len| will
3660
+ // be zero.
3661
+ //
3662
+ // When handling an |SSL_R_ECH_REJECTED| error code as a client, callers should
3663
+ // use this function to recover from potential key mismatches. If the result is
3664
+ // non-empty, the caller should retry the connection, passing this buffer to
3665
+ // |SSL_set1_ech_config_list|. If the result is empty, the server has rolled
3666
+ // back ECH support, and the caller should retry without ECH.
3667
+ //
3668
+ // This function must only be called in response to an |SSL_R_ECH_REJECTED|
3669
+ // error code. Calling this function on |ssl|s that have not authenticated the
3670
+ // rejection handshake will assert in debug builds and otherwise return an
3671
+ // unparsable list.
3672
+ OPENSSL_EXPORT void SSL_get0_ech_retry_configs(
3673
+ const SSL *ssl, const uint8_t **out_retry_configs,
3674
+ size_t *out_retry_configs_len);
3675
+
3676
+ // SSL_marshal_ech_config constructs a new serialized ECHConfig. On success, it
3677
+ // sets |*out| to a newly-allocated buffer containing the result and |*out_len|
3678
+ // to the size of the buffer. The caller must call |OPENSSL_free| on |*out| to
3679
+ // release the memory. On failure, it returns zero.
3680
+ //
3681
+ // The |config_id| field is a single byte identifer for the ECHConfig. Reusing
3682
+ // config IDs is allowed, but if multiple ECHConfigs with the same config ID are
3683
+ // active at a time, server load may increase. See
3684
+ // |SSL_ECH_KEYS_has_duplicate_config_id|.
3685
+ //
3686
+ // The public key and KEM algorithm are taken from |key|. |public_name| is the
3687
+ // DNS name used to authenticate the recovery flow. |max_name_len| should be the
3688
+ // length of the longest name in the ECHConfig's anonymity set and influences
3689
+ // client padding decisions.
3690
+ OPENSSL_EXPORT int SSL_marshal_ech_config(uint8_t **out, size_t *out_len,
3691
+ uint8_t config_id,
3692
+ const EVP_HPKE_KEY *key,
3693
+ const char *public_name,
3694
+ size_t max_name_len);
3695
+
3696
+ // SSL_ECH_KEYS_new returns a newly-allocated |SSL_ECH_KEYS| or NULL on error.
3697
+ OPENSSL_EXPORT SSL_ECH_KEYS *SSL_ECH_KEYS_new(void);
3698
+
3699
+ // SSL_ECH_KEYS_up_ref increments the reference count of |keys|.
3700
+ OPENSSL_EXPORT void SSL_ECH_KEYS_up_ref(SSL_ECH_KEYS *keys);
3701
+
3702
+ // SSL_ECH_KEYS_free releases memory associated with |keys|.
3703
+ OPENSSL_EXPORT void SSL_ECH_KEYS_free(SSL_ECH_KEYS *keys);
3704
+
3705
+ // SSL_ECH_KEYS_add decodes |ech_config| as an ECHConfig and appends it with
3706
+ // |key| to |keys|. If |is_retry_config| is non-zero, this config will be
3707
+ // returned to the client on configuration mismatch. It returns one on success
3708
+ // and zero on error.
3709
+ //
3710
+ // This function should be called successively to register each ECHConfig in
3711
+ // decreasing order of preference. This configuration must be completed before
3712
+ // setting |keys| on an |SSL_CTX| with |SSL_CTX_set1_ech_keys|. After that
3713
+ // point, |keys| is immutable; no more ECHConfig values may be added.
3714
+ //
3715
+ // See also |SSL_CTX_set1_ech_keys|.
3716
+ OPENSSL_EXPORT int SSL_ECH_KEYS_add(SSL_ECH_KEYS *keys, int is_retry_config,
3717
+ const uint8_t *ech_config,
3718
+ size_t ech_config_len,
3719
+ const EVP_HPKE_KEY *key);
3720
+
3721
+ // SSL_ECH_KEYS_has_duplicate_config_id returns one if |keys| has duplicate
3722
+ // config IDs or zero otherwise. Duplicate config IDs still work, but may
3723
+ // increase server load due to trial decryption.
3724
+ OPENSSL_EXPORT int SSL_ECH_KEYS_has_duplicate_config_id(
3725
+ const SSL_ECH_KEYS *keys);
3726
+
3727
+ // SSL_ECH_KEYS_marshal_retry_configs serializes the retry configs in |keys| as
3728
+ // an ECHConfigList. On success, it sets |*out| to a newly-allocated buffer
3729
+ // containing the result and |*out_len| to the size of the buffer. The caller
3730
+ // must call |OPENSSL_free| on |*out| to release the memory. On failure, it
3731
+ // returns zero.
3732
+ //
3733
+ // This output may be advertised to clients in DNS.
3734
+ OPENSSL_EXPORT int SSL_ECH_KEYS_marshal_retry_configs(const SSL_ECH_KEYS *keys,
3735
+ uint8_t **out,
3736
+ size_t *out_len);
3737
+
3738
+ // SSL_CTX_set1_ech_keys configures |ctx| to use |keys| to decrypt encrypted
3739
+ // ClientHellos. It returns one on success, and zero on failure. If |keys| does
3740
+ // not contain any retry configs, this function will fail. Retry configs are
3741
+ // marked as such when they are added to |keys| with |SSL_ECH_KEYS_add|.
3742
+ //
3743
+ // Once |keys| has been passed to this function, it is immutable. Unlike most
3744
+ // |SSL_CTX| configuration functions, this function may be called even if |ctx|
3745
+ // already has associated connections on multiple threads. This may be used to
3746
+ // rotate keys in a long-lived server process.
3747
+ //
3748
+ // The configured ECHConfig values should also be advertised out-of-band via DNS
3749
+ // (see draft-ietf-dnsop-svcb-https). Before advertising an ECHConfig in DNS,
3750
+ // deployments should ensure all instances of the service are configured with
3751
+ // the ECHConfig and corresponding private key.
3752
+ //
3753
+ // Only the most recent fully-deployed ECHConfigs should be advertised in DNS.
3754
+ // |keys| may contain a newer set if those ECHConfigs are mid-deployment. It
3755
+ // should also contain older sets, until the DNS change has rolled out and the
3756
+ // old records have expired from caches.
3757
+ //
3758
+ // If there is a mismatch, |SSL| objects associated with |ctx| will complete the
3759
+ // handshake using the cleartext ClientHello and send updated ECHConfig values
3760
+ // to the client. The client will then retry to recover, but with a latency
3761
+ // penalty. This recovery flow depends on the public name in the ECHConfig.
3762
+ // Before advertising an ECHConfig in DNS, deployments must ensure all instances
3763
+ // of the service can present a valid certificate for the public name.
3764
+ //
3765
+ // BoringSSL negotiates ECH before certificate selection callbacks are called,
3766
+ // including |SSL_CTX_set_select_certificate_cb|. If ECH is negotiated, the
3767
+ // reported |SSL_CLIENT_HELLO| structure and |SSL_get_servername| function will
3768
+ // transparently reflect the inner ClientHello. Callers should select parameters
3769
+ // based on these values to correctly handle ECH as well as the recovery flow.
3770
+ OPENSSL_EXPORT int SSL_CTX_set1_ech_keys(SSL_CTX *ctx, SSL_ECH_KEYS *keys);
3771
+
3772
+ // SSL_ech_accepted returns one if |ssl| negotiated ECH and zero otherwise.
3773
+ OPENSSL_EXPORT int SSL_ech_accepted(const SSL *ssl);
3774
+
3592
3775
 
3593
3776
  // Alerts.
3594
3777
  //
@@ -3643,6 +3826,7 @@ OPENSSL_EXPORT void SSL_set_enable_ech_grease(SSL *ssl, int enable);
3643
3826
  #define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY
3644
3827
  #define SSL_AD_CERTIFICATE_REQUIRED TLS1_AD_CERTIFICATE_REQUIRED
3645
3828
  #define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL
3829
+ #define SSL_AD_ECH_REQUIRED TLS1_AD_ECH_REQUIRED
3646
3830
 
3647
3831
  // SSL_alert_type_string_long returns a string description of |value| as an
3648
3832
  // alert type (warning or fatal).
@@ -3724,6 +3908,105 @@ OPENSSL_EXPORT uint64_t SSL_get_read_sequence(const SSL *ssl);
3724
3908
  // two most significant bytes.
3725
3909
  OPENSSL_EXPORT uint64_t SSL_get_write_sequence(const SSL *ssl);
3726
3910
 
3911
+ // SSL_CTX_set_record_protocol_version returns whether |version| is zero.
3912
+ OPENSSL_EXPORT int SSL_CTX_set_record_protocol_version(SSL_CTX *ctx,
3913
+ int version);
3914
+
3915
+
3916
+ // Handshake hints.
3917
+ //
3918
+ // *** EXPERIMENTAL — DO NOT USE WITHOUT CHECKING ***
3919
+ //
3920
+ // Some server deployments make asynchronous RPC calls in both ClientHello
3921
+ // dispatch and private key operations. In TLS handshakes where the private key
3922
+ // operation occurs in the first round-trip, this results in two consecutive RPC
3923
+ // round-trips. Handshake hints allow the RPC service to predicte a signature.
3924
+ // If correctly predicted, this can skip the second RPC call.
3925
+ //
3926
+ // First, the server installs a certificate selection callback (see
3927
+ // |SSL_CTX_set_select_certificate_cb|). When that is called, it performs the
3928
+ // RPC as before, but includes the ClientHello and a capabilities string from
3929
+ // |SSL_serialize_capabilities|.
3930
+ //
3931
+ // Next, the RPC service creates its own |SSL| object, applies the results of
3932
+ // certificate selection, calls |SSL_request_handshake_hints|, and runs the
3933
+ // handshake. If this successfully computes handshake hints (see
3934
+ // |SSL_serialize_handshake_hints|), the RPC server should send the hints
3935
+ // alongside any certificate selection results.
3936
+ //
3937
+ // Finally, the server calls |SSL_set_handshake_hints| and applies any
3938
+ // configuration from the RPC server. It then completes the handshake as before.
3939
+ // If the hints apply, BoringSSL will use the predicted signature and skip the
3940
+ // private key callbacks. Otherwise, BoringSSL will call private key callbacks
3941
+ // to generate a signature as before.
3942
+ //
3943
+ // Callers should synchronize configuration across the two services.
3944
+ // Configuration mismatches and some cases of version skew are not fatal, but
3945
+ // may result in the hints not applying. Additionally, some handshake flows use
3946
+ // the private key in later round-trips, such as TLS 1.3 HelloRetryRequest. In
3947
+ // those cases, BoringSSL will not predict a signature as there is no benefit.
3948
+ // Callers must allow for handshakes to complete without a predicted signature.
3949
+ //
3950
+ // For now, only TLS 1.3 is hinted. TLS 1.2 will work, but the hints will be
3951
+ // empty.
3952
+
3953
+ // SSL_serialize_capabilities writes an opaque byte string to |out| describing
3954
+ // some of |ssl|'s capabilities. It returns one on success and zero on error.
3955
+ //
3956
+ // This string is used by BoringSSL internally to reduce the impact of version
3957
+ // skew.
3958
+ OPENSSL_EXPORT int SSL_serialize_capabilities(const SSL *ssl, CBB *out);
3959
+
3960
+ // SSL_request_handshake_hints configures |ssl| to generate a handshake hint for
3961
+ // |client_hello|. It returns one on success and zero on error. |client_hello|
3962
+ // should contain a serialized ClientHello structure, from the |client_hello|
3963
+ // and |client_hello_len| fields of the |SSL_CLIENT_HELLO| structure.
3964
+ // |capabilities| should contain the output of |SSL_serialize_capabilities|.
3965
+ //
3966
+ // When configured, |ssl| will perform no I/O (so there is no need to configure
3967
+ // |BIO|s). For QUIC, the caller should still configure an |SSL_QUIC_METHOD|,
3968
+ // but the callbacks themselves will never be called and may be left NULL or
3969
+ // report failure. |SSL_provide_quic_data| also should not be called.
3970
+ //
3971
+ // If hint generation is successful, |SSL_do_handshake| will stop the handshake
3972
+ // early with |SSL_get_error| returning |SSL_ERROR_HANDSHAKE_HINTS_READY|. At
3973
+ // this point, the caller should run |SSL_serialize_handshake_hints| to extract
3974
+ // the resulting hints.
3975
+ //
3976
+ // Hint generation may fail if, e.g., |ssl| was unable to process the
3977
+ // ClientHello. Callers should then complete the certificate selection RPC and
3978
+ // continue the original handshake with no hint. It will likely fail, but this
3979
+ // reports the correct alert to the client and is more robust in case of
3980
+ // mismatch.
3981
+ OPENSSL_EXPORT int SSL_request_handshake_hints(SSL *ssl,
3982
+ const uint8_t *client_hello,
3983
+ size_t client_hello_len,
3984
+ const uint8_t *capabilities,
3985
+ size_t capabilities_len);
3986
+
3987
+ // SSL_serialize_handshake_hints writes an opaque byte string to |out|
3988
+ // containing the handshake hints computed by |out|. It returns one on success
3989
+ // and zero on error. This function should only be called if
3990
+ // |SSL_request_handshake_hints| was configured and the handshake terminated
3991
+ // with |SSL_ERROR_HANDSHAKE_HINTS_READY|.
3992
+ //
3993
+ // This string may be passed to |SSL_set_handshake_hints| on another |SSL| to
3994
+ // avoid an extra signature call.
3995
+ OPENSSL_EXPORT int SSL_serialize_handshake_hints(const SSL *ssl, CBB *out);
3996
+
3997
+ // SSL_set_handshake_hints configures |ssl| to use |hints| as handshake hints.
3998
+ // It returns one on success and zero on error. The handshake will then continue
3999
+ // as before, but apply predicted values from |hints| where applicable.
4000
+ //
4001
+ // Hints may contain connection and session secrets, so they must not leak and
4002
+ // must come from a source trusted to terminate the connection. However, they
4003
+ // will not change |ssl|'s configuration. The caller is responsible for
4004
+ // serializing and applying options from the RPC server as needed. This ensures
4005
+ // |ssl|'s behavior is self-consistent and consistent with the caller's local
4006
+ // decisions.
4007
+ OPENSSL_EXPORT int SSL_set_handshake_hints(SSL *ssl, const uint8_t *hints,
4008
+ size_t hints_len);
4009
+
3727
4010
 
3728
4011
  // Obscure functions.
3729
4012
 
@@ -3900,7 +4183,7 @@ OPENSSL_EXPORT int SSL_set_max_send_fragment(SSL *ssl,
3900
4183
  // callbacks that are called very early on during the server handshake. At this
3901
4184
  // point, much of the SSL* hasn't been filled out and only the ClientHello can
3902
4185
  // be depended on.
3903
- typedef struct ssl_early_callback_ctx {
4186
+ struct ssl_early_callback_ctx {
3904
4187
  SSL *ssl;
3905
4188
  const uint8_t *client_hello;
3906
4189
  size_t client_hello_len;
@@ -3915,7 +4198,7 @@ typedef struct ssl_early_callback_ctx {
3915
4198
  size_t compression_methods_len;
3916
4199
  const uint8_t *extensions;
3917
4200
  size_t extensions_len;
3918
- } SSL_CLIENT_HELLO;
4201
+ } /* SSL_CLIENT_HELLO */;
3919
4202
 
3920
4203
  // ssl_select_cert_result_t enumerates the possible results from selecting a
3921
4204
  // certificate with |select_certificate_cb|.
@@ -4109,9 +4392,17 @@ OPENSSL_EXPORT void SSL_CTX_set_retain_only_sha256_of_client_certs(SSL_CTX *ctx,
4109
4392
  int enable);
4110
4393
 
4111
4394
  // SSL_CTX_set_grease_enabled configures whether sockets on |ctx| should enable
4112
- // GREASE. See draft-davidben-tls-grease-01.
4395
+ // GREASE. See RFC 8701.
4113
4396
  OPENSSL_EXPORT void SSL_CTX_set_grease_enabled(SSL_CTX *ctx, int enabled);
4114
4397
 
4398
+ // SSL_CTX_set_permute_extensions configures whether sockets on |ctx| should
4399
+ // permute extensions. For now, this is only implemented for the ClientHello.
4400
+ OPENSSL_EXPORT void SSL_CTX_set_permute_extensions(SSL_CTX *ctx, int enabled);
4401
+
4402
+ // SSL_set_permute_extensions configures whether sockets on |ssl| should
4403
+ // permute extensions. For now, this is only implemented for the ClientHello.
4404
+ OPENSSL_EXPORT void SSL_set_permute_extensions(SSL *ssl, int enabled);
4405
+
4115
4406
  // SSL_max_seal_overhead returns the maximum overhead, in bytes, of sealing a
4116
4407
  // record with |ssl|.
4117
4408
  OPENSSL_EXPORT size_t SSL_max_seal_overhead(const SSL *ssl);
@@ -4309,20 +4600,13 @@ OPENSSL_EXPORT int SSL_get_shared_sigalgs(SSL *ssl, int idx, int *psign,
4309
4600
  // SSL_MODE_HANDSHAKE_CUTTHROUGH is the same as SSL_MODE_ENABLE_FALSE_START.
4310
4601
  #define SSL_MODE_HANDSHAKE_CUTTHROUGH SSL_MODE_ENABLE_FALSE_START
4311
4602
 
4312
- // i2d_SSL_SESSION serializes |in| to the bytes pointed to by |*pp|. On success,
4313
- // it returns the number of bytes written and advances |*pp| by that many bytes.
4314
- // On failure, it returns -1. If |pp| is NULL, no bytes are written and only the
4315
- // length is returned.
4603
+ // i2d_SSL_SESSION serializes |in|, as described in |i2d_SAMPLE|.
4316
4604
  //
4317
4605
  // Use |SSL_SESSION_to_bytes| instead.
4318
4606
  OPENSSL_EXPORT int i2d_SSL_SESSION(SSL_SESSION *in, uint8_t **pp);
4319
4607
 
4320
4608
  // d2i_SSL_SESSION parses a serialized session from the |length| bytes pointed
4321
- // to by |*pp|. It returns the new |SSL_SESSION| and advances |*pp| by the
4322
- // number of bytes consumed on success and NULL on failure. The caller takes
4323
- // ownership of the new session and must call |SSL_SESSION_free| when done.
4324
- //
4325
- // If |a| is non-NULL, |*a| is released and set the new |SSL_SESSION|.
4609
+ // to by |*pp|, as described in |d2i_SAMPLE|.
4326
4610
  //
4327
4611
  // Use |SSL_SESSION_from_bytes| instead.
4328
4612
  OPENSSL_EXPORT SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const uint8_t **pp,
@@ -4646,12 +4930,6 @@ OPENSSL_EXPORT int SSL_set_tmp_ecdh(SSL *ssl, const EC_KEY *ec_key);
4646
4930
  OPENSSL_EXPORT int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *out,
4647
4931
  const char *dir);
4648
4932
 
4649
- // SSL_set_verify_result calls |abort| unless |result| is |X509_V_OK|.
4650
- //
4651
- // TODO(davidben): Remove this function once it has been removed from
4652
- // netty-tcnative.
4653
- OPENSSL_EXPORT void SSL_set_verify_result(SSL *ssl, long result);
4654
-
4655
4933
  // SSL_CTX_enable_tls_channel_id calls |SSL_CTX_set_tls_channel_id_enabled|.
4656
4934
  OPENSSL_EXPORT int SSL_CTX_enable_tls_channel_id(SSL_CTX *ctx);
4657
4935
 
@@ -4798,18 +5076,6 @@ OPENSSL_EXPORT int SSL_CTX_set_tlsext_status_arg(SSL_CTX *ctx, void *arg);
4798
5076
  // name and remove this one.
4799
5077
  OPENSSL_EXPORT uint16_t SSL_CIPHER_get_value(const SSL_CIPHER *cipher);
4800
5078
 
4801
- // SSL_CTX_set_ignore_tls13_downgrade does nothing.
4802
- OPENSSL_EXPORT void SSL_CTX_set_ignore_tls13_downgrade(SSL_CTX *ctx,
4803
- int ignore);
4804
-
4805
- // SSL_set_ignore_tls13_downgrade does nothing.
4806
- OPENSSL_EXPORT void SSL_set_ignore_tls13_downgrade(SSL *ssl, int ignore);
4807
-
4808
- // SSL_is_tls13_downgrade returns zero. Historically, this function returned
4809
- // whether the TLS 1.3 downgrade signal would have been enforced if not
4810
- // disabled. The TLS 1.3 downgrade signal is now always enforced.
4811
- OPENSSL_EXPORT int SSL_is_tls13_downgrade(const SSL *ssl);
4812
-
4813
5079
 
4814
5080
  // Nodejs compatibility section (hidden).
4815
5081
  //
@@ -4972,6 +5238,8 @@ BSSL_NAMESPACE_BEGIN
4972
5238
  BORINGSSL_MAKE_DELETER(SSL, SSL_free)
4973
5239
  BORINGSSL_MAKE_DELETER(SSL_CTX, SSL_CTX_free)
4974
5240
  BORINGSSL_MAKE_UP_REF(SSL_CTX, SSL_CTX_up_ref)
5241
+ BORINGSSL_MAKE_DELETER(SSL_ECH_KEYS, SSL_ECH_KEYS_free)
5242
+ BORINGSSL_MAKE_UP_REF(SSL_ECH_KEYS, SSL_ECH_KEYS_up_ref)
4975
5243
  BORINGSSL_MAKE_DELETER(SSL_SESSION, SSL_SESSION_free)
4976
5244
  BORINGSSL_MAKE_UP_REF(SSL_SESSION, SSL_SESSION_up_ref)
4977
5245
 
@@ -5088,6 +5356,7 @@ OPENSSL_EXPORT bool SSL_get_traffic_secrets(
5088
5356
  const SSL *ssl, Span<const uint8_t> *out_read_traffic_secret,
5089
5357
  Span<const uint8_t> *out_write_traffic_secret);
5090
5358
 
5359
+
5091
5360
  BSSL_NAMESPACE_END
5092
5361
 
5093
5362
  } // extern C++
@@ -5305,6 +5574,18 @@ BSSL_NAMESPACE_END
5305
5574
  #define SSL_R_NO_APPLICATION_PROTOCOL 307
5306
5575
  #define SSL_R_NEGOTIATED_ALPS_WITHOUT_ALPN 308
5307
5576
  #define SSL_R_ALPS_MISMATCH_ON_EARLY_DATA 309
5577
+ #define SSL_R_ECH_SERVER_CONFIG_AND_PRIVATE_KEY_MISMATCH 310
5578
+ #define SSL_R_ECH_SERVER_CONFIG_UNSUPPORTED_EXTENSION 311
5579
+ #define SSL_R_UNSUPPORTED_ECH_SERVER_CONFIG 312
5580
+ #define SSL_R_ECH_SERVER_WOULD_HAVE_NO_RETRY_CONFIGS 313
5581
+ #define SSL_R_INVALID_CLIENT_HELLO_INNER 314
5582
+ #define SSL_R_INVALID_ALPN_PROTOCOL_LIST 315
5583
+ #define SSL_R_COULD_NOT_PARSE_HINTS 316
5584
+ #define SSL_R_INVALID_ECH_PUBLIC_NAME 317
5585
+ #define SSL_R_INVALID_ECH_CONFIG_LIST 318
5586
+ #define SSL_R_ECH_REJECTED 319
5587
+ #define SSL_R_OUTER_EXTENSION_NOT_FOUND 320
5588
+ #define SSL_R_INCONSISTENT_ECH_NEGOTIATION 321
5308
5589
  #define SSL_R_SSLV3_ALERT_CLOSE_NOTIFY 1000
5309
5590
  #define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010
5310
5591
  #define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020
@@ -5338,5 +5619,6 @@ BSSL_NAMESPACE_END
5338
5619
  #define SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY 1115
5339
5620
  #define SSL_R_TLSV1_ALERT_CERTIFICATE_REQUIRED 1116
5340
5621
  #define SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL 1120
5622
+ #define SSL_R_TLSV1_ALERT_ECH_REQUIRED 1121
5341
5623
 
5342
5624
  #endif // OPENSSL_HEADER_SSL_H