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
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"
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 };