grpc 1.53.2 → 1.54.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 (693) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +78 -66
  3. data/include/grpc/event_engine/event_engine.h +30 -14
  4. data/include/grpc/grpc_security.h +4 -0
  5. data/include/grpc/support/port_platform.h +4 -4
  6. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -0
  7. data/src/core/ext/filters/client_channel/backend_metric.cc +6 -0
  8. data/src/core/ext/filters/client_channel/backup_poller.cc +2 -11
  9. data/src/core/ext/filters/client_channel/backup_poller.h +0 -3
  10. data/src/core/ext/filters/client_channel/client_channel.cc +848 -813
  11. data/src/core/ext/filters/client_channel/client_channel.h +131 -173
  12. data/src/core/ext/filters/client_channel/client_channel_internal.h +114 -0
  13. data/src/core/ext/filters/client_channel/config_selector.h +4 -3
  14. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +6 -1
  15. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +17 -18
  16. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +134 -151
  17. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2 -16
  18. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +14 -10
  19. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +68 -30
  20. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +11 -3
  21. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +8 -1
  22. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -5
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +2 -2
  24. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +30 -38
  25. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +4 -4
  26. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +20 -26
  27. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +31 -179
  28. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -2
  29. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -2
  30. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +4 -2
  31. data/src/core/ext/filters/client_channel/retry_filter.cc +95 -102
  32. data/src/core/ext/filters/client_channel/subchannel.cc +2 -4
  33. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +26 -27
  34. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +8 -5
  35. data/src/core/ext/filters/http/client/http_client_filter.cc +3 -3
  36. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -12
  37. data/src/core/ext/filters/http/message_compress/compression_filter.cc +27 -11
  38. data/src/core/ext/filters/message_size/message_size_filter.cc +141 -224
  39. data/src/core/ext/filters/message_size/message_size_filter.h +48 -3
  40. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -6
  41. data/src/core/ext/gcp/metadata_query.cc +142 -0
  42. data/src/core/ext/gcp/metadata_query.h +82 -0
  43. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +70 -55
  44. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +8 -12
  45. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -5
  46. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +116 -58
  47. data/src/core/ext/transport/chttp2/transport/flow_control.cc +5 -2
  48. data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -1
  49. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
  50. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +222 -118
  51. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +113 -295
  52. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -2
  53. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +0 -2
  54. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +277 -451
  55. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
  56. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +12 -14
  57. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +1 -9
  58. data/src/core/ext/transport/chttp2/transport/internal.h +16 -3
  59. data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
  60. data/src/core/ext/transport/chttp2/transport/writing.cc +10 -5
  61. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -14
  62. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +5 -3
  63. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +22 -0
  64. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +5 -3
  65. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +22 -0
  66. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +23 -5
  67. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +94 -3
  68. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -2
  69. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -0
  70. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +6 -3
  71. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
  72. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +24 -6
  73. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +111 -12
  74. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +9 -7
  75. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +27 -9
  76. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -1
  77. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +11 -7
  78. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +56 -12
  79. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +5 -3
  80. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +24 -0
  81. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +5 -3
  82. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
  83. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +13 -2
  84. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +49 -0
  85. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +24 -9
  86. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +66 -12
  87. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
  88. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +139 -136
  89. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +31 -15
  90. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -0
  91. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +12 -9
  92. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +15 -0
  93. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +54 -45
  94. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +135 -119
  95. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  96. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +100 -97
  97. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +15 -18
  98. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +272 -264
  99. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +117 -117
  100. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +5 -5
  101. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +5 -5
  102. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +5 -5
  103. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +12 -9
  104. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -0
  105. data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -2
  106. data/src/core/ext/xds/xds_client_stats.cc +29 -15
  107. data/src/core/ext/xds/xds_client_stats.h +24 -20
  108. data/src/core/ext/xds/xds_endpoint.cc +5 -2
  109. data/src/core/ext/xds/xds_endpoint.h +9 -1
  110. data/src/core/ext/xds/xds_http_rbac_filter.cc +1 -1
  111. data/src/core/ext/xds/xds_lb_policy_registry.cc +13 -0
  112. data/src/core/ext/xds/xds_transport_grpc.cc +1 -1
  113. data/src/core/lib/channel/call_finalization.h +1 -1
  114. data/src/core/lib/channel/call_tracer.cc +51 -0
  115. data/src/core/lib/channel/call_tracer.h +101 -38
  116. data/src/core/lib/channel/connected_channel.cc +483 -1050
  117. data/src/core/lib/channel/context.h +8 -1
  118. data/src/core/lib/channel/promise_based_filter.cc +106 -42
  119. data/src/core/lib/channel/promise_based_filter.h +27 -13
  120. data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
  121. data/src/core/lib/config/config_vars.cc +151 -0
  122. data/src/core/lib/config/config_vars.h +127 -0
  123. data/src/core/lib/config/config_vars_non_generated.cc +51 -0
  124. data/src/core/lib/config/load_config.cc +66 -0
  125. data/src/core/lib/config/load_config.h +49 -0
  126. data/src/core/lib/debug/trace.cc +5 -6
  127. data/src/core/lib/debug/trace.h +0 -5
  128. data/src/core/lib/event_engine/event_engine.cc +37 -2
  129. data/src/core/lib/event_engine/handle_containers.h +7 -22
  130. data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
  131. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -4
  132. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -9
  133. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +48 -15
  134. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -8
  135. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -5
  136. data/src/core/lib/event_engine/posix_engine/posix_engine.h +0 -1
  137. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -32
  138. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +0 -3
  139. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +27 -18
  140. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +0 -3
  141. data/src/core/lib/event_engine/resolved_address.cc +2 -1
  142. data/src/core/lib/event_engine/windows/win_socket.cc +0 -1
  143. data/src/core/lib/event_engine/windows/windows_endpoint.cc +129 -82
  144. data/src/core/lib/event_engine/windows/windows_endpoint.h +21 -5
  145. data/src/core/lib/event_engine/windows/windows_engine.cc +39 -18
  146. data/src/core/lib/event_engine/windows/windows_engine.h +2 -1
  147. data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
  148. data/src/core/lib/event_engine/windows/windows_listener.h +155 -0
  149. data/src/core/lib/experiments/config.cc +3 -10
  150. data/src/core/lib/experiments/experiments.cc +7 -0
  151. data/src/core/lib/experiments/experiments.h +9 -1
  152. data/src/core/lib/gpr/log.cc +15 -28
  153. data/src/core/lib/gprpp/fork.cc +8 -14
  154. data/src/core/lib/gprpp/orphanable.h +4 -3
  155. data/src/core/lib/gprpp/per_cpu.h +9 -3
  156. data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +49 -37
  157. data/src/core/lib/gprpp/ref_counted.h +33 -34
  158. data/src/core/lib/gprpp/thd.h +16 -0
  159. data/src/core/lib/gprpp/time.cc +1 -0
  160. data/src/core/lib/gprpp/time.h +4 -4
  161. data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +2 -2
  162. data/src/core/lib/iomgr/call_combiner.h +2 -2
  163. data/src/core/lib/iomgr/endpoint_cfstream.cc +4 -2
  164. data/src/core/lib/iomgr/ev_posix.cc +13 -53
  165. data/src/core/lib/iomgr/ev_posix.h +0 -3
  166. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +103 -76
  167. data/src/core/lib/iomgr/iomgr.cc +4 -8
  168. data/src/core/lib/iomgr/iomgr_windows.cc +8 -2
  169. data/src/core/lib/iomgr/pollset_set_windows.cc +9 -9
  170. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  171. data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -3
  172. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -2
  173. data/src/core/lib/iomgr/tcp_posix.cc +0 -1
  174. data/src/core/lib/iomgr/tcp_server_posix.cc +19 -55
  175. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -12
  176. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +0 -21
  177. data/src/core/lib/iomgr/tcp_server_windows.cc +176 -9
  178. data/src/core/lib/iomgr/tcp_windows.cc +12 -8
  179. data/src/core/lib/load_balancing/lb_policy.cc +9 -13
  180. data/src/core/lib/load_balancing/lb_policy.h +4 -2
  181. data/src/core/lib/promise/activity.cc +22 -6
  182. data/src/core/lib/promise/activity.h +61 -24
  183. data/src/core/lib/promise/cancel_callback.h +77 -0
  184. data/src/core/lib/promise/detail/basic_seq.h +1 -1
  185. data/src/core/lib/promise/detail/promise_factory.h +4 -0
  186. data/src/core/lib/promise/for_each.h +176 -0
  187. data/src/core/lib/promise/if.h +9 -0
  188. data/src/core/lib/promise/interceptor_list.h +23 -2
  189. data/src/core/lib/promise/latch.h +89 -3
  190. data/src/core/lib/promise/loop.h +13 -9
  191. data/src/core/lib/promise/map.h +7 -0
  192. data/src/core/lib/promise/party.cc +286 -0
  193. data/src/core/lib/promise/party.h +499 -0
  194. data/src/core/lib/promise/pipe.h +197 -57
  195. data/src/core/lib/promise/poll.h +48 -0
  196. data/src/core/lib/promise/promise.h +2 -2
  197. data/src/core/lib/resource_quota/arena.cc +19 -3
  198. data/src/core/lib/resource_quota/arena.h +119 -5
  199. data/src/core/lib/resource_quota/memory_quota.cc +1 -1
  200. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +12 -35
  201. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
  202. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -59
  203. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -5
  204. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
  205. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -0
  206. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +2 -0
  207. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +5 -9
  208. data/src/core/lib/security/security_connector/ssl_utils.cc +11 -25
  209. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +12 -0
  210. data/src/core/lib/security/transport/secure_endpoint.cc +4 -2
  211. data/src/core/lib/security/transport/server_auth_filter.cc +20 -2
  212. data/src/core/lib/slice/slice.cc +1 -1
  213. data/src/core/lib/surface/builtins.cc +2 -0
  214. data/src/core/lib/surface/call.cc +926 -1024
  215. data/src/core/lib/surface/call.h +10 -0
  216. data/src/core/lib/surface/lame_client.cc +1 -0
  217. data/src/core/lib/surface/validate_metadata.cc +42 -43
  218. data/src/core/lib/surface/validate_metadata.h +0 -9
  219. data/src/core/lib/surface/version.cc +2 -2
  220. data/src/core/lib/transport/batch_builder.cc +179 -0
  221. data/src/core/lib/transport/batch_builder.h +468 -0
  222. data/src/core/lib/transport/bdp_estimator.cc +7 -7
  223. data/src/core/lib/transport/bdp_estimator.h +10 -6
  224. data/src/core/lib/transport/custom_metadata.h +30 -0
  225. data/src/core/lib/transport/metadata_batch.cc +5 -2
  226. data/src/core/lib/transport/metadata_batch.h +17 -113
  227. data/src/core/lib/transport/parsed_metadata.h +6 -16
  228. data/src/core/lib/transport/timeout_encoding.cc +6 -1
  229. data/src/core/lib/transport/transport.cc +30 -2
  230. data/src/core/lib/transport/transport.h +70 -14
  231. data/src/core/lib/transport/transport_impl.h +7 -0
  232. data/src/core/lib/transport/transport_op_string.cc +52 -42
  233. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -2
  234. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +1 -0
  235. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +21 -4
  236. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +5 -0
  237. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
  238. data/src/core/tsi/ssl_transport_security.cc +4 -2
  239. data/src/ruby/lib/grpc/version.rb +1 -1
  240. data/third_party/abseil-cpp/absl/base/config.h +1 -1
  241. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
  242. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
  243. data/third_party/abseil-cpp/absl/flags/config.h +68 -0
  244. data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
  245. data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
  246. data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
  247. data/{src/core/lib/gprpp/global_config_custom.h → third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc} +11 -14
  248. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  249. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
  250. data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
  251. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
  252. data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  253. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
  254. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
  255. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
  256. data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  257. data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
  258. data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  259. data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
  260. data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
  261. data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
  262. data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
  263. data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
  264. data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
  265. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +12 -8
  266. data/third_party/boringssl-with-bazel/err_data.c +728 -712
  267. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
  268. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
  269. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
  270. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
  271. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
  272. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
  273. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
  274. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +174 -194
  275. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
  276. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
  277. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
  278. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
  279. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
  280. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
  281. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
  282. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
  283. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
  284. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
  285. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
  286. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
  287. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +133 -88
  288. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
  289. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +791 -791
  290. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +526 -526
  291. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
  292. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
  293. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
  294. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
  295. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
  296. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +11 -7
  297. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +4 -4
  298. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
  299. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +4 -4
  300. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +17 -10
  301. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -3
  302. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
  303. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
  304. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
  305. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +9 -5
  306. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
  307. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
  308. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
  309. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
  310. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
  311. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
  312. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
  313. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
  314. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
  315. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
  316. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
  317. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
  318. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
  319. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
  320. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
  321. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
  322. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +6 -12
  323. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -11
  324. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
  325. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
  326. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
  327. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
  328. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
  329. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
  330. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
  331. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
  332. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
  333. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
  334. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
  335. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
  336. data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
  337. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
  338. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +16 -27
  339. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
  340. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
  341. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
  342. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
  343. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
  344. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
  345. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +39 -16
  346. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
  347. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  348. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
  349. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +214 -99
  350. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +21 -5
  351. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
  352. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
  353. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
  354. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
  355. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
  356. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
  357. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
  358. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
  359. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
  360. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
  361. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
  362. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
  363. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +5 -5
  364. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
  365. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
  366. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
  367. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
  368. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
  369. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
  370. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
  371. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
  372. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
  373. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
  374. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
  375. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
  376. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +35 -27
  377. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
  378. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
  379. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
  380. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
  381. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
  382. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  383. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
  384. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
  385. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
  386. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
  387. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
  388. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
  389. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
  390. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
  391. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
  392. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
  393. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
  394. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
  395. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
  396. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
  397. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
  398. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
  399. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
  400. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
  401. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
  402. data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
  403. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
  404. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +21 -6
  405. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
  406. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
  407. data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
  408. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +25 -25
  409. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +91 -17
  410. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +5 -5
  411. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +34 -12
  412. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +54 -23
  413. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +44 -60
  414. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
  415. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +60 -53
  416. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
  417. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +48 -36
  418. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
  419. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +2 -7
  420. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -3
  421. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -1
  422. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +8 -0
  423. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +42 -14
  424. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
  425. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
  426. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -15
  427. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
  428. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +2 -4
  429. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +71 -43
  430. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +14 -16
  431. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -4
  432. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
  433. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
  434. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
  435. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
  436. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
  437. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
  438. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -45
  439. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
  440. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +22 -0
  441. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +63 -52
  442. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +107 -62
  443. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +58 -31
  444. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
  445. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +523 -422
  446. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  447. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
  448. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
  449. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
  450. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
  451. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
  452. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +19 -6
  453. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +32 -14
  454. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
  455. data/third_party/boringssl-with-bazel/src/crypto/internal.h +373 -18
  456. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +61 -0
  457. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +205 -0
  458. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
  459. data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
  460. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
  461. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +13 -1
  462. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
  463. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
  464. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +629 -613
  465. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
  466. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
  467. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
  468. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
  469. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
  470. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
  471. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
  472. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
  473. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
  474. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
  475. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
  476. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  477. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
  478. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
  479. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
  480. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +3 -4
  481. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
  482. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
  483. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
  484. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
  485. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +66 -34
  486. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +190 -77
  487. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +81 -284
  488. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +109 -42
  489. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
  490. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +54 -55
  491. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +284 -331
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +67 -50
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +153 -150
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +786 -0
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +227 -252
  504. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
  505. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
  506. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +230 -224
  507. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
  508. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
  509. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
  510. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
  511. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +534 -618
  512. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
  513. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +116 -182
  514. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
  515. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +181 -202
  516. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
  517. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
  518. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1865 -2050
  519. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +433 -462
  520. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
  521. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +267 -263
  522. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
  523. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
  524. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
  525. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
  526. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
  527. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +326 -415
  528. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
  529. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
  530. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
  531. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
  532. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
  533. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
  534. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
  535. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
  536. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
  537. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
  538. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
  539. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
  540. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +78 -170
  541. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
  542. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
  543. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
  544. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
  545. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
  546. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +309 -346
  547. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +341 -365
  548. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
  549. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
  550. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
  551. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
  552. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
  553. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +122 -125
  554. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
  555. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +247 -253
  556. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
  557. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
  558. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
  559. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
  560. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +143 -136
  561. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +664 -707
  562. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +83 -75
  563. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1062 -1146
  564. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +8 -4
  565. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
  566. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +211 -187
  567. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
  568. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -14
  569. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +21 -2
  570. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
  571. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
  572. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
  573. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
  574. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
  575. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
  576. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
  577. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
  578. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
  579. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  580. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
  581. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
  582. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
  583. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
  584. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +22 -30
  585. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  586. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
  587. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +41 -16
  588. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
  589. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
  590. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +13 -0
  591. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
  592. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -15
  593. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
  594. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
  595. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +7 -4
  596. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
  597. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +13 -21
  598. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -75
  599. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
  600. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +384 -286
  601. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +5 -6
  602. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
  603. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +18 -7
  604. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +49 -23
  605. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
  606. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1592 -1074
  607. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +202 -205
  608. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
  609. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
  610. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
  611. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
  612. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
  613. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +34 -20
  614. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +65 -34
  615. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
  616. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
  617. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +32 -28
  618. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
  619. data/third_party/boringssl-with-bazel/src/ssl/internal.h +130 -98
  620. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +27 -11
  621. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  622. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
  623. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
  624. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +39 -65
  625. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
  626. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
  627. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +30 -33
  628. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +77 -100
  629. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +120 -107
  630. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +164 -30
  631. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +150 -60
  632. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +22 -11
  633. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
  634. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
  635. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +5 -43
  636. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
  637. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +2 -2
  638. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +22 -34
  639. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
  640. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
  641. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
  642. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
  643. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
  644. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
  645. metadata +103 -70
  646. data/src/core/ext/filters/client_channel/lb_call_state_internal.h +0 -39
  647. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
  648. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +0 -29
  649. data/src/core/lib/gprpp/global_config.h +0 -93
  650. data/src/core/lib/gprpp/global_config_env.cc +0 -140
  651. data/src/core/lib/gprpp/global_config_env.h +0 -133
  652. data/src/core/lib/gprpp/global_config_generic.h +0 -40
  653. data/src/core/lib/promise/intra_activity_waiter.h +0 -55
  654. data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
  655. data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -29
  656. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
  657. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
  658. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
  659. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
  660. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
  661. data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
  662. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
  663. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
  664. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
  665. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
  666. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
  667. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
  668. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
  669. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
  670. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
  671. /data/src/core/lib/gpr/{log_android.cc → android/log.cc} +0 -0
  672. /data/src/core/lib/gpr/{cpu_iphone.cc → iphone/cpu.cc} +0 -0
  673. /data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +0 -0
  674. /data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +0 -0
  675. /data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +0 -0
  676. /data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +0 -0
  677. /data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +0 -0
  678. /data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +0 -0
  679. /data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +0 -0
  680. /data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +0 -0
  681. /data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +0 -0
  682. /data/src/core/lib/gpr/{cpu_windows.cc → windows/cpu.cc} +0 -0
  683. /data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +0 -0
  684. /data/src/core/lib/gpr/{string_windows.cc → windows/string.cc} +0 -0
  685. /data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +0 -0
  686. /data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +0 -0
  687. /data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +0 -0
  688. /data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +0 -0
  689. /data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +0 -0
  690. /data/src/core/lib/gprpp/{env_posix.cc → posix/env.cc} +0 -0
  691. /data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +0 -0
  692. /data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +0 -0
  693. /data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +0 -0
