Put all "common" initialisation in the apps_startup() and apps_shutdown()
[openssl.git] / apps / openssl.c
index 6a942078482e68896b53311e34e1748be001ca8b..0e179d9c339152a6eb669e9ce454360fe71d1c8a 100644 (file)
@@ -138,7 +138,7 @@ static unsigned long MS_CALLBACK hash(const void *a_void);
 static int MS_CALLBACK cmp(const void *a_void,const void *b_void);
 static LHASH *prog_init(void );
 static int do_cmd(LHASH *prog,int argc,char *argv[]);
-LHASH *config=NULL;
+CONF *config=NULL;
 char *default_config_file=NULL;
 
 /* Make sure there is only one when MONOLITH is defined */
@@ -227,12 +227,17 @@ int main(int Argc, char *Argv[])
        arg.data=NULL;
        arg.count=0;
 
-       if (getenv("OPENSSL_DEBUG_MEMORY") != NULL)
+       if (getenv("OPENSSL_DEBUG_MEMORY") != NULL) /* if not defined, use compiled-in library defaults */
                {
                if (!(0 == strcmp(getenv("OPENSSL_DEBUG_MEMORY"), "off")))
                        {
                        CRYPTO_malloc_debug_init();
-                       CRYPTO_dbg_set_options(V_CRYPTO_MDEBUG_ALL);
+                       CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL);
+                       }
+               else
+                       {
+                       /* OPENSSL_DEBUG_MEMORY=off */
+                       CRYPTO_set_mem_debug_functions(0, 0, 0, 0, 0);
                        }
                }
        CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
@@ -250,9 +255,6 @@ int main(int Argc, char *Argv[])
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
                        BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
-       ERR_load_crypto_strings();
-       ENGINE_load_builtin_engines();
-
        /* Lets load up our environment a little */
        p=getenv("OPENSSL_CONF");
        if (p == NULL)
@@ -269,8 +271,9 @@ int main(int Argc, char *Argv[])
 
        default_config_file=p;
 
-       config=CONF_load(config,p,&errline);
-       if (config == NULL) ERR_clear_error();
+       config=NCONF_new(NULL);
+       i=NCONF_load(config,p,&errline);
+       if (i == 0) ERR_clear_error();
 
        prog=prog_init();
 
@@ -339,17 +342,13 @@ int main(int Argc, char *Argv[])
 end:
        if (config != NULL)
                {
-               CONF_free(config);
+               NCONF_free(config);
                config=NULL;
                }
        if (prog != NULL) lh_free(prog);
        if (arg.data != NULL) OPENSSL_free(arg.data);
-       ERR_remove_state(0);
 
-       EVP_cleanup();
-       ERR_free_strings();
-       
-        ENGINE_cleanup();
+       apps_shutdown();
 
        CRYPTO_mem_leaks(bio_err);
        if (bio_err != NULL)