Mercurial > dovecot > core-2.2
changeset 22452:566bd6b3b348
pop3-migration: Add pop3_migration_ignore_extra_uidls=yes setting
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 04 Sep 2017 18:32:15 +0300 |
parents | e2b9cadf91e4 |
children | 6eb5a6930614 |
files | src/plugins/pop3-migration/pop3-migration-plugin.c |
diffstat | 1 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/pop3-migration/pop3-migration-plugin.c Mon Sep 04 12:40:49 2017 +0300 +++ b/src/plugins/pop3-migration/pop3-migration-plugin.c Mon Sep 04 18:32:15 2017 +0300 @@ -56,6 +56,7 @@ unsigned int all_mailboxes:1; unsigned int pop3_all_hdr_sha1_set:1; unsigned int ignore_missing_uidls:1; + unsigned int ignore_extra_uidls:1; unsigned int skip_size_check:1; unsigned int skip_uidl_cache:1; }; @@ -765,6 +766,7 @@ } if (missing_uids_count > 0 && !mstorage->all_mailboxes) { string_t *str = t_str_new(128); + bool all_imap_mails_found = FALSE; str_printfa(str, "pop3_migration: %u POP3 messages have no " "matching IMAP messages (first POP3 msg %u UIDL %s)", @@ -773,10 +775,16 @@ if (imap_count + missing_uids_count == pop3_count) { str_append(str, " - all IMAP messages were found " "(POP3 contains more than IMAP INBOX - you may want to set pop3_migration_all_mailboxes=yes)"); + all_imap_mails_found = TRUE; } - if (!mstorage->ignore_missing_uidls) { - i_error("%s - set pop3_migration_ignore_missing_uidls=yes to continue anyway", - str_c(str)); + if (all_imap_mails_found && mstorage->ignore_extra_uidls) { + /* pop3 had more mails than imap. maybe it was just + that a new mail was just delivered. */ + } else if (!mstorage->ignore_missing_uidls) { + str_append(str, " - set pop3_migration_ignore_missing_uidls=yes"); + if (all_imap_mails_found) + str_append(str, " or pop3_migration_ignore_extra_uidls=yes"); + i_error("%s to continue anyway", str_c(str)); return -1; } i_warning("%s", str_c(str)); @@ -1017,6 +1025,9 @@ mstorage->ignore_missing_uidls = mail_user_plugin_getenv(storage->user, "pop3_migration_ignore_missing_uidls") != NULL; + mstorage->ignore_extra_uidls = + mail_user_plugin_getenv(storage->user, + "pop3_migration_ignore_extra_uidls") != NULL; mstorage->skip_size_check = mail_user_plugin_getenv(storage->user, "pop3_migration_skip_size_check") != NULL;