| 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 |