From: Timo Sirainen Date: Mon, 15 Sep 2003 14:02:07 +0000 (+0300) Subject: Added hidden-option to namespaces to hide them from NAMESPACE reply. X-Git-Tag: 1.1.alpha1~4333 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0618a9169de00f9efc498ad0f1af1ee6ee96f91f;p=thirdparty%2Fdovecot%2Fcore.git Added hidden-option to namespaces to hide them from NAMESPACE reply. --HG-- branch : HEAD --- diff --git a/src/imap/cmd-namespace.c b/src/imap/cmd-namespace.c index 6529723aeb..f0b8a077b1 100644 --- a/src/imap/cmd-namespace.c +++ b/src/imap/cmd-namespace.c @@ -12,7 +12,7 @@ static void list_namespaces(struct namespace *ns, enum namespace_type type, int found = FALSE; while (ns != NULL) { - if (ns->type == type) { + if (ns->type == type && !ns->hidden) { if (!found) { str_append_c(str, '('); found = TRUE; diff --git a/src/imap/namespace.c b/src/imap/namespace.c index 16818c1422..98ef1fb9d6 100644 --- a/src/imap/namespace.c +++ b/src/imap/namespace.c @@ -12,7 +12,7 @@ namespace_add_env(pool_t pool, const char *data, unsigned int num, { struct namespace *ns; const char *sep, *type, *prefix; - int inbox; + int inbox, hidden; ns = p_new(pool, struct namespace, 1); @@ -20,6 +20,7 @@ namespace_add_env(pool_t pool, const char *data, unsigned int num, type = getenv(t_strdup_printf("NAMESPACE_%u_TYPE", num)); prefix = getenv(t_strdup_printf("NAMESPACE_%u_PREFIX", num)); inbox = getenv(t_strdup_printf("NAMESPACE_%u_INBOX", num)) != NULL; + hidden = getenv(t_strdup_printf("NAMESPACE_%u_HIDDEN", num)) != NULL; if (type == NULL || *type == '\0' || strncmp(type, "private", 7) == 0) ns->type = NAMESPACE_PRIVATE; @@ -35,6 +36,7 @@ namespace_add_env(pool_t pool, const char *data, unsigned int num, ns->prefix = p_strdup(pool, prefix); ns->inbox = inbox; + ns->hidden = hidden; ns->storage = mail_storage_create_with_data(data, user, ns->prefix, sep != NULL ? *sep : '\0'); if (ns->storage == NULL) { diff --git a/src/imap/namespace.h b/src/imap/namespace.h index d70b7ac024..fb5ecd8cf5 100644 --- a/src/imap/namespace.h +++ b/src/imap/namespace.h @@ -13,7 +13,7 @@ struct namespace { enum namespace_type type; char hierarchy_sep; char *prefix; - int inbox; + int inbox, hidden; struct mail_storage *storage; }; diff --git a/src/master/mail-process.c b/src/master/mail-process.c index e8785fbdc3..da1ab33d5b 100644 --- a/src/master/mail-process.c +++ b/src/master/mail-process.c @@ -139,6 +139,8 @@ static void env_put_namespace(struct namespace_settings *ns, } if (ns->inbox) env_put(t_strdup_printf("NAMESPACE_%u_INBOX=1", i)); + if (ns->hidden) + env_put(t_strdup_printf("NAMESPACE_%u_HIDDEN=1", i)); t_pop(); } } diff --git a/src/master/master-settings.h b/src/master/master-settings.h index 2edd90352e..ec79651a2c 100644 --- a/src/master/master-settings.h +++ b/src/master/master-settings.h @@ -122,6 +122,7 @@ struct namespace_settings { const char *location; int inbox; + int hidden; }; struct server_settings {