diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-04-18 16:19:24 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-04-18 16:19:24 +0000 |
commit | bfc428a0daf41d2d43d49290d416f4ae8e7b9ceb (patch) | |
tree | 35e8b784efd9962f3f672a2a95258cdaf79b4b86 /libssh | |
parent | 44924db3e91b8d080d3f288582411c042dd3add4 (diff) | |
download | libssh-bfc428a0daf41d2d43d49290d416f4ae8e7b9ceb.tar.gz libssh-bfc428a0daf41d2d43d49290d416f4ae8e7b9ceb.tar.xz libssh-bfc428a0daf41d2d43d49290d416f4ae8e7b9ceb.zip |
Change back to a initialized variable and document ssh_finalize().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@557 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh')
-rw-r--r-- | libssh/dh.c | 14 | ||||
-rw-r--r-- | libssh/init.c | 11 |
2 files changed, 12 insertions, 13 deletions
diff --git a/libssh/dh.c b/libssh/dh.c index bb22fcf5..069f5568 100644 --- a/libssh/dh.c +++ b/libssh/dh.c @@ -72,7 +72,7 @@ static unsigned char p_value[] = { static unsigned long g_int = 2 ; /* G is defined as 2 by the ssh2 standards */ static bignum g; static bignum p; -static unsigned int ssh_crypto_initialized_ref_count = 0; +static int ssh_crypto_initialized; int ssh_get_random(void *where, int len, int strong){ @@ -101,7 +101,7 @@ int ssh_get_random(void *where, int len, int strong){ * FIXME: Make the function thread safe by adding a semaphore or mutex. */ int ssh_crypto_init(void) { - if (ssh_crypto_initialized_ref_count == 0) { + if (ssh_crypto_initialized == 0) { #ifdef HAVE_LIBGCRYPT gcry_check_version(NULL); @@ -134,19 +134,15 @@ int ssh_crypto_init(void) { bignum_bin2bn(p_value, P_LEN, p); OpenSSL_add_all_algorithms(); #endif - } - ssh_crypto_initialized_ref_count++; + ssh_crypto_initialized = 1; + } return 0; } void ssh_crypto_finalize(void) { - if (ssh_crypto_initialized_ref_count) { - ssh_crypto_initialized_ref_count--; - } - - if (ssh_crypto_initialized_ref_count == 0) { + if (ssh_crypto_initialized) { bignum_free(g); g = NULL; bignum_free(p); diff --git a/libssh/init.c b/libssh/init.c index 6b10033b..158151bf 100644 --- a/libssh/init.c +++ b/libssh/init.c @@ -32,12 +32,15 @@ * \addtogroup ssh_session * @{ */ + /** - * \brief finalize and cleanup all libssh and cryptographic data structures - * \returns 0 + * @brief Finalize and cleanup all libssh and cryptographic data structures. + * + * This function should only be called once, at the end of the program! + * + * @returns 0 */ -int ssh_finalize(void) -{ +int ssh_finalize(void) { ssh_crypto_finalize(); #ifdef HAVE_LIBGCRYPT gcry_control(GCRYCTL_TERM_SECMEM); |