]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
zlib: If writing without being corked, flush the stream.
authorTimo Sirainen <tss@iki.fi>
Sun, 14 Feb 2010 19:49:40 +0000 (21:49 +0200)
committerTimo Sirainen <tss@iki.fi>
Sun, 14 Feb 2010 19:49:40 +0000 (21:49 +0200)
--HG--
branch : HEAD

src/plugins/zlib/ostream-zlib.c

index 2e9cb636724368ae07a043038ccbc9c16f0ec282..6e5d83b472899bae84a8cd1962d40ad6cef026f9 100644 (file)
@@ -96,6 +96,10 @@ o_stream_zlib_send_chunk(struct zlib_ostream *zstream,
 {
        z_stream *zs = &zstream->zs;
        ssize_t ret;
+       int flush;
+
+       flush = zstream->ostream.corked || zstream->gz ?
+               Z_NO_FLUSH : Z_SYNC_FLUSH;
 
        if (!zstream->header_sent)
                o_stream_zlib_send_gz_header(zstream);
@@ -115,7 +119,7 @@ o_stream_zlib_send_chunk(struct zlib_ostream *zstream,
                        }
                }
 
-               switch (deflate(zs, Z_NO_FLUSH)) {
+               switch (deflate(zs, flush)) {
                case Z_OK:
                case Z_BUF_ERROR:
                        break;