dovecot-2.2: dsync: If remote doesn't send some message bodies, ...
dovecot at dovecot.org
dovecot at dovecot.org
Mon Jan 21 17:57:30 EET 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/fc5c3281d6d3
changeset: 15662:fc5c3281d6d3
user: Timo Sirainen <tss at iki.fi>
date: Mon Jan 21 17:57:18 2013 +0200
description:
dsync: If remote doesn't send some message bodies, log an error about each one separately.
diffstat:
src/doveadm/dsync/dsync-mailbox-import.c | 42 +++++++++----------------------
1 files changed, 12 insertions(+), 30 deletions(-)
diffs (96 lines):
diff -r 940414cea18d -r fc5c3281d6d3 src/doveadm/dsync/dsync-mailbox-import.c
--- a/src/doveadm/dsync/dsync-mailbox-import.c Mon Jan 21 17:56:36 2013 +0200
+++ b/src/doveadm/dsync/dsync-mailbox-import.c Mon Jan 21 17:57:18 2013 +0200
@@ -1560,13 +1560,12 @@
return ret;
}
-static unsigned int
-dsync_mailbox_import_count_missing_guid_imports(struct dsync_mailbox_importer *importer)
+static void
+dsync_mailbox_import_check_missing_guid_imports(struct dsync_mailbox_importer *importer)
{
struct hash_iterate_context *iter;
const char *key;
struct importer_new_mail *mail;
- unsigned int msgs_left = 0;
iter = hash_table_iterate_init(importer->import_guids);
while (hash_table_iterate(iter, importer->import_guids, &key, &mail)) {
@@ -1574,26 +1573,20 @@
if (mail->uid_in_local || mail->skip)
continue;
- if (importer->debug) {
- i_debug("Mailbox %s: Missing mail GUID=%s (UID=%u)",
- mailbox_get_vname(importer->box),
- mail->guid, mail->uid);
- }
- msgs_left++;
- break;
+ i_error("Mailbox %s: Remote didn't send mail GUID=%s (UID=%u)",
+ mailbox_get_vname(importer->box),
+ mail->guid, mail->uid);
}
}
hash_table_iterate_deinit(&iter);
- return msgs_left;
}
-static unsigned int
-dsync_mailbox_import_count_missing_uid_imports(struct dsync_mailbox_importer *importer)
+static void
+dsync_mailbox_import_check_missing_uid_imports(struct dsync_mailbox_importer *importer)
{
struct hash_iterate_context *iter;
void *key;
struct importer_new_mail *mail;
- unsigned int msgs_left = 0;
iter = hash_table_iterate_init(importer->import_uids);
while (hash_table_iterate(iter, importer->import_uids, &key, &mail)) {
@@ -1601,17 +1594,12 @@
if (mail->uid_in_local || mail->skip)
continue;
- if (importer->debug) {
- i_debug("Mailbox %s: Missing mail UID=%u",
- mailbox_get_vname(importer->box),
- mail->uid);
- }
- msgs_left++;
- break;
+ i_error("Mailbox %s: Remote didn't send mail UID=%u",
+ mailbox_get_vname(importer->box),
+ mail->uid);
}
}
hash_table_iterate_deinit(&iter);
- return msgs_left;
}
int dsync_mailbox_import_deinit(struct dsync_mailbox_importer **_importer,
@@ -1621,7 +1609,6 @@
bool *changes_during_sync_r)
{
struct dsync_mailbox_importer *importer = *_importer;
- unsigned int msgs_left;
int ret;
*_importer = NULL;
@@ -1630,13 +1617,8 @@
if (!importer->new_uids_assigned)
dsync_mailbox_import_assign_new_uids(importer);
- msgs_left = importer->failed ? 0 :
- dsync_mailbox_import_count_missing_guid_imports(importer) +
- dsync_mailbox_import_count_missing_uid_imports(importer);
- if (msgs_left > 0) {
- i_error("%s: Remote didn't send %u expected message bodies",
- mailbox_get_vname(importer->box), msgs_left);
- }
+ dsync_mailbox_import_check_missing_guid_imports(importer);
+ dsync_mailbox_import_check_missing_uid_imports(importer);
if (importer->search_ctx != NULL) {
if (mailbox_search_deinit(&importer->search_ctx) < 0)
More information about the dovecot-cvs
mailing list