[dovecot-cvs] dovecot/src/lib-index/mbox mbox-index.c,1.78,1.79

cras at procontrol.fi cras at procontrol.fi
Thu Aug 21 05:59:52 EEST 2003


Update of /home/cvs/dovecot/src/lib-index/mbox
In directory danu:/tmp/cvs-serv126/lib-index/mbox

Modified Files:
	mbox-index.c 
Log Message:
Removed some header/body size fields. We use only message_part now
everywhere since it's small enough. virtual_full_size was left because we
may know that by just reading maildir filename.



Index: mbox-index.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mbox/mbox-index.c,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -d -r1.78 -r1.79
--- mbox-index.c	10 Aug 2003 23:56:23 -0000	1.78
+++ mbox-index.c	21 Aug 2003 01:59:50 -0000	1.79
@@ -3,6 +3,7 @@
 #include "lib.h"
 #include "buffer.h"
 #include "istream.h"
+#include "message-part-serialize.h"
 #include "mbox-index.h"
 #include "mbox-lock.h"
 #include "mail-index-util.h"
@@ -690,6 +691,10 @@
 			   struct mail_index_record *rec,
 			   uoff_t *offset, uoff_t *hdr_size, uoff_t *body_size)
 {
+	struct message_size _hdr_size, _body_size;
+	const void *data;
+	size_t size;
+
 	if (offset != NULL) {
 		if (!mail_cache_copy_fixed_field(index->cache, rec,
 						 MAIL_CACHE_LOCATION_OFFSET,
@@ -701,25 +706,26 @@
 		}
 	}
 
-	if (hdr_size != NULL) {
-		if (!mail_cache_copy_fixed_field(index->cache, rec,
-						 MAIL_CACHE_HEADER_SIZE,
-						 hdr_size, sizeof(*hdr_size))) {
+	if (hdr_size != NULL || body_size != NULL) {
+		if (!mail_cache_lookup_field(index->cache, rec,
+					     MAIL_CACHE_MESSAGEPART,
+					     &data, &size)) {
 			mail_cache_set_corrupted(index->cache,
-				"Missing header size for record %u", rec->uid);
+				"Missing message_part for record %u", rec->uid);
 			return FALSE;
 		}
-	}
-
-	if (body_size != NULL) {
-		if (!mail_cache_copy_fixed_field(index->cache, rec,
-						 MAIL_CACHE_BODY_SIZE,
-						 body_size,
-						 sizeof(*body_size))) {
+		if (!message_part_deserialize_size(data, size,
+						   &_hdr_size, &_body_size)) {
 			mail_cache_set_corrupted(index->cache,
-				"Missing body size for record %u", rec->uid);
+				"Corrupted message_part for record %u",
+				rec->uid);
 			return FALSE;
 		}
+
+		if (hdr_size != NULL)
+			*hdr_size = _hdr_size.physical_size;
+		if (body_size != NULL)
+			*body_size = _body_size.physical_size;
 	}
 
 	return TRUE;



More information about the dovecot-cvs mailing list