[dovecot-cvs] dovecot/src/lib-imap imap-message-cache.c,1.28,1.29
cras at procontrol.fi
cras at procontrol.fi
Fri Dec 27 12:34:16 EET 2002
Update of /home/cvs/dovecot/src/lib-imap
In directory danu:/tmp/cvs-serv6253/lib-imap
Modified Files:
imap-message-cache.c
Log Message:
Caching IMAP_CACHE_MESSAGE_PART failed if it was already in cache.
Index: imap-message-cache.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-message-cache.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- imap-message-cache.c 21 Dec 2002 22:02:58 -0000 1.28
+++ imap-message-cache.c 27 Dec 2002 10:34:14 -0000 1.29
@@ -307,9 +307,9 @@
msg->part = message_parse(msg->pool, cache->open_stream,
func, msg);
- } else {
- failed = TRUE;
}
+
+ failed = msg->part == NULL;
}
if ((fields & IMAP_CACHE_MESSAGE_BODY_SIZE) && msg->body_size == NULL) {
@@ -521,12 +521,23 @@
}
message_skip_virtual(stream, virtual_skip, partial, cr_skipped);
+
+ if (*cr_skipped && max_virtual_size != (uoff_t)-1) {
+ /* get_body_size() sees \n first, counting it as \r\n */
+ max_virtual_size++;
+ }
+
message_get_body_size(stream, dest, max_virtual_size);
if (*cr_skipped) {
+ /* extra virtual \r counted, drop it */
dest->virtual_size--;
+ /* we'll see \n as first character next time, so make sure
+ we don't count the (virtual) \r twice. */
partial->virtual_size--;
}
+
+ // FIXME: add dest to partial
}
int imap_msgcache_get_rfc822_partial(ImapMessageCache *cache,
More information about the dovecot-cvs
mailing list