@@ -24,14 +24,11 @@
24
24
  #include <poll.h>
25
25
 
26
26
  #include "src/core/lib/debug/trace.h"
27
- #include "src/core/lib/gprpp/global_config.h"
28
27
  #include "src/core/lib/iomgr/exec_ctx.h"
29
28
  #include "src/core/lib/iomgr/pollset.h"
30
29
  #include "src/core/lib/iomgr/pollset_set.h"
31
30
  #include "src/core/lib/iomgr/wakeup_fd_posix.h"
32
31
 
33
- GPR_GLOBAL_CONFIG_DECLARE_STRING(grpc_poll_strategy);
34
-
35
32
  extern grpc_core::DebugOnlyTraceFlag grpc_fd_trace; // Disabled by default
36
33
  extern grpc_core::DebugOnlyTraceFlag grpc_polling_trace; // Disabled by default
37
34
 
@@ -33,6 +33,8 @@
33
33
  #include "src/core/lib/event_engine/tcp_socket_utils.h"
34
34
  #include "src/core/lib/event_engine/trace.h"
35
35
  #include "src/core/lib/gpr/string.h"
36
+ #include "src/core/lib/gprpp/construct_destruct.h"
37
+ #include "src/core/lib/gprpp/debug_location.h"
36
38
  #include "src/core/lib/gprpp/sync.h"
