]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mbox: raw mbox stream's stat() now returns mail size as stream size if it's known.
authorTimo Sirainen <tss@iki.fi>
Sat, 6 Feb 2010 21:22:15 +0000 (23:22 +0200)
committerTimo Sirainen <tss@iki.fi>
Sat, 6 Feb 2010 21:22:15 +0000 (23:22 +0200)
--HG--
branch : HEAD

src/lib-storage/index/mbox/istream-raw-mbox.c

index 97fce1f02ce35e8d11e98ee29b1be415de283a5d..c4eb57de15ad687625b40c3767bff6bfe5aa127b 100644 (file)
@@ -410,13 +410,16 @@ static const struct stat *
 i_stream_raw_mbox_stat(struct istream_private *stream, bool exact)
 {
        const struct stat *st;
+       struct raw_mbox_istream *rstream = (struct raw_mbox_istream *)stream;
 
        st = i_stream_stat(stream->parent, exact);
        if (st == NULL)
                return NULL;
 
        stream->statbuf = *st;
-       stream->statbuf.st_size = -1;
+       stream->statbuf.st_size =
+               !exact && rstream->seeked && rstream->mail_size != (uoff_t)-1 ?
+               (off_t)rstream->mail_size : -1;
        return &stream->statbuf;
 }