]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
header filter istream: Avoid seeking backwards when caller just wants to reset the...
authorTimo Sirainen <tss@iki.fi>
Tue, 1 Jun 2010 15:01:21 +0000 (16:01 +0100)
committerTimo Sirainen <tss@iki.fi>
Tue, 1 Jun 2010 15:01:21 +0000 (16:01 +0100)
--HG--
branch : HEAD

src/lib-mail/istream-header-filter.c

index 4b1e19c9db1be47bded25220193faa94ba188b0d..477302cdbdc95b86c5d731bf787e4974de11a450 100644 (file)
@@ -353,6 +353,14 @@ static void i_stream_header_filter_seek(struct istream_private *stream,
        struct header_filter_istream *mstream =
                (struct header_filter_istream *)stream;
 
+       if (stream->istream.v_offset == v_offset) {
+               /* just reset the input buffer */
+               stream_reset_to(mstream, v_offset);
+               i_stream_seek(mstream->istream.parent,
+                             mstream->istream.parent_expected_offset);
+               return;
+       }
+
        if (v_offset == 0) {
                /* seeking to beginning of headers. */
                stream_reset_to(mstream, 0);