pop3-migration-plugin.c revision 7e8bfb5b0af9606f131fc440e61f3752da335ac9
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen/* Copyright (c) 2007-2015 Dovecot authors, see the included COPYING file */
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen MODULE_CONTEXT(obj, pop3_migration_storage_module)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen MODULE_CONTEXT(obj, pop3_migration_mail_module)
2ca4cb08680aebb1474d762738cf436871f095fbTimo Sirainen /* LIST size */
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen /* sha1(TOP 0) - set only when needed */
09c3a491f4f6ccebe290c7709bdc0d79a187610bTimo Sirainen /* sha1(header) - set only when needed */
const char *pop3_box_vname;
struct pop3_migration_mailbox {
unsigned int first_unfound_idx;
static const char *hdr_hash_skip_headers[] = {
struct pop3_hdr_context {
bool have_eoh;
bool stop;
bool *have_eoh_r)
const unsigned char *data, *p;
bool have_eoh;
if (have_eoh)
struct mailbox_transaction_context *t;
const char *uidl;
int ret = 0;
(void)mailbox_transaction_commit(&t);
return ret;
unsigned first_seq)
struct mailbox_transaction_context *t;
int ret = 0;
(void)mailbox_transaction_commit(&t);
return ret;
struct mailbox_transaction_context *t;
int ret = 0;
(void)mailbox_transaction_commit(&t);
return ret;
struct mailbox_transaction_context *t;
int ret = 0;
(void)mailbox_transaction_commit(&t);
return ret;
for (i = 0; i < count; i++) {
return i == count;
int ret;
pop3_idx++;
imap_idx++;
if (ret < 0)
pop3_idx++;
else if (ret > 0)
imap_idx++;
missing_uids_count = 0;
unsigned int i, count;
prev_uid = 0;
for (i = 0; i < count; i++) {
const char **value_r)
const char *pop3_box_vname;
void pop3_migration_plugin_deinit(void)