Mercurial > dovecot > core-2.2
changeset 1140:44904d3d7b6b HEAD
get_size() was buggy
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 11 Feb 2003 14:31:35 +0200 |
parents | cfe8bafb61d3 |
children | 873634a5b472 |
files | src/lib-storage/index/index-mail.c |
diffstat | 1 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/index-mail.c Tue Feb 11 14:31:10 2003 +0200 +++ b/src/lib-storage/index/index-mail.c Tue Feb 11 14:31:35 2003 +0200 @@ -403,7 +403,7 @@ { struct index_mail *mail = (struct index_mail *) _mail; struct index_mail_data *data = &mail->data; - uoff_t hdr_size, body_size; + uoff_t hdr_size, body_size, hdr_phys_size; if (data->size != (uoff_t)-1) return data->size; @@ -442,10 +442,12 @@ } /* have to parse, slow.. */ - if (!open_stream(mail, hdr_size != (uoff_t)-1 ? hdr_size : 0)) + hdr_phys_size = hdr_size != (uoff_t)-1 && data->hdr_size_set ? + data->hdr_size.physical_size : (uoff_t)-1; + if (!open_stream(mail, hdr_phys_size != (uoff_t)-1 ? hdr_phys_size : 0)) return (uoff_t)-1; - if (hdr_size == (uoff_t)-1) { + if (hdr_phys_size == (uoff_t)-1) { message_get_header_size(data->stream, &data->hdr_size); hdr_size = data->hdr_size.virtual_size; data->hdr_size_set = TRUE;