grpc 1.24.0 → 1.25.0.pre1

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 (504) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +306 -243
  3. data/etc/roots.pem +0 -100
  4. data/include/grpc/grpc_security.h +44 -18
  5. data/include/grpc/impl/codegen/grpc_types.h +15 -0
  6. data/include/grpc/impl/codegen/port_platform.h +27 -11
  7. data/include/grpc/impl/codegen/sync_generic.h +1 -1
  8. data/src/boringssl/err_data.c +695 -650
  9. data/src/core/ext/filters/client_channel/client_channel.cc +257 -179
  10. data/src/core/ext/filters/client_channel/client_channel.h +24 -0
  11. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +2 -3
  12. data/src/core/ext/filters/client_channel/client_channel_factory.h +1 -5
  13. data/src/core/ext/filters/client_channel/health/health_check_client.cc +18 -45
  14. data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -13
  15. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy.cc +2 -3
  17. data/src/core/ext/filters/client_channel/lb_policy.h +65 -55
  18. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -14
  19. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +113 -36
  20. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -19
  21. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +36 -13
  22. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -10
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +814 -1589
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +2 -5
  25. data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -6
  26. data/src/core/ext/filters/client_channel/resolver.cc +1 -2
  27. data/src/core/ext/filters/client_channel/resolver.h +8 -16
  28. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +25 -8
  29. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +46 -12
  30. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +10 -17
  31. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +7 -8
  32. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  33. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +111 -44
  34. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +22 -14
  35. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  36. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +2 -2
  37. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +29 -10
  38. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +27 -36
  39. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +7 -10
  40. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -16
  41. data/src/core/ext/filters/client_channel/resolver_factory.h +4 -8
  42. data/src/core/ext/filters/client_channel/resolver_registry.cc +1 -1
  43. data/src/core/ext/filters/client_channel/resolver_registry.h +1 -1
  44. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
  45. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +7 -8
  46. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +1 -1
  47. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -5
  48. data/src/core/ext/filters/client_channel/retry_throttle.h +1 -4
  49. data/src/core/ext/filters/client_channel/service_config.h +8 -8
  50. data/src/core/ext/filters/client_channel/subchannel.cc +53 -86
  51. data/src/core/ext/filters/client_channel/subchannel.h +7 -9
  52. data/src/core/ext/filters/client_channel/subchannel_interface.h +9 -13
  53. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +3 -6
  54. data/src/core/ext/filters/client_channel/{lb_policy/xds/xds_load_balancer_api.cc → xds/xds_api.cc} +169 -52
  55. data/src/core/ext/filters/client_channel/xds/xds_api.h +171 -0
  56. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +450 -0
  57. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +99 -0
  58. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel.h +8 -6
  59. data/src/core/ext/filters/client_channel/xds/xds_channel_args.h +26 -0
  60. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel_secure.cc +28 -11
  61. data/src/core/ext/filters/client_channel/xds/xds_client.cc +1413 -0
  62. data/src/core/ext/filters/client_channel/xds/xds_client.h +221 -0
  63. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.cc +1 -5
  64. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.h +3 -4
  65. data/src/core/ext/filters/deadline/deadline_filter.cc +20 -20
  66. data/src/core/ext/filters/http/client/http_client_filter.cc +15 -15
  67. data/src/core/ext/filters/http/client_authority_filter.cc +14 -14
  68. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +12 -12
  69. data/src/core/ext/filters/max_age/max_age_filter.cc +59 -50
  70. data/src/core/ext/filters/message_size/message_size_filter.cc +18 -18
  71. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -14
  72. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +233 -175
  73. data/src/core/ext/transport/chttp2/transport/flow_control.h +21 -24
  74. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +253 -163
  75. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +24 -12
  76. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -3
  77. data/src/core/ext/transport/chttp2/transport/internal.h +13 -15
  78. data/src/core/ext/transport/chttp2/transport/writing.cc +3 -0
  79. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -13
  80. data/src/core/lib/channel/channel_args.cc +16 -0
  81. data/src/core/lib/channel/channel_args.h +22 -0
  82. data/src/core/lib/channel/channelz.cc +5 -6
  83. data/src/core/lib/channel/channelz.h +1 -1
  84. data/src/core/lib/channel/connected_channel.cc +20 -20
  85. data/src/core/lib/channel/handshaker.h +3 -4
  86. data/src/core/lib/channel/handshaker_factory.h +1 -3
  87. data/src/core/lib/debug/trace.h +3 -2
  88. data/src/core/lib/gprpp/arena.cc +3 -3
  89. data/src/core/lib/gprpp/arena.h +2 -3
  90. data/src/core/lib/gprpp/inlined_vector.h +9 -0
  91. data/src/core/lib/gprpp/map.h +3 -501
  92. data/src/core/lib/gprpp/memory.h +45 -41
  93. data/src/core/lib/gprpp/mpscq.cc +108 -0
  94. data/src/core/lib/gprpp/mpscq.h +98 -0
  95. data/src/core/lib/gprpp/orphanable.h +6 -11
  96. data/src/core/lib/gprpp/ref_counted.h +25 -19
  97. data/src/core/lib/gprpp/set.h +33 -0
  98. data/src/core/lib/gprpp/thd.h +2 -4
  99. data/src/core/lib/http/httpcli.cc +1 -1
  100. data/src/core/lib/http/httpcli_security_connector.cc +15 -11
  101. data/src/core/lib/http/parser.cc +1 -1
  102. data/src/core/lib/iomgr/buffer_list.cc +4 -5
  103. data/src/core/lib/iomgr/buffer_list.h +5 -6
  104. data/src/core/lib/iomgr/call_combiner.cc +4 -5
  105. data/src/core/lib/iomgr/call_combiner.h +2 -2
  106. data/src/core/lib/iomgr/cfstream_handle.h +3 -5
  107. data/src/core/lib/iomgr/closure.h +8 -3
  108. data/src/core/lib/iomgr/combiner.cc +45 -82
  109. data/src/core/lib/iomgr/combiner.h +32 -8
  110. data/src/core/lib/iomgr/endpoint_cfstream.cc +5 -3
  111. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -15
  112. data/src/core/lib/iomgr/exec_ctx.h +4 -3
  113. data/src/core/lib/iomgr/executor.cc +4 -2
  114. data/src/core/lib/iomgr/executor.h +3 -0
  115. data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -6
  116. data/src/core/lib/iomgr/executor/threadpool.cc +1 -2
  117. data/src/core/lib/iomgr/executor/threadpool.h +7 -11
  118. data/src/core/lib/iomgr/resource_quota.cc +55 -51
  119. data/src/core/lib/iomgr/resource_quota.h +13 -9
  120. data/src/core/lib/iomgr/socket_utils_common_posix.cc +13 -0
  121. data/src/core/lib/iomgr/socket_utils_posix.h +4 -0
  122. data/src/core/lib/iomgr/tcp_client_posix.cc +4 -11
  123. data/src/core/lib/iomgr/tcp_custom.cc +9 -7
  124. data/src/core/lib/iomgr/tcp_posix.cc +20 -16
  125. data/src/core/lib/iomgr/tcp_server.h +1 -4
  126. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -5
  127. data/src/core/lib/iomgr/tcp_server_posix.cc +1 -1
  128. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +2 -11
  129. data/src/core/lib/iomgr/timer_custom.cc +2 -2
  130. data/src/core/lib/iomgr/udp_server.cc +3 -2
  131. data/src/core/lib/iomgr/udp_server.h +6 -12
  132. data/src/core/lib/json/json.h +1 -1
  133. data/src/core/lib/json/json_string.cc +2 -2
  134. data/src/core/lib/profiling/basic_timers.cc +2 -2
  135. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -2
  136. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -1
  137. data/src/core/lib/security/credentials/credentials.h +4 -20
  138. data/src/core/lib/security/credentials/fake/fake_credentials.cc +4 -4
  139. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -3
  140. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +64 -0
  141. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +4 -4
  142. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -7
  143. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +2 -0
  144. data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -4
  145. data/src/core/lib/security/security_connector/security_connector.cc +1 -0
  146. data/src/core/lib/security/security_connector/security_connector.h +19 -17
  147. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +8 -5
  148. data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
  149. data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
  150. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +14 -6
  151. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +4 -2
  152. data/src/core/lib/security/transport/client_auth_filter.cc +17 -17
  153. data/src/core/lib/security/transport/security_handshaker.cc +29 -13
  154. data/src/core/lib/security/transport/security_handshaker.h +4 -2
  155. data/src/core/lib/security/transport/server_auth_filter.cc +14 -14
  156. data/src/core/lib/slice/slice.cc +2 -10
  157. data/src/core/lib/slice/slice_hash_table.h +4 -6
  158. data/src/core/lib/slice/slice_intern.cc +42 -39
  159. data/src/core/lib/slice/slice_internal.h +3 -3
  160. data/src/core/lib/slice/slice_utils.h +21 -4
  161. data/src/core/lib/slice/slice_weak_hash_table.h +4 -6
  162. data/src/core/lib/surface/call.cc +3 -3
  163. data/src/core/lib/surface/channel.cc +7 -0
  164. data/src/core/lib/surface/completion_queue.cc +12 -11
  165. data/src/core/lib/surface/completion_queue.h +4 -2
  166. data/src/core/lib/surface/init.cc +1 -0
  167. data/src/core/lib/surface/lame_client.cc +33 -18
  168. data/src/core/lib/surface/server.cc +77 -76
  169. data/src/core/lib/surface/version.cc +1 -1
  170. data/src/core/lib/transport/byte_stream.h +3 -7
  171. data/src/core/lib/transport/connectivity_state.cc +112 -98
  172. data/src/core/lib/transport/connectivity_state.h +100 -50
  173. data/src/core/lib/transport/static_metadata.cc +276 -288
  174. data/src/core/lib/transport/static_metadata.h +73 -76
  175. data/src/core/lib/transport/status_conversion.cc +1 -1
  176. data/src/core/lib/transport/status_metadata.cc +1 -1
  177. data/src/core/lib/transport/transport.cc +2 -2
  178. data/src/core/lib/transport/transport.h +12 -4
  179. data/src/core/lib/transport/transport_op_string.cc +14 -11
  180. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -1
  181. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +1 -1
  182. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +5 -5
  183. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -2
  184. data/src/core/tsi/fake_transport_security.cc +7 -5
  185. data/src/core/tsi/grpc_shadow_boringssl.h +2918 -2627
  186. data/src/core/tsi/local_transport_security.cc +8 -6
  187. data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -3
  188. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -2
  189. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +7 -5
  190. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -6
  191. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -2
  192. data/src/core/tsi/ssl_transport_security.cc +12 -12
  193. data/src/core/tsi/ssl_transport_security.h +2 -2
  194. data/src/core/tsi/transport_security_grpc.cc +7 -0
  195. data/src/core/tsi/transport_security_grpc.h +6 -0
  196. data/src/ruby/ext/grpc/extconf.rb +1 -0
  197. data/src/ruby/ext/grpc/rb_call.c +1 -1
  198. data/src/ruby/ext/grpc/rb_channel.c +1 -1
  199. data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
  200. data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
  201. data/src/ruby/lib/grpc/version.rb +1 -1
  202. data/src/ruby/spec/google_rpc_status_utils_spec.rb +2 -2
  203. data/third_party/boringssl/crypto/asn1/a_bool.c +18 -5
  204. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +17 -221
  205. data/third_party/boringssl/crypto/asn1/a_dup.c +0 -24
  206. data/third_party/boringssl/crypto/asn1/a_enum.c +2 -2
  207. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +10 -72
  208. data/third_party/boringssl/crypto/asn1/a_int.c +12 -71
  209. data/third_party/boringssl/crypto/asn1/a_mbstr.c +110 -216
  210. data/third_party/boringssl/crypto/asn1/a_object.c +16 -5
  211. data/third_party/boringssl/crypto/asn1/a_strnid.c +1 -0
  212. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -1
  213. data/third_party/boringssl/crypto/asn1/tasn_enc.c +3 -1
  214. data/third_party/boringssl/crypto/base64/base64.c +2 -2
  215. data/third_party/boringssl/crypto/bio/bio.c +73 -9
  216. data/third_party/boringssl/crypto/bio/connect.c +4 -0
  217. data/third_party/boringssl/crypto/bio/fd.c +4 -0
  218. data/third_party/boringssl/crypto/bio/file.c +5 -2
  219. data/third_party/boringssl/crypto/bio/socket.c +4 -0
  220. data/third_party/boringssl/crypto/bio/socket_helper.c +4 -0
  221. data/third_party/boringssl/crypto/bn_extra/convert.c +11 -7
  222. data/third_party/boringssl/crypto/bytestring/ber.c +8 -4
  223. data/third_party/boringssl/crypto/bytestring/cbb.c +19 -7
  224. data/third_party/boringssl/crypto/bytestring/cbs.c +28 -15
  225. data/third_party/boringssl/crypto/bytestring/internal.h +28 -7
  226. data/third_party/boringssl/crypto/bytestring/unicode.c +155 -0
  227. data/third_party/boringssl/crypto/chacha/chacha.c +36 -19
  228. data/third_party/boringssl/crypto/chacha/internal.h +45 -0
  229. data/third_party/boringssl/crypto/cipher_extra/cipher_extra.c +29 -0
  230. data/third_party/boringssl/crypto/cipher_extra/e_aesccm.c +269 -25
  231. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +16 -14
  232. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +54 -38
  233. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +133 -41
  234. data/third_party/boringssl/crypto/cipher_extra/e_tls.c +23 -15
  235. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +24 -15
  236. data/third_party/boringssl/crypto/cmac/cmac.c +62 -25
  237. data/third_party/boringssl/crypto/conf/conf.c +7 -0
  238. data/third_party/boringssl/crypto/cpu-arm-linux.c +4 -148
  239. data/third_party/boringssl/crypto/cpu-arm-linux.h +201 -0
  240. data/third_party/boringssl/crypto/cpu-intel.c +45 -51
  241. data/third_party/boringssl/crypto/crypto.c +39 -22
  242. data/third_party/boringssl/crypto/curve25519/spake25519.c +1 -1
  243. data/third_party/boringssl/crypto/dsa/dsa.c +77 -53
  244. data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +20 -8
  245. data/third_party/boringssl/crypto/ec_extra/ec_derive.c +96 -0
  246. data/third_party/boringssl/crypto/{ecdh/ecdh.c → ecdh_extra/ecdh_extra.c} +20 -58
  247. data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +1 -9
  248. data/third_party/boringssl/crypto/engine/engine.c +2 -1
  249. data/third_party/boringssl/crypto/err/err.c +2 -0
  250. data/third_party/boringssl/crypto/err/internal.h +2 -2
  251. data/third_party/boringssl/crypto/evp/evp.c +89 -8
  252. data/third_party/boringssl/crypto/evp/evp_asn1.c +56 -5
  253. data/third_party/boringssl/crypto/evp/evp_ctx.c +52 -14
  254. data/third_party/boringssl/crypto/evp/internal.h +18 -1
  255. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +5 -0
  256. data/third_party/boringssl/crypto/evp/p_ec.c +51 -3
  257. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +6 -7
  258. data/third_party/boringssl/crypto/evp/p_ed25519.c +36 -3
  259. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +76 -45
  260. data/third_party/boringssl/crypto/evp/p_rsa.c +3 -1
  261. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +5 -0
  262. data/third_party/boringssl/crypto/evp/p_x25519.c +110 -0
  263. data/third_party/boringssl/crypto/evp/p_x25519_asn1.c +249 -0
  264. data/third_party/boringssl/crypto/evp/scrypt.c +6 -2
  265. data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +34 -274
  266. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +161 -21
  267. data/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.c +111 -13
  268. data/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.c +17 -21
  269. data/third_party/boringssl/crypto/fipsmodule/bcm.c +119 -7
  270. data/third_party/boringssl/crypto/fipsmodule/bn/bn.c +19 -2
  271. data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +2 -2
  272. data/third_party/boringssl/crypto/fipsmodule/bn/ctx.c +93 -160
  273. data/third_party/boringssl/crypto/fipsmodule/bn/div.c +48 -57
  274. data/third_party/boringssl/crypto/fipsmodule/bn/div_extra.c +87 -0
  275. data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +143 -211
  276. data/third_party/boringssl/crypto/fipsmodule/bn/gcd.c +0 -305
  277. data/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.c +325 -0
  278. data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +168 -50
  279. data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +68 -92
  280. data/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.c +7 -6
  281. data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +11 -14
  282. data/third_party/boringssl/crypto/fipsmodule/bn/prime.c +358 -443
  283. data/third_party/boringssl/crypto/fipsmodule/bn/random.c +25 -35
  284. data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.c +20 -25
  285. data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +76 -5
  286. data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +14 -14
  287. data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +7 -2
  288. data/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.c +383 -516
  289. data/third_party/boringssl/crypto/fipsmodule/cipher/e_des.c +4 -0
  290. data/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +3 -4
  291. data/third_party/boringssl/crypto/fipsmodule/delocate.h +3 -2
  292. data/third_party/boringssl/crypto/fipsmodule/digest/digest.c +32 -17
  293. data/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +3 -3
  294. data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +228 -122
  295. data/third_party/boringssl/crypto/fipsmodule/ec/ec_key.c +34 -8
  296. data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +311 -98
  297. data/third_party/boringssl/crypto/fipsmodule/ec/felem.c +82 -0
  298. data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +263 -97
  299. data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +22 -59
  300. data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +317 -234
  301. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +9473 -9475
  302. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +313 -109
  303. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.h +36 -0
  304. data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +96 -0
  305. data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +126 -792
  306. data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +84 -0
  307. data/third_party/boringssl/crypto/fipsmodule/ec/util.c +163 -12
  308. data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +84 -211
  309. data/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.c +122 -0
  310. data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +60 -205
  311. data/third_party/boringssl/crypto/fipsmodule/fips_shared_support.c +32 -0
  312. data/third_party/boringssl/crypto/fipsmodule/is_fips.c +2 -0
  313. data/third_party/boringssl/crypto/fipsmodule/md4/md4.c +3 -1
  314. data/third_party/boringssl/crypto/fipsmodule/md5/internal.h +37 -0
  315. data/third_party/boringssl/crypto/fipsmodule/md5/md5.c +11 -8
  316. data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +35 -79
  317. data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +7 -39
  318. data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +7 -27
  319. data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +123 -309
  320. data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +189 -126
  321. data/third_party/boringssl/crypto/fipsmodule/modes/ofb.c +3 -2
  322. data/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.c +2 -2
  323. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +35 -0
  324. data/third_party/boringssl/crypto/fipsmodule/rand/rand.c +24 -19
  325. data/third_party/boringssl/crypto/fipsmodule/rand/urandom.c +256 -77
  326. data/third_party/boringssl/crypto/fipsmodule/rsa/padding.c +10 -7
  327. data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +5 -1
  328. data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +131 -14
  329. data/third_party/boringssl/crypto/fipsmodule/self_check/self_check.c +83 -10
  330. data/third_party/boringssl/crypto/fipsmodule/sha/internal.h +53 -0
  331. data/third_party/boringssl/crypto/fipsmodule/sha/sha1.c +9 -13
  332. data/third_party/boringssl/crypto/fipsmodule/sha/sha256.c +18 -12
  333. data/third_party/boringssl/crypto/fipsmodule/sha/sha512.c +95 -168
  334. data/third_party/boringssl/crypto/hrss/hrss.c +2201 -0
  335. data/third_party/boringssl/crypto/hrss/internal.h +62 -0
  336. data/third_party/boringssl/crypto/internal.h +95 -20
  337. data/third_party/boringssl/crypto/lhash/lhash.c +45 -33
  338. data/third_party/boringssl/crypto/mem.c +39 -2
  339. data/third_party/boringssl/crypto/obj/obj.c +4 -4
  340. data/third_party/boringssl/crypto/obj/obj_dat.h +6181 -875
  341. data/third_party/boringssl/crypto/pem/pem_all.c +2 -3
  342. data/third_party/boringssl/crypto/pem/pem_info.c +144 -162
  343. data/third_party/boringssl/crypto/pem/pem_lib.c +53 -52
  344. data/third_party/boringssl/crypto/pem/pem_pkey.c +13 -21
  345. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +15 -22
  346. data/third_party/boringssl/crypto/pkcs7/pkcs7_x509.c +168 -16
  347. data/third_party/boringssl/crypto/pkcs8/internal.h +11 -0
  348. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +24 -15
  349. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +42 -25
  350. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +559 -43
  351. data/third_party/boringssl/crypto/pool/internal.h +1 -1
  352. data/third_party/boringssl/crypto/pool/pool.c +21 -0
  353. data/third_party/boringssl/crypto/rand_extra/deterministic.c +8 -0
  354. data/third_party/boringssl/crypto/rand_extra/fuchsia.c +1 -14
  355. data/third_party/boringssl/crypto/refcount_lock.c +2 -2
  356. data/third_party/boringssl/crypto/rsa_extra/rsa_print.c +22 -0
  357. data/third_party/boringssl/crypto/siphash/siphash.c +80 -0
  358. data/third_party/boringssl/crypto/stack/stack.c +83 -32
  359. data/third_party/boringssl/crypto/thread_none.c +2 -2
  360. data/third_party/boringssl/crypto/thread_pthread.c +2 -2
  361. data/third_party/boringssl/crypto/thread_win.c +38 -19
  362. data/third_party/boringssl/crypto/x509/a_strex.c +22 -2
  363. data/third_party/boringssl/crypto/x509/asn1_gen.c +2 -1
  364. data/third_party/boringssl/crypto/x509/by_dir.c +7 -0
  365. data/third_party/boringssl/crypto/x509/by_file.c +12 -10
  366. data/third_party/boringssl/crypto/x509/t_crl.c +5 -8
  367. data/third_party/boringssl/crypto/x509/t_req.c +1 -3
  368. data/third_party/boringssl/crypto/x509/t_x509.c +5 -8
  369. data/third_party/boringssl/crypto/x509/x509_cmp.c +1 -1
  370. data/third_party/boringssl/crypto/x509/x509_def.c +1 -1
  371. data/third_party/boringssl/crypto/x509/x509_lu.c +114 -5
  372. data/third_party/boringssl/crypto/x509/x509_req.c +20 -0
  373. data/third_party/boringssl/crypto/x509/x509_set.c +5 -0
  374. data/third_party/boringssl/crypto/x509/x509_trs.c +1 -0
  375. data/third_party/boringssl/crypto/x509/x509_txt.c +4 -5
  376. data/third_party/boringssl/crypto/x509/x509_vfy.c +145 -138
  377. data/third_party/boringssl/crypto/x509/x509_vpm.c +2 -0
  378. data/third_party/boringssl/crypto/x509/x509cset.c +40 -0
  379. data/third_party/boringssl/crypto/x509/x509name.c +2 -3
  380. data/third_party/boringssl/crypto/x509/x_all.c +109 -210
  381. data/third_party/boringssl/crypto/x509/x_x509.c +6 -0
  382. data/third_party/boringssl/crypto/x509v3/ext_dat.h +1 -3
  383. data/third_party/boringssl/crypto/x509v3/internal.h +56 -0
  384. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +2 -0
  385. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -0
  386. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +4 -2
  387. data/third_party/boringssl/crypto/x509v3/v3_akey.c +5 -2
  388. data/third_party/boringssl/crypto/x509v3/v3_alt.c +19 -13
  389. data/third_party/boringssl/crypto/x509v3/v3_conf.c +2 -1
  390. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +3 -2
  391. data/third_party/boringssl/crypto/x509v3/v3_genn.c +1 -6
  392. data/third_party/boringssl/crypto/x509v3/v3_lib.c +1 -0
  393. data/third_party/boringssl/crypto/x509v3/v3_ocsp.c +68 -0
  394. data/third_party/boringssl/crypto/x509v3/v3_pci.c +2 -1
  395. data/third_party/boringssl/crypto/x509v3/v3_purp.c +47 -69
  396. data/third_party/boringssl/crypto/x509v3/v3_skey.c +5 -2
  397. data/third_party/boringssl/crypto/x509v3/v3_utl.c +69 -25
  398. data/third_party/boringssl/include/openssl/aead.h +45 -19
  399. data/third_party/boringssl/include/openssl/aes.h +32 -7
  400. data/third_party/boringssl/include/openssl/asn1.h +7 -77
  401. data/third_party/boringssl/include/openssl/base.h +120 -6
  402. data/third_party/boringssl/include/openssl/base64.h +4 -1
  403. data/third_party/boringssl/include/openssl/bio.h +112 -81
  404. data/third_party/boringssl/include/openssl/blowfish.h +3 -3
  405. data/third_party/boringssl/include/openssl/bn.h +55 -29
  406. data/third_party/boringssl/include/openssl/buf.h +2 -2
  407. data/third_party/boringssl/include/openssl/bytestring.h +54 -32
  408. data/third_party/boringssl/include/openssl/cast.h +2 -2
  409. data/third_party/boringssl/include/openssl/cipher.h +46 -16
  410. data/third_party/boringssl/include/openssl/cmac.h +6 -2
  411. data/third_party/boringssl/include/openssl/conf.h +3 -6
  412. data/third_party/boringssl/include/openssl/cpu.h +25 -9
  413. data/third_party/boringssl/include/openssl/crypto.h +32 -10
  414. data/third_party/boringssl/include/openssl/curve25519.h +4 -4
  415. data/third_party/boringssl/include/openssl/dh.h +3 -2
  416. data/third_party/boringssl/include/openssl/digest.h +21 -7
  417. data/third_party/boringssl/include/openssl/dsa.h +8 -2
  418. data/third_party/boringssl/include/openssl/e_os2.h +18 -0
  419. data/third_party/boringssl/include/openssl/ec.h +25 -21
  420. data/third_party/boringssl/include/openssl/ec_key.h +36 -8
  421. data/third_party/boringssl/include/openssl/ecdh.h +17 -0
  422. data/third_party/boringssl/include/openssl/ecdsa.h +3 -3
  423. data/third_party/boringssl/include/openssl/engine.h +4 -4
  424. data/third_party/boringssl/include/openssl/err.h +3 -0
  425. data/third_party/boringssl/include/openssl/evp.h +199 -42
  426. data/third_party/boringssl/include/openssl/hmac.h +4 -4
  427. data/third_party/boringssl/include/openssl/hrss.h +100 -0
  428. data/third_party/boringssl/include/openssl/lhash.h +131 -23
  429. data/third_party/boringssl/include/openssl/md4.h +6 -4
  430. data/third_party/boringssl/include/openssl/md5.h +6 -4
  431. data/third_party/boringssl/include/openssl/mem.h +6 -2
  432. data/third_party/boringssl/include/openssl/nid.h +3 -0
  433. data/third_party/boringssl/include/openssl/obj.h +3 -0
  434. data/third_party/boringssl/include/openssl/pem.h +102 -64
  435. data/third_party/boringssl/include/openssl/pkcs7.h +136 -3
  436. data/third_party/boringssl/include/openssl/pkcs8.h +42 -3
  437. data/third_party/boringssl/include/openssl/pool.h +13 -2
  438. data/third_party/boringssl/include/openssl/ripemd.h +5 -4
  439. data/third_party/boringssl/include/openssl/rsa.h +46 -15
  440. data/third_party/boringssl/include/openssl/sha.h +40 -28
  441. data/third_party/boringssl/include/openssl/siphash.h +37 -0
  442. data/third_party/boringssl/include/openssl/span.h +17 -9
  443. data/third_party/boringssl/include/openssl/ssl.h +766 -393
  444. data/third_party/boringssl/include/openssl/ssl3.h +4 -3
  445. data/third_party/boringssl/include/openssl/stack.h +134 -77
  446. data/third_party/boringssl/include/openssl/thread.h +1 -1
  447. data/third_party/boringssl/include/openssl/tls1.h +25 -9
  448. data/third_party/boringssl/include/openssl/type_check.h +14 -15
  449. data/third_party/boringssl/include/openssl/x509.h +28 -3
  450. data/third_party/boringssl/include/openssl/x509_vfy.h +98 -32
  451. data/third_party/boringssl/include/openssl/x509v3.h +17 -13
  452. data/third_party/boringssl/ssl/d1_both.cc +9 -18
  453. data/third_party/boringssl/ssl/d1_lib.cc +4 -3
  454. data/third_party/boringssl/ssl/d1_pkt.cc +4 -4
  455. data/third_party/boringssl/ssl/d1_srtp.cc +15 -15
  456. data/third_party/boringssl/ssl/dtls_method.cc +0 -1
  457. data/third_party/boringssl/ssl/dtls_record.cc +28 -28
  458. data/third_party/boringssl/ssl/handoff.cc +295 -91
  459. data/third_party/boringssl/ssl/handshake.cc +133 -72
  460. data/third_party/boringssl/ssl/handshake_client.cc +218 -189
  461. data/third_party/boringssl/ssl/handshake_server.cc +399 -272
  462. data/third_party/boringssl/ssl/internal.h +1413 -928
  463. data/third_party/boringssl/ssl/s3_both.cc +175 -36
  464. data/third_party/boringssl/ssl/s3_lib.cc +9 -13
  465. data/third_party/boringssl/ssl/s3_pkt.cc +63 -29
  466. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +55 -35
  467. data/third_party/boringssl/ssl/ssl_asn1.cc +57 -73
  468. data/third_party/boringssl/ssl/ssl_buffer.cc +13 -12
  469. data/third_party/boringssl/ssl/ssl_cert.cc +313 -210
  470. data/third_party/boringssl/ssl/ssl_cipher.cc +159 -221
  471. data/third_party/boringssl/ssl/ssl_file.cc +2 -0
  472. data/third_party/boringssl/ssl/ssl_key_share.cc +164 -19
  473. data/third_party/boringssl/ssl/ssl_lib.cc +847 -555
  474. data/third_party/boringssl/ssl/ssl_privkey.cc +441 -111
  475. data/third_party/boringssl/ssl/ssl_session.cc +230 -178
  476. data/third_party/boringssl/ssl/ssl_transcript.cc +21 -142
  477. data/third_party/boringssl/ssl/ssl_versions.cc +88 -93
  478. data/third_party/boringssl/ssl/ssl_x509.cc +279 -218
  479. data/third_party/boringssl/ssl/t1_enc.cc +5 -96
  480. data/third_party/boringssl/ssl/t1_lib.cc +931 -678
  481. data/third_party/boringssl/ssl/tls13_both.cc +251 -121
  482. data/third_party/boringssl/ssl/tls13_client.cc +129 -73
  483. data/third_party/boringssl/ssl/tls13_enc.cc +350 -282
  484. data/third_party/boringssl/ssl/tls13_server.cc +259 -192
  485. data/third_party/boringssl/ssl/tls_method.cc +26 -21
  486. data/third_party/boringssl/ssl/tls_record.cc +42 -47
  487. data/third_party/boringssl/third_party/fiat/curve25519.c +261 -1324
  488. data/third_party/boringssl/third_party/fiat/curve25519_32.h +911 -0
  489. data/third_party/boringssl/third_party/fiat/curve25519_64.h +559 -0
  490. data/third_party/boringssl/third_party/fiat/p256.c +238 -999
  491. data/third_party/boringssl/third_party/fiat/p256_32.h +3226 -0
  492. data/third_party/boringssl/third_party/fiat/p256_64.h +1217 -0
  493. data/third_party/upb/upb/port_def.inc +1 -1
  494. data/third_party/upb/upb/table.c +2 -1
  495. metadata +71 -43
  496. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +0 -127
  497. data/src/core/lib/gpr/mpscq.cc +0 -117
  498. data/src/core/lib/gpr/mpscq.h +0 -88
  499. data/src/core/lib/gprpp/abstract.h +0 -47
  500. data/src/core/lib/gprpp/pair.h +0 -38
  501. data/third_party/boringssl/crypto/cipher_extra/e_ssl3.c +0 -460
  502. data/third_party/boringssl/crypto/fipsmodule/modes/ccm.c +0 -256
  503. data/third_party/boringssl/include/openssl/lhash_macros.h +0 -174
  504. data/third_party/boringssl/ssl/custom_extensions.cc +0 -265