37
39
  #include "src/core/lib/iomgr/closure.h"
38
40
  #include "src/core/lib/iomgr/endpoint.h"
@@ -94,15 +96,101 @@ class EventEngineEndpointWrapper {
94
96
  grpc_endpoint* GetGrpcEndpoint() { return &eeep_->base; }
95
97
 
96
98
  // Read using the underlying EventEngine endpoint object.
97
- void Read(absl::AnyInvocable<void(absl::Status)> on_read, SliceBuffer* buffer,
99
+ bool Read(grpc_closure* read_cb, grpc_slice_buffer* pending_read_buffer,
98
100
  const EventEngine::Endpoint::ReadArgs* args) {
99
- endpoint_->Read(std::move(on_read), buffer, args);
101
+ Ref();
102
+ pending_read_cb_ = read_cb;
103
+ pending_read_buffer_ = pending_read_buffer;
104
+ // TODO(vigneshbabu): Use SliceBufferCast<> here.
105
+ grpc_core::Construct(reinterpret_cast<SliceBuffer*>(&eeep_->read_buffer),
106
+ SliceBuffer::TakeCSliceBuffer(*pending_read_buffer_));
107
+ SliceBuffer* read_buffer =
108
+ reinterpret_cast<SliceBuffer*>(&eeep_->read_buffer);
109
+ read_buffer->Clear();
110
+ return endpoint_->Read(
111
+ [this](absl::Status status) { FinishPendingRead(status); }, read_buffer,
112
+ args);
113
+ }
114
+
115
+ void FinishPendingRead(absl::Status status) {
116
+ auto* read_buffer = reinterpret_cast<SliceBuffer*>(&eeep_->read_buffer);
117
+ grpc_slice_buffer_move_into(read_buffer->c_slice_buffer(),
118
+ pending_read_buffer_);
119
+ read_buffer->~SliceBuffer();
120
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
121
+ size_t i;
122
+ gpr_log(GPR_INFO, "TCP: %p READ (peer=%s) error=%s", eeep_->wrapper,
123
+ std::string(eeep_->wrapper->PeerAddress()).c_str(),
124
+ status.ToString().c_str());
125
+ if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
126
+ for (i = 0; i < pending_read_buffer_->count; i++) {
127
+ char* dump = grpc_dump_slice(pending_read_buffer_->slices[i],
128
+ GPR_DUMP_HEX | GPR_DUMP_ASCII);
129
+ gpr_log(GPR_DEBUG, "READ DATA: %s", dump);
130
+ gpr_free(dump);
131
+ }
132
+ }
133
+ }
134
+ pending_read_buffer_ = nullptr;
135
+ grpc_closure* cb = pending_read_cb_;
136
+ pending_read_cb_ = nullptr;
137
+ if (grpc_core::ExecCtx::Get() == nullptr) {
138
+ grpc_core::ApplicationCallbackExecCtx app_ctx;
139
+ grpc_core::ExecCtx exec_ctx;
140
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, status);
141
+ } else {
142
+ grpc_core::Closure::Run(DEBUG_LOCATION, cb, status);
143
+ }
144
+ // For the ref taken in EventEngineEndpointWrapper::Read().
145
+ Unref();
100
146
  }
