r3268 - in trunk/libmcrypto: include/libmcrypto include/libmcrypto/gnutls include/libmcrypto/openssl source source/gnutls source/openssl

svn at minisip.org svn at minisip.org
Wed May 9 13:59:05 CEST 2007


Author: mikma
Date: 2007-05-03 15:50:10 +0200 (Thu, 03 May 2007)
New Revision: 3268

Modified:
   trunk/libmcrypto/include/libmcrypto/cert.h
   trunk/libmcrypto/include/libmcrypto/gnutls/cert.h
   trunk/libmcrypto/include/libmcrypto/openssl/cert.h
   trunk/libmcrypto/source/cert.cxx
   trunk/libmcrypto/source/gnutls/cert.cxx
   trunk/libmcrypto/source/openssl/cert.cxx
Log:
Convert some certificate pointers to MRef.


Modified: trunk/libmcrypto/include/libmcrypto/cert.h
===================================================================
--- trunk/libmcrypto/include/libmcrypto/cert.h	2007-05-03 13:49:39 UTC (rev 3267)
+++ trunk/libmcrypto/include/libmcrypto/cert.h	2007-05-03 13:50:10 UTC (rev 3268)
@@ -62,7 +62,7 @@
 		virtual ca_db* clone();
 		virtual void add_directory( std::string dir );
 		virtual void add_file( std::string file );
-		virtual void add_certificate( certificate * cert );
+		virtual void add_certificate( MRef<certificate *> cert );
 		virtual std::list<MRef<ca_db_item*> > &get_items();
 		virtual MRef<ca_db_item*> get_next();
 		virtual void init_index();
@@ -76,7 +76,7 @@
 		virtual void add_item( MRef<ca_db_item*> item );
 		virtual MRef<ca_db_item*> create_dir_item( std::string dir );
 		virtual MRef<ca_db_item*> create_file_item( std::string file );
-		virtual MRef<ca_db_item*> create_cert_item( certificate* cert );
+		virtual MRef<ca_db_item*> create_cert_item( MRef<certificate*> cert );
 
 	private:
 		std::list<MRef<ca_db_item*> >::iterator items_index;

Modified: trunk/libmcrypto/include/libmcrypto/gnutls/cert.h
===================================================================
--- trunk/libmcrypto/include/libmcrypto/gnutls/cert.h	2007-05-03 13:49:39 UTC (rev 3267)
+++ trunk/libmcrypto/include/libmcrypto/gnutls/cert.h	2007-05-03 13:50:10 UTC (rev 3268)
@@ -85,7 +85,7 @@
 	protected:
 		MRef<ca_db_item*> create_dir_item( std::string dir );
 		MRef<ca_db_item*> create_file_item( std::string file );
-		MRef<ca_db_item*> create_cert_item( certificate* cert );
+		MRef<ca_db_item*> create_cert_item( MRef<certificate*> cert );
 
 	private:
 		gnutls_x509_crt_t * caList;

Modified: trunk/libmcrypto/include/libmcrypto/openssl/cert.h
===================================================================
--- trunk/libmcrypto/include/libmcrypto/openssl/cert.h	2007-05-03 13:49:39 UTC (rev 3267)
+++ trunk/libmcrypto/include/libmcrypto/openssl/cert.h	2007-05-03 13:50:10 UTC (rev 3268)
@@ -59,7 +59,7 @@
 		virtual std::string getMemObjectType() const {return "ossl_ca_db";}
 		void add_directory( std::string dir );
 		void add_file( std::string file );
-		void add_certificate( certificate * cert );
+		void add_certificate( MRef<certificate *> cert );
 
 	private:
 		X509_STORE * cert_db;		

Modified: trunk/libmcrypto/source/cert.cxx
===================================================================
--- trunk/libmcrypto/source/cert.cxx	2007-05-03 13:49:39 UTC (rev 3267)
+++ trunk/libmcrypto/source/cert.cxx	2007-05-03 13:50:10 UTC (rev 3268)
@@ -166,7 +166,7 @@
 	return item;
 }
 
-MRef<ca_db_item*> ca_db::create_cert_item( certificate* cert ){
+MRef<ca_db_item*> ca_db::create_cert_item( MRef<certificate*> cert ){
 	MRef<ca_db_item*> item = new ca_db_item();
 	
 	item->item = "";
@@ -184,7 +184,7 @@
 	add_item( item );
 }
 
-void ca_db::add_certificate( certificate * cert ){
+void ca_db::add_certificate( MRef<certificate *> cert ){
 	MRef<ca_db_item*> item = create_cert_item( cert );
 	add_item( item );
 }

Modified: trunk/libmcrypto/source/gnutls/cert.cxx
===================================================================
--- trunk/libmcrypto/source/gnutls/cert.cxx	2007-05-03 13:49:39 UTC (rev 3267)
+++ trunk/libmcrypto/source/gnutls/cert.cxx	2007-05-03 13:50:10 UTC (rev 3268)
@@ -74,10 +74,13 @@
 certificate* certificate::load( const std::string cert_filename,
 				const std::string private_key_filename ){
 	MRef<priv_key*> priv_key = new gtls_priv_key( private_key_filename );
-	certificate* cert = new gtls_certificate( cert_filename );
+	MRef<certificate*> cert = new gtls_certificate( cert_filename );
 
 	cert->set_pk( priv_key );
-	return cert;
+
+	// The caller is responsible for deleting cert
+	cert->incRefCount();
+	return *cert;
 }
 
 // Import DER-encoded certificate from memory
@@ -1262,7 +1265,7 @@
 	return item;
 }
 
-MRef<ca_db_item*> gtls_ca_db::create_cert_item( certificate* cert ){
+MRef<ca_db_item*> gtls_ca_db::create_cert_item( MRef<certificate*> cert ){
 	gtls_ca_db_item * item = new gtls_ca_db_item();
 	
 	item->item = "";

Modified: trunk/libmcrypto/source/openssl/cert.cxx
===================================================================
--- trunk/libmcrypto/source/openssl/cert.cxx	2007-05-03 13:49:39 UTC (rev 3267)
+++ trunk/libmcrypto/source/openssl/cert.cxx	2007-05-03 13:50:10 UTC (rev 3268)
@@ -685,8 +685,8 @@
 	ca_db::add_file( file );
 }
 
-void ossl_ca_db::add_certificate( certificate * cert ){
-	ossl_certificate *ssl_cert = (ossl_certificate *)cert;
+void ossl_ca_db::add_certificate( MRef<certificate *> cert ){
+	ossl_certificate *ssl_cert = (ossl_certificate *)*cert;
 	X509_STORE_add_cert( cert_db, ssl_cert->get_openssl_certificate() );
 
 	ca_db::add_certificate( cert );



More information about the Minisip-devel mailing list