]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Various passthrough istreams didn't preserve readable_fd.
authorTimo Sirainen <tss@iki.fi>
Mon, 7 Sep 2015 19:35:30 +0000 (22:35 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 7 Sep 2015 19:35:30 +0000 (22:35 +0300)
src/lib-storage/index/istream-mail.c
src/lib/istream-failure-at.c
src/lib/istream-hash.c
src/lib/istream-timeout.c

index 8262cc08a97d55dc2631f4021223118c5baeaf1c..6b77fd443f4df91b8d42442c6beaa33b7f0d4da4 100644 (file)
@@ -146,6 +146,7 @@ struct istream *i_stream_create_mail(struct mail *mail, struct istream *input,
 
        mstream->istream.read = i_stream_mail_read;
 
+       mstream->istream.istream.readable_fd = input->readable_fd;
        mstream->istream.istream.blocking = input->blocking;
        mstream->istream.istream.seekable = input->seekable;
        return i_stream_create(&mstream->istream, input,
index f87909e032c11d4b6bbf8e106af142b0d9dd68e0..5942a24e35c3076fe1a798f6ebaecd799435d957 100644 (file)
@@ -72,6 +72,7 @@ i_stream_create_failure_at(struct istream *input, uoff_t failure_offset,
        fstream->istream.read = i_stream_failure_at_read;
        fstream->istream.iostream.destroy = i_stream_failure_at_destroy;
 
+       fstream->istream.istream.readable_fd = input->readable_fd;
        fstream->istream.istream.blocking = input->blocking;
        fstream->istream.istream.seekable = input->seekable;
 
index d60b847979f670cd54f5b48c81b66d6ba96ed043..e25abdaa648b7f705ad7ef07cc3a3c8145e6c9b3 100644 (file)
@@ -74,6 +74,7 @@ i_stream_create_hash(struct istream *input, const struct hash_method *method,
        hstream->istream.read = i_stream_hash_read;
        hstream->istream.seek = i_stream_hash_seek;
 
+       hstream->istream.istream.readable_fd = input->readable_fd;
        hstream->istream.istream.blocking = input->blocking;
        hstream->istream.istream.seekable = input->seekable;
 
index b4dce85a6e6d229acd7464873a4963dcc671784c..dca30986eced9a1715f7e2c391915978da92caa6 100644 (file)
@@ -135,6 +135,7 @@ i_stream_create_timeout(struct istream *input, unsigned int timeout_msecs)
        tstream->istream.switch_ioloop = i_stream_timeout_switch_ioloop;
        tstream->istream.iostream.close = i_stream_timeout_close;
 
+       tstream->istream.istream.readable_fd = input->readable_fd;
        tstream->istream.istream.blocking = input->blocking;
        tstream->istream.istream.seekable = input->seekable;
        return i_stream_create(&tstream->istream, input,