Mercurial > dovecot > core-2.2
annotate src/lib-storage/list/mailbox-list-none.c @ 12586:a2780b694b2d
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
All storage_name <-> vname conversions now go through the same two
mailbox_list methods. This has many benefits, such as:
* listescape plugin is now much simpler and bugfree
* allows changing lib-storage API to use UTF-8 mailbox names in future
* allows creation of "mailbox aliases" plugin
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 20 Jan 2011 20:59:07 +0200 |
parents | 4073ccc8123f |
children | 2c599f0eab69 |
rev | line source |
---|---|
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
1 /* Copyright (c) 2006-2010 Dovecot authors, see the included COPYING file */ |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 #include "lib.h" |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
4 #include "mailbox-list-private.h" |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 #define MAILBOX_LIST_NAME_NONE "none" |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
7 #define GLOBAL_TEMP_PREFIX ".temp." |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 extern struct mailbox_list none_mailbox_list; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
10 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
11 static struct mailbox_list *none_list_alloc(void) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 struct mailbox_list *list; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 pool_t pool; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 pool = pool_alloconly_create("none list", 2048); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
17 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
18 list = p_new(pool, struct mailbox_list, 1); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
19 *list = none_mailbox_list; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
20 list->pool = pool; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
21 return list; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
22 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
23 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
24 static void none_list_deinit(struct mailbox_list *list) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
25 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
26 pool_unref(&list->pool); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
27 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
28 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
29 static bool |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
30 none_is_valid_pattern(struct mailbox_list *list ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
31 const char *pattern ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
32 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 return TRUE; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
34 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
35 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
36 static bool |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
37 none_is_valid_existing_name(struct mailbox_list *list ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
38 const char *name ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
39 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
40 return TRUE; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
41 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
42 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
43 static bool |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
44 none_is_valid_create_name(struct mailbox_list *list ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
45 const char *name ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
46 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
47 return FALSE; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
48 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
49 |
12586
a2780b694b2d
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
Timo Sirainen <tss@iki.fi>
parents:
12583
diff
changeset
|
50 static char none_list_get_hierarchy_sep(struct mailbox_list *list ATTR_UNUSED) |
a2780b694b2d
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
Timo Sirainen <tss@iki.fi>
parents:
12583
diff
changeset
|
51 { |
a2780b694b2d
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
Timo Sirainen <tss@iki.fi>
parents:
12583
diff
changeset
|
52 return '/'; |
a2780b694b2d
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
Timo Sirainen <tss@iki.fi>
parents:
12583
diff
changeset
|
53 } |
a2780b694b2d
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
Timo Sirainen <tss@iki.fi>
parents:
12583
diff
changeset
|
54 |
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
55 static const char * |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
56 none_list_get_path(struct mailbox_list *list ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
57 const char *name ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
58 enum mailbox_list_path_type type ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
59 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
60 if (type == MAILBOX_LIST_PATH_TYPE_INDEX) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
61 return ""; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
62 return NULL; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
63 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
64 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
65 static const char * |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
66 none_list_get_temp_prefix(struct mailbox_list *list ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
67 bool global ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
68 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
69 return GLOBAL_TEMP_PREFIX; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
70 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
71 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
72 static int none_list_set_subscribed(struct mailbox_list *list, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
73 const char *name ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
74 bool set ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
75 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
76 mailbox_list_set_error(list, MAIL_ERROR_NOTPOSSIBLE, "Not supported"); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
77 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
78 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
79 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
80 static int |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
81 none_list_create_mailbox_dir(struct mailbox_list *list, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
82 const char *name ATTR_UNUSED, |
12114
ba924e3ee4ae
lib-storage: Added mailbox_list_create_dir()
Timo Sirainen <tss@iki.fi>
parents:
11060
diff
changeset
|
83 enum mailbox_dir_create_type type ATTR_UNUSED) |
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
84 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
85 mailbox_list_set_error(list, MAIL_ERROR_NOTPOSSIBLE, "Not supported"); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
86 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
87 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
88 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
89 static int none_list_delete_mailbox(struct mailbox_list *list, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
90 const char *name ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
91 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
92 mailbox_list_set_error(list, MAIL_ERROR_NOTPOSSIBLE, "Not supported"); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
93 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
94 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
95 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
96 static int none_list_delete_dir(struct mailbox_list *list, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
97 const char *name ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
98 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
99 mailbox_list_set_error(list, MAIL_ERROR_NOTPOSSIBLE, "Not supported"); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
100 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
101 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
102 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
103 static int |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
104 none_list_rename_mailbox(struct mailbox_list *oldlist, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
105 const char *oldname ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
106 struct mailbox_list *newlist ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
107 const char *newname ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
108 bool rename_children ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
109 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
110 mailbox_list_set_error(oldlist, MAIL_ERROR_NOTPOSSIBLE, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
111 "Not supported"); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
112 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
113 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
114 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
115 static struct mailbox_list_iterate_context * |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
116 none_list_iter_init(struct mailbox_list *list, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
117 const char *const *patterns ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
118 enum mailbox_list_iter_flags flags) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
119 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
120 struct mailbox_list_iterate_context *ctx; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
121 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
122 ctx = i_new(struct mailbox_list_iterate_context, 1); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
123 ctx->list = list; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
124 ctx->flags = flags; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
125 return ctx; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
126 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
127 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
128 static int |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
129 none_list_iter_deinit(struct mailbox_list_iterate_context *ctx) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
130 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
131 i_free(ctx); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
132 return 0; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
133 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
134 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
135 static const struct mailbox_info * |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
136 none_list_iter_next(struct mailbox_list_iterate_context *ctx ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
137 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
138 return NULL; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
139 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
140 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
141 static int |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
142 none_list_get_mailbox_flags(struct mailbox_list *list ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
143 const char *dir ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
144 const char *fname ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
145 enum mailbox_list_file_type type ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
146 struct stat *st_r ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
147 enum mailbox_info_flags *flags) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
148 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
149 *flags = MAILBOX_NONEXISTENT; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
150 return 0; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
151 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
152 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
153 struct mailbox_list none_mailbox_list = { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
154 .name = MAILBOX_LIST_NAME_NONE, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
155 .props = MAILBOX_LIST_PROP_NO_ROOT, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
156 .mailbox_name_max_length = MAILBOX_LIST_NAME_MAX_LENGTH, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
157 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
158 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
159 none_list_alloc, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
160 none_list_deinit, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
161 NULL, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
162 none_is_valid_pattern, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
163 none_is_valid_existing_name, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
164 none_is_valid_create_name, |
12586
a2780b694b2d
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
Timo Sirainen <tss@iki.fi>
parents:
12583
diff
changeset
|
165 none_list_get_hierarchy_sep, |
a2780b694b2d
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
Timo Sirainen <tss@iki.fi>
parents:
12583
diff
changeset
|
166 mailbox_list_default_get_vname, |
a2780b694b2d
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
Timo Sirainen <tss@iki.fi>
parents:
12583
diff
changeset
|
167 mailbox_list_default_get_storage_name, |
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
168 none_list_get_path, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
169 none_list_get_temp_prefix, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
170 NULL, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
171 none_list_iter_init, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
172 none_list_iter_next, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
173 none_list_iter_deinit, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
174 none_list_get_mailbox_flags, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
175 NULL, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
176 none_list_set_subscribed, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
177 none_list_create_mailbox_dir, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
178 none_list_delete_mailbox, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
179 none_list_delete_dir, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
180 none_list_rename_mailbox |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
181 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
182 }; |