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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 };