#include "lib.h"
#include "str.h"
-#include "settings-parser.h"
#include "mail-namespace.h"
#include "doveadm-settings.h"
#include "dsync-ibc.h"
#include <ctype.h>
-static 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;
- }
-}
-
static void dsync_brain_check_namespaces(struct dsync_brain *brain)
{
struct mail_namespace *ns, *first_ns = NULL;
}
for (ns = brain->user->namespaces; ns != NULL; ns = ns->next) {
+ if (!dsync_brain_want_namespace(brain, ns))
+ continue;
if ((ret = ns_mailbox_try_alloc(ns, guid, box_r)) != 0) {
if (ret < 0)
brain->failed = TRUE;
#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"
{
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;
+ }
+}
enum dsync_brain_sync_type dsync_brain_get_sync_type(struct dsync_brain *brain);
/* Returns TRUE if there were any unexpected changes during the sync. */
bool dsync_brain_has_unexpected_changes(struct dsync_brain *brain);
+/* Returns TRUE if we want to sync this namespace. */
+bool dsync_brain_want_namespace(struct dsync_brain *brain,
+ struct mail_namespace *ns);
#endif