aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/conf/conf.h
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2002-01-05 01:37:16 +0000
committerDr. Stephen Henson <steve@openssl.org>2002-01-05 01:37:16 +0000
commitbc37d996fcfd7f1c7c97728a563a40c0a251d908 (patch)
tree3bffb03f405fe2cf8b70c0e86c96d0bc7ab1b0d1 /crypto/conf/conf.h
parent31cafe53c928e02d6351dc9a827e95bccd9b807d (diff)
downloadopenssl-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.h45
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