diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2002-01-05 01:37:16 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2002-01-05 01:37:16 +0000 |
commit | bc37d996fcfd7f1c7c97728a563a40c0a251d908 (patch) | |
tree | 3bffb03f405fe2cf8b70c0e86c96d0bc7ab1b0d1 /crypto/conf/conf.h | |
parent | 31cafe53c928e02d6351dc9a827e95bccd9b807d (diff) | |
download | openssl-bc37d996fcfd7f1c7c97728a563a40c0a251d908.tar.gz |
Experimental configuration code.
Incomplete, largely untested and subject to change/deletion.
Diffstat (limited to 'crypto/conf/conf.h')
-rw-r--r-- | crypto/conf/conf.h | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/crypto/conf/conf.h b/crypto/conf/conf.h index 3b767c1dcf..02db41823b 100644 --- a/crypto/conf/conf.h +++ b/crypto/conf/conf.h @@ -77,6 +77,8 @@ typedef struct } CONF_VALUE; DECLARE_STACK_OF(CONF_VALUE) +DECLARE_STACK_OF(CONF_MODULE) +DECLARE_STACK_OF(CONF_IMODULE) struct conf_st; typedef struct conf_st CONF; @@ -97,6 +99,20 @@ struct conf_method_st int (*load)(CONF *conf, const char *name, long *eline); }; +/* Module definitions */ + +typedef struct conf_imodule_st CONF_IMODULE; +typedef struct conf_module_st CONF_MODULE; + +/* DSO module function typedefs */ +typedef int conf_init_func(CONF_IMODULE *md, CONF *cnf); +typedef void conf_finish_func(CONF_IMODULE *md); + +#define CONF_MFLAGS_IGNORE_ERRORS 0x1 +#define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 +#define CONF_MFLAGS_SILENT 0x4 +#define CONF_MFLAGS_NO_DSO 0x8 + int CONF_set_default_method(CONF_METHOD *meth); void CONF_set_nconf(CONF *conf,LHASH *hash); LHASH *CONF_load(LHASH *conf,const char *file,long *eline); @@ -147,14 +163,30 @@ long NCONF_get_number(CONF *conf,char *group,char *name); #else #define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) #endif - + +/* Module functions */ + +int CONF_modules_load(CONF *cnf, char *appname, unsigned long flags); +int CONF_modules_load_file(char *filename, char *appname, unsigned long flags); +void CONF_modules_unload(int all); +void CONF_modules_finish(void); +int CONF_module_add(char *name, conf_init_func *ifunc, conf_finish_func *ffunc); + +char *CONF_imodule_get_name(CONF_IMODULE *md); +char *CONF_imodule_get_value(CONF_IMODULE *md); +void *CONF_imodule_get_usr_data(CONF_IMODULE *md); +void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); +CONF_MODULE *CONF_imodule_get_module(CONF_IMODULE *md); +unsigned long CONF_imodule_get_flags(CONF_IMODULE *md); +void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); +void *CONF_module_get_usr_data(CONF_MODULE *pmod); +void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); /* BEGIN ERROR CODES */ /* The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ void ERR_load_CONF_strings(void); - /* Error codes for the CONF functions. */ /* Function codes. */ @@ -162,6 +194,10 @@ void ERR_load_CONF_strings(void); #define CONF_F_CONF_LOAD 100 #define CONF_F_CONF_LOAD_BIO 102 #define CONF_F_CONF_LOAD_FP 103 +#define CONF_F_CONF_MODULES_LOAD 116 +#define CONF_F_MODULE_INIT 115 +#define CONF_F_MODULE_LOAD_DSO 117 +#define CONF_F_MODULE_RUN 118 #define CONF_F_NCONF_DUMP_BIO 105 #define CONF_F_NCONF_DUMP_FP 106 #define CONF_F_NCONF_GET_NUMBER 107 @@ -175,14 +211,19 @@ void ERR_load_CONF_strings(void); #define CONF_F_STR_COPY 101 /* Reason codes. */ +#define CONF_R_ERROR_LOADING_DSO 110 #define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 #define CONF_R_MISSING_EQUAL_SIGN 101 +#define CONF_R_MISSING_FINISH_FUNCTION 111 +#define CONF_R_MISSING_INIT_FUNCTION 112 +#define CONF_R_MODULE_INITIALIZATION_ERROR 109 #define CONF_R_NO_CLOSE_BRACE 102 #define CONF_R_NO_CONF 105 #define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 #define CONF_R_NO_SECTION 107 #define CONF_R_NO_VALUE 108 #define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 +#define CONF_R_UNKNOWN_MODULE_NAME 113 #define CONF_R_VARIABLE_HAS_NO_VALUE 104 #ifdef __cplusplus |