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
@@ -36,7 +36,7 @@
36
36
  static_assert(
37
37
  std::is_trivially_destructible<grpc_core::StaticMetadataSlice>::value,
38
38
  "grpc_core::StaticMetadataSlice must be trivially destructible.");
39
- #define GRPC_STATIC_MDSTR_COUNT 109
39
+ #define GRPC_STATIC_MDSTR_COUNT 108
40
40
 
41
41
  void grpc_init_static_metadata_ctx(void);
42
42
  void grpc_destroy_static_metadata_ctx(void);
@@ -132,157 +132,154 @@ inline const grpc_core::StaticMetadataSlice* grpc_static_slice_table() {
132
132
  /* "/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats" */
133
133
  #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_LOAD_STATS_DOT_V2_DOT_LOADREPORTINGSERVICE_SLASH_STREAMLOADSTATS \
134
134
  (grpc_static_slice_table()[35])
135
- /* "/envoy.api.v2.EndpointDiscoveryService/StreamEndpoints" */
136
- #define GRPC_MDSTR_SLASH_ENVOY_DOT_API_DOT_V2_DOT_ENDPOINTDISCOVERYSERVICE_SLASH_STREAMENDPOINTS \
137
- (grpc_static_slice_table()[36])
138
135
  /* "/grpc.health.v1.Health/Watch" */
139
136
  #define GRPC_MDSTR_SLASH_GRPC_DOT_HEALTH_DOT_V1_DOT_HEALTH_SLASH_WATCH \
140
- (grpc_static_slice_table()[37])
137
+ (grpc_static_slice_table()[36])
141
138
  /* "/envoy.service.discovery.v2.AggregatedDiscoveryService/StreamAggregatedResources"
142
139
  */
143
140
  #define GRPC_MDSTR_SLASH_ENVOY_DOT_SERVICE_DOT_DISCOVERY_DOT_V2_DOT_AGGREGATEDDISCOVERYSERVICE_SLASH_STREAMAGGREGATEDRESOURCES \
144
- (grpc_static_slice_table()[38])
141
+ (grpc_static_slice_table()[37])
145
142
  /* "deflate" */
146
- #define GRPC_MDSTR_DEFLATE (grpc_static_slice_table()[39])
143
+ #define GRPC_MDSTR_DEFLATE (grpc_static_slice_table()[38])
147
144
  /* "gzip" */
148
- #define GRPC_MDSTR_GZIP (grpc_static_slice_table()[40])
145
+ #define GRPC_MDSTR_GZIP (grpc_static_slice_table()[39])
149
146
  /* "stream/gzip" */
150
- #define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table()[41])
147
+ #define GRPC_MDSTR_STREAM_SLASH_GZIP (grpc_static_slice_table()[40])
151
148
  /* "GET" */
152
- #define GRPC_MDSTR_GET (grpc_static_slice_table()[42])
149
+ #define GRPC_MDSTR_GET (grpc_static_slice_table()[41])
153
150
  /* "POST" */
154
- #define GRPC_MDSTR_POST (grpc_static_slice_table()[43])
151
+ #define GRPC_MDSTR_POST (grpc_static_slice_table()[42])
155
152
  /* "/" */
156
- #define GRPC_MDSTR_SLASH (grpc_static_slice_table()[44])
153
+ #define GRPC_MDSTR_SLASH (grpc_static_slice_table()[43])
157
154
  /* "/index.html" */
158
- #define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table()[45])
155
+ #define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (grpc_static_slice_table()[44])
159
156
  /* "http" */
160
- #define GRPC_MDSTR_HTTP (grpc_static_slice_table()[46])
157
+ #define GRPC_MDSTR_HTTP (grpc_static_slice_table()[45])
161
158
  /* "https" */
162
- #define GRPC_MDSTR_HTTPS (grpc_static_slice_table()[47])
159
+ #define GRPC_MDSTR_HTTPS (grpc_static_slice_table()[46])
163
160
  /* "200" */
164
- #define GRPC_MDSTR_200 (grpc_static_slice_table()[48])
161
+ #define GRPC_MDSTR_200 (grpc_static_slice_table()[47])
165
162
  /* "204" */
166
- #define GRPC_MDSTR_204 (grpc_static_slice_table()[49])
163
+ #define GRPC_MDSTR_204 (grpc_static_slice_table()[48])
167
164
  /* "206" */
168
- #define GRPC_MDSTR_206 (grpc_static_slice_table()[50])
165
+ #define GRPC_MDSTR_206 (grpc_static_slice_table()[49])
169
166
  /* "304" */
170
- #define GRPC_MDSTR_304 (grpc_static_slice_table()[51])
167
+ #define GRPC_MDSTR_304 (grpc_static_slice_table()[50])
171
168
  /* "400" */
172
- #define GRPC_MDSTR_400 (grpc_static_slice_table()[52])
169
+ #define GRPC_MDSTR_400 (grpc_static_slice_table()[51])
173
170
  /* "404" */
174
- #define GRPC_MDSTR_404 (grpc_static_slice_table()[53])
171
+ #define GRPC_MDSTR_404 (grpc_static_slice_table()[52])
175
172
  /* "500" */
176
- #define GRPC_MDSTR_500 (grpc_static_slice_table()[54])
173
+ #define GRPC_MDSTR_500 (grpc_static_slice_table()[53])
177
174
  /* "accept-charset" */
178
- #define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table()[55])
175
+ #define GRPC_MDSTR_ACCEPT_CHARSET (grpc_static_slice_table()[54])
179
176
  /* "gzip, deflate" */
180
- #define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table()[56])
177
+ #define GRPC_MDSTR_GZIP_COMMA_DEFLATE (grpc_static_slice_table()[55])
181
178
  /* "accept-language" */
182
- #define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table()[57])
179
+ #define GRPC_MDSTR_ACCEPT_LANGUAGE (grpc_static_slice_table()[56])
183
180
  /* "accept-ranges" */
184
- #define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table()[58])
181
+ #define GRPC_MDSTR_ACCEPT_RANGES (grpc_static_slice_table()[57])
185
182
  /* "accept" */
186
- #define GRPC_MDSTR_ACCEPT (grpc_static_slice_table()[59])
183
+ #define GRPC_MDSTR_ACCEPT (grpc_static_slice_table()[58])
187
184
  /* "access-control-allow-origin" */
188
- #define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table()[60])
185
+ #define GRPC_MDSTR_ACCESS_CONTROL_ALLOW_ORIGIN (grpc_static_slice_table()[59])
189
186
  /* "age" */
190
- #define GRPC_MDSTR_AGE (grpc_static_slice_table()[61])
187
+ #define GRPC_MDSTR_AGE (grpc_static_slice_table()[60])
191
188
  /* "allow" */
192
- #define GRPC_MDSTR_ALLOW (grpc_static_slice_table()[62])
189
+ #define GRPC_MDSTR_ALLOW (grpc_static_slice_table()[61])
193
190
  /* "authorization" */
194
- #define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table()[63])
191
+ #define GRPC_MDSTR_AUTHORIZATION (grpc_static_slice_table()[62])
195
192
  /* "cache-control" */
196
- #define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table()[64])
193
+ #define GRPC_MDSTR_CACHE_CONTROL (grpc_static_slice_table()[63])
197
194
  /* "content-disposition" */
198
- #define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table()[65])
195
+ #define GRPC_MDSTR_CONTENT_DISPOSITION (grpc_static_slice_table()[64])
199
196
  /* "content-language" */
200
- #define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table()[66])
197
+ #define GRPC_MDSTR_CONTENT_LANGUAGE (grpc_static_slice_table()[65])
201
198
  /* "content-length" */
202
- #define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table()[67])
199
+ #define GRPC_MDSTR_CONTENT_LENGTH (grpc_static_slice_table()[66])
203
200
  /* "content-location" */
204
- #define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table()[68])
201
+ #define GRPC_MDSTR_CONTENT_LOCATION (grpc_static_slice_table()[67])
205
202
  /* "content-range" */
206
- #define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table()[69])
203
+ #define GRPC_MDSTR_CONTENT_RANGE (grpc_static_slice_table()[68])
207
204
  /* "cookie" */
208
- #define GRPC_MDSTR_COOKIE (grpc_static_slice_table()[70])
205
+ #define GRPC_MDSTR_COOKIE (grpc_static_slice_table()[69])
209
206
  /* "date" */
210
- #define GRPC_MDSTR_DATE (grpc_static_slice_table()[71])
207
+ #define GRPC_MDSTR_DATE (grpc_static_slice_table()[70])
211
208
  /* "etag" */
212
- #define GRPC_MDSTR_ETAG (grpc_static_slice_table()[72])
209
+ #define GRPC_MDSTR_ETAG (grpc_static_slice_table()[71])
213
210
  /* "expect" */
214
- #define GRPC_MDSTR_EXPECT (grpc_static_slice_table()[73])
211
+ #define GRPC_MDSTR_EXPECT (grpc_static_slice_table()[72])
215
212
  /* "expires" */
216
- #define GRPC_MDSTR_EXPIRES (grpc_static_slice_table()[74])
213
+ #define GRPC_MDSTR_EXPIRES (grpc_static_slice_table()[73])
217
214
  /* "from" */
218
- #define GRPC_MDSTR_FROM (grpc_static_slice_table()[75])
215
+ #define GRPC_MDSTR_FROM (grpc_static_slice_table()[74])
219
216
  /* "if-match" */
220
- #define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table()[76])
217
+ #define GRPC_MDSTR_IF_MATCH (grpc_static_slice_table()[75])
221
218
  /* "if-modified-since" */
222
- #define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table()[77])
219
+ #define GRPC_MDSTR_IF_MODIFIED_SINCE (grpc_static_slice_table()[76])
223
220
  /* "if-none-match" */
224
- #define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table()[78])
221
+ #define GRPC_MDSTR_IF_NONE_MATCH (grpc_static_slice_table()[77])
225
222
  /* "if-range" */
226
- #define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table()[79])
223
+ #define GRPC_MDSTR_IF_RANGE (grpc_static_slice_table()[78])
227
224
  /* "if-unmodified-since" */
228
- #define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table()[80])
225
+ #define GRPC_MDSTR_IF_UNMODIFIED_SINCE (grpc_static_slice_table()[79])
229
226
  /* "last-modified" */
230
- #define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table()[81])
227
+ #define GRPC_MDSTR_LAST_MODIFIED (grpc_static_slice_table()[80])
231
228
  /* "link" */
232
- #define GRPC_MDSTR_LINK (grpc_static_slice_table()[82])
229
+ #define GRPC_MDSTR_LINK (grpc_static_slice_table()[81])
233
230
  /* "location" */
234
- #define GRPC_MDSTR_LOCATION (grpc_static_slice_table()[83])
231
+ #define GRPC_MDSTR_LOCATION (grpc_static_slice_table()[82])
235
232
  /* "max-forwards" */
236
- #define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table()[84])
233
+ #define GRPC_MDSTR_MAX_FORWARDS (grpc_static_slice_table()[83])
237
234
  /* "proxy-authenticate" */
238
- #define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table()[85])
235
+ #define GRPC_MDSTR_PROXY_AUTHENTICATE (grpc_static_slice_table()[84])
239
236
  /* "proxy-authorization" */
240
- #define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table()[86])
237
+ #define GRPC_MDSTR_PROXY_AUTHORIZATION (grpc_static_slice_table()[85])
241
238
  /* "range" */
242
- #define GRPC_MDSTR_RANGE (grpc_static_slice_table()[87])
239
+ #define GRPC_MDSTR_RANGE (grpc_static_slice_table()[86])
243
240
  /* "referer" */
244
- #define GRPC_MDSTR_REFERER (grpc_static_slice_table()[88])
241
+ #define GRPC_MDSTR_REFERER (grpc_static_slice_table()[87])
245
242
  /* "refresh" */
246
- #define GRPC_MDSTR_REFRESH (grpc_static_slice_table()[89])
243
+ #define GRPC_MDSTR_REFRESH (grpc_static_slice_table()[88])
247
244
  /* "retry-after" */
248
- #define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table()[90])
245
+ #define GRPC_MDSTR_RETRY_AFTER (grpc_static_slice_table()[89])
249
246
  /* "server" */
250
- #define GRPC_MDSTR_SERVER (grpc_static_slice_table()[91])
247
+ #define GRPC_MDSTR_SERVER (grpc_static_slice_table()[90])
251
248
  /* "set-cookie" */
252
- #define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table()[92])
249
+ #define GRPC_MDSTR_SET_COOKIE (grpc_static_slice_table()[91])
253
250
  /* "strict-transport-security" */
254
- #define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table()[93])
251
+ #define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (grpc_static_slice_table()[92])
255
252
  /* "transfer-encoding" */
256
- #define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table()[94])
253
+ #define GRPC_MDSTR_TRANSFER_ENCODING (grpc_static_slice_table()[93])
257
254
  /* "vary" */
258
- #define GRPC_MDSTR_VARY (grpc_static_slice_table()[95])
255
+ #define GRPC_MDSTR_VARY (grpc_static_slice_table()[94])
259
256
  /* "via" */
260
- #define GRPC_MDSTR_VIA (grpc_static_slice_table()[96])
257
+ #define GRPC_MDSTR_VIA (grpc_static_slice_table()[95])
261
258
  /* "www-authenticate" */
262
- #define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table()[97])
259
+ #define GRPC_MDSTR_WWW_AUTHENTICATE (grpc_static_slice_table()[96])
263
260
  /* "0" */
264
- #define GRPC_MDSTR_0 (grpc_static_slice_table()[98])
261
+ #define GRPC_MDSTR_0 (grpc_static_slice_table()[97])
265
262
  /* "identity" */
266
- #define GRPC_MDSTR_IDENTITY (grpc_static_slice_table()[99])
263
+ #define GRPC_MDSTR_IDENTITY (grpc_static_slice_table()[98])
267
264
  /* "trailers" */
268
- #define GRPC_MDSTR_TRAILERS (grpc_static_slice_table()[100])
265
+ #define GRPC_MDSTR_TRAILERS (grpc_static_slice_table()[99])
269
266
  /* "application/grpc" */
270
- #define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table()[101])
267
+ #define GRPC_MDSTR_APPLICATION_SLASH_GRPC (grpc_static_slice_table()[100])
271
268
  /* "grpc" */
272
- #define GRPC_MDSTR_GRPC (grpc_static_slice_table()[102])
269
+ #define GRPC_MDSTR_GRPC (grpc_static_slice_table()[101])
273
270
  /* "PUT" */
274
- #define GRPC_MDSTR_PUT (grpc_static_slice_table()[103])
271
+ #define GRPC_MDSTR_PUT (grpc_static_slice_table()[102])
275
272
  /* "lb-cost-bin" */
276
- #define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table()[104])
273
+ #define GRPC_MDSTR_LB_COST_BIN (grpc_static_slice_table()[103])
277
274
  /* "identity,deflate" */
278
- #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table()[105])
275
+ #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE (grpc_static_slice_table()[104])
279
276
  /* "identity,gzip" */
280
- #define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table()[106])
277
+ #define GRPC_MDSTR_IDENTITY_COMMA_GZIP (grpc_static_slice_table()[105])
281
278
  /* "deflate,gzip" */
282
- #define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table()[107])
279
+ #define GRPC_MDSTR_DEFLATE_COMMA_GZIP (grpc_static_slice_table()[106])
283
280
  /* "identity,deflate,gzip" */
284
281
  #define GRPC_MDSTR_IDENTITY_COMMA_DEFLATE_COMMA_GZIP \
285
- (grpc_static_slice_table()[108])
282
+ (grpc_static_slice_table()[107])
286
283
 
287
284
  namespace grpc_core {
288
285
  struct StaticSliceRefcount;
@@ -97,4 +97,4 @@ grpc_status_code grpc_http2_status_to_grpc_status(int status) {
97
97
  }
98
98
  }
99
99
 
100
- int grpc_status_to_http2_status(grpc_status_code status) { return 200; }
100
+ int grpc_status_to_http2_status(grpc_status_code /*status*/) { return 200; }
@@ -28,7 +28,7 @@
28
28
  */
29
29
  #define STATUS_OFFSET 1
30
30
 
31
- static void destroy_status(void* ignored) {}
31
+ static void destroy_status(void* /*ignored*/) {}
32
32
 
33
33
  grpc_status_code grpc_get_status_code_from_metadata(grpc_mdelem md) {
34
34
  if (grpc_mdelem_static_value_eq(md, GRPC_MDELEM_GRPC_STATUS_0)) {
@@ -80,12 +80,12 @@ grpc_slice grpc_slice_from_stream_owned_buffer(grpc_stream_refcount* refcount,
80
80
  }
81
81
 
82
82
  #ifndef NDEBUG
83
- void grpc_stream_ref_init(grpc_stream_refcount* refcount, int initial_refs,
83
+ void grpc_stream_ref_init(grpc_stream_refcount* refcount, int /*initial_refs*/,
84
84
  grpc_iomgr_cb_func cb, void* cb_arg,
85
85
  const char* object_type) {
86
86
  refcount->object_type = object_type;
87
87
  #else
88
- void grpc_stream_ref_init(grpc_stream_refcount* refcount, int initial_refs,
88
+ void grpc_stream_ref_init(grpc_stream_refcount* refcount, int /*initial_refs*/,
89
89
  grpc_iomgr_cb_func cb, void* cb_arg) {
90
90
  #endif
91
91
  GRPC_CLOSURE_INIT(&refcount->destroy, cb, cb_arg, grpc_schedule_on_exec_ctx);
@@ -25,6 +25,7 @@
25
25
 
26
26
  #include "src/core/lib/channel/context.h"
27
27
  #include "src/core/lib/gprpp/arena.h"
28
+ #include "src/core/lib/gprpp/orphanable.h"
28
29
  #include "src/core/lib/iomgr/call_combiner.h"
29
30
  #include "src/core/lib/iomgr/endpoint.h"
30
31
  #include "src/core/lib/iomgr/polling_entity.h"
@@ -32,6 +33,7 @@
32
33
  #include "src/core/lib/iomgr/pollset_set.h"
33
34
  #include "src/core/lib/slice/slice_internal.h"
34
35
  #include "src/core/lib/transport/byte_stream.h"
36
+ #include "src/core/lib/transport/connectivity_state.h"
35
37
  #include "src/core/lib/transport/metadata_batch.h"
36
38
 
37
39
  /* Minimum and maximum protocol accepted versions. */
@@ -70,7 +72,10 @@ void grpc_stream_ref_init(grpc_stream_refcount* refcount, int initial_refs,
70
72
  void grpc_stream_ref_init(grpc_stream_refcount* refcount, int initial_refs,
71
73
  grpc_iomgr_cb_func cb, void* cb_arg);
72
74
  #define GRPC_STREAM_REF_INIT(rc, ir, cb, cb_arg, objtype) \
73
- grpc_stream_ref_init(rc, ir, cb, cb_arg)
75
+ do { \
76
+ grpc_stream_ref_init(rc, ir, cb, cb_arg); \
77
+ (void)(objtype); \
78
+ } while (0)
74
79
  #endif
75
80
 
76
81
  #ifndef NDEBUG
@@ -291,7 +296,7 @@ struct grpc_transport_stream_op_batch_payload {
291
296
  struct {
292
297
  grpc_metadata_batch* recv_trailing_metadata = nullptr;
293
298
  grpc_transport_stream_stats* collect_stats = nullptr;
294
- /** Should be enqueued when initial metadata is ready to be processed. */
299
+ /** Should be enqueued when trailing metadata is ready to be processed. */
295
300
  grpc_closure* recv_trailing_metadata_ready = nullptr;
296
301
  } recv_trailing_metadata;
297
302
 
@@ -320,8 +325,11 @@ typedef struct grpc_transport_op {
320
325
  /** Called when processing of this op is done. */
321
326
  grpc_closure* on_consumed = nullptr;
322
327
  /** connectivity monitoring - set connectivity_state to NULL to unsubscribe */
323
- grpc_closure* on_connectivity_state_change = nullptr;
324
- grpc_connectivity_state* connectivity_state = nullptr;
328
+ grpc_core::OrphanablePtr<grpc_core::ConnectivityStateWatcherInterface>
329
+ start_connectivity_watch;
330
+ grpc_connectivity_state start_connectivity_watch_state = GRPC_CHANNEL_IDLE;
331
+ grpc_core::ConnectivityStateWatcherInterface* stop_connectivity_watch =
332
+ nullptr;
325
333
  /** should the transport be disconnected
326
334
  * Error contract: the transport that gets this op must cause
327
335
  * disconnect_with_error to be unref'ed after processing it */
@@ -134,19 +134,22 @@ char* grpc_transport_op_string(grpc_transport_op* op) {
134
134
  gpr_strvec b;
135
135
  gpr_strvec_init(&b);
136
136
 
137
- if (op->on_connectivity_state_change != nullptr) {
137
+ if (op->start_connectivity_watch != nullptr) {
138
138
  if (!first) gpr_strvec_add(&b, gpr_strdup(" "));
139
139
  first = false;
140
- if (op->connectivity_state != nullptr) {
141
- gpr_asprintf(&tmp, "ON_CONNECTIVITY_STATE_CHANGE:p=%p:from=%s",
142
- op->on_connectivity_state_change,
143
- grpc_connectivity_state_name(*op->connectivity_state));
144
- gpr_strvec_add(&b, tmp);
145
- } else {
146
- gpr_asprintf(&tmp, "ON_CONNECTIVITY_STATE_CHANGE:p=%p:unsubscribe",
147
- op->on_connectivity_state_change);
148
- gpr_strvec_add(&b, tmp);
149
- }
140
+ gpr_asprintf(
141
+ &tmp, "START_CONNECTIVITY_WATCH:watcher=%p:from=%s",
142
+ op->start_connectivity_watch.get(),
143
+ grpc_core::ConnectivityStateName(op->start_connectivity_watch_state));
144
+ gpr_strvec_add(&b, tmp);
145
+ }
146
+
147
+ if (op->stop_connectivity_watch != nullptr) {
148
+ if (!first) gpr_strvec_add(&b, gpr_strdup(" "));
149
+ first = false;
150
+ gpr_asprintf(&tmp, "STOP_CONNECTIVITY_WATCH:watcher=%p",
151
+ op->stop_connectivity_watch);
152
+ gpr_strvec_add(&b, tmp);
150
153
  }
151
154
 
152
155
  if (op->disconnect_with_error != GRPC_ERROR_NONE) {
@@ -33,7 +33,7 @@ static void maybe_copy_error_msg(const char* src, char** dst) {
33
33
 
34
34
  /* Perform input santity check. */
35
35
  static grpc_status_code unseal_check(alts_crypter* c, const unsigned char* data,
36
- size_t data_allocated_size,
36
+ size_t /*data_allocated_size*/,
37
37
  size_t data_size, size_t* output_size,
38
38
  char** error_details) {
39
39
  /* Do common input sanity check. */
@@ -30,7 +30,7 @@ alts_shared_resource_dedicated* grpc_alts_get_shared_resource_dedicated(void) {
30
30
  return &g_alts_resource_dedicated;
31
31
  }
32
32
 
33
- static void thread_worker(void* arg) {
33
+ static void thread_worker(void* /*arg*/) {
34
34
  while (true) {
35
35
  grpc_event event =
36
36
  grpc_completion_queue_next(g_alts_resource_dedicated.cq,
@@ -264,18 +264,18 @@ static void on_handshaker_service_resp_recv(void* arg, grpc_error* error) {
264
264
  /* gRPC provided callback used when dedicatd CQ and thread are used.
265
265
  * It serves to safely bring the control back to application. */
266
266
  static void on_handshaker_service_resp_recv_dedicated(void* arg,
267
- grpc_error* error) {
267
+ grpc_error* /*error*/) {
268
268
  alts_shared_resource_dedicated* resource =
269
269
  grpc_alts_get_shared_resource_dedicated();
270
270
  grpc_cq_end_op(resource->cq, arg, GRPC_ERROR_NONE,
271
- [](void* done_arg, grpc_cq_completion* storage) {}, nullptr,
272
- &resource->storage);
271
+ [](void* /*done_arg*/, grpc_cq_completion* /*storage*/) {},
272
+ nullptr, &resource->storage);
273
273
  }
274
274
 
275
275
  static tsi_result handshaker_next(
276
276
  tsi_handshaker* self, const unsigned char* received_bytes,
277
- size_t received_bytes_size, const unsigned char** bytes_to_send,
278
- size_t* bytes_to_send_size, tsi_handshaker_result** result,
277
+ size_t received_bytes_size, const unsigned char** /*bytes_to_send*/,
278
+ size_t* /*bytes_to_send_size*/, tsi_handshaker_result** /*result*/,
279
279
  tsi_handshaker_on_next_done_cb cb, void* user_data) {
280
280
  if (self == nullptr || cb == nullptr) {
281
281
  gpr_log(GPR_ERROR, "Invalid arguments to handshaker_next()");
@@ -37,7 +37,7 @@
37
37
 
38
38
  constexpr size_t kMinFrameLength = 1024;
39
39
  constexpr size_t kDefaultFrameLength = 16 * 1024;
40
- constexpr size_t kMaxFrameLength = 1024 * 1024;
40
+ constexpr size_t kMaxFrameLength = 16 * 1024 * 1024;
41
41
 
42
42
  /**
43
43
  * Main struct for alts_zero_copy_grpc_protector.
@@ -233,11 +233,21 @@ static void alts_zero_copy_grpc_protector_destroy(
233
233
  gpr_free(protector);
234
234
  }
235
235
 
236
+ static tsi_result alts_zero_copy_grpc_protector_max_frame_size(
237
+ tsi_zero_copy_grpc_protector* self, size_t& max_frame_size) {
238
+ if (self == nullptr) return TSI_INVALID_ARGUMENT;
239
+ alts_zero_copy_grpc_protector* protector =
240
+ reinterpret_cast<alts_zero_copy_grpc_protector*>(self);
241
+ max_frame_size = protector->max_protected_frame_size;
242
+ return TSI_OK;
243
+ }
244
+
236
245
  static const tsi_zero_copy_grpc_protector_vtable
237
246
  alts_zero_copy_grpc_protector_vtable = {
238
247
  alts_zero_copy_grpc_protector_protect,
239
248
  alts_zero_copy_grpc_protector_unprotect,
240
- alts_zero_copy_grpc_protector_destroy};
249
+ alts_zero_copy_grpc_protector_destroy,
250
+ alts_zero_copy_grpc_protector_max_frame_size};
241
251
 
242
252
  tsi_result alts_zero_copy_grpc_protector_create(
243
253
  const uint8_t* key, size_t key_size, bool is_rekey, bool is_client,
@@ -483,6 +483,7 @@ static const tsi_zero_copy_grpc_protector_vtable
483
483
  fake_zero_copy_grpc_protector_protect,
484
484
  fake_zero_copy_grpc_protector_unprotect,
485
485
  fake_zero_copy_grpc_protector_destroy,
486
+ nullptr /* fake_zero_copy_grpc_protector_max_frame_size */
486
487
  };
487
488
 
488
489
  /* --- tsi_handshaker_result methods implementation. ---*/
@@ -494,7 +495,7 @@ typedef struct {
494
495
  } fake_handshaker_result;
495
496
 
496
497
  static tsi_result fake_handshaker_result_extract_peer(
497
- const tsi_handshaker_result* self, tsi_peer* peer) {
498
+ const tsi_handshaker_result* /*self*/, tsi_peer* peer) {
498
499
  /* Construct a tsi_peer with 1 property: certificate type. */
499
500
  tsi_result result = tsi_construct_peer(1, peer);
500
501
  if (result != TSI_OK) return result;
@@ -506,7 +507,8 @@ static tsi_result fake_handshaker_result_extract_peer(
506
507
  }
507
508
 
508
509
  static tsi_result fake_handshaker_result_create_zero_copy_grpc_protector(
509
- const tsi_handshaker_result* self, size_t* max_output_protected_frame_size,
510
+ const tsi_handshaker_result* /*self*/,
511
+ size_t* max_output_protected_frame_size,
510
512
  tsi_zero_copy_grpc_protector** protector) {
511
513
  *protector =
512
514
  tsi_create_fake_zero_copy_grpc_protector(max_output_protected_frame_size);
@@ -514,8 +516,8 @@ static tsi_result fake_handshaker_result_create_zero_copy_grpc_protector(
514
516
  }
515
517
 
516
518
  static tsi_result fake_handshaker_result_create_frame_protector(
517
- const tsi_handshaker_result* self, size_t* max_output_protected_frame_size,
518
- tsi_frame_protector** protector) {
519
+ const tsi_handshaker_result* /*self*/,
520
+ size_t* max_output_protected_frame_size, tsi_frame_protector** protector) {
519
521
  *protector = tsi_create_fake_frame_protector(max_output_protected_frame_size);
520
522
  return TSI_OK;
521
523
  }
@@ -669,7 +671,7 @@ static tsi_result fake_handshaker_next(
669
671
  tsi_handshaker* self, const unsigned char* received_bytes,
670
672
  size_t received_bytes_size, const unsigned char** bytes_to_send,
671
673
  size_t* bytes_to_send_size, tsi_handshaker_result** handshaker_result,
672
- tsi_handshaker_on_next_done_cb cb, void* user_data) {
674
+ tsi_handshaker_on_next_done_cb /*cb*/, void* /*user_data*/) {
673
675
  /* Sanity check the arguments. */
674
676
  if ((received_bytes_size > 0 && received_bytes == nullptr) ||
675
677
  bytes_to_send == nullptr || bytes_to_send_size == nullptr ||