doveadm-mail-iter.c revision bf7dc750b95039981c0e9d728f313d50cf38a156
/* Copyright (c) 2010-2017 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "mail-storage.h"
#include "mail-namespace.h"
#include "mail-search.h"
#include "doveadm-mail.h"
#include "doveadm-mail-iter.h"
struct doveadm_mail_iter {
struct doveadm_mail_cmd_context *ctx;
struct mail_search_args *search_args;
struct mailbox_transaction_context *t;
struct mail_search_context *search_ctx;
bool killed;
};
const struct mailbox_info *info,
struct mail_search_args *search_args,
const char *const *wanted_headers,
bool readonly,
struct doveadm_mail_iter **iter_r)
{
struct doveadm_mail_iter *iter;
struct mailbox_header_lookup_ctx *headers_ctx;
const char *errstr;
enum mail_error error;
enum mailbox_flags readonly_flag =
readonly ? MAILBOX_FLAG_READONLY : 0;
if (error == MAIL_ERROR_NOTFOUND) {
/* just ignore this mailbox */
return 0;
}
return -1;
}
return 0;
}
static int
bool commit)
{
int ret = 0;
i_error("Searching mailbox %s failed: %s",
ret = -1;
}
}
;
else if (commit) {
if (mailbox_transaction_commit(&iter->t) < 0) {
i_error("Committing mailbox %s failed: %s",
ret = -1;
}
} else {
}
return ret;
}
static int
{
int ret;
if (ret < 0) {
i_error("Mailbox %s: Mailbox sync failed: %s",
}
}
if (ret < 0)
ret = -1;
}
if (!keep_box)
return ret;
}
{
}
{
}
{
}
{
}
{
return FALSE;
if (doveadm_is_killed()) {
return FALSE;
}
}
{
}