From: Timo Sirainen Date: Fri, 21 Nov 2008 15:41:30 +0000 (+0200) Subject: Added namespace owner username to struct mail_namespace. X-Git-Tag: 1.2.alpha4~24 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a02c3e423f365d54ad731811dcb2cfad0c0e3cbb;p=thirdparty%2Fdovecot%2Fcore.git Added namespace owner username to struct mail_namespace. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/shared/shared-storage.c b/src/lib-storage/index/shared/shared-storage.c index 9fe1e5d829..ab889aeb21 100644 --- a/src/lib-storage/index/shared/shared-storage.c +++ b/src/lib-storage/index/shared/shared-storage.c @@ -269,6 +269,7 @@ int shared_storage_get_namespace(struct mail_storage *_storage, ns->type = NAMESPACE_SHARED; ns->user = user; ns->prefix = i_strdup(str_c(prefix)); + ns->owner = i_strdup(userdomain); ns->flags = NAMESPACE_FLAG_LIST_PREFIX | NAMESPACE_FLAG_HIDDEN | NAMESPACE_FLAG_AUTOCREATED; ns->sep = _storage->ns->sep; diff --git a/src/lib-storage/mail-namespace.c b/src/lib-storage/mail-namespace.c index 00f91ac4f9..6149b50249 100644 --- a/src/lib-storage/mail-namespace.c +++ b/src/lib-storage/mail-namespace.c @@ -29,6 +29,7 @@ void mail_namespace_init_storage(struct mail_namespace *ns) static void mail_namespace_free(struct mail_namespace *ns) { + i_free(ns->owner); i_free(ns->prefix); i_free(ns); } @@ -60,9 +61,10 @@ namespace_add_env(const char *data, unsigned int num, if (getenv(t_strdup_printf("NAMESPACE_%u_SUBSCRIPTIONS", num)) != NULL) ns->flags |= NAMESPACE_FLAG_SUBSCRIPTIONS; - if (type == NULL || *type == '\0' || strncmp(type, "private", 7) == 0) + if (type == NULL || *type == '\0' || strncmp(type, "private", 7) == 0) { ns->type = NAMESPACE_PRIVATE; - else if (strncmp(type, "shared", 6) == 0) + ns->owner = i_strdup(user->username); + } else if (strncmp(type, "shared", 6) == 0) ns->type = NAMESPACE_SHARED; else if (strncmp(type, "public", 6) == 0) ns->type = NAMESPACE_PUBLIC; @@ -242,6 +244,7 @@ int mail_namespaces_init(struct mail_user *user) } ns = i_new(struct mail_namespace, 1); + ns->owner = i_strdup(user->username); ns->type = NAMESPACE_PRIVATE; ns->flags = NAMESPACE_FLAG_INBOX | NAMESPACE_FLAG_LIST_PREFIX | NAMESPACE_FLAG_SUBSCRIPTIONS; @@ -277,6 +280,7 @@ mail_namespaces_init_empty(struct mail_user *user) ns = i_new(struct mail_namespace, 1); ns->user = user; ns->prefix = i_strdup(""); + ns->owner = i_strdup(user->username); ns->flags = NAMESPACE_FLAG_INBOX | NAMESPACE_FLAG_LIST_PREFIX | NAMESPACE_FLAG_SUBSCRIPTIONS; user->namespaces = ns; diff --git a/src/lib-storage/mail-namespace.h b/src/lib-storage/mail-namespace.h index e039c3e1c0..f931e51c4d 100644 --- a/src/lib-storage/mail-namespace.h +++ b/src/lib-storage/mail-namespace.h @@ -38,7 +38,7 @@ struct mail_namespace { char sep, real_sep, sep_str[3]; enum namespace_flags flags; - char *prefix; + char *prefix, *owner; size_t prefix_len; struct mail_user *user;