OLD | NEW |
| (Empty) |
1 Configuration modules. These are a set of modules which can perform | |
2 various configuration functions. | |
3 | |
4 Currently the routines should be called at most once when an application | |
5 starts up: that is before it starts any threads. | |
6 | |
7 The routines read a configuration file set up like this: | |
8 | |
9 ----- | |
10 #default section | |
11 openssl_conf=init_section | |
12 | |
13 [init_section] | |
14 | |
15 module1=value1 | |
16 #Second instance of module1 | |
17 module1.1=valueX | |
18 module2=value2 | |
19 module3=dso_literal | |
20 module4=dso_section | |
21 | |
22 [dso_section] | |
23 | |
24 path=/some/path/to/some/dso.so | |
25 other_stuff=other_value | |
26 ---- | |
27 | |
28 When this file is loaded a configuration module with the specified string | |
29 (module* in the above example) is looked up and its init function called as: | |
30 | |
31 int conf_init_func(CONF_IMODULE *md, CONF *cnf); | |
32 | |
33 The function can then take whatever action is appropriate, for example further | |
34 lookups based on the value. Multiple instances of the same config module can be | |
35 loaded. | |
36 | |
37 When the application closes down the modules are cleaned up by calling an | |
38 optional finish function: | |
39 | |
40 void conf_finish_func(CONF_IMODULE *md); | |
41 | |
42 The finish functions are called in reverse order: that is the last module | |
43 loaded is the first one cleaned up. | |
44 | |
45 If no module exists with a given name then an attempt is made to load a DSO | |
46 with the supplied name. This might mean that "module3" attempts to load a DSO | |
47 called libmodule3.so or module3.dll for example. An explicit DSO name can be | |
48 given by including a separate section as in the module4 example above. | |
49 | |
50 The DSO is expected to at least contain an initialization function: | |
51 | |
52 int OPENSSL_init(CONF_IMODULE *md, CONF *cnf); | |
53 | |
54 and may also include a finish function: | |
55 | |
56 void OPENSSL_finish(CONF_IMODULE *md); | |
57 | |
58 Static modules can also be added using, | |
59 | |
60 int CONF_module_add(char *name, dso_mod_init_func *ifunc, dso_mod_finish_func | |
61 *ffunc); | |
62 | |
63 where "name" is the name in the configuration file this function corresponds | |
64 to. | |
65 | |
66 A set of builtin modules (currently only an ASN1 non functional test module) | |
67 can be added by calling OPENSSL_load_builtin_modules(). | |
68 | |
69 The function OPENSSL_config() is intended as a simple configuration function | |
70 that any application can call to perform various default configuration tasks. | |
71 It uses the file openssl.cnf in the usual locations. | |
72 | |
73 | |
OLD | NEW |