From f4108178f2cbd9862a2b6e5e238301b6b851a04b Mon Sep 17 00:00:00 2001 From: leitner Date: Wed, 21 Jul 2004 16:35:31 +0000 Subject: [PATCH] fix case where iob_send sends all from io batch, but then new data is added and iob_send is called again --- io/iob_send.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/io/iob_send.c b/io/iob_send.c index 445a79f..d796f95 100644 --- a/io/iob_send.c +++ b/io/iob_send.c @@ -107,16 +107,17 @@ eagain: else return total?total:sent; if (sent==b->bytesleft) { - b->bytesleft=0; #ifdef TCP_CORK - if (b->bufs && b->files) { - static int zero=0; - setsockopt(s,IPPROTO_TCP,TCP_CORK,&zero,sizeof(zero)); - } + if (b->bufs && b->files) { + static int zero=0; + setsockopt(s,IPPROTO_TCP,TCP_CORK,&zero,sizeof(zero)); + } #endif + iob_reset(b); break; } else if (sent>0) { int64 rest=sent; + b->bytesleft-=rest; for (i=0; e+i