CONF_modules_load (3)
Leading comments
Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) Standard preamble: ========================================================================
NAME
CONF_modules_load_file, CONF_modules_load - OpenSSL configuration functions
SYNOPSIS
#include <openssl/conf.h> int CONF_modules_load_file(const char *filename, const char *appname, unsigned long flags); int CONF_modules_load(const CONF *cnf, const char *appname, unsigned long flags);
DESCRIPTION
The function CONF_modules_load_file() configures OpenSSL using file filename and application name appname. If filename isCONF_modules_load() is idential to CONF_modules_load_file() except it reads configuration information from cnf.
NOTES
The following flags are currently recognized:
Normally any modules errors will add error information to the error queue. If
If
Applications should call these functions after loading builtin modules using OPENSSL_load_builtin_modules(), any ENGINEs for example using ENGINE_load_builtin_engines(), any algorithms for example OPENSSL_add_all_algorithms() and (if the application uses libssl) SSL_library_init().
By using CONF_modules_load_file() with appropriate flags an application can customise application configuration to best suit its needs. In some cases the use of a configuration file is optional and its absence is not an error: in this case
Errors during configuration may also be handled differently by different applications. For example in some cases an error may simply print out a warning message and the application continue. In other cases an application might consider a configuration file error as fatal and exit immediately.
Applications can use the CONF_modules_load() function if they wish to load a configuration file themselves and have finer control over how errors are treated.
EXAMPLES
Load a configuration file and print out any errors and exit (missing file considered fatal):
if (CONF_modules_load_file(NULL, NULL, 0) <= 0) { fprintf(stderr, "FATAL: error loading configuration file\n"); ERR_print_errors_fp(stderr); exit(1); }
Load default configuration file using the section indicated by ``myapp'', tolerate missing files, but exit on other errors:
if (CONF_modules_load_file(NULL, "myapp", CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) { fprintf(stderr, "FATAL: error loading configuration file\n"); ERR_print_errors_fp(stderr); exit(1); }
Load custom configuration file and section, only print warnings on error, missing configuration file ignored:
if (CONF_modules_load_file("/something/app.cnf", "myapp", CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) { fprintf(stderr, "WARNING: error loading configuration file\n"); ERR_print_errors_fp(stderr); }
Load and parse configuration file manually, custom error handling:
FILE *fp; CONF *cnf = NULL; long eline; fp = fopen("/somepath/app.cnf", "r"); if (fp == NULL) { fprintf(stderr, "Error opening configuration file\n"); /* Other missing configuration file behaviour */ } else { cnf = NCONF_new(NULL); if (NCONF_load_fp(cnf, fp, &eline) == 0) { fprintf(stderr, "Error on line %ld of configuration file\n", eline); ERR_print_errors_fp(stderr); /* Other malformed configuration file behaviour */ } else if (CONF_modules_load(cnf, "appname", 0) <= 0) { fprintf(stderr, "Error configuring application\n"); ERR_print_errors_fp(stderr); /* Other configuration error behaviour */ } fclose(fp); NCONF_free(cnf); }