Correction: openssl.c must get the long version of the apps_startup()
[openssl.git] / apps / openssl.c
index bbee18d1d1bb75fbad98beae90149741fb9ed04d..748c6ce71a1d52d5c8a0d4717523f508a7ddda78 100644 (file)
 #include <openssl/x509.h>
 #include <openssl/pem.h>
 #include <openssl/ssl.h>
-#define SSLEAY /* turn off a few special case MONOLITH macros */
 #define USE_SOCKETS /* needed for the _O_BINARY defs in the MS world */
-#define SSLEAY_SRC
+#define OPENSSL_C /* tells apps.h to use complete apps_startup() */
 #include "apps.h"
+#include "progs.h"
 #include "s_apps.h"
 #include <openssl/err.h>
 
@@ -120,9 +120,6 @@ int main(int Argc, char *Argv[])
        arg.data=NULL;
        arg.count=0;
 
-       /* SSLeay_add_ssl_algorithms(); is called in apps_startup() */
-       apps_startup();
-
 #if defined(DEBUG) && !defined(WINDOWS) && !defined(MSDOS)
 #ifdef SIGBUS
        signal(SIGBUS,sig_stop);
@@ -132,12 +129,14 @@ int main(int Argc, char *Argv[])
 #endif
 #endif
 
+       CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+
+       apps_startup();
+
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
                        BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
-       CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
-
        ERR_load_crypto_strings();
 
        /* Lets load up our environment a little */
@@ -165,7 +164,7 @@ int main(int Argc, char *Argv[])
        program_name(Argv[0],pname,PROG_NAME_SIZE);
 
        f.name=pname;
-       fp=(FUNCTION *)lh_retrieve(prog,(char *)&f);
+       fp=(FUNCTION *)lh_retrieve(prog,&f);
        if (fp != NULL)
                {
                Argv[0]=pname;
@@ -237,8 +236,9 @@ end:
        ERR_free_strings();
 
 #ifdef LEVITTE_DEBUG
-       CRYPTO_add_info("Just to make sure I get a memory leak I can see :-)");
+       CRYPTO_push_info("Just to make sure I get a memory leak I can see :-)");
        (void)Malloc(1024);
+       CRYPTO_pop_info();
 #endif
 
        CRYPTO_mem_leaks(bio_err);
@@ -262,7 +262,7 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
        if ((argc <= 0) || (argv[0] == NULL))
                { ret=0; goto end; }
        f.name=argv[0];
-       fp=(FUNCTION *)lh_retrieve(prog,(char *)&f);
+       fp=(FUNCTION *)lh_retrieve(prog,&f);
        if (fp != NULL)
                {
                ret=fp->func(argc,argv);
@@ -361,7 +361,7 @@ static LHASH *prog_init(void)
        if ((ret=lh_new(hash,cmp)) == NULL) return(NULL);
 
        for (f=functions; f->name != NULL; f++)
-               lh_insert(ret,(char *)f);
+               lh_insert(ret,f);
        return(ret);
        }
 
@@ -374,5 +374,3 @@ static unsigned long MS_CALLBACK hash(FUNCTION *a)
        {
        return(lh_strhash(a->name));
        }
-
-#undef SSLEAY