From: Timo Sirainen Date: Tue, 12 Aug 2008 18:54:27 +0000 (-0400) Subject: Removed pool parameter from mail_namespaces_init*(). Use mail_user's pool intead. X-Git-Tag: 1.2.alpha1~76 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=092018b35bb1dc5bd61848a38189fe6ac8f791dd;p=thirdparty%2Fdovecot%2Fcore.git Removed pool parameter from mail_namespaces_init*(). Use mail_user's pool intead. --HG-- branch : HEAD --- diff --git a/src/deliver/deliver.c b/src/deliver/deliver.c index f8edc51053..d84aefb1c9 100644 --- a/src/deliver/deliver.c +++ b/src/deliver/deliver.c @@ -787,7 +787,6 @@ int main(int argc, char *argv[]) struct mailbox_header_lookup_ctx *headers_ctx; struct mail *mail; uid_t process_euid; - pool_t namespace_pool; bool stderr_rejection = FALSE; bool keep_environment = FALSE; bool user_auth = FALSE; @@ -1002,14 +1001,13 @@ int main(int argc, char *argv[]) module_dir_init(modules); - namespace_pool = pool_alloconly_create("namespaces", 1024); mail_user = mail_user_init(user, home); - if (mail_namespaces_init(namespace_pool, mail_user) < 0) + if (mail_namespaces_init(mail_user) < 0) i_fatal("Namespace initialization failed"); /* create a separate mail user for the internal namespace */ raw_mail_user = mail_user_init(user, NULL); - raw_ns = mail_namespaces_init_empty(namespace_pool, raw_mail_user); + raw_ns = mail_namespaces_init_empty(raw_mail_user); raw_ns->flags |= NAMESPACE_FLAG_INTERNAL; if (mail_storage_create(raw_ns, "raw", "/tmp", diff --git a/src/imap/main.c b/src/imap/main.c index df2ca22a2e..eb4156784d 100644 --- a/src/imap/main.c +++ b/src/imap/main.c @@ -47,7 +47,6 @@ const char *imap_id_send, *imap_id_log; static struct io *log_io = NULL; static struct module *modules = NULL; static char log_prefix[128]; /* syslog() needs this to be permanent */ -static pool_t namespace_pool; void (*hook_client_created)(struct client **client) = NULL; @@ -229,9 +228,8 @@ static void main_init(void) parse_workarounds(); - namespace_pool = pool_alloconly_create("namespaces", 1024); user = mail_user_init(username, home); - if (mail_namespaces_init(namespace_pool, user) < 0) + if (mail_namespaces_init(user) < 0) i_fatal("Namespace initialization failed"); client = client_create(0, 1, user); @@ -275,7 +273,6 @@ static void main_deinit(void) commands_deinit(); mail_storage_deinit(); dict_driver_unregister(&dict_driver_client); - pool_unref(&namespace_pool); str_free(&capability_string); diff --git a/src/lib-storage/mail-namespace.c b/src/lib-storage/mail-namespace.c index 6c66e5d701..893f70df29 100644 --- a/src/lib-storage/mail-namespace.c +++ b/src/lib-storage/mail-namespace.c @@ -28,14 +28,14 @@ void mail_namespace_init_storage(struct mail_namespace *ns) } static struct mail_namespace * -namespace_add_env(pool_t pool, const char *data, unsigned int num, +namespace_add_env(const char *data, unsigned int num, struct mail_user *user, enum mail_storage_flags flags, enum file_lock_method lock_method) { struct mail_namespace *ns; const char *sep, *type, *prefix, *error; - ns = p_new(pool, struct mail_namespace, 1); + ns = p_new(user->pool, struct mail_namespace, 1); sep = getenv(t_strdup_printf("NAMESPACE_%u_SEP", num)); type = getenv(t_strdup_printf("NAMESPACE_%u_TYPE", num)); @@ -76,7 +76,7 @@ namespace_add_env(pool_t pool, const char *data, unsigned int num, if (sep != NULL) ns->sep = *sep; - ns->prefix = p_strdup(pool, prefix); + ns->prefix = p_strdup(user->pool, prefix); ns->user = user; if (mail_storage_create(ns, NULL, data, flags, lock_method, @@ -178,7 +178,7 @@ namespaces_sort(struct mail_namespace *src) return dest; } -int mail_namespaces_init(pool_t pool, struct mail_user *user) +int mail_namespaces_init(struct mail_user *user) { struct mail_namespace *namespaces, *ns, **ns_p; enum mail_storage_flags flags; @@ -199,7 +199,7 @@ int mail_namespaces_init(pool_t pool, struct mail_user *user) break; T_BEGIN { - *ns_p = namespace_add_env(pool, data, i, user, flags, + *ns_p = namespace_add_env(data, i, user, flags, lock_method); } T_END; @@ -232,7 +232,7 @@ int mail_namespaces_init(pool_t pool, struct mail_user *user) mail = t_strconcat("maildir:", mail, NULL); } - ns = p_new(pool, struct mail_namespace, 1); + ns = p_new(user->pool, struct mail_namespace, 1); ns->type = NAMESPACE_PRIVATE; ns->flags = NAMESPACE_FLAG_INBOX | NAMESPACE_FLAG_LIST | NAMESPACE_FLAG_SUBSCRIPTIONS; @@ -260,11 +260,11 @@ int mail_namespaces_init(pool_t pool, struct mail_user *user) } struct mail_namespace * -mail_namespaces_init_empty(pool_t pool, struct mail_user *user) +mail_namespaces_init_empty(struct mail_user *user) { struct mail_namespace *ns; - ns = p_new(pool, struct mail_namespace, 1); + ns = p_new(user->pool, struct mail_namespace, 1); ns->user = user; ns->prefix = ""; ns->flags = NAMESPACE_FLAG_INBOX | NAMESPACE_FLAG_LIST | diff --git a/src/lib-storage/mail-namespace.h b/src/lib-storage/mail-namespace.h index bcdeae1c60..2bc7072450 100644 --- a/src/lib-storage/mail-namespace.h +++ b/src/lib-storage/mail-namespace.h @@ -43,9 +43,8 @@ struct mail_namespace { /* Called after namespaces has been created */ extern void (*hook_mail_namespaces_created)(struct mail_namespace *namespaces); -int mail_namespaces_init(pool_t pool, struct mail_user *user); -struct mail_namespace * -mail_namespaces_init_empty(pool_t pool, struct mail_user *user); +int mail_namespaces_init(struct mail_user *user); +struct mail_namespace *mail_namespaces_init_empty(struct mail_user *user); void mail_namespaces_deinit(struct mail_namespace **namespaces); /* Update hierarchy separators in given name to real_sep characters. */ diff --git a/src/plugins/convert/convert-storage.c b/src/plugins/convert/convert-storage.c index e7625251ca..a57482abd4 100644 --- a/src/plugins/convert/convert-storage.c +++ b/src/plugins/convert/convert-storage.c @@ -400,7 +400,7 @@ int convert_storage(const char *source_data, const char *path, *error; int ret; - source_ns = mail_namespaces_init_empty(pool_datastack_create(), user); + source_ns = mail_namespaces_init_empty(user); dest_inbox_ns = mail_namespace_find_inbox(dest_namespaces); src_flags = dest_inbox_ns->storage->flags; lock_method = dest_inbox_ns->storage->lock_method; diff --git a/src/plugins/convert/convert-tool.c b/src/plugins/convert/convert-tool.c index ac62cc1658..ad88687aeb 100644 --- a/src/plugins/convert/convert-tool.c +++ b/src/plugins/convert/convert-tool.c @@ -49,7 +49,7 @@ int main(int argc, const char *argv[]) mail_storage_parse_env(&dest_flags, &lock_method); user = mail_user_init(argv[1], argv[2]); - dest_ns = mail_namespaces_init_empty(pool_datastack_create(), user); + dest_ns = mail_namespaces_init_empty(user); if (mail_storage_create(dest_ns, NULL, argv[4], dest_flags, lock_method, &error) < 0) { diff --git a/src/plugins/expire/expire-tool.c b/src/plugins/expire/expire-tool.c index 6f23d6f1c1..4ad3324ee6 100644 --- a/src/plugins/expire/expire-tool.c +++ b/src/plugins/expire/expire-tool.c @@ -27,7 +27,6 @@ struct expire_context { char *user; struct mail_user *mail_user; - pool_t namespace_pool; bool testrun; }; @@ -45,7 +44,7 @@ static int user_init(struct expire_context *ctx, const char *user) } ctx->mail_user = mail_user_init(user, getenv("HOME")); - if (mail_namespaces_init(ctx->namespace_pool, ctx->mail_user) < 0) + if (mail_namespaces_init(ctx->mail_user) < 0) return -1; return 1; } @@ -54,7 +53,6 @@ static void user_deinit(struct expire_context *ctx) { mail_user_deinit(&ctx->mail_user); i_free_and_null(ctx->user); - p_clear(ctx->namespace_pool); } static int @@ -204,7 +202,6 @@ static void expire_run(bool testrun) memset(&ctx, 0, sizeof(ctx)); ctx.testrun = testrun; ctx.auth_conn = auth_connection_init(auth_socket); - ctx.namespace_pool = pool_alloconly_create("namespaces", 1024); env = expire_env_init(getenv("EXPIRE"), getenv("EXPIRE_ALTMOVE")); dict = dict_init(getenv("EXPIRE_DICT"), DICT_DATA_TYPE_UINT32, ""); if (dict == NULL) diff --git a/src/pop3/main.c b/src/pop3/main.c index e25e13d8d2..ff9398762a 100644 --- a/src/pop3/main.c +++ b/src/pop3/main.c @@ -41,7 +41,6 @@ struct ioloop *ioloop; void (*hook_client_created)(struct client **client) = NULL; static struct module *modules = NULL; -static pool_t namespace_pool; static char log_prefix[128]; /* syslog() needs this to be permanent */ static struct io *log_io = NULL; @@ -230,9 +229,8 @@ static bool main_init(void) i_fatal("pop3_uidl_format setting doesn't contain any " "%% variables."); - namespace_pool = pool_alloconly_create("namespaces", 1024); user = mail_user_init(getenv("USER"), getenv("HOME")); - if (mail_namespaces_init(namespace_pool, user) < 0) + if (mail_namespaces_init(user) < 0) i_fatal("Namespace initialization failed"); client = client_create(0, 1, user);