@@ -124,13 +124,15 @@ bool grpc_resource_user_safe_alloc(grpc_resource_user* resource_user,
124
124
  * If optional_on_done is NULL, then allocate immediately. This may push the
125
125
  * quota over-limit, at which point reclamation will kick in. The caller is
126
126
  * always responsible to free the memory eventually.
127
- * If optional_on_done is non-NULL, it will be scheduled without error when the
128
- * allocation has been granted by the quota, and the caller is responsible to
129
- * free the memory eventually. Or it may be scheduled with an error, in which
130
- * case the caller fails to allocate the memory and shouldn't free the memory.
127
+ * Returns true if the allocation was successful. Otherwise, if optional_on_done
128
+ * is non-NULL, it will be scheduled without error when the allocation has been
129
+ * granted by the quota, and the caller is responsible to free the memory
130
+ * eventually. Or it may be scheduled with an error, in which case the caller
131
+ * fails to allocate the memory and shouldn't free the memory.
131
132
  */
132
- void grpc_resource_user_alloc(grpc_resource_user* resource_user, size_t size,
133
- grpc_closure* optional_on_done);
133
+ bool grpc_resource_user_alloc(grpc_resource_user* resource_user, size_t size,
134
+ grpc_closure* optional_on_done)
135
+ GRPC_MUST_USE_RESULT;
134
136
  /* Release memory back to the quota */
135
137
  void grpc_resource_user_free(grpc_resource_user* resource_user, size_t size);
136
138
  /* Post a memory reclaimer to the resource user. Only one benign and one
@@ -165,9 +167,11 @@ void grpc_resource_user_slice_allocator_init(
165
167
  grpc_resource_user* resource_user, grpc_iomgr_cb_func cb, void* p);
166
168
 
167
169
  /* Allocate \a count slices of length \a length into \a dest. Only one request
168
- can be outstanding at a time. */
169
- void grpc_resource_user_alloc_slices(
170
+ can be outstanding at a time.
171
+ Returns whether the slice was allocated inline in the function. If true,
172
+ the \a slice_allocator->on_allocated callback will not be called. */
173
+ bool grpc_resource_user_alloc_slices(
170
174
  grpc_resource_user_slice_allocator* slice_allocator, size_t length,
171
- size_t count, grpc_slice_buffer* dest);
175
+ size_t count, grpc_slice_buffer* dest) GRPC_MUST_USE_RESULT;
172
176
 
173
177
  #endif /* GRPC_CORE_LIB_IOMGR_RESOURCE_QUOTA_H */
@@ -330,6 +330,19 @@ grpc_error* grpc_set_socket_with_mutator(int fd, grpc_socket_mutator* mutator) {
330
330
  return GRPC_ERROR_NONE;
331
331
  }
332
332
 
333
+ grpc_error* grpc_apply_socket_mutator_in_args(int fd,
334
+ const grpc_channel_args* args) {
335
+ const grpc_arg* socket_mutator_arg =
336
+ grpc_channel_args_find(args, GRPC_ARG_SOCKET_MUTATOR);
337
+ if (socket_mutator_arg == nullptr) {
338
+ return GRPC_ERROR_NONE;
339
+ }
340
+ GPR_DEBUG_ASSERT(socket_mutator_arg->type == GRPC_ARG_POINTER);
341
+ grpc_socket_mutator* mutator =
342
+ static_cast<grpc_socket_mutator*>(socket_mutator_arg->value.pointer.p);
343
+ return grpc_set_socket_with_mutator(fd, mutator);
344
+ }
345
+
333
346
  static gpr_once g_probe_ipv6_once = GPR_ONCE_INIT;
334
347
  static int g_ipv6_loopback_available;
335
348
 
@@ -91,6 +91,10 @@ grpc_error* grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes);
91
91
  /* Tries to set the socket using a grpc_socket_mutator */
