annotate src/lib-storage/mail-user.h @ 8137:b2a258213ee0 HEAD

Created mail_user_[try_]home_expand(). Used them for expanding mail directories.
author Timo Sirainen <tss@iki.fi>
date Sun, 31 Aug 2008 12:23:43 +0300
parents f12f8c1da0bf
children 6dd0c6755afe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8084
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
1 #ifndef MAIL_USER_H
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2 #define MAIL_USER_H
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 struct mail_user;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6 struct mail_user_vfuncs {
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7 void (*deinit)(struct mail_user *user);
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 };
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10 struct mail_user {
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 pool_t pool;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12 struct mail_user_vfuncs v;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 const char *username;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 const char *home;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
16
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17 struct mail_namespace *namespaces;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19 /* Module-specific contexts. See mail_storage_module_id. */
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 ARRAY_DEFINE(module_contexts, union mail_user_module_context *);
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21 };
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
22
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
23 struct mail_user_module_register {
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 unsigned int id;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
25 };
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
26
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
27 union mail_user_module_context {
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
28 struct mail_user_vfuncs super;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
29 struct mail_user_module_register *reg;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
30 };
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
31 extern struct mail_user_module_register mail_user_module_register;
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
32
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
33 /* Called after user has been created */
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
34 extern void (*hook_mail_user_created)(struct mail_user *user);
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
35
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
36 struct mail_user *mail_user_init(const char *username, const char *home);
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
37 void mail_user_deinit(struct mail_user **user);
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
38
8137
b2a258213ee0 Created mail_user_[try_]home_expand(). Used them for expanding mail directories.
Timo Sirainen <tss@iki.fi>
parents: 8084
diff changeset
39 /* Replace ~/ at the beginning of the path with the user's home directory. */
b2a258213ee0 Created mail_user_[try_]home_expand(). Used them for expanding mail directories.
Timo Sirainen <tss@iki.fi>
parents: 8084
diff changeset
40 const char *mail_user_home_expand(struct mail_user *user, const char *path);
b2a258213ee0 Created mail_user_[try_]home_expand(). Used them for expanding mail directories.
Timo Sirainen <tss@iki.fi>
parents: 8084
diff changeset
41 /* Returns 0 if ok, -1 if home directory isn't set. */
b2a258213ee0 Created mail_user_[try_]home_expand(). Used them for expanding mail directories.
Timo Sirainen <tss@iki.fi>
parents: 8084
diff changeset
42 int mail_user_try_home_expand(struct mail_user *user, const char **path);
b2a258213ee0 Created mail_user_[try_]home_expand(). Used them for expanding mail directories.
Timo Sirainen <tss@iki.fi>
parents: 8084
diff changeset
43
8084
f12f8c1da0bf Forgot to add mail-user.* files in previous struct mail_user commit.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44 #endif