r3096 - in trunk/libmcrypto: include/libmcrypto include/libmcrypto/gnutls source source/gnutls

mikma at minisip.org mikma at minisip.org
Mon Jan 8 15:09:33 CET 2007


Author: mikma
Date: 2007-01-08 15:09:32 +0100 (Mon, 08 Jan 2007)
New Revision: 3096

Modified:
   trunk/libmcrypto/include/libmcrypto/gnutls/init.h
   trunk/libmcrypto/include/libmcrypto/init.h
   trunk/libmcrypto/source/gnutls/init.cxx
   trunk/libmcrypto/source/init.cxx
Log:
Add libmcryptoGnutlsUninit

Modified: trunk/libmcrypto/include/libmcrypto/gnutls/init.h
===================================================================
--- trunk/libmcrypto/include/libmcrypto/gnutls/init.h	2007-01-07 15:29:47 UTC (rev 3095)
+++ trunk/libmcrypto/include/libmcrypto/gnutls/init.h	2007-01-08 14:09:32 UTC (rev 3096)
@@ -19,3 +19,4 @@
 #include <libmcrypto/config.h>
 
 void libmcryptoGnutlsInit();
+void libmcryptoGnutlsUninit();

Modified: trunk/libmcrypto/include/libmcrypto/init.h
===================================================================
--- trunk/libmcrypto/include/libmcrypto/init.h	2007-01-07 15:29:47 UTC (rev 3095)
+++ trunk/libmcrypto/include/libmcrypto/init.h	2007-01-08 14:09:32 UTC (rev 3096)
@@ -29,6 +29,7 @@
 
 // libmcryptoInit must be called before other APIs
 LIBMCRYPTO_API void libmcryptoInit();
+LIBMCRYPTO_API void libmcryptoUninit();
 
 class LIBMCRYPTO_API CryptoThreadGuard : public virtual MObject 
 {

Modified: trunk/libmcrypto/source/gnutls/init.cxx
===================================================================
--- trunk/libmcrypto/source/gnutls/init.cxx	2007-01-07 15:29:47 UTC (rev 3095)
+++ trunk/libmcrypto/source/gnutls/init.cxx	2007-01-08 14:09:32 UTC (rev 3096)
@@ -21,14 +21,17 @@
 #include<gnutls/gnutls.h>
 #include<errno.h>
 #include<pthread.h>
+#include<iostream>
 
 GCRY_THREAD_OPTION_PTHREAD_IMPL;
 
-static bool g_initialized;
+using namespace std;
 
+static unsigned int g_initialized;
+
 void libmcryptoGnutlsInit()
 {
-	if( g_initialized )
+	if( g_initialized++ )
 		return;
 
 	/* The order matters.
@@ -37,3 +40,11 @@
 	gnutls_global_init();
 	g_initialized = true;
 }
+
+void libmcryptoGnutlsUninit()
+{
+	if( --g_initialized )
+		return;
+
+	gnutls_global_deinit();
+}

Modified: trunk/libmcrypto/source/init.cxx
===================================================================
--- trunk/libmcrypto/source/init.cxx	2007-01-07 15:29:47 UTC (rev 3095)
+++ trunk/libmcrypto/source/init.cxx	2007-01-08 14:09:32 UTC (rev 3096)
@@ -46,6 +46,13 @@
 #endif
 }
 
+void libmcryptoUninit()
+{
+#if defined(HAVE_GNUTLS)
+	libmcryptoGnutlsUninit();
+#endif
+}
+
 // ====================================================================
 
 std::vector<Mutex*> CryptoThreadGuard::guards;



More information about the Minisip-devel mailing list