101
147
 
102
148
  // Write using the underlying EventEngine endpoint object
103
- void Write(absl::AnyInvocable<void(absl::Status)> on_writable,
104
- SliceBuffer* data, const EventEngine::Endpoint::WriteArgs* args) {
105
- endpoint_->Write(std::move(on_writable), data, args);
149
+ bool Write(grpc_closure* write_cb, grpc_slice_buffer* slices,
150
+ const EventEngine::Endpoint::WriteArgs* args) {
151
+ Ref();
152
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
153
+ size_t i;
154
+ gpr_log(GPR_INFO, "TCP: %p WRITE (peer=%s)", this,
155
+ std::string(PeerAddress()).c_str());
156
+ if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
157
+ for (i = 0; i < slices->count; i++) {
158
+ char* dump =
159
+ grpc_dump_slice(slices->slices[i], GPR_DUMP_HEX | GPR_DUMP_ASCII);
160
+ gpr_log(GPR_DEBUG, "WRITE DATA: %s", dump);
161
+ gpr_free(dump);
162
+ }
163
+ }
164
+ }
165
+ // TODO(vigneshbabu): Use SliceBufferCast<> here.
166
+ grpc_core::Construct(reinterpret_cast<SliceBuffer*>(&eeep_->write_buffer),
167
+ SliceBuffer::TakeCSliceBuffer(*slices));
168
+ SliceBuffer* write_buffer =
169
+ reinterpret_cast<SliceBuffer*>(&eeep_->write_buffer);
170
+ pending_write_cb_ = write_cb;
171
+ return endpoint_->Write(
172
+ [this](absl::Status status) { FinishPendingWrite(status); },
173
+ write_buffer, args);
174
+ }
175
+
176
+ void FinishPendingWrite(absl::Status status) {
177
+ auto* write_buffer = reinterpret_cast<SliceBuffer*>(&eeep_->write_buffer);
178
+ write_buffer->~SliceBuffer();
179
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
180
+ gpr_log(GPR_INFO, "TCP: %p WRITE (peer=%s) error=%s", this,
181
+ std::string(PeerAddress()).c_str(), status.ToString().c_str());
182
+ }
183
+ grpc_closure* cb = pending_write_cb_;
184
+ pending_write_cb_ = nullptr;
185
+ if (grpc_core::ExecCtx::Get() == nullptr) {
186
+ grpc_core::ApplicationCallbackExecCtx app_ctx;
187
+ grpc_core::ExecCtx exec_ctx;
188
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, status);
189
+ } else {
190
+ grpc_core::Closure::Run(DEBUG_LOCATION, cb, status);
191
+ }
192
+ // For the ref taken in EventEngineEndpointWrapper::Write().
193
+ Unref();
106
194
  }
