[evolution] Bug 585301 - Use camel_init() to initialize NSS consistently



commit 9e99aac0a660952488a91c40196be594367983b3
Author: David Woodhouse <David Woodhouse intel com>
Date:   Thu Jun 10 13:49:31 2010 +0100

    Bug 585301 - Use camel_init() to initialize NSS consistently
    
    The logic for working out what database to use should only be in one place.

 smime/lib/e-cert-db.c |   59 +++++--------------------------------------------
 1 files changed, 6 insertions(+), 53 deletions(-)
---
diff --git a/smime/lib/e-cert-db.c b/smime/lib/e-cert-db.c
index 287d89a..a4fcbe4 100644
--- a/smime/lib/e-cert-db.c
+++ b/smime/lib/e-cert-db.c
@@ -48,6 +48,9 @@
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
 
+
+#include <camel/camel.h>        /* FIXME: this is where camel_init is defined; it shouldn't include everything else */
+
 /* private NSS defines used by PSM */
 /* (must be declated before cert.h) */
 #define CERT_NewTempCertificate __CERT_NewTempCertificate
@@ -203,60 +206,10 @@ pk11_password (PK11SlotInfo* slot, PRBool retry, gpointer  arg)
 static void
 initialize_nss (void)
 {
-	const gchar *data_dir;
-	gchar *evolution_dir_path;
-	gchar *nss_configstr;
-	SECStatus status;
-
-	data_dir = e_get_user_data_dir ();
-
-#ifdef G_OS_WIN32
-	/* NSS wants filenames in system codepage */
-	evolution_dir_path = g_win32_locale_filename_from_utf8 (data_dir);
-#else
-	evolution_dir_path = g_strdup (data_dir);
-#endif
-
-#if NSS_VMAJOR > 3 || (NSS_VMAJOR == 3 && NSS_VMINOR >= 12)
-	nss_configstr = g_strconcat ("sql:", evolution_dir_path, NULL);
-
-	/* we initialize NSS here to make sure it only happens once */
-        /* See: https://wiki.mozilla.org/NSS_Shared_DB,
-         * particularly "Mode 3A". */
-	status = NSS_InitWithMerge (
-		nss_configstr,		/* dest dir */
-		"", "",			/* new DB name prefixes */
-		SECMOD_DB,		/* secmod name */
-		evolution_dir_path,	/* old DB dir */
-		"", "",			/* old DB name prefixes */
-		evolution_dir_path,	/* unique ID for old DB */
-		"Evolution S/MIME",	/* UI name for old DB */
-		0);			/* flags */
-#else
-	nss_configstr = g_strdup (evolution_dir_path);
-	status = NSS_InitReadWrite (nss_configstr);
-#endif
-
-	if (status != SECSuccess) {
-		status = NSS_Init (nss_configstr);
-		if (status == SECSuccess)
-			g_warning ("opening cert databases read-only");
-	}
-	if (status != SECSuccess) {
-		status = NSS_NoDB_Init (nss_configstr);
-		if (status == SECSuccess)
-			g_warning ("initializing security library without cert databases.");
-	}
-	g_free (nss_configstr);
-	g_free (evolution_dir_path);
-
-	if (status != SECSuccess) {
-		g_warning ("Failed all methods for initializing NSS");
-		return;
-	}
-
-	NSS_SetDomesticPolicy();
+	/* Use camel_init() to initialise NSS consistently... */
+	camel_init(e_get_user_data_dir(), TRUE);
 
+	/* ... except for the bits we only seem to do here. FIXME */
 	PK11_SetPasswordFunc(pk11_password);
 
 	/* Enable ciphers for PKCS#12 */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]