Mercurial > dovecot > core-2.2
annotate src/config/config-parser.h @ 15087:8c003fe6f5a6
config: Support looking up config for multiple modules at the same time.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 19 Sep 2012 15:33:10 +0300 |
parents | 31387c9d5b88 |
children | 680f59741e5e |
rev | line source |
---|---|
9138
3c8e0e094139
Code cleanup: Don't use __ prefix in header #defines.
Timo Sirainen <tss@iki.fi>
parents:
9087
diff
changeset
|
1 #ifndef CONFIG_PARSER_H |
3c8e0e094139
Code cleanup: Don't use __ prefix in header #defines.
Timo Sirainen <tss@iki.fi>
parents:
9087
diff
changeset
|
2 #define CONFIG_PARSER_H |
9002 | 3 |
10181
4dc080520769
config: Added support for dynamically loaded settings.
Timo Sirainen <tss@iki.fi>
parents:
10107
diff
changeset
|
4 #define CONFIG_MODULE_DIR MODULEDIR"/settings" |
4dc080520769
config: Added support for dynamically loaded settings.
Timo Sirainen <tss@iki.fi>
parents:
10107
diff
changeset
|
5 |
12067
31387c9d5b88
doveconf: Quote output values when necessary.
Timo Sirainen <tss@iki.fi>
parents:
11510
diff
changeset
|
6 #define IS_WHITE(c) ((c) == ' ' || (c) == '\t') |
31387c9d5b88
doveconf: Quote output values when necessary.
Timo Sirainen <tss@iki.fi>
parents:
11510
diff
changeset
|
7 |
9856 | 8 struct config_module_parser { |
10107
dcda7c495eb6
struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents:
9856
diff
changeset
|
9 const struct setting_parser_info *root; |
9793
d7ccdbb58a03
config: If master module requests configuration, reread it before replying.
Timo Sirainen <tss@iki.fi>
parents:
9274
diff
changeset
|
10 struct setting_parser_context *parser; |
d7ccdbb58a03
config: If master module requests configuration, reread it before replying.
Timo Sirainen <tss@iki.fi>
parents:
9274
diff
changeset
|
11 void *settings; |
d7ccdbb58a03
config: If master module requests configuration, reread it before replying.
Timo Sirainen <tss@iki.fi>
parents:
9274
diff
changeset
|
12 }; |
9856 | 13 ARRAY_DEFINE_TYPE(config_module_parsers, struct config_module_parser *); |
9793
d7ccdbb58a03
config: If master module requests configuration, reread it before replying.
Timo Sirainen <tss@iki.fi>
parents:
9274
diff
changeset
|
14 |
9856 | 15 extern struct config_module_parser *config_module_parsers; |
9263
5d0a69504867
config handling fixes and improvements. Separated module/service lookups. Added support for per-lip/rip settings.
Timo Sirainen <tss@iki.fi>
parents:
9229
diff
changeset
|
16 extern struct config_filter_context *config_filter; |
11265
3fc759d5e736
config: Unload modules at exit.
Timo Sirainen <tss@iki.fi>
parents:
10981
diff
changeset
|
17 extern struct module *modules; |
9263
5d0a69504867
config handling fixes and improvements. Separated module/service lookups. Added support for per-lip/rip settings.
Timo Sirainen <tss@iki.fi>
parents:
9229
diff
changeset
|
18 |
11510
c147a2653f9c
doveconf: Renamed lip/rip filters to local/remote, which also support DNS lookups now.
Timo Sirainen <tss@iki.fi>
parents:
11265
diff
changeset
|
19 int config_parse_net(const char *value, struct ip_addr *ip_r, |
c147a2653f9c
doveconf: Renamed lip/rip filters to local/remote, which also support DNS lookups now.
Timo Sirainen <tss@iki.fi>
parents:
11265
diff
changeset
|
20 unsigned int *bits_r, const char **error_r); |
15087
8c003fe6f5a6
config: Support looking up config for multiple modules at the same time.
Timo Sirainen <tss@iki.fi>
parents:
12067
diff
changeset
|
21 int config_parse_file(const char *path, bool expand_values, |
8c003fe6f5a6
config: Support looking up config for multiple modules at the same time.
Timo Sirainen <tss@iki.fi>
parents:
12067
diff
changeset
|
22 const char *const *modules, const char **error_r) |
8c003fe6f5a6
config: Support looking up config for multiple modules at the same time.
Timo Sirainen <tss@iki.fi>
parents:
12067
diff
changeset
|
23 ATTR_NULL(3); |
9002 | 24 |
10181
4dc080520769
config: Added support for dynamically loaded settings.
Timo Sirainen <tss@iki.fi>
parents:
10107
diff
changeset
|
25 void config_parse_load_modules(void); |
4dc080520769
config: Added support for dynamically loaded settings.
Timo Sirainen <tss@iki.fi>
parents:
10107
diff
changeset
|
26 |
10981
02e0d6f0e1d4
doveconf: When module is given, ignore checks for non-required settings.
Timo Sirainen <tss@iki.fi>
parents:
10952
diff
changeset
|
27 bool config_module_want_parser(struct config_module_parser *parsers, |
15087
8c003fe6f5a6
config: Support looking up config for multiple modules at the same time.
Timo Sirainen <tss@iki.fi>
parents:
12067
diff
changeset
|
28 const char *const *modules, |
8c003fe6f5a6
config: Support looking up config for multiple modules at the same time.
Timo Sirainen <tss@iki.fi>
parents:
12067
diff
changeset
|
29 const struct setting_parser_info *root) |
8c003fe6f5a6
config: Support looking up config for multiple modules at the same time.
Timo Sirainen <tss@iki.fi>
parents:
12067
diff
changeset
|
30 ATTR_NULL(2); |
10952
30e2d65eb67a
config: Send client a services names that have more specific settings.
Timo Sirainen <tss@iki.fi>
parents:
10704
diff
changeset
|
31 |
9002 | 32 #endif |