]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
FETCH BODY[part]<partial> didn't work correctly
authorTimo Sirainen <tss@iki.fi>
Mon, 24 Mar 2003 12:59:49 +0000 (14:59 +0200)
committerTimo Sirainen <tss@iki.fi>
Mon, 24 Mar 2003 12:59:49 +0000 (14:59 +0200)
--HG--
branch : HEAD

src/imap/imap-fetch-body-section.c

index bb59af69f03f32dd4ce1f4554ee99602a8e92bc7..c901898348d3304c5bd11868958a59c800e5aabe 100644 (file)
@@ -445,10 +445,16 @@ static int fetch_part_body(struct imap_fetch_context *ctx,
 {
        const char *str;
        int skip_cr;
+       uoff_t size;
        off_t ret;
 
-       str = t_strdup_printf("%s {%"PRIuUOFF_T"}\r\n",
-                             ctx->prefix, part->body_size.virtual_size);
+       if (body->skip >= part->body_size.virtual_size)
+               size = 0;
+       else {
+               size = part->body_size.virtual_size - body->skip;
+               if (size > body->max_size) size = body->max_size;
+       }
+       str = t_strdup_printf("%s {%"PRIuUOFF_T"}\r\n", ctx->prefix, size);
        if (o_stream_send_str(ctx->output, str) < 0)
                return FALSE;