107
195
 
108
196
  // Returns true if the endpoint is not yet shutdown. In that case, it also
@@ -186,6 +274,9 @@ class EventEngineEndpointWrapper {
186
274
  std::atomic<int64_t> shutdown_ref_{1};
187
275
  absl::AnyInvocable<void(absl::StatusOr<int>)> on_release_fd_;
188
276
  grpc_core::Mutex mu_;
277
+ grpc_closure* pending_read_cb_;
278
+ grpc_closure* pending_write_cb_;
279
+ grpc_slice_buffer* pending_read_buffer_;
189
280
  std::string peer_address_;
190
281
  std::string local_address_;
191
282
  int fd_{-1};
@@ -204,41 +295,11 @@ void EndpointRead(grpc_endpoint* ep, grpc_slice_buffer* slices,
204
295
  return;
205
296
  }
206
297
 
207
- eeep->wrapper->Ref();
208
298
  EventEngine::Endpoint::ReadArgs read_args = {min_progress_size};
209
-
210
- // TODO(vigneshbabu): Use SliceBufferCast<> here.
211
- SliceBuffer* read_buffer = new (&eeep->read_buffer)
212
- SliceBuffer(SliceBuffer::TakeCSliceBuffer(*slices));
213
- read_buffer->Clear();
214
- eeep->wrapper->Read(
215
- [eeep, cb, slices](absl::Status status) {
216
- auto* read_buffer = reinterpret_cast<SliceBuffer*>(&eeep->read_buffer);
217
- grpc_slice_buffer_move_into(read_buffer->c_slice_buffer(), slices);
218
- read_buffer->~SliceBuffer();
219
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
220
- size_t i;
221
- gpr_log(GPR_INFO, "TCP: %p READ (peer=%s) error=%s", eeep->wrapper,
222
- std::string(eeep->wrapper->PeerAddress()).c_str(),
223
- status.ToString().c_str());
224
- if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
225
- for (i = 0; i < slices->count; i++) {
226
- char* dump = grpc_dump_slice(slices->slices[i],
227
- GPR_DUMP_HEX | GPR_DUMP_ASCII);
228
- gpr_log(GPR_DEBUG, "READ DATA: %s", dump);
229
- gpr_free(dump);
230
- }
231
- }
232
- }
233
- {
234
- grpc_core::ApplicationCallbackExecCtx app_ctx;
235
- grpc_core::ExecCtx exec_ctx;
236
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, status);
237
- }
238
- // For the ref taken in EndpointRead
239
- eeep->wrapper->Unref();
240
- },
241
- read_buffer, &read_args);
299
+ if (eeep->wrapper->Read(cb, slices, &read_args)) {
300
+ // Read succeeded immediately. Run the callback inline.
301
+ eeep->wrapper->FinishPendingRead(absl::OkStatus());
302
+ }
242
303
 
243
304
  eeep->wrapper->ShutdownUnref();
244
305
  }
@@ -256,45 +317,11 @@ void EndpointWrite(grpc_endpoint* ep, grpc_slice_buffer* slices,
256
317
  return;
257
318
  }
258
319
 
259
- eeep->wrapper->Ref();
260
320
  EventEngine::Endpoint::WriteArgs write_args = {arg, max_frame_size};
261
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
262
- size_t i;
263
- gpr_log(GPR_INFO, "TCP: %p WRITE (peer=%s)", eeep->wrapper,
264
- std::string(eeep->wrapper->PeerAddress()).c_str());
265
- if (gpr_should_log(GPR_LOG_SEVERITY_DEBUG)) {
266
- for (i = 0; i < slices->count; i++) {
267
- char* dump =
268
- grpc_dump_slice(slices->slices[i], GPR_DUMP_HEX | GPR_DUMP_ASCII);
269
- gpr_log(GPR_DEBUG, "WRITE DATA: %s", dump);
270
- gpr_free(dump);
271
- }
272
- }
321
+ if (eeep->wrapper->Write(cb, slices, &write_args)) {
322
+ // Write succeeded immediately. Run the callback inline.
323
+ eeep->wrapper->FinishPendingWrite(absl::OkStatus());
273
324
  }
274
-
275
- // TODO(vigneshbabu): Use SliceBufferCast<> here.
276
- SliceBuffer* write_buffer = new (&eeep->write_buffer)
277
- SliceBuffer(SliceBuffer::TakeCSliceBuffer(*slices));
278
- eeep->wrapper->Write(
279
- [eeep, cb](absl::Status status) {
280
- auto* write_buffer =
281
- reinterpret_cast<SliceBuffer*>(&eeep->write_buffer);
282
- write_buffer->~SliceBuffer();
283
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
284
- gpr_log(GPR_INFO, "TCP: %p WRITE (peer=%s) error=%s", eeep->wrapper,
285
- std::string(eeep->wrapper->PeerAddress()).c_str(),
286
- status.ToString().c_str());
287
- }
288
- {
289
- grpc_core::ApplicationCallbackExecCtx app_ctx;
290
- grpc_core::ExecCtx exec_ctx;
291
- grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, status);
292
- }
293
- // For the ref taken in EndpointWrite
294
- eeep->wrapper->Unref();
295
- },
296
- write_buffer, &write_args);
297
-
298
325
  eeep->wrapper->ShutdownUnref();
299
326
  }
300
327
 
@@ -29,10 +29,10 @@
29
29
  #include <grpc/support/string_util.h>
30
30
  #include <grpc/support/sync.h>
31
31
 
32
+ #include "src/core/lib/config/config_vars.h"
32
33
  #include "src/core/lib/gpr/string.h"
33
34
  #include "src/core/lib/gpr/useful.h"
34
35
  #include "src/core/lib/gprpp/crash.h"
35
- #include "src/core/lib/gprpp/global_config.h"
36
36
  #include "src/core/lib/gprpp/thd.h"
37
37
  #include "src/core/lib/iomgr/buffer_list.h"
38
38
  #include "src/core/lib/iomgr/exec_ctx.h"
@@ -42,15 +42,10 @@
42
42
  #include "src/core/lib/iomgr/timer.h"
43
43
  #include "src/core/lib/iomgr/timer_manager.h"
44
44
 
