From: Timo Sirainen Date: Mon, 12 Jan 2009 15:32:38 +0000 (-0500) Subject: dbox: Fixes to handling maildir-converted files. X-Git-Tag: 1.2.beta1~132 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b7d9be05cc00bab4d98c8e4269671beba5c747d2;p=thirdparty%2Fdovecot%2Fcore.git dbox: Fixes to handling maildir-converted files. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/dbox/dbox-index.c b/src/lib-storage/index/dbox/dbox-index.c index ff41a4d4bc..79dae2e479 100644 --- a/src/lib-storage/index/dbox/dbox-index.c +++ b/src/lib-storage/index/dbox/dbox-index.c @@ -90,7 +90,7 @@ void dbox_index_deinit(struct dbox_index **_index) static int dbox_index_parse_maildir(struct dbox_index *index, const char *line, struct dbox_index_record *rec) { - char *p, *p2; + char *p; unsigned long uid; if (*line++ != ' ') @@ -100,8 +100,7 @@ static int dbox_index_parse_maildir(struct dbox_index *index, const char *line, if (*p++ != ' ' || *p == '\0' || uid == 0 || uid >= (uint32_t)-1) return -1; - p2 = strstr(p, " :"); - if (p2 != NULL) + if (*p == ':' || strstr(p, " :") != NULL) rec->data = p_strdup(index->record_data_pool, line); else { /* convert to new format */ diff --git a/src/lib-storage/index/dbox/dbox-sync-file.c b/src/lib-storage/index/dbox/dbox-sync-file.c index 4b513d64b2..846cf1ab02 100644 --- a/src/lib-storage/index/dbox/dbox-sync-file.c +++ b/src/lib-storage/index/dbox/dbox-sync-file.c @@ -425,7 +425,8 @@ int dbox_sync_file(struct dbox_sync_context *ctx, } file = dbox_file_init(ctx->mbox, entry->file_id); - if (status == DBOX_INDEX_FILE_STATUS_SINGLE_MESSAGE && + if ((status == DBOX_INDEX_FILE_STATUS_SINGLE_MESSAGE || + status == DBOX_INDEX_FILE_STATUS_MAILDIR) && array_is_created(&entry->expunges)) { /* fast path to expunging the whole file */ if (dbox_sync_file_unlink(file) < 0)