]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: ostream-multiplex - o_stream_send*(): Return 0 if buffer is full, not -2
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 14 Apr 2020 12:37:44 +0000 (15:37 +0300)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Fri, 24 Apr 2020 08:00:42 +0000 (08:00 +0000)
-2 is only for istreams.

Fixes:
Panic: file ostream.c: line 281 (o_stream_sendv_int): assertion failed: (stream->stream_errno != 0)

src/lib/ostream-multiplex.c

index c43860c0a3f81a736f703d4c64678941121e4b91..3f5bc0a9d551ecd10eaacd22b4580888fc1535d3 100644 (file)
@@ -98,7 +98,6 @@ o_stream_multiplex_sendv(struct multiplex_ostream *mstream)
                        { channel->buf->data, amt }
                };
                if ((ret = o_stream_sendv(mstream->parent, vec, N_ELEMENTS(vec))) < 0) {
-                       i_assert(ret != -2);
                        propagate_error(mstream, mstream->parent->stream_errno);
                        break;
                }
@@ -155,7 +154,7 @@ o_stream_multiplex_ochannel_sendv(struct ostream_private *stream,
                o_stream_multiplex_sendv(channel->mstream);
                avail = o_stream_get_buffer_avail_size(&stream->ostream);
                if (avail == 0)
-                       return -2;
+                       return 0;
        }
 
        total = 0;