Mercurial > dovecot > core-2.2
diff src/doveadm/dsync/dsync-brain.c @ 16540:84014270ee37
dsync: Don't try to find mailboxes from unwanted namespaces.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 24 Jun 2013 22:25:47 +0300 |
parents | b5876fa03b0e |
children | 07e314199f56 |
line wrap: on
line diff
--- a/src/doveadm/dsync/dsync-brain.c Mon Jun 24 16:37:48 2013 +0300 +++ b/src/doveadm/dsync/dsync-brain.c Mon Jun 24 22:25:47 2013 +0300 @@ -6,6 +6,7 @@ #include "hostpid.h" #include "str.h" #include "process-title.h" +#include "settings-parser.h" #include "master-service.h" #include "master-service-settings.h" #include "mail-namespace.h" @@ -584,3 +585,25 @@ { return brain->changes_during_sync; } + +bool dsync_brain_want_namespace(struct dsync_brain *brain, + struct mail_namespace *ns) +{ + if (brain->sync_ns != NULL) + return brain->sync_ns == ns; + if (ns->alias_for != NULL) { + /* always skip aliases */ + return FALSE; + } + if (brain->sync_visible_namespaces) { + if ((ns->flags & NAMESPACE_FLAG_HIDDEN) == 0) + return TRUE; + if ((ns->flags & (NAMESPACE_FLAG_LIST_PREFIX | + NAMESPACE_FLAG_LIST_CHILDREN)) != 0) + return TRUE; + return FALSE; + } else { + return strcmp(ns->unexpanded_set->location, + SETTING_STRVAR_UNEXPANDED) == 0; + } +}