dovecot: Added mailbox_list_get_global_temp_prefix()
dovecot at dovecot.org
dovecot at dovecot.org
Sat Dec 8 17:11:20 EET 2007
details: http://hg.dovecot.org/dovecot/rev/a1e271317eb2
changeset: 6959:a1e271317eb2
user: Timo Sirainen <tss at iki.fi>
date: Sat Dec 08 17:10:42 2007 +0200
description:
Added mailbox_list_get_global_temp_prefix()
diffstat:
6 files changed, 30 insertions(+), 16 deletions(-)
src/lib-storage/list/mailbox-list-fs.c | 15 ++++++++-------
src/lib-storage/list/mailbox-list-maildir.c | 17 +++++++++++------
src/lib-storage/list/mailbox-list-maildir.h | 2 +-
src/lib-storage/mailbox-list-private.h | 2 +-
src/lib-storage/mailbox-list.c | 7 ++++++-
src/lib-storage/mailbox-list.h | 3 +++
diffs (145 lines):
diff -r 7ae8505870c1 -r a1e271317eb2 src/lib-storage/list/mailbox-list-fs.c
--- a/src/lib-storage/list/mailbox-list-fs.c Sat Dec 08 17:10:18 2007 +0200
+++ b/src/lib-storage/list/mailbox-list-fs.c Sat Dec 08 17:10:42 2007 +0200
@@ -12,6 +12,7 @@
#include <sys/stat.h>
#define CREATE_MODE 0770 /* umask() should limit it more */
+#define GLOBAL_TEMP_PREFIX ".temp."
extern struct mailbox_list fs_mailbox_list;
@@ -26,8 +27,8 @@ static struct mailbox_list *fs_list_allo
list->list = fs_mailbox_list;
list->list.pool = pool;
- list->temp_prefix = p_strconcat(pool, ".temp.", my_hostname, ".",
- my_pid, ".", NULL);
+ list->temp_prefix = p_strconcat(pool, GLOBAL_TEMP_PREFIX,
+ my_hostname, ".", my_pid, ".", NULL);
return &list->list;
}
@@ -238,11 +239,11 @@ fs_list_get_mailbox_name_status(struct m
}
static const char *
-fs_list_get_temp_prefix(struct mailbox_list *_list)
-{
- struct fs_mailbox_list *list = (struct fs_mailbox_list *)_list;
-
- return list->temp_prefix;
+fs_list_get_temp_prefix(struct mailbox_list *_list, bool global)
+{
+ struct fs_mailbox_list *list = (struct fs_mailbox_list *)_list;
+
+ return global ? GLOBAL_TEMP_PREFIX : list->temp_prefix;
}
static const char *
diff -r 7ae8505870c1 -r a1e271317eb2 src/lib-storage/list/mailbox-list-maildir.c
--- a/src/lib-storage/list/mailbox-list-maildir.c Sat Dec 08 17:10:18 2007 +0200
+++ b/src/lib-storage/list/mailbox-list-maildir.c Sat Dec 08 17:10:42 2007 +0200
@@ -10,6 +10,9 @@
#include <stdio.h>
#include <sys/stat.h>
+#define MAILDIR_GLOBAL_TEMP_PREFIX "temp."
+#define IMAPDIR_GLOBAL_TEMP_PREFIX ".temp."
+
extern struct mailbox_list maildir_mailbox_list;
extern struct mailbox_list imapdir_mailbox_list;
@@ -23,8 +26,9 @@ static struct mailbox_list *maildir_list
list->list = maildir_mailbox_list;
list->list.pool = pool;
- list->temp_prefix =
- p_strconcat(pool, "temp.", my_hostname, ".", my_pid, ".", NULL);
+ list->global_temp_prefix = MAILDIR_GLOBAL_TEMP_PREFIX;
+ list->temp_prefix = p_strconcat(pool, list->global_temp_prefix,
+ my_hostname, ".", my_pid, ".", NULL);
return &list->list;
}
@@ -38,8 +42,9 @@ static struct mailbox_list *imapdir_list
list->list = imapdir_mailbox_list;
list->list.pool = pool;
- list->temp_prefix = p_strconcat(pool, ".temp.", my_hostname, ".",
- my_pid, ".", NULL);
+ list->global_temp_prefix = IMAPDIR_GLOBAL_TEMP_PREFIX;
+ list->temp_prefix = p_strconcat(pool, list->global_temp_prefix,
+ my_hostname, ".", my_pid, ".", NULL);
return &list->list;
}
@@ -246,12 +251,12 @@ maildir_list_get_mailbox_name_status(str
}
static const char *
-maildir_list_get_temp_prefix(struct mailbox_list *_list)
+maildir_list_get_temp_prefix(struct mailbox_list *_list, bool global)
{
struct maildir_mailbox_list *list =
(struct maildir_mailbox_list *)_list;
- return list->temp_prefix;
+ return global ? list->global_temp_prefix : list->temp_prefix;
}
static int maildir_list_set_subscribed(struct mailbox_list *_list,
diff -r 7ae8505870c1 -r a1e271317eb2 src/lib-storage/list/mailbox-list-maildir.h
--- a/src/lib-storage/list/mailbox-list-maildir.h Sat Dec 08 17:10:18 2007 +0200
+++ b/src/lib-storage/list/mailbox-list-maildir.h Sat Dec 08 17:10:42 2007 +0200
@@ -13,7 +13,7 @@ struct maildir_mailbox_list {
struct maildir_mailbox_list {
struct mailbox_list list;
- const char *temp_prefix;
+ const char *global_temp_prefix, *temp_prefix;
};
struct mailbox_list_iterate_context *
diff -r 7ae8505870c1 -r a1e271317eb2 src/lib-storage/mailbox-list-private.h
--- a/src/lib-storage/mailbox-list-private.h Sat Dec 08 17:10:18 2007 +0200
+++ b/src/lib-storage/mailbox-list-private.h Sat Dec 08 17:10:42 2007 +0200
@@ -25,7 +25,7 @@ struct mailbox_list_vfuncs {
const char *name,
enum mailbox_name_status *status);
- const char *(*get_temp_prefix)(struct mailbox_list *list);
+ const char *(*get_temp_prefix)(struct mailbox_list *list, bool global);
const char *(*join_refpattern)(struct mailbox_list *list,
const char *ref, const char *pattern);
diff -r 7ae8505870c1 -r a1e271317eb2 src/lib-storage/mailbox-list.c
--- a/src/lib-storage/mailbox-list.c Sat Dec 08 17:10:18 2007 +0200
+++ b/src/lib-storage/mailbox-list.c Sat Dec 08 17:10:42 2007 +0200
@@ -304,7 +304,12 @@ const char *mailbox_list_get_path(struct
const char *mailbox_list_get_temp_prefix(struct mailbox_list *list)
{
- return list->v.get_temp_prefix(list);
+ return list->v.get_temp_prefix(list, FALSE);
+}
+
+const char *mailbox_list_get_global_temp_prefix(struct mailbox_list *list)
+{
+ return list->v.get_temp_prefix(list, TRUE);
}
const char *mailbox_list_join_refpattern(struct mailbox_list *list,
diff -r 7ae8505870c1 -r a1e271317eb2 src/lib-storage/mailbox-list.h
--- a/src/lib-storage/mailbox-list.h Sat Dec 08 17:10:18 2007 +0200
+++ b/src/lib-storage/mailbox-list.h Sat Dec 08 17:10:42 2007 +0200
@@ -161,6 +161,9 @@ int mailbox_list_get_mailbox_name_status
/* Returns a prefix that temporary files should use without conflicting
with the namespace. */
const char *mailbox_list_get_temp_prefix(struct mailbox_list *list);
+/* Returns prefix that's common to all get_temp_prefix() calls.
+ Typically this returns either "temp." or ".temp.". */
+const char *mailbox_list_get_global_temp_prefix(struct mailbox_list *list);
/* Returns a single pattern from given reference and pattern. */
const char *mailbox_list_join_refpattern(struct mailbox_list *list,
More information about the dovecot-cvs
mailing list