92
92
  grpc_error* grpc_set_socket_with_mutator(int fd, grpc_socket_mutator* mutator);
93
93
 
94
+ /* Extracts the first socket mutator from args if any and applies on the fd. */
95
+ grpc_error* grpc_apply_socket_mutator_in_args(int fd,
96
+ const grpc_channel_args* args);
97
+
94
98
  /* An enum to keep track of IPv4/IPv6 socket modes.
95
99
 
96
100
  Currently, this information is only used when a socket is first created, but
@@ -84,17 +84,10 @@ static grpc_error* prepare_socket(const grpc_resolved_address* addr, int fd,
84
84
  }
85
85
  err = grpc_set_socket_no_sigpipe_if_possible(fd);
86
86
  if (err != GRPC_ERROR_NONE) goto error;
87
- if (channel_args) {
88
- for (size_t i = 0; i < channel_args->num_args; i++) {
89
- if (0 == strcmp(channel_args->args[i].key, GRPC_ARG_SOCKET_MUTATOR)) {
90
- GPR_ASSERT(channel_args->args[i].type == GRPC_ARG_POINTER);
91
- grpc_socket_mutator* mutator = static_cast<grpc_socket_mutator*>(
92
- channel_args->args[i].value.pointer.p);
93
- err = grpc_set_socket_with_mutator(fd, mutator);
94
- if (err != GRPC_ERROR_NONE) goto error;
95
- }
96
- }
97
- }
87
+
88
+ err = grpc_apply_socket_mutator_in_args(fd, channel_args);
89
+ if (err != GRPC_ERROR_NONE) goto error;
90
+
98
91
  goto done;
99
92
 
100
93
  error:
@@ -193,7 +193,7 @@ static void tcp_read_allocation_done(void* tcpp, grpc_error* error) {
193
193
  }
194
194
 
195
195
  static void endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* read_slices,
196
- grpc_closure* cb, bool urgent) {
196
+ grpc_closure* cb, bool /*urgent*/) {
197
197
  custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)ep;
