Automagically call camel_shutdown() atexit() ;-) (camel_init): Also
authorJeffrey Stedfast <fejj@ximian.com>
Fri, 27 Apr 2001 00:16:41 +0000 (00:16 +0000)
committerJeffrey Stedfast <fejj@src.gnome.org>
Fri, 27 Apr 2001 00:16:41 +0000 (00:16 +0000)
2001-04-26  Jeffrey Stedfast  <fejj@ximian.com>

* camel.c (camel_init): Automagically call camel_shutdown()
atexit() ;-)
(camel_init): Also initialize NSS databases as read/write for
S/MIME and if NSS fails to init, try initializing with volatile
databases.

* camel-file-utils.h: #include <sys/types.h> for off_t.

camel/ChangeLog
camel/camel.c
camel/camel.h

index 0d3f728..e0e9884 100644 (file)
@@ -1,5 +1,11 @@
 2001-04-26  Jeffrey Stedfast  <fejj@ximian.com>
 
+       * camel.c (camel_init): Automagically call camel_shutdown()
+       atexit() ;-)
+       (camel_init): Also initialize NSS databases as read/write for
+       S/MIME and if NSS fails to init, try initializing with volatile
+       databases.
+
        * camel-file-utils.h: #include <sys/types.h> for off_t.
 
 2001-04-26  Dan Winship  <danw@ximian.com>
index f2d8b8d..6ae9308 100644 (file)
 
 gboolean camel_verbose_debug = FALSE;
 
+static void
+camel_shutdown (void)
+{
+#ifdef HAVE_NSS
+       NSS_Shutdown ();
+       
+       PR_Cleanup ();
+#endif /* HAVE_NSS */
+}
+
 gint
-camel_init (const char *certdb_dir, gboolean nss_init)
+camel_init (const char *configdir, gboolean nss_init)
 {
 #ifdef ENABLE_THREADS
 #ifdef G_THREADS_ENABLED       
@@ -56,12 +66,17 @@ camel_init (const char *certdb_dir, gboolean nss_init)
        if (nss_init) {
                PR_Init (PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 10);
                
-               if (NSS_Init (certdb_dir) == SECFailure) {
-                       g_warning ("Failed to initialize NSS");
-                       return -1;
+               if (NSS_InitReadWrite (configdir) == SECFailure) {
+                       /* fall back on using volatile dbs? */
+                       if (NSS_NoDB_Init (configdir) == SECFailure) {
+                               g_warning ("Failed to initialize NSS");
+                               return -1;
+                       }
                }
                
                NSS_SetDomesticPolicy ();
+               
+               g_atexit (camel_shutdown);
        }
        
        SSL_OptionSetDefault (SSL_ENABLE_SSL2, PR_TRUE);
@@ -72,13 +87,3 @@ camel_init (const char *certdb_dir, gboolean nss_init)
        
        return 0;
 }
-
-void
-camel_shutdown (void)
-{
-#ifdef HAVE_NSS
-       NSS_Shutdown ();
-       
-       PR_Cleanup ();
-#endif /* HAVE_NSS */
-}
index 34740e9..e775f67 100644 (file)
@@ -77,8 +77,6 @@ extern "C" {
 
 gint camel_init (const char *certdb_dir, gboolean nss_init);
 
-void camel_shutdown (void);
-
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */