Protect against multiple camel_init() calls. Remember if we've already
authorJeffrey Stedfast <fejj@ximian.com>
Fri, 30 Jan 2004 21:05:49 +0000 (21:05 +0000)
committerJeffrey Stedfast <fejj@src.gnome.org>
Fri, 30 Jan 2004 21:05:49 +0000 (21:05 +0000)
2004-01-30  Jeffrey Stedfast  <fejj@ximian.com>

* camel.c (camel_init): Protect against multiple camel_init()
calls. Remember if we've already been called.

camel/ChangeLog
camel/camel.c

index 3753da6..61f0bb0 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-30  Jeffrey Stedfast  <fejj@ximian.com>
+
+       * camel.c (camel_init): Protect against multiple camel_init()
+       calls. Remember if we've already been called.
+
 2004-01-30  Not Zed  <NotZed@Ximian.com>
 
        * camel-store.c (camel_store_rename_folder): copy the old_name
index ae99da7..8d60968 100644 (file)
 
 gboolean camel_verbose_debug = FALSE;
 
+static int initialised = FALSE;
+
 static void
 camel_shutdown (void)
 {
        CamelCertDB *certdb;
        
+       if (!initialised)
+               return;
+       
 #ifdef HAVE_NSS
        NSS_Shutdown ();
        
@@ -57,6 +62,8 @@ camel_shutdown (void)
                camel_certdb_save (certdb);
                camel_object_unref (certdb);
        }
+       
+       initialised = FALSE;
 }
 
 int
@@ -66,6 +73,9 @@ camel_init (const char *configdir, gboolean nss_init)
        char *path;
        void camel_operation_init(void);
        
+       if (initialised)
+               return;
+       
        if (getenv ("CAMEL_VERBOSE_DEBUG"))
                camel_verbose_debug = TRUE;
        
@@ -111,5 +121,7 @@ camel_init (const char *configdir, gboolean nss_init)
        
        g_atexit (camel_shutdown);
        
+       initialised = TRUE;
+       
        return 0;
 }