rewrite iov_send_recv() and move it to iov.c
commit25e5e4c7e9d5ec3e95c9526d1abaca40ada50ab0
authorMichael Tokarev <mjt@tls.msk.ru>
Wed, 14 Mar 2012 07:18:54 +0000 (14 11:18 +0400)
committerMichael Tokarev <mjt@tls.msk.ru>
Mon, 11 Jun 2012 19:12:11 +0000 (11 23:12 +0400)
tree0c224d409dd20ca4c613d3ee35fab755ca13c1a2
parent2fc8ae1dd77fbc55146b602f703add6dc314dea4
rewrite iov_send_recv() and move it to iov.c

Make it much more understandable, add a missing
iov_cnt argument (number of iovs in the iov), and
add comments to it.

The new implementation has been extensively tested
by splitting a large buffer into many small
randomly-sized chunks, sending it over socket to
another, slow process and verifying the receiving
data is the same.

Also add a unit test for iov_send_recv(), sending/
receiving data between two processes over a socketpair
using random vectors and random sizes.

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
cutils.c
iov.c
iov.h
qemu-coroutine-io.c
tests/test-iov.c