changeset 2582:39d944735147 HEAD

Removed all "unreliable headers" handling code. With mbox we actually handle only virtual header sizes everywhere.
author Timo Sirainen <tss@iki.fi>
date Fri, 10 Sep 2004 14:45:20 +0300
parents b88b34d95c7b
children 7abae2dc0498
files src/lib-mail/message-part-serialize.c src/lib-mail/message-part-serialize.h src/lib-storage/index/index-mail.c src/lib-storage/index/index-storage.h src/lib-storage/index/mbox/mbox-storage.c
diffstat 5 files changed, 4 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-mail/message-part-serialize.c	Fri Sep 10 14:44:07 2004 +0300
+++ b/src/lib-mail/message-part-serialize.c	Fri Sep 10 14:45:20 2004 +0300
@@ -240,26 +240,12 @@
 	return TRUE;
 }
 
-static void
-message_parts_update_physical_pos(struct message_part *parent, off_t diff)
-{
-	struct message_part *part;
-
-	for (part = parent->children; part != NULL; part = part->next) {
-		part->physical_pos += diff;
-		if (part->children != NULL)
-			message_parts_update_physical_pos(part, diff);
-	}
-}
-
 struct message_part *
 message_part_deserialize(pool_t pool, const void *data, size_t size,
-			 const struct message_size *new_hdr_size,
 			 const char **error_r)
 {
 	struct deserialize_context ctx;
         struct message_part *part;
-	off_t diff;
 
 	memset(&ctx, 0, sizeof(ctx));
 	ctx.pool = pool;
@@ -276,20 +262,5 @@
 		return NULL;
 	}
 
-	if (new_hdr_size != NULL) {
-		if (new_hdr_size->virtual_size !=
-		    part->header_size.virtual_size) {
-			part->header_size.virtual_size =
-				new_hdr_size->virtual_size;
-		}
-		if (new_hdr_size->physical_size !=
-		    part->header_size.physical_size) {
-			diff = new_hdr_size->physical_size -
-				part->header_size.physical_size;
-                        part->header_size.physical_size += diff;
-			message_parts_update_physical_pos(part, diff);
-		}
-	}
-
 	return part;
 }
--- a/src/lib-mail/message-part-serialize.h	Fri Sep 10 14:44:07 2004 +0300
+++ b/src/lib-mail/message-part-serialize.h	Fri Sep 10 14:45:20 2004 +0300
@@ -8,11 +8,9 @@
 void message_part_serialize(struct message_part *part, buffer_t *dest);
 
 /* Generate struct message_part from serialized data. Returns NULL and sets
-   error if any problems are detected. If cache header size is unreliable
-   (eg. with mbox), you can give a new header size which will be used. */
+   error if any problems are detected. */
 struct message_part *
 message_part_deserialize(pool_t pool, const void *data, size_t size,
-			 const struct message_size *new_hdr_size,
 			 const char **error_r);
 
 #endif
--- a/src/lib-storage/index/index-mail.c	Fri Sep 10 14:44:07 2004 +0300
+++ b/src/lib-storage/index/index-mail.c	Fri Sep 10 14:45:20 2004 +0300
@@ -36,7 +36,6 @@
 {
 	struct mail_cache_field *cache_fields = mail->ibox->cache_fields;
 	struct message_part *part;
-	const struct message_size *new_hdr_size;
 	buffer_t *part_buf;
 	const char *error;
 
@@ -50,21 +49,10 @@
 		return NULL;
 	}
 
-	if (!mail->ibox->unreliable_headers)
-		new_hdr_size = NULL;
-	else {
-		if (!mail->data.hdr_size_set) {
-			if (index_mail_parse_headers(mail, NULL) < 0)
-				return NULL;
-		}
-
-		new_hdr_size = &mail->data.hdr_size;
-	}
-
 	part = message_part_deserialize(mail->pool,
 					buffer_get_data(part_buf, NULL),
 					buffer_get_used_size(part_buf),
-					new_hdr_size, &error);
+					&error);
 	t_pop();
 
 	if (part == NULL) {
@@ -267,11 +255,8 @@
 		data->parts = get_cached_parts(mail);
 
 	if (data->parts != NULL) {
-		if (!mail->ibox->unreliable_headers) {
-			/* headers don't change, physical_size is reliable */
-			data->hdr_size_set = TRUE;
-			data->hdr_size = data->parts->header_size;
-		}
+		data->hdr_size_set = TRUE;
+		data->hdr_size = data->parts->header_size;
 		data->body_size = data->parts->body_size;
 		data->body_size_set = TRUE;
 		data->virtual_size = data->parts->header_size.virtual_size +
--- a/src/lib-storage/index/index-storage.h	Fri Sep 10 14:44:07 2004 +0300
+++ b/src/lib-storage/index/index-storage.h	Fri Sep 10 14:45:20 2004 +0300
@@ -101,7 +101,6 @@
 	unsigned int notify_pending:1;
 	unsigned int mail_read_mmaped:1;
 	unsigned int syncing_commit:1;
-	unsigned int unreliable_headers:1;
 	unsigned int mbox_sync_dirty:1;
 	unsigned int mbox_do_dirty_syncs:1;
 };
--- a/src/lib-storage/index/mbox/mbox-storage.c	Fri Sep 10 14:44:07 2004 +0300
+++ b/src/lib-storage/index/mbox/mbox-storage.c	Fri Sep 10 14:45:20 2004 +0300
@@ -417,7 +417,6 @@
 	ibox->mail_deinit = mbox_mail_deinit;
 	ibox->is_recent = mbox_mail_is_recent;
 	ibox->mail_interface = &mbox_mail;
-	ibox->unreliable_headers = TRUE;
         ibox->mbox_do_dirty_syncs = getenv("MBOX_DIRTY_SYNCS") != NULL;
 
 	if (access(path, R_OK|W_OK) < 0) {