+43
−0
+30
−3
+1
−0
+317
−42
Loading
Motivation to introduce this function is to prevent blocking behavior. Compared to spdk_sock_connect[_ext] there is no functional change from user perspective. For detals see previous patch 2dff9736. Change inspired by: https://review.spdk.io/c/spdk/spdk/+/9508 Connection is initiated by connect_async and advanced on - flush (also used by writev_async) - readv (also used by recv[_next]) until it is established or failed; these functions already cover retryable errors so there should be no impact on users. When using connect_async - group_impl_add_sock - set_recvlowat - set_[recv|send]buf are internally deferred until connection is established, - group_impl_get_optimal - is_connected - is_ipv[4|6] - getaddr retrun error if invoked and connection was not established, - close - group_impl_remove_sock introduce additional connection state checks - get_interface_name - get_numa_id - others are not affected. Fixes #2062. Change-Id: Ice40ee21dcf236a19108cfff5afcc445f702d16f Signed-off-by:Jacek Kalwas <jacek.kalwas@nutanix.com> Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/25907 Reviewed-by:
Tomasz Zawadzki <tomasz@tzawadzki.com> Reviewed-by:
Jim Harris <jim.harris@nvidia.com> Tested-by:
SPDK Automated Test System <spdkbot@gmail.com> Community-CI: Mellanox Build Bot Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>