From 08398c29dd04173e63b1632f4418734d9b82a45e Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Tue, 7 Jul 2020 01:37:54 +0200 Subject: [PATCH] lib-storage: Add mail_namespace_is_removable() and use it. --- src/lib-storage/mail-namespace.h | 6 ++++++ src/lib-storage/mail-user.c | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib-storage/mail-namespace.h b/src/lib-storage/mail-namespace.h index 408e98c87f..4d8a58d68e 100644 --- a/src/lib-storage/mail-namespace.h +++ b/src/lib-storage/mail-namespace.h @@ -83,6 +83,12 @@ struct mail_namespace { bool destroyed:1; }; +/* Returns TRUE when namespace can be removed without consequence. */ +static inline bool mail_namespace_is_removable(const struct mail_namespace *ns) +{ + return ((ns->flags & NAMESPACE_FLAG_USABLE) == 0 && + (ns->flags & NAMESPACE_FLAG_AUTOCREATED) != 0); +} /* Allocate a new namespace, and fill it based on the passed in settings. This is the most low-level namespace creation function. The storage isn't diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index 64d474519a..24c5c02d33 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -374,9 +374,7 @@ void mail_user_drop_useless_namespaces(struct mail_user *user) for (ns = user->namespaces; ns != NULL; ns = next) { next = ns->next; - if ((ns->flags & NAMESPACE_FLAG_USABLE) == 0 && - (ns->flags & NAMESPACE_FLAG_AUTOCREATED) != 0 && - ns->prefix_len > 0) + if (mail_namespace_is_removable(ns) && ns->prefix_len > 0) mail_namespace_destroy(ns); } } -- 2.47.3