45
- GPR_GLOBAL_CONFIG_DEFINE_BOOL(grpc_abort_on_leaks, false,
46
- "A debugging aid to cause a call to abort() when "
47
- "gRPC objects are leaked past grpc_shutdown()");
48
-
49
45
  static gpr_mu g_mu;
50
46
  static gpr_cv g_rcv;
51
47
  static int g_shutdown;
52
48
  static grpc_iomgr_object g_root_object;
53
- static bool g_grpc_abort_on_leaks;
54
49
 
55
50
  void grpc_iomgr_init() {
56
51
  grpc_core::ExecCtx exec_ctx;
@@ -65,7 +60,6 @@ void grpc_iomgr_init() {
65
60
  g_root_object.name = const_cast<char*>("root");
66
61
  grpc_iomgr_platform_init();
67
62
  grpc_timer_list_init();
68
- g_grpc_abort_on_leaks = GPR_GLOBAL_CONFIG_GET(grpc_abort_on_leaks);
69
63
  }
70
64
 
71
65
  void grpc_iomgr_start() { grpc_timer_manager_init(); }
@@ -198,4 +192,6 @@ void grpc_iomgr_unregister_object(grpc_iomgr_object* obj) {
198
192
  gpr_free(obj->name);
199
193
  }
200
194
 
201
- bool grpc_iomgr_abort_on_leaks(void) { return g_grpc_abort_on_leaks; }
195
+ bool grpc_iomgr_abort_on_leaks(void) {
196
+ return grpc_core::ConfigVars::Get().AbortOnLeaks();
197
+ }
@@ -24,6 +24,7 @@
24
24
 
25
25
  #include <grpc/support/log.h>
26
26
 
27
+ #include "src/core/lib/experiments/experiments.h"
27
28
  #include "src/core/lib/gprpp/crash.h"
28
29
  #include "src/core/lib/iomgr/iocp_windows.h"
29
30
  #include "src/core/lib/iomgr/iomgr.h"
@@ -37,6 +38,7 @@
37
38
  #include "src/core/lib/iomgr/timer.h"
38
39
 
39
40
  extern grpc_tcp_server_vtable grpc_windows_tcp_server_vtable;
41
+ extern grpc_tcp_server_vtable grpc_windows_event_engine_tcp_server_vtable;
40
42
  extern grpc_tcp_client_vtable grpc_windows_tcp_client_vtable;
41
43
  extern grpc_timer_vtable grpc_generic_timer_vtable;
42
44
  extern grpc_pollset_vtable grpc_windows_pollset_vtable;
@@ -81,7 +83,7 @@ static bool iomgr_platform_is_any_background_poller_thread(void) {
81
83
  }
82
84
 
83
85
  static bool iomgr_platform_add_closure_to_background_poller(
84
- grpc_closure* closure, grpc_error_handle error) {
86
+ grpc_closure* /* closure */, grpc_error_handle /* error */) {
85
87
  return false;
86
88
  }
87
89
 
@@ -95,7 +97,11 @@ static grpc_iomgr_platform_vtable vtable = {
95
97
 
96
98
  void grpc_set_default_iomgr_platform() {
97
99
  grpc_set_tcp_client_impl(&grpc_windows_tcp_client_vtable);
98
- grpc_set_tcp_server_impl(&grpc_windows_tcp_server_vtable);
100
+ if (grpc_core::IsEventEngineListenerEnabled()) {
101
+ grpc_set_tcp_server_impl(&grpc_windows_event_engine_tcp_server_vtable);
102
+ } else {
103
+ grpc_set_tcp_server_impl(&grpc_windows_tcp_server_vtable);
104
+ }
99
105
  grpc_set_timer_impl(&grpc_generic_timer_vtable);
100
106
  grpc_set_pollset_vtable(&grpc_windows_pollset_vtable);
101
107
  grpc_set_pollset_set_vtable(&grpc_windows_pollset_set_vtable);
@@ -30,19 +30,19 @@ static grpc_pollset_set* pollset_set_create(void) {
30
30
  return (grpc_pollset_set*)((intptr_t)0xdeafbeef);
31
31
  }
32
32
 
33
- static void pollset_set_destroy(grpc_pollset_set* pollset_set) {}
33
+ static void pollset_set_destroy(grpc_pollset_set* /* pollset_set */) {}
34
34
 
35
- static void pollset_set_add_pollset(grpc_pollset_set* pollset_set,
36
- grpc_pollset* pollset) {}
35
+ static void pollset_set_add_pollset(grpc_pollset_set* /* pollset_set */,
36
+ grpc_pollset* /* pollset */) {}
37
37
 
38
- static void pollset_set_del_pollset(grpc_pollset_set* pollset_set,
39
- grpc_pollset* pollset) {}
38
+ static void pollset_set_del_pollset(grpc_pollset_set* /* pollset_set */,
39
+ grpc_pollset* /* pollset */) {}
40
40
 
41
- static void pollset_set_add_pollset_set(grpc_pollset_set* bag,
42
- grpc_pollset_set* item) {}
41
+ static void pollset_set_add_pollset_set(grpc_pollset_set* /* bag */,
42
+ grpc_pollset_set* /* item */) {}
43
43
 
44
- static void pollset_set_del_pollset_set(grpc_pollset_set* bag,
45
- grpc_pollset_set* item) {}
44
+ static void pollset_set_del_pollset_set(grpc_pollset_set* /* bag */,
45
+ grpc_pollset_set* /* item */) {}
46
46
 
47
47
  grpc_pollset_set_vtable grpc_windows_pollset_set_vtable = {
48
48
  pollset_set_create, pollset_set_destroy,
@@ -105,7 +105,7 @@ static void pollset_shutdown(grpc_pollset* pollset, grpc_closure* closure) {
105
105
  }
106
106
  }
107
107
 
108
- static void pollset_destroy(grpc_pollset* pollset) {}
108
+ static void pollset_destroy(grpc_pollset* /* pollset */) {}
109
109
 
110
110
  static grpc_error_handle pollset_work(grpc_pollset* pollset,
111
111
  grpc_pollset_worker** worker_hdl,
@@ -437,9 +437,22 @@ grpc_error_handle grpc_create_dualstack_socket(
437
437
 
438
438
  static int create_socket(grpc_socket_factory* factory, int domain, int type,
439
439
  int protocol) {
440
- return (factory != nullptr)
441
- ? grpc_socket_factory_socket(factory, domain, type, protocol)
442
- : socket(domain, type, protocol);
440
+ int res = (factory != nullptr)
441
+ ? grpc_socket_factory_socket(factory, domain, type, protocol)
442
+ : socket(domain, type, protocol);
443
+ if (res < 0 && errno == EMFILE) {
444
+ int saved_errno = errno;
445
+ GRPC_LOG_EVERY_N_SEC(
446
+ 10, GPR_ERROR,
447
+ "socket(%d, %d, %d) returned %d with error: |%s|. This process "
448
+ "might not have a sufficient file descriptor limit for the number "
449
+ "of connections grpc wants to open (which is generally a function of "
450
+ "the number of grpc channels, the lb policy of each channel, and the "
451
+ "number of backends each channel is load balancing across).",
452
+ domain, type, protocol, res, grpc_core::StrError(errno).c_str());
453
+ errno = saved_errno;
454
+ }
455
+ return res;
443
456
  }
444
457
 
445
458
  grpc_error_handle grpc_create_dualstack_socket_using_factory(
@@ -69,7 +69,7 @@ static void async_connect_unlock_and_cleanup(async_connect* ac,
69
69
  if (socket != NULL) grpc_winsocket_destroy(socket);
70
70
  }
71
71
 
72
- static void on_alarm(void* acp, grpc_error_handle error) {
72
+ static void on_alarm(void* acp, grpc_error_handle /* error */) {
73
73
  async_connect* ac = (async_connect*)acp;
74
74
  gpr_mu_lock(&ac->mu);
75
75
  grpc_winsocket* socket = ac->socket;
@@ -124,7 +124,7 @@ static void on_connect(void* acp, grpc_error_handle error) {
124
124
  // Tries to issue one async connection, then schedules both an IOCP
125
125
  // notification request for the connection, and one timeout alert.
126
126
  static int64_t tcp_connect(grpc_closure* on_done, grpc_endpoint** endpoint,
127
- grpc_pollset_set* interested_parties,
127
+ grpc_pollset_set* /* interested_parties */,
128
128
  const EndpointConfig& config,
129
129
  const grpc_resolved_address* addr,
130
130
  grpc_core::Timestamp deadline) {
@@ -20,7 +20,6 @@
20
20
 
21
21
  #include <grpc/impl/grpc_types.h>
22
22
 
23
- #include "src/core/lib/gprpp/global_config_generic.h"
24
23
  #include "src/core/lib/iomgr/exec_ctx.h"
25
24
  #include "src/core/lib/iomgr/port.h"
26
25
 
@@ -16,17 +16,13 @@
16
16
  //
17
17
  //
18
18
 
19
- #include <grpc/support/port_platform.h>
20
-
21
- #include <utility>
22
-
23
- #include <grpc/support/atm.h>
24
-
25
19
  // FIXME: "posix" files shouldn't be depending on _GNU_SOURCE
26
20
  #ifndef _GNU_SOURCE
27
21
  #define _GNU_SOURCE
28
22
  #endif
29
23
 
24
+ #include <grpc/support/port_platform.h>
25
+
30
26
  #include "src/core/lib/iomgr/port.h"
31
27
 
32
28
  #ifdef GRPC_POSIX_SOCKET_TCP_SERVER
@@ -49,7 +45,6 @@
49
45
 
50
46
  #include <grpc/byte_buffer.h>
51
47
  #include <grpc/event_engine/endpoint_config.h>
52
- #include <grpc/event_engine/event_engine.h>
53
48
  #include <grpc/support/alloc.h>
54
49
  #include <grpc/support/log.h>
55
50
  #include <grpc/support/sync.h>
@@ -57,6 +52,7 @@
57
52
 
58
53
  #include "src/core/lib/address_utils/sockaddr_utils.h"
59
54
  #include "src/core/lib/event_engine/default_event_engine.h"
55
+ #include "src/core/lib/event_engine/memory_allocator_factory.h"
60
56
  #include "src/core/lib/event_engine/resolved_address_internal.h"
61
57
  #include "src/core/lib/event_engine/shim.h"
62
58
  #include "src/core/lib/event_engine/tcp_socket_utils.h"
@@ -79,30 +75,14 @@
79
75
  #include "src/core/lib/transport/error_utils.h"
80
76
 
81
77
  static std::atomic<int64_t> num_dropped_connections{0};
82
- static constexpr grpc_core::Duration kRetryAcceptWaitTime{
83
- grpc_core::Duration::Seconds(1)};
84
78
 
85
79
  using ::grpc_event_engine::experimental::EndpointConfig;
86
80
  using ::grpc_event_engine::experimental::EventEngine;
87
81
  using ::grpc_event_engine::experimental::MemoryAllocator;
82
+ using ::grpc_event_engine::experimental::MemoryQuotaBasedMemoryAllocatorFactory;
88
83
  using ::grpc_event_engine::experimental::PosixEventEngineWithFdSupport;
89
84
  using ::grpc_event_engine::experimental::SliceBuffer;
90
85
 
91
- class MemoryAllocatorFactoryWrapper
92
- : public grpc_event_engine::experimental::MemoryAllocatorFactory {
93
- public:
94
- explicit MemoryAllocatorFactoryWrapper(
95
- grpc_core::MemoryQuotaRefPtr memory_quota)
96
- : memory_quota_(std::move(memory_quota)) {}
97
-
98
- MemoryAllocator CreateMemoryAllocator(absl::string_view name) override {
99
- return memory_quota_->CreateMemoryAllocator(name);
100
- }
101
-
102
- private:
103
- grpc_core::MemoryQuotaRefPtr memory_quota_;
104
- };
105
-
106
86
  static grpc_error_handle CreateEventEngineListener(
107
87
  grpc_tcp_server* s, grpc_closure* shutdown_complete,
108
88
  const EndpointConfig& config, grpc_tcp_server** server) {
@@ -196,7 +176,9 @@ static grpc_error_handle CreateEventEngineListener(
196
176
  delete s->fd_handler;
197
177
  delete s;
198
178
  },
199
- config, std::make_unique<MemoryAllocatorFactoryWrapper>(s->memory_quota));
179
+ config,
180
+ std::make_unique<MemoryQuotaBasedMemoryAllocatorFactory>(
181
+ s->memory_quota));
200
182
  if (!listener.ok()) {
201
183
  delete s;
202
184
  *server = nullptr;
@@ -357,38 +339,22 @@ static void on_read(void* arg, grpc_error_handle err) {
357
339
  if (fd < 0) {
358
340
  if (errno == EINTR) {
359
341
  continue;
360
- }
361
- // When the process runs out of fds, accept4() returns EMFILE. When this
362
- // happens, the connection is left in the accept queue until either a
363
- // read event triggers the on_read callback, or time has passed and the
364
- // accept should be re-tried regardless. This callback is not cancelled,
365
- // so a spurious wakeup may occur even when there's nothing to accept.
366
- // This is not a performant code path, but if an fd limit has been
367
- // reached, the system is likely in an unhappy state regardless.
368
- if (errno == EMFILE) {
369
- GRPC_LOG_EVERY_N_SEC(1, "%s",
370
- "File descriptor limit reached. Retrying.");
371
- grpc_fd_notify_on_read(sp->emfd, &sp->read_closure);
372
- if (gpr_atm_full_xchg(&sp->retry_timer_armed, true)) return;
373
- grpc_timer_init(&sp->retry_timer,
374
- grpc_core::Timestamp::Now() + kRetryAcceptWaitTime,
375
- &sp->retry_closure);
376
- return;
377
- }
378
- if (errno == EAGAIN || errno == ECONNABORTED || errno == EWOULDBLOCK) {
342
+ } else if (errno == EAGAIN || errno == ECONNABORTED ||
343
+ errno == EWOULDBLOCK) {
379
344
  grpc_fd_notify_on_read(sp->emfd, &sp->read_closure);
380
345
  return;
381
- }
382
- gpr_mu_lock(&sp->server->mu);
383
- if (!sp->server->shutdown_listeners) {
384
- gpr_log(GPR_ERROR, "Failed accept4: %s",
385
- grpc_core::StrError(errno).c_str());
386
346
  } else {
387
- // if we have shutdown listeners, accept4 could fail, and we
388
- // needn't notify users
347
+ gpr_mu_lock(&sp->server->mu);
348
+ if (!sp->server->shutdown_listeners) {
349
+ gpr_log(GPR_ERROR, "Failed accept4: %s",
350
+ grpc_core::StrError(errno).c_str());
351
+ } else {
352
+ // if we have shutdown listeners, accept4 could fail, and we
353
+ // needn't notify users
354
+ }
355
+ gpr_mu_unlock(&sp->server->mu);
356
+ goto error;
389
357
  }
390
- gpr_mu_unlock(&sp->server->mu);
391
- goto error;
392
358
  }
393
359
 
394
360
  if (sp->server->memory_quota->IsMemoryPressureHigh()) {
@@ -581,7 +547,6 @@ static grpc_error_handle clone_port(grpc_tcp_listener* listener,
581
547
  sp->port_index = listener->port_index;
582
548
  sp->fd_index = listener->fd_index + count - i;
583
549
  GPR_ASSERT(sp->emfd);
584
- grpc_tcp_server_listener_initialize_retry_timer(sp);
585
550
  while (listener->server->tail->next != nullptr) {
586
551
  listener->server->tail = listener->server->tail->next;
587
552
  }
@@ -815,7 +780,6 @@ static void tcp_server_shutdown_listeners(grpc_tcp_server* s) {
815
780
  if (s->active_ports) {
816
781
  grpc_tcp_listener* sp;
817
782
  for (sp = s->head; sp; sp = sp->next) {
818
- grpc_timer_cancel(&sp->retry_timer);
819
783
  grpc_fd_shutdown(sp->emfd, GRPC_ERROR_CREATE("Server shutdown"));
820
784
  }
821
785
  }
@@ -30,7 +30,6 @@
30
30
  #include "src/core/lib/iomgr/resolve_address.h"
31
31
  #include "src/core/lib/iomgr/socket_utils_posix.h"
32
32
  #include "src/core/lib/iomgr/tcp_server.h"
33
- #include "src/core/lib/iomgr/timer.h"
34
33
  #include "src/core/lib/resource_quota/memory_quota.h"
35
34
 
36
35
  // one listening port
@@ -53,11 +52,6 @@ typedef struct grpc_tcp_listener {
53
52
  // identified while iterating through 'next'.
54
53
  struct grpc_tcp_listener* sibling;
55
54
  int is_sibling;
56
- // If an accept4() call fails, a timer is started to drain the accept queue in
57
- // case no further connection attempts reach the gRPC server.
58
- grpc_closure retry_closure;
59
- grpc_timer retry_timer;
60
- gpr_atm retry_timer_armed;
61
55
  } grpc_tcp_listener;
62
56
 
63
57
  // the overall server
@@ -145,10 +139,4 @@ grpc_error_handle grpc_tcp_server_prepare_socket(
145
139
  // Ruturn true if the platform supports ifaddrs
146
140
  bool grpc_tcp_server_have_ifaddrs(void);
147
141
 
148
- // Initialize (but don't start) the timer and callback to retry accept4() on a
149
- // listening socket after file descriptors have been exhausted. This must be
150
- // called when creating a new listener.
151
- void grpc_tcp_server_listener_initialize_retry_timer(
152
- grpc_tcp_listener* listener);
153
-
154
142
  #endif // GRPC_SRC_CORE_LIB_IOMGR_TCP_SERVER_UTILS_POSIX_H
@@ -18,8 +18,6 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include <grpc/support/atm.h>
22
-
23
21
  #include "src/core/lib/iomgr/port.h"
24
22
 
25
23
  #ifdef GRPC_POSIX_SOCKET_TCP_SERVER_UTILS_COMMON
@@ -83,24 +81,6 @@ static int get_max_accept_queue_size(void) {
83
81
  return s_max_accept_queue_size;
84
82
  }
85
83
 
86
- static void listener_retry_timer_cb(void* arg, grpc_error_handle err) {
87
- // Do nothing if cancelled.
88
- if (!err.ok()) return;
89
- grpc_tcp_listener* listener = static_cast<grpc_tcp_listener*>(arg);
90
- gpr_atm_no_barrier_store(&listener->retry_timer_armed, false);
91
- if (!grpc_fd_is_shutdown(listener->emfd)) {
92
- grpc_fd_set_readable(listener->emfd);
93
- }
94
- }
95
-
96
- void grpc_tcp_server_listener_initialize_retry_timer(
97
- grpc_tcp_listener* listener) {
98
- gpr_atm_no_barrier_store(&listener->retry_timer_armed, false);
99
- grpc_timer_init_unset(&listener->retry_timer);
100
- GRPC_CLOSURE_INIT(&listener->retry_closure, listener_retry_timer_cb, listener,
101
- grpc_schedule_on_exec_ctx);
102
- }
103
-
104
84
  static grpc_error_handle add_socket_to_server(grpc_tcp_server* s, int fd,
105
85
  const grpc_resolved_address* addr,
106
86
  unsigned port_index,
@@ -132,7 +112,6 @@ static grpc_error_handle add_socket_to_server(grpc_tcp_server* s, int fd,
132
112
  sp->server = s;
133
113
  sp->fd = fd;
134
114
  sp->emfd = grpc_fd_create(fd, name.c_str(), true);
135
- grpc_tcp_server_listener_initialize_retry_timer(sp);
136
115
 
137
116
  // Check and set fd as prellocated
138
117
  if (grpc_tcp_server_pre_allocated_fd(s) == fd) {