Mercurial > dovecot > original-hg > dovecot-1.2
changeset 39:0757e34063ec HEAD
io_buffer_send() was buggy
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 27 Aug 2002 00:46:04 +0300 |
parents | 2a56fca685a2 |
children | 1ba4156fe84f |
files | src/lib/iobuffer.c |
diffstat | 1 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/iobuffer.c Tue Aug 27 00:21:57 2002 +0300 +++ b/src/lib/iobuffer.c Tue Aug 27 00:46:04 2002 +0300 @@ -410,9 +410,6 @@ if (buf->closed) return -1; - if (size == 0) - return 1; - if (buf->pos == 0) { /* buffer is empty, try to send the data immediately */ ret = buf->file ? my_write(buf->fd, data, size) : @@ -425,7 +422,12 @@ buf->offset += ret; data = (const char *) data + ret; - size -= ret; + size -= ret; + } + + if (size == 0) { + /* all sent */ + return 1; } if (io_buffer_get_space(buf, size) == NULL) { @@ -829,6 +831,7 @@ unsigned char *io_buffer_get_space(IOBuffer *buf, unsigned int size) { + i_assert(size > 0); i_assert(size <= INT_MAX); i_assert(!buf->receive); buf->transmit = TRUE;