]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Added namespace owner username to struct mail_namespace.
authorTimo Sirainen <tss@iki.fi>
Fri, 21 Nov 2008 15:41:30 +0000 (17:41 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 21 Nov 2008 15:41:30 +0000 (17:41 +0200)
--HG--
branch : HEAD

src/lib-storage/index/shared/shared-storage.c
src/lib-storage/mail-namespace.c
src/lib-storage/mail-namespace.h

index 9fe1e5d8293298f6551da9353e335487e18e8c91..ab889aeb21ef57ffdaf5a2d629cc86c7a93a5ec6 100644 (file)
@@ -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;
index 00f91ac4f9ae7f49523b59c5b8a77bd4eacb7721..6149b50249572e105067b45ea03e16e8e6c32e47 100644 (file)
@@ -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;
index e039c3e1c0385fe11beedbf272231bb99a32b79c..f931e51c4d8b5b8deebff4b6a0d3745ac5fc5223 100644 (file)
@@ -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;