Mercurial > dovecot > original-hg > dovecot-1.2
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 |
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 |