Mercurial > dovecot > original-hg > dovecot-1.2
annotate src/lib/module-dir.h @ 9575:0a00dcc4f0ea HEAD
lib-storage: Allow shared namespace prefix to use %variable modifiers.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 26 May 2010 17:07:51 +0100 |
parents | e4eb71ae8e96 |
children |
rev | line source |
---|---|
6410
e4eb71ae8e96
Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents:
5186
diff
changeset
|
1 #ifndef MODULE_DIR_H |
e4eb71ae8e96
Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents:
5186
diff
changeset
|
2 #define MODULE_DIR_H |
1466 | 3 |
4 struct module { | |
2084
9ba79ebae6ab
Added support for password scheme plugins. auth module dir defaults under
Timo Sirainen <tss@iki.fi>
parents:
1466
diff
changeset
|
5 char *path, *name; |
9ba79ebae6ab
Added support for password scheme plugins. auth module dir defaults under
Timo Sirainen <tss@iki.fi>
parents:
1466
diff
changeset
|
6 |
1466 | 7 void *handle; |
5148
7f2c39d7a2cc
module_dir_load() doesn't call init() functions anymore. Added a new
Timo Sirainen <tss@iki.fi>
parents:
4167
diff
changeset
|
8 void (*init)(void); |
1466 | 9 void (*deinit)(void); |
10 | |
11 struct module *next; | |
12 }; | |
13 | |
4074
dadc6e2cccb8
Replaced mail_use_modules and mail_modules settings with mail_plugins and
Timo Sirainen <tss@iki.fi>
parents:
3988
diff
changeset
|
14 /* Load modules in given directory. module_names is a space separated list of |
5186
a7627141ec7f
Don't compare to PACKAGE_VERSION in lib/ core directly, rather make
Timo Sirainen <tss@iki.fi>
parents:
5148
diff
changeset
|
15 module names to load, or NULL to load everything. If version is non-NULL and |
a7627141ec7f
Don't compare to PACKAGE_VERSION in lib/ core directly, rather make
Timo Sirainen <tss@iki.fi>
parents:
5148
diff
changeset
|
16 the module contains a version symbol, fail the load if they're different. */ |
4074
dadc6e2cccb8
Replaced mail_use_modules and mail_modules settings with mail_plugins and
Timo Sirainen <tss@iki.fi>
parents:
3988
diff
changeset
|
17 struct module *module_dir_load(const char *dir, const char *module_names, |
5186
a7627141ec7f
Don't compare to PACKAGE_VERSION in lib/ core directly, rather make
Timo Sirainen <tss@iki.fi>
parents:
5148
diff
changeset
|
18 bool require_init_funcs, const char *version); |
5148
7f2c39d7a2cc
module_dir_load() doesn't call init() functions anymore. Added a new
Timo Sirainen <tss@iki.fi>
parents:
4167
diff
changeset
|
19 /* Call init() in all modules */ |
7f2c39d7a2cc
module_dir_load() doesn't call init() functions anymore. Added a new
Timo Sirainen <tss@iki.fi>
parents:
4167
diff
changeset
|
20 void module_dir_init(struct module *modules); |
3988 | 21 /* Call deinit() in all modules and mark them NULL so module_dir_unload() |
22 won't do it again. */ | |
23 void module_dir_deinit(struct module *modules); | |
1466 | 24 /* Unload all modules */ |
3879
928229f8b3e6
deinit, unref, destroy, close, free, etc. functions now take a pointer to
Timo Sirainen <tss@iki.fi>
parents:
3863
diff
changeset
|
25 void module_dir_unload(struct module **modules); |
1466 | 26 |
2084
9ba79ebae6ab
Added support for password scheme plugins. auth module dir defaults under
Timo Sirainen <tss@iki.fi>
parents:
1466
diff
changeset
|
27 void *module_get_symbol(struct module *module, const char *symbol); |
9ba79ebae6ab
Added support for password scheme plugins. auth module dir defaults under
Timo Sirainen <tss@iki.fi>
parents:
1466
diff
changeset
|
28 |
4167
32dd28f96dce
Allow giving module names in non-basename form.
Timo Sirainen <tss@iki.fi>
parents:
4074
diff
changeset
|
29 /* Returns module's base name from the filename. */ |
32dd28f96dce
Allow giving module names in non-basename form.
Timo Sirainen <tss@iki.fi>
parents:
4074
diff
changeset
|
30 const char *module_file_get_name(const char *fname); |
32dd28f96dce
Allow giving module names in non-basename form.
Timo Sirainen <tss@iki.fi>
parents:
4074
diff
changeset
|
31 |
1466 | 32 #endif |