user->dsyncing = TRUE;
for (ns = user->namespaces; ns != NULL; ns = ns->next) {
+ struct dsync_mailbox_list *dlist =
+ p_new(ns->list->pool, struct dsync_mailbox_list, 1);
+ MODULE_CONTEXT_SET(ns->list, dsync_mailbox_list_module, dlist);
+
if (ns->list->set.vname_escape_char == '\0') {
ns->list->set.vname_escape_char =
ns_sep != DSYNC_LIST_VNAME_ESCAPE_CHAR ?
DSYNC_LIST_VNAME_ESCAPE_CHAR :
DSYNC_LIST_VNAME_ALT_ESCAPE_CHAR;
+ } else {
+ dlist->have_orig_escape_char = TRUE;
}
}
}
"done"
};
+struct dsync_mailbox_list_module dsync_mailbox_list_module =
+ MODULE_CONTEXT_INIT(&mailbox_list_module_register);
+
static void dsync_brain_mailbox_states_dump(struct dsync_brain *brain);
static const char *
#ifndef DSYNC_BRAIN_H
#define DSYNC_BRAIN_H
+#include "module-context.h"
#include "guid.h"
#include "mail-error.h"
+#include "mailbox-list-private.h"
struct mail_namespace;
struct mail_user;
const char *state;
};
+#define DSYNC_LIST_CONTEXT(obj) \
+ MODULE_CONTEXT(obj, dsync_mailbox_list_module)
+struct dsync_mailbox_list {
+ union mailbox_list_module_context module_ctx;
+ bool have_orig_escape_char;
+};
+extern MODULE_CONTEXT_DEFINE(dsync_mailbox_list_module,
+ &mailbox_list_module_register);
+
struct dsync_brain *
dsync_brain_master_init(struct mail_user *user, struct dsync_ibc *ibc,
enum dsync_brain_sync_type sync_type,