Mercurial > dovecot > core-2.2
annotate src/lib-storage/list/mailbox-list-none.c @ 12632:2c599f0eab69
lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 02 Feb 2011 01:14:57 +0200 |
parents | a2780b694b2d |
children | 4e4c7f982fd5 |
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" |
12632
2c599f0eab69
lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
Timo Sirainen <tss@iki.fi>
parents:
12586
diff
changeset
|
4 #include "array.h" |
2c599f0eab69
lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
Timo Sirainen <tss@iki.fi>
parents:
12586
diff
changeset
|
5 #include "imap-match.h" |
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 #include "mailbox-list-private.h" |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
7 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 #define MAILBOX_LIST_NAME_NONE "none" |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 #define GLOBAL_TEMP_PREFIX ".temp." |
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 extern struct mailbox_list none_mailbox_list; |
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 static struct mailbox_list *none_list_alloc(void) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 struct mailbox_list *list; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 pool_t pool; |
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 pool = pool_alloconly_create("none list", 2048); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
19 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
20 list = p_new(pool, struct mailbox_list, 1); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
21 *list = none_mailbox_list; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
22 list->pool = pool; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
23 return list; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
24 } |
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 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
|
27 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
28 pool_unref(&list->pool); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
29 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
30 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
31 static bool |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
32 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
|
33 const char *pattern ATTR_UNUSED) |
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 return TRUE; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
36 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
37 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
38 static bool |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
39 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
|
40 const char *name ATTR_UNUSED) |
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 return TRUE; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
43 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
44 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
45 static bool |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
46 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
|
47 const char *name ATTR_UNUSED) |
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 return FALSE; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
50 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
51 |
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
|
52 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
|
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 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
|
55 } |
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
|
56 |
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
57 static const char * |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
58 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
|
59 const char *name ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
60 enum mailbox_list_path_type type ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
61 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
62 if (type == MAILBOX_LIST_PATH_TYPE_INDEX) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
63 return ""; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
64 return NULL; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
65 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
66 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
67 static const char * |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
68 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
|
69 bool global ATTR_UNUSED) |
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 return GLOBAL_TEMP_PREFIX; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
72 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
73 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
74 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
|
75 const char *name ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
76 bool set ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
77 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
78 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
|
79 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
80 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
81 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
82 static int |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
83 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
|
84 const char *name ATTR_UNUSED, |
12114
ba924e3ee4ae
lib-storage: Added mailbox_list_create_dir()
Timo Sirainen <tss@iki.fi>
parents:
11060
diff
changeset
|
85 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
|
86 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
87 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
|
88 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
89 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
90 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
91 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
|
92 const char *name ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
93 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
94 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
|
95 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
96 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
97 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
98 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
|
99 const char *name ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
100 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
101 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
|
102 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
103 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
104 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
105 static int |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
106 none_list_rename_mailbox(struct mailbox_list *oldlist, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
107 const char *oldname ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
108 struct mailbox_list *newlist ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
109 const char *newname ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
110 bool rename_children ATTR_UNUSED) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
111 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
112 mailbox_list_set_error(oldlist, MAIL_ERROR_NOTPOSSIBLE, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
113 "Not supported"); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
114 return -1; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
115 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
116 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
117 static struct mailbox_list_iterate_context * |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
118 none_list_iter_init(struct mailbox_list *list, |
12632
2c599f0eab69
lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
Timo Sirainen <tss@iki.fi>
parents:
12586
diff
changeset
|
119 const char *const *patterns, |
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
120 enum mailbox_list_iter_flags flags) |
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 struct mailbox_list_iterate_context *ctx; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
123 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
124 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
|
125 ctx->list = list; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
126 ctx->flags = flags; |
12632
2c599f0eab69
lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
Timo Sirainen <tss@iki.fi>
parents:
12586
diff
changeset
|
127 ctx->glob = imap_match_init_multiple(default_pool, patterns, TRUE, |
2c599f0eab69
lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
Timo Sirainen <tss@iki.fi>
parents:
12586
diff
changeset
|
128 mail_namespace_get_sep(list->ns)); |
2c599f0eab69
lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
Timo Sirainen <tss@iki.fi>
parents:
12586
diff
changeset
|
129 array_create(&ctx->module_contexts, default_pool, sizeof(void *), 5); |
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
130 return ctx; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
131 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
132 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
133 static int |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
134 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
|
135 { |
12632
2c599f0eab69
lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
Timo Sirainen <tss@iki.fi>
parents:
12586
diff
changeset
|
136 array_free(&ctx->module_contexts); |
2c599f0eab69
lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
Timo Sirainen <tss@iki.fi>
parents:
12586
diff
changeset
|
137 imap_match_deinit(&ctx->glob); |
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
138 i_free(ctx); |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
139 return 0; |
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 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
142 static const struct mailbox_info * |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
143 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
|
144 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
145 return NULL; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
146 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
147 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
148 static int |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
149 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
|
150 const char *dir ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
151 const char *fname ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
152 enum mailbox_list_file_type type ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
153 struct stat *st_r ATTR_UNUSED, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
154 enum mailbox_info_flags *flags) |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
155 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
156 *flags = MAILBOX_NONEXISTENT; |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
157 return 0; |
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 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
160 struct mailbox_list none_mailbox_list = { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
161 .name = MAILBOX_LIST_NAME_NONE, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
162 .props = MAILBOX_LIST_PROP_NO_ROOT, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
163 .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
|
164 |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
165 { |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
166 none_list_alloc, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
167 none_list_deinit, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
168 NULL, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
169 none_is_valid_pattern, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
170 none_is_valid_existing_name, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
171 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
|
172 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
|
173 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
|
174 mailbox_list_default_get_storage_name, |
11060
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
175 none_list_get_path, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
176 none_list_get_temp_prefix, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
177 NULL, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
178 none_list_iter_init, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
179 none_list_iter_next, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
180 none_list_iter_deinit, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
181 none_list_get_mailbox_flags, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
182 NULL, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
183 none_list_set_subscribed, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
184 none_list_create_mailbox_dir, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
185 none_list_delete_mailbox, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
186 none_list_delete_dir, |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
187 none_list_rename_mailbox |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
188 } |
6b1f08814e59
lib-storage: Added "none" mailbox list driver.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
189 }; |