dsync-worker-local.c revision cd611ca82b8b8a61736d21a8a0de58cfd53bc9b6
2d0611ffc9f91c5fc2ddccb93f9a3d17791ae650takashi/* Copyright (c) 2009-2012 Dovecot authors, see the included COPYING file */
struct local_dsync_worker_msg_iter {
unsigned int expunge_idx;
struct local_dsync_mailbox {
const char *name;
bool deleted;
struct local_dsync_mailbox_change {
struct local_dsync_dir_change {
struct local_dsync_worker_msg_get {
void *context;
struct local_dsync_worker {
char alt_char;
const char *namespace_prefix;
void *save_context;
void *finish_context;
static unsigned int mailbox_guid_hash(const void *p)
SETTING_STRVAR_UNEXPANDED) == 0;
struct dsync_worker *
char alt_char)
return FALSE;
i_unreached();
i_unreached();
static unsigned int mailbox_log_record_hash(const void *p)
static unsigned int dir_change_hash(const void *p)
int ret = 0;
return ret;
static struct dsync_worker_mailbox_iter *
const char *storage_name;
unsigned int i, cache_field_count;
for (i = 0; i < cache_field_count; i++) {
return ret;
static struct dsync_worker_subs_iter *
const char *storage_name;
return ret;
NULL));
int ret;
if (ret != 0)
if (ret < 0) {
static struct dsync_worker_msg_iter *
unsigned int mailbox_count)
for (i = 0; i < mailbox_count; i++) {
unsigned int count;
return FALSE;
return TRUE;
return FALSE;
T_BEGIN {
} T_END;
unsigned int *mailbox_idx_r,
const char *guid;
msg_r)) {
return ret;
char *dest_name, *p;
else if (*p == src_sep)
*p = dest_sep;
return dest_name;
char *output, *p;
*p = alt_char;
return output;
char *output, *p;
if (!i_isalnum(*p))
*p = alt_char;
return output;
bool creating)
if (creating) {
static struct mailbox *
const char *name;
return NULL;
const char *errstr;
switch (error) {
case MAIL_ERROR_EXISTS:
case MAIL_ERROR_NOTPOSSIBLE:
const char *errstr;
const char *new_name;
int ret;
if (ret != 0) {
NULL);
const char *storage_name;
const char *newname;
unsigned int i, n, expected_count;
return FALSE;
return i == expected_count;
if (selected)
if (selected)
unsigned int count;
int ret;
if (ret == 0) {
} else if (save_failed) {
void *context)
unsigned int count;
if (count == 0)
worker);