[dovecot-cvs] dovecot/src/lib-storage/index/mbox mbox-sync-parse.c,
1.6, 1.7 mbox-sync.c, 1.9, 1.10
cras at procontrol.fi
cras at procontrol.fi
Mon May 24 06:03:05 EEST 2004
Update of /home/cvs/dovecot/src/lib-storage/index/mbox
In directory talvi:/tmp/cvs-serv28895/lib-storage/index/mbox
Modified Files:
mbox-sync-parse.c mbox-sync.c
Log Message:
uidvalidity/uidnext fixes
Index: mbox-sync-parse.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- a/mbox-sync-parse.c 23 May 2004 01:58:32 -0000 1.6
+++ b/mbox-sync-parse.c 24 May 2004 03:03:03 -0000 1.7
@@ -102,11 +102,6 @@
return FALSE;
}
- if (pos == hdr->full_value_len)
- return TRUE;
-
- // FIXME: save keywords
-
if (ctx->sync_ctx->base_uid_validity == 0) {
ctx->sync_ctx->base_uid_validity = uid_validity;
ctx->sync_ctx->base_uid_last = uid_last;
@@ -115,6 +110,12 @@
ctx->hdr_pos[MBOX_HDR_X_IMAPBASE] = str_len(ctx->header);
ctx->seen_imapbase = TRUE;
+
+ if (pos == hdr->full_value_len)
+ return TRUE;
+
+ // FIXME: save keywords
+
return TRUE;
}
Index: mbox-sync.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- a/mbox-sync.c 24 May 2004 01:50:17 -0000 1.9
+++ b/mbox-sync.c 24 May 2004 03:03:03 -0000 1.10
@@ -225,7 +225,9 @@
ret = -1;
break;
}
- sync_ctx.base_uid_validity = hdr->uid_validity;
+ sync_ctx.base_uid_validity =
+ hdr->uid_validity == 0 ? (uint32_t)ioloop_time :
+ hdr->uid_validity;
}
if ((mail_ctx.need_rewrite ||
@@ -392,6 +394,19 @@
if (mail_index_get_header(sync_view, &hdr) < 0)
ret = -1;
+
+ if (sync_ctx.base_uid_validity != hdr->uid_validity) {
+ mail_index_update_header(t,
+ offsetof(struct mail_index_header, uid_validity),
+ &sync_ctx.base_uid_validity,
+ sizeof(sync_ctx.base_uid_validity));
+ }
+ if (sync_ctx.next_uid != hdr->next_uid) {
+ mail_index_update_header(t,
+ offsetof(struct mail_index_header, next_uid),
+ &sync_ctx.next_uid, sizeof(sync_ctx.next_uid));
+ }
+
if ((uint32_t)st.st_mtime != hdr->sync_stamp) {
uint32_t sync_stamp = st.st_mtime;
More information about the dovecot-cvs
mailing list