Keep binary backward compatibility by putting new method function
[openssl.git] / crypto / conf / conf.h
index 0ec58e1200c678d59e061b7c566777f243d3eeea..ae7d05f3bc595efcf336937785972625b186a18c 100644 (file)
 #ifndef  HEADER_CONF_H
 #define HEADER_CONF_H
 
 #ifndef  HEADER_CONF_H
 #define HEADER_CONF_H
 
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
 #include <openssl/bio.h>
 #include <openssl/lhash.h>
 #include <openssl/stack.h>
 #include <openssl/safestack.h>
 #include <openssl/e_os.h>
 
 #include <openssl/bio.h>
 #include <openssl/lhash.h>
 #include <openssl/stack.h>
 #include <openssl/safestack.h>
 #include <openssl/e_os.h>
 
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
 typedef struct
        {
        char *section;
 typedef struct
        {
        char *section;
@@ -90,10 +90,11 @@ struct conf_method_st
        int (MS_FAR *init)(CONF *conf);
        int (MS_FAR *destroy)(CONF *conf);
        int (MS_FAR *destroy_data)(CONF *conf);
        int (MS_FAR *init)(CONF *conf);
        int (MS_FAR *destroy)(CONF *conf);
        int (MS_FAR *destroy_data)(CONF *conf);
-       int (MS_FAR *load)(CONF *conf, BIO *bp, long *eline);
+       int (MS_FAR *load_bio)(CONF *conf, BIO *bp, long *eline);
        int (MS_FAR *dump)(CONF *conf, BIO *bp);
        int (MS_FAR *is_number)(CONF *conf, char c);
        int (MS_FAR *to_int)(CONF *conf, char c);
        int (MS_FAR *dump)(CONF *conf, BIO *bp);
        int (MS_FAR *is_number)(CONF *conf, char c);
        int (MS_FAR *to_int)(CONF *conf, char c);
+       int (MS_FAR *load)(CONF *conf, const char *name, long *eline);
        };
 
 int CONF_set_default_method(CONF_METHOD *meth);
        };
 
 int CONF_set_default_method(CONF_METHOD *meth);
@@ -106,7 +107,6 @@ STACK_OF(CONF_VALUE) *CONF_get_section(LHASH *conf,char *section);
 char *CONF_get_string(LHASH *conf,char *group,char *name);
 long CONF_get_number(LHASH *conf,char *group,char *name);
 void CONF_free(LHASH *conf);
 char *CONF_get_string(LHASH *conf,char *group,char *name);
 long CONF_get_number(LHASH *conf,char *group,char *name);
 void CONF_free(LHASH *conf);
-void CONF_dump(LHASH *conf, BIO *out);
 int CONF_dump_fp(LHASH *conf, FILE *out);
 int CONF_dump_bio(LHASH *conf, BIO *out);
 void ERR_load_CONF_strings(void );
 int CONF_dump_fp(LHASH *conf, FILE *out);
 int CONF_dump_bio(LHASH *conf, BIO *out);
 void ERR_load_CONF_strings(void );
@@ -137,10 +137,17 @@ int NCONF_load_fp(CONF *conf, FILE *fp,long *eline);
 int NCONF_load_bio(CONF *conf, BIO *bp,long *eline);
 STACK_OF(CONF_VALUE) *NCONF_get_section(CONF *conf,char *section);
 char *NCONF_get_string(CONF *conf,char *group,char *name);
 int NCONF_load_bio(CONF *conf, BIO *bp,long *eline);
 STACK_OF(CONF_VALUE) *NCONF_get_section(CONF *conf,char *section);
 char *NCONF_get_string(CONF *conf,char *group,char *name);
-long NCONF_get_number(CONF *conf,char *group,char *name);
+int NCONF_get_number_e(CONF *conf,char *group,char *name,long *result);
 int NCONF_dump_fp(CONF *conf, FILE *out);
 int NCONF_dump_bio(CONF *conf, BIO *out);
 
 int NCONF_dump_fp(CONF *conf, FILE *out);
 int NCONF_dump_bio(CONF *conf, BIO *out);
 
+#if 0 /* The following function has no error checking,
+        and should therefore be avoided */
+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
+
 
 /* BEGIN ERROR CODES */
 /* The following lines are auto generated by the script mkerr.pl. Any changes
 
 /* BEGIN ERROR CODES */
 /* The following lines are auto generated by the script mkerr.pl. Any changes
@@ -157,9 +164,12 @@ int NCONF_dump_bio(CONF *conf, BIO *out);
 #define CONF_F_NCONF_DUMP_BIO                           105
 #define CONF_F_NCONF_DUMP_FP                            106
 #define CONF_F_NCONF_GET_NUMBER                                 107
 #define CONF_F_NCONF_DUMP_BIO                           105
 #define CONF_F_NCONF_DUMP_FP                            106
 #define CONF_F_NCONF_GET_NUMBER                                 107
+#define CONF_F_NCONF_GET_NUMBER_E                       112
 #define CONF_F_NCONF_GET_SECTION                        108
 #define CONF_F_NCONF_GET_STRING                                 109
 #define CONF_F_NCONF_GET_SECTION                        108
 #define CONF_F_NCONF_GET_STRING                                 109
+#define CONF_F_NCONF_LOAD                               113
 #define CONF_F_NCONF_LOAD_BIO                           110
 #define CONF_F_NCONF_LOAD_BIO                           110
+#define CONF_F_NCONF_LOAD_FP                            114
 #define CONF_F_NCONF_NEW                                111
 #define CONF_F_STR_COPY                                         101
 
 #define CONF_F_NCONF_NEW                                111
 #define CONF_F_STR_COPY                                         101
 
@@ -168,6 +178,9 @@ int NCONF_dump_bio(CONF *conf, BIO *out);
 #define CONF_R_MISSING_EQUAL_SIGN                       101
 #define CONF_R_NO_CLOSE_BRACE                           102
 #define CONF_R_NO_CONF                                  105
 #define CONF_R_MISSING_EQUAL_SIGN                       101
 #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_VARIABLE_HAS_NO_VALUE                    104
 
 #define CONF_R_UNABLE_TO_CREATE_NEW_SECTION             103
 #define CONF_R_VARIABLE_HAS_NO_VALUE                    104