X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=ssl%2Fssltest.c;h=2ef8a50785b77775f84e074349dc76e36b4e9940;hp=38b6147b4eee65d1c44df9c49c28bf9aa6bf4fdb;hb=3f2599d97d6ffe26e81eb46c43c7f0905c8fb762;hpb=7d2509b6df55006bd75ded63879bb46922088aab diff --git a/ssl/ssltest.c b/ssl/ssltest.c index 38b6147b4e..2ef8a50785 100644 --- a/ssl/ssltest.c +++ b/ssl/ssltest.c @@ -88,6 +88,7 @@ static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx); #ifndef NO_RSA static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export,int keylength); +static void free_tmp_rsa(void); #endif #ifndef NO_DH static DH *get_dh512(void); @@ -499,10 +500,24 @@ bad: BIO_printf(bio_stdout, "%d handshakes of %ld bytes done\n",number,bytes); if (print_time) { +#ifdef CLOCKS_PER_SEC + /* "To determine the time in seconds, the value returned + * by the clock function should be divided by the value + * of the macro CLOCKS_PER_SEC." + * -- ISO/IEC 9899 */ BIO_printf(bio_stdout, "Approximate total server time: %6.2f s\n" "Approximate total client time: %6.2f s\n", (double)s_time/CLOCKS_PER_SEC, (double)c_time/CLOCKS_PER_SEC); +#else + /* "`CLOCKS_PER_SEC' undeclared (first use this function)" + * -- cc on NeXTstep/OpenStep */ + BIO_printf(bio_stdout, + "Approximate total server time: %6.2f units\n" + "Approximate total client time: %6.2f units\n", + (double)s_time, + (double)c_time); +#endif } SSL_free(s_ssl); @@ -514,6 +529,9 @@ end: if (bio_stdout != NULL) BIO_free(bio_stdout); +#ifndef NO_RSA + free_tmp_rsa(); +#endif ERR_free_strings(); ERR_remove_state(0); EVP_cleanup(); @@ -1175,7 +1193,7 @@ int doit(SSL *s_ssl, SSL *c_ssl, long count) ret=0; err: /* We have to set the BIO's to NULL otherwise they will be - * Free()ed twice. Once when th s_ssl is SSL_free()ed and + * OPENSSL_free()ed twice. Once when th s_ssl is SSL_free()ed and * again when c_ssl is SSL_free()ed. * This is a hack required because s_ssl and c_ssl are sharing the same * BIO structure and SSL_set_bio() and SSL_free() automatically @@ -1228,10 +1246,10 @@ static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx) } #ifndef NO_RSA +static RSA *rsa_tmp=NULL; + static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export, int keylength) { - static RSA *rsa_tmp=NULL; - if (rsa_tmp == NULL) { BIO_printf(bio_err,"Generating temp (%d bit) RSA key...",keylength); @@ -1242,6 +1260,15 @@ static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export, int keylength) } return(rsa_tmp); } + +static void free_tmp_rsa(void) + { + if (rsa_tmp != NULL) + { + RSA_free(rsa_tmp); + rsa_tmp = NULL; + } + } #endif #ifndef NO_DH