198
198
  GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
199
199
  GPR_ASSERT(tcp->read_cb == nullptr);
@@ -201,9 +201,11 @@ static void endpoint_read(grpc_endpoint* ep, grpc_slice_buffer* read_slices,
201
201
  tcp->read_slices = read_slices;
202
202
  grpc_slice_buffer_reset_and_unref_internal(read_slices);
203
203
  TCP_REF(tcp, "read");
204
- grpc_resource_user_alloc_slices(&tcp->slice_allocator,
205
- GRPC_TCP_DEFAULT_READ_SLICE_SIZE, 1,
206
- tcp->read_slices);
204
+ if (grpc_resource_user_alloc_slices(&tcp->slice_allocator,
205
+ GRPC_TCP_DEFAULT_READ_SLICE_SIZE, 1,
206
+ tcp->read_slices)) {
207
+ tcp_read_allocation_done(tcp, GRPC_ERROR_NONE);
208
+ }
207
209
  }
208
210
 
209
211
  static void custom_write_callback(grpc_custom_socket* socket,
@@ -222,7 +224,7 @@ static void custom_write_callback(grpc_custom_socket* socket,
222
224
  }
223
225
 
224
226
  static void endpoint_write(grpc_endpoint* ep, grpc_slice_buffer* write_slices,
225
- grpc_closure* cb, void* arg) {
227
+ grpc_closure* cb, void* /*arg*/) {
226
228
  custom_tcp_endpoint* tcp = (custom_tcp_endpoint*)ep;
227
229
  GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
228
230
 
@@ -325,9 +327,9 @@ static grpc_resource_user* endpoint_get_resource_user(grpc_endpoint* ep) {
325
327
  return tcp->resource_user;
326
328
  }
327
329
 
328
- static int endpoint_get_fd(grpc_endpoint* ep) { return -1; }
330
+ static int endpoint_get_fd(grpc_endpoint* /*ep*/) { return -1; }
329
331
 
330
- static bool endpoint_can_track_err(grpc_endpoint* ep) { return false; }
332
+ static bool endpoint_can_track_err(grpc_endpoint* /*ep*/) { return false; }
331
333
 
332
334
  static grpc_endpoint_vtable vtable = {endpoint_read,
333
335
  endpoint_write,
@@ -161,7 +161,7 @@ static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error* error);
161
161
  static void tcp_drop_uncovered_then_handle_write(void* arg /* grpc_tcp */,
162
162
  grpc_error* error);
163
163
 
164
- static void done_poller(void* bp, grpc_error* error_ignored) {
164
+ static void done_poller(void* bp, grpc_error* /*error_ignored*/) {
165
165
  backup_poller* p = static_cast<backup_poller*>(bp);
166
166
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
167
167
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p destroy", p);
@@ -170,7 +170,7 @@ static void done_poller(void* bp, grpc_error* error_ignored) {
170
170
  gpr_free(p);
171
171
  }
172
172
 
173
- static void run_poller(void* bp, grpc_error* error_ignored) {
173
+ static void run_poller(void* bp, grpc_error* /*error_ignored*/) {
174
174
  backup_poller* p = static_cast<backup_poller*>(bp);
175
175
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
176
176
  gpr_log(GPR_INFO, "BACKUP_POLLER:%p run", p);
@@ -206,7 +206,7 @@ static void run_poller(void* bp, grpc_error* error_ignored) {
206
206
  }
207
207
  }
208
208
 
209
- static void drop_uncovered(grpc_tcp* tcp) {
209
+ static void drop_uncovered(grpc_tcp* /*tcp*/) {
210
210
  backup_poller* p = (backup_poller*)gpr_atm_acq_load(&g_backup_poller);
211
211
  gpr_atm old_count =
212
212
  gpr_atm_full_fetch_add(&g_uncovered_notifications_pending, -1);
@@ -571,7 +571,7 @@ static void tcp_read_allocation_done(void* tcpp, grpc_error* error) {
571
571
  gpr_log(GPR_INFO, "TCP:%p read_allocation_done: %s", tcp,
572
572
  grpc_error_string(error));
573
573
  }
574
- if (error != GRPC_ERROR_NONE) {
574
+ if (GPR_UNLIKELY(error != GRPC_ERROR_NONE)) {
575
575
  grpc_slice_buffer_reset_and_unref_internal(tcp->incoming_buffer);
576
576
  grpc_slice_buffer_reset_and_unref_internal(&tcp->last_read_buffer);
577
577
  call_read_cb(tcp, GRPC_ERROR_REF(error));
@@ -589,14 +589,17 @@ static void tcp_continue_read(grpc_tcp* tcp) {
589
589
  if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
590
590
  gpr_log(GPR_INFO, "TCP:%p alloc_slices", tcp);
591
591
  }
592
- grpc_resource_user_alloc_slices(&tcp->slice_allocator, target_read_size, 1,
593
- tcp->incoming_buffer);
594
- } else {
595
- if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
596
- gpr_log(GPR_INFO, "TCP:%p do_read", tcp);
592
+ if (GPR_UNLIKELY(!grpc_resource_user_alloc_slices(&tcp->slice_allocator,
593
+ target_read_size, 1,
594
+ tcp->incoming_buffer))) {
595
+ // Wait for allocation.
596
+ return;
597
597
  }
598
- tcp_do_read(tcp);
599
598
  }
599
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_tcp_trace)) {
600
+ gpr_log(GPR_INFO, "TCP:%p do_read", tcp);
601
+ }
602
+ tcp_do_read(tcp);
600
603
  }
601
604
 
602
605
  static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error* error) {
@@ -605,7 +608,7 @@ static void tcp_handle_read(void* arg /* grpc_tcp */, grpc_error* error) {
605
608
  gpr_log(GPR_INFO, "TCP:%p got_read: %s", tcp, grpc_error_string(error));
606
609
  }
607
610
 
608
- if (error != GRPC_ERROR_NONE) {
611
+ if (GPR_UNLIKELY(error != GRPC_ERROR_NONE)) {
609
612
  grpc_slice_buffer_reset_and_unref_internal(tcp->incoming_buffer);
610
613
  grpc_slice_buffer_reset_and_unref_internal(&tcp->last_read_buffer);
611
614
  call_read_cb(tcp, GRPC_ERROR_REF(error));
@@ -873,15 +876,16 @@ static void tcp_handle_error(void* arg /* grpc_tcp */, grpc_error* error) {
873
876
  }
874
877
 
875
878
  #else /* GRPC_LINUX_ERRQUEUE */
876
- static bool tcp_write_with_timestamps(grpc_tcp* tcp, struct msghdr* msg,
877
- size_t sending_length,
878
- ssize_t* sent_length) {
879
+ static bool tcp_write_with_timestamps(grpc_tcp* /*tcp*/, struct msghdr* /*msg*/,
880
+ size_t /*sending_length*/,
881
+ ssize_t* /*sent_length*/) {
879
882
  gpr_log(GPR_ERROR, "Write with timestamps not supported for this platform");
880
883
  GPR_ASSERT(0);
881
884
  return false;
882
885
  }
883
886
 
884
- static void tcp_handle_error(void* arg /* grpc_tcp */, grpc_error* error) {
887
+ static void tcp_handle_error(void* /*arg*/ /* grpc_tcp */,
888
+ grpc_error* /*error*/) {
885
889
  gpr_log(GPR_ERROR, "Error handling is not supported for this platform");
886
890
  GPR_ASSERT(0);
887
891
  }
@@ -1040,7 +1044,7 @@ static void tcp_handle_write(void* arg /* grpc_tcp */, grpc_error* error) {
1040
1044
  gpr_log(GPR_INFO, "write: %s", str);
1041
1045
  }
1042
1046
  // No need to take a ref on error since tcp_flush provides a ref.
1043
- GRPC_CLOSURE_SCHED(cb, error);
1047
+ GRPC_CLOSURE_RUN(cb, error);
1044
1048
  TCP_UNREF(tcp, "write");
1045
1049
  }
1046
1050
  }
@@ -24,7 +24,6 @@
24
24
  #include <grpc/grpc.h>
25
25
  #include <grpc/impl/codegen/grpc_types.h>
26
26
 
27
- #include "src/core/lib/gprpp/abstract.h"
28
27
  #include "src/core/lib/iomgr/closure.h"
29
28
  #include "src/core/lib/iomgr/endpoint.h"
30
29
  #include "src/core/lib/iomgr/resolve_address.h"
@@ -57,9 +56,7 @@ class TcpServerFdHandler {
57
56
  public:
58
57
  virtual ~TcpServerFdHandler() = default;
59
58
  virtual void Handle(int listener_fd, int fd,
60
- grpc_byte_buffer* pending_read) GRPC_ABSTRACT;
61
-
62
- GRPC_ABSTRACT_BASE_CLASS;
59
+ grpc_byte_buffer* pending_read) = 0;
63
60
  };
64
61
  } // namespace grpc_core
65
62
 
@@ -439,13 +439,13 @@ static void tcp_server_start(grpc_tcp_server* server, grpc_pollset** pollsets,
439
439
  }
440
440
  }
441
441
 
442
- static unsigned tcp_server_port_fd_count(grpc_tcp_server* s,
443
- unsigned port_index) {
442
+ static unsigned tcp_server_port_fd_count(grpc_tcp_server* /*s*/,
443
+ unsigned /*port_index*/) {
444
444
  return 0;
445
445
  }
446
446
 
447
- static int tcp_server_port_fd(grpc_tcp_server* s, unsigned port_index,
448
- unsigned fd_index) {
447
+ static int tcp_server_port_fd(grpc_tcp_server* /*s*/, unsigned /*port_index*/,
448
+ unsigned /*fd_index*/) {
449
449
  return -1;
450
450
  }
451
451
 
@@ -459,7 +459,7 @@ static void tcp_server_shutdown_listeners(grpc_tcp_server* s) {
459
459
  }
460
460
 
461
461
  static grpc_core::TcpServerFdHandler* tcp_server_create_fd_handler(
462
- grpc_tcp_server* s) {
462
+ grpc_tcp_server* /*s*/) {
463
463
  return nullptr;
464
464
  }
465
465
 
@@ -124,7 +124,7 @@ static void finish_shutdown(grpc_tcp_server* s) {
124
124
  gpr_free(s);
125
125
  }
126
126
 
127
- static void destroyed_port(void* server, grpc_error* error) {
127
+ static void destroyed_port(void* server, grpc_error* /*error*/) {
128
128
  grpc_tcp_server* s = static_cast<grpc_tcp_server*>(server);
129
129
  gpr_mu_lock(&s->mu);
130
130
  s->destroyed_ports++;
@@ -173,17 +173,8 @@ grpc_error* grpc_tcp_server_prepare_socket(grpc_tcp_server* s, int fd,
173
173
  err = grpc_set_socket_no_sigpipe_if_possible(fd);
174
174
  if (err != GRPC_ERROR_NONE) goto error;
175
175
 
176
- if (s->channel_args) {
177
- for (size_t i = 0; i < s->channel_args->num_args; i++) {
178
- if (0 == strcmp(s->channel_args->args[i].key, GRPC_ARG_SOCKET_MUTATOR)) {
179
- GPR_ASSERT(s->channel_args->args[i].type == GRPC_ARG_POINTER);
180
- grpc_socket_mutator* mutator = static_cast<grpc_socket_mutator*>(
181
- s->channel_args->args[i].value.pointer.p);
182
- err = grpc_set_socket_with_mutator(fd, mutator);
183
- if (err != GRPC_ERROR_NONE) goto error;
184
- }
185
- }
186
- }
176
+ err = grpc_apply_socket_mutator_in_args(fd, s->channel_args);
177
+ if (err != GRPC_ERROR_NONE) goto error;
187
178
 
188
179
  if (bind(fd, reinterpret_cast<grpc_sockaddr*>(const_cast<char*>(addr->addr)),
189
180
  addr->len) < 0) {
@@ -30,7 +30,7 @@
30
30
 
31
31
  static grpc_custom_timer_vtable* custom_timer_impl;
32
32
 
33
- void grpc_custom_timer_callback(grpc_custom_timer* t, grpc_error* error) {
33
+ void grpc_custom_timer_callback(grpc_custom_timer* t, grpc_error* /*error*/) {
34
34
  GRPC_CUSTOM_IOMGR_ASSERT_SAME_THREAD();
35
35
  grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
36
36
  grpc_core::ExecCtx exec_ctx;
@@ -75,7 +75,7 @@ static void timer_cancel(grpc_timer* timer) {
75
75
  }
76
76
  }
77
77
 
78
- static grpc_timer_check_result timer_check(grpc_millis* next) {
78
+ static grpc_timer_check_result timer_check(grpc_millis* /*next*/) {
79
79
  return GRPC_TIMERS_NOT_CHECKED;
80
80
  }
81
81
 
@@ -260,7 +260,7 @@ static void finish_shutdown(grpc_udp_server* s) {
260
260
  grpc_core::Delete(s);
261
261
  }
262
262
 
263
- static void destroyed_port(void* server, grpc_error* error) {
263
+ static void destroyed_port(void* server, grpc_error* /*error*/) {
264
264
  grpc_udp_server* s = static_cast<grpc_udp_server*>(server);
265
265
  gpr_mu_lock(&s->mu);
266
266
  s->destroyed_ports++;
@@ -495,7 +495,8 @@ void GrpcUdpListener::OnRead(grpc_error* error, void* do_read_arg) {
495
495
 
496
496
  // static
497
497
  // Wrapper of grpc_fd_notify_on_write() with a grpc_closure callback interface.
498
- void GrpcUdpListener::fd_notify_on_write_wrapper(void* arg, grpc_error* error) {
498
+ void GrpcUdpListener::fd_notify_on_write_wrapper(void* arg,
499
+ grpc_error* /*error*/) {
499
500
  GrpcUdpListener* sp = static_cast<GrpcUdpListener*>(arg);
500
501
  gpr_mu_lock(sp->mutex());
501
502
  if (!sp->notify_on_write_armed_) {
@@ -21,7 +21,6 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include "src/core/lib/gprpp/abstract.h"
25
24
  #include "src/core/lib/iomgr/endpoint.h"
26
25
  #include "src/core/lib/iomgr/ev_posix.h"
27
26
  #include "src/core/lib/iomgr/resolve_address.h"
@@ -39,7 +38,7 @@ typedef struct grpc_udp_server grpc_udp_server;
39
38
  * Its implementation should do the real IO work, e.g. read packet and write. */
40
39
  class GrpcUdpHandler {
41
40
  public:
42
- GrpcUdpHandler(grpc_fd* emfd, void* user_data) {}
41
+ GrpcUdpHandler(grpc_fd* /* emfd */, void* /* user_data */) {}
43
42
  virtual ~GrpcUdpHandler() {}
44
43
 
45
44
  // Interfaces to be implemented by subclasses to do the actual setup/tear down
@@ -47,18 +46,16 @@ class GrpcUdpHandler {
47
46
 
48
47
  // Called when data is available to read from the socket. Returns true if
49
48
  // there is more data to read after this call.
50
- virtual bool Read() GRPC_ABSTRACT;
49
+ virtual bool Read() = 0;
51
50
  // Called when socket becomes write unblocked. The given closure should be
52
51
  // scheduled when the socket becomes blocked next time.
53
52
  virtual void OnCanWrite(void* user_data,
54
- grpc_closure* notify_on_write_closure) GRPC_ABSTRACT;
53
+ grpc_closure* notify_on_write_closure) = 0;
55
54
  // Called before the gRPC FD is orphaned. Notify udp server to continue
56
55
  // orphaning fd by scheduling the given closure, afterwards the associated fd
57
56
  // will be closed.
58
57
  virtual void OnFdAboutToOrphan(grpc_closure* orphan_fd_closure,
59
- void* user_data) GRPC_ABSTRACT;
60
-
61
- GRPC_ABSTRACT_BASE_CLASS
58
+ void* user_data) = 0;
62
59
  };
63
60
 
64
61
  class GrpcUdpHandlerFactory {
@@ -67,11 +64,8 @@ class GrpcUdpHandlerFactory {
67
64
  /* Called when start to listen on a socket.
68
65
  * Return an instance of the implementation of GrpcUdpHandler interface which
69
66
  * will process I/O events for this socket from now on. */
70
- virtual GrpcUdpHandler* CreateUdpHandler(grpc_fd* emfd,
71
- void* user_data) GRPC_ABSTRACT;
72
- virtual void DestroyUdpHandler(GrpcUdpHandler* handler) GRPC_ABSTRACT;
73
-
74
- GRPC_ABSTRACT_BASE_CLASS
67
+ virtual GrpcUdpHandler* CreateUdpHandler(grpc_fd* emfd, void* user_data) = 0;
68
+ virtual void DestroyUdpHandler(GrpcUdpHandler* handler) = 0;
75
69
  };
76
70
 
77
71
  /* Create a server, initially not bound to any ports */
@@ -67,7 +67,7 @@ grpc_json* grpc_json_parse_string(char* input);
67
67
  * If indent is 0, then newlines will be suppressed as well, and the
68
68
  * output will be condensed at its maximum.
69
69
  */
70
- char* grpc_json_dump_to_string(grpc_json* json, int indent);
70
+ char* grpc_json_dump_to_string(const grpc_json* json, int indent);
71
71
 
72
72
  /* Use these to create or delete a grpc_json object.
73
73
  * Deletion is recursive. We will not attempt to free any of the strings
@@ -311,7 +311,7 @@ grpc_json* grpc_json_parse_string(char* input) {
311
311
  return grpc_json_parse_string_with_len(input, UNBOUND_JSON_STRING_LENGTH);
312
312
  }
313
313
 
314
- static void json_dump_recursive(grpc_json_writer* writer, grpc_json* json,
314
+ static void json_dump_recursive(grpc_json_writer* writer, const grpc_json* json,
315
315
  int in_object) {
316
316
  while (json) {
317
317
  if (in_object) grpc_json_writer_object_key(writer, json->key);
@@ -351,7 +351,7 @@ static grpc_json_writer_vtable writer_vtable = {
351
351
  json_writer_output_char, json_writer_output_string,
352
352
  json_writer_output_string_with_len};
353
353
 
354
- char* grpc_json_dump_to_string(grpc_json* json, int indent) {
354
+ char* grpc_json_dump_to_string(const grpc_json* json, int indent) {
355
355
  grpc_json_writer writer;
356
356
  json_writer_userdata state;
357
357
 
@@ -287,7 +287,7 @@ void gpr_timers_global_init(void) {}
287
287
 
288
288
  void gpr_timers_global_destroy(void) {}
289
289
 
290
- void gpr_timers_set_log_filename(const char* filename) {}
290
+ void gpr_timers_set_log_filename(const char* /*filename*/) {}
291
291
 
292
- void gpr_timer_set_enabled(int enabled) {}
292
+ void gpr_timer_set_enabled(int /*enabled*/) {}
293
293
  #endif /* GRPC_BASIC_PROFILER */
@@ -50,8 +50,8 @@ grpc_alts_credentials::~grpc_alts_credentials() {
50
50
  grpc_core::RefCountedPtr<grpc_channel_security_connector>
51
51
  grpc_alts_credentials::create_security_connector(
52
52
  grpc_core::RefCountedPtr<grpc_call_credentials> call_creds,
53
- const char* target_name, const grpc_channel_args* args,
54
- grpc_channel_args** new_args) {
53
+ const char* target_name, const grpc_channel_args* /*args*/,
54
+ grpc_channel_args** /*new_args*/) {
55
55
  return grpc_alts_channel_security_connector_create(
56
56
  this->Ref(), std::move(call_creds), target_name);
57
57
  }