dovecot-2.0: lib-storage: Added mail_namespaces_init_location() ...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Apr 8 17:27:55 EEST 2011
details: http://hg.dovecot.org/dovecot-2.0/rev/dafc2dcc1a64
changeset: 12724:dafc2dcc1a64
user: Timo Sirainen <tss at iki.fi>
date: Fri Apr 08 17:26:14 2011 +0300
description:
lib-storage: Added mail_namespaces_init_location() for creating a single namespace for user.
diffstat:
src/lib-storage/mail-namespace.c | 23 +++++++++++++++++++----
src/lib-storage/mail-namespace.h | 2 ++
2 files changed, 21 insertions(+), 4 deletions(-)
diffs (62 lines):
diff -r 18e87d50a10a -r dafc2dcc1a64 src/lib-storage/mail-namespace.c
--- a/src/lib-storage/mail-namespace.c Fri Apr 08 16:41:26 2011 +0300
+++ b/src/lib-storage/mail-namespace.c Fri Apr 08 17:26:14 2011 +0300
@@ -272,12 +272,10 @@
int mail_namespaces_init(struct mail_user *user, const char **error_r)
{
- const struct mail_storage_settings *mail_set, *unexpanded_mail_set;
+ const struct mail_storage_settings *mail_set;
struct mail_namespace_settings *const *ns_set;
struct mail_namespace_settings *const *unexpanded_ns_set;
struct mail_namespace *namespaces, *ns, **ns_p;
- struct mail_namespace_settings *inbox_set, *unexpanded_inbox_set;
- const char *error, *driver, *location_source;
unsigned int i, count, count2;
i_assert(user->initialized);
@@ -321,6 +319,19 @@
}
/* no namespaces defined, create a default one */
+ return mail_namespaces_init_location(user, NULL, error_r);
+}
+
+int mail_namespaces_init_location(struct mail_user *user, const char *location,
+ const char **error_r)
+{
+ struct mail_namespace_settings *inbox_set, *unexpanded_inbox_set;
+ struct mail_namespace *ns;
+ const struct mail_storage_settings *mail_set, *unexpanded_mail_set;
+ const char *error, *driver, *location_source;
+
+ i_assert(location == NULL || *location != '\0');
+
ns = i_new(struct mail_namespace, 1);
ns->refcount = 1;
ns->type = NAMESPACE_PRIVATE;
@@ -336,7 +347,11 @@
*unexpanded_inbox_set = *inbox_set;
driver = NULL;
- if (*mail_set->mail_location != '\0') {
+ mail_set = mail_user_set_get_storage_set(user);
+ if (location != NULL) {
+ inbox_set->location = p_strdup(user->pool, location);
+ location_source = "mail_location parameter";
+ } else if (*mail_set->mail_location != '\0') {
unexpanded_mail_set = mail_user_set_get_driver_settings(
user->set_info, user->unexpanded_set,
MAIL_STORAGE_SET_DRIVER_NAME);
diff -r 18e87d50a10a -r dafc2dcc1a64 src/lib-storage/mail-namespace.h
--- a/src/lib-storage/mail-namespace.h Fri Apr 08 16:41:26 2011 +0300
+++ b/src/lib-storage/mail-namespace.h Fri Apr 08 17:26:14 2011 +0300
@@ -74,6 +74,8 @@
};
int mail_namespaces_init(struct mail_user *user, const char **error_r);
+int mail_namespaces_init_location(struct mail_user *user, const char *location,
+ const char **error_r);
struct mail_namespace *mail_namespaces_init_empty(struct mail_user *user);
/* Deinitialize all namespaces. mail_user_deinit() calls this automatically
for user's namespaces. */
More information about the dovecot-cvs
mailing list