2007-01-14 [colin] 2.7.0cvs28
[claws.git] / src / etpan / imap-thread.c
index 70696737f89b47468ad21c1235125a8343018055..b31ea52248c33c840449bf2fea0b16e4ea0593b3 100644 (file)
@@ -435,16 +435,17 @@ int imap_threaded_connect(Folder * folder, const char * server, int port)
        struct connect_result result;
        chashdatum key;
        chashdatum value;
        struct connect_result result;
        chashdatum key;
        chashdatum value;
-       mailimap * imap;
+       mailimap * imap, * oldimap;
        
        
-       imap = get_imap(folder);
-       if (imap) {
-               debug_print("deleting old imap %p\n", imap);
-               delete_imap(folder, imap);
-       }
+       oldimap = get_imap(folder);
 
        imap = mailimap_new(0, NULL);
        
 
        imap = mailimap_new(0, NULL);
        
+       if (oldimap) {
+               debug_print("deleting old imap %p\n", oldimap);
+               delete_imap(folder, oldimap);
+       }
+       
        key.data = &folder;
        key.len = sizeof(folder);
        value.data = imap;
        key.data = &folder;
        key.len = sizeof(folder);
        value.data = imap;
@@ -512,18 +513,19 @@ int imap_threaded_connect_ssl(Folder * folder, const char * server, int port)
        struct connect_result result;
        chashdatum key;
        chashdatum value;
        struct connect_result result;
        chashdatum key;
        chashdatum value;
-       mailimap * imap;
+       mailimap * imap, * oldimap;
        unsigned char *certificate = NULL;
        int cert_len;
        unsigned char *certificate = NULL;
        int cert_len;
-
-       imap = get_imap(folder);
-       if (imap) {
-               debug_print("deleting old imap %p\n", imap);
-               delete_imap(folder, imap);
-       }
+       
+       oldimap = get_imap(folder);
 
        imap = mailimap_new(0, NULL);
        
 
        imap = mailimap_new(0, NULL);
        
+       if (oldimap) {
+               debug_print("deleting old imap %p\n", oldimap);
+               delete_imap(folder, oldimap);
+       }
+
        key.data = &folder;
        key.len = sizeof(folder);
        value.data = imap;
        key.data = &folder;
        key.len = sizeof(folder);
        value.data = imap;
@@ -2731,16 +2733,17 @@ int imap_threaded_connect_cmd(Folder * folder, const char * command,
        struct connect_cmd_result result;
        chashdatum key;
        chashdatum value;
        struct connect_cmd_result result;
        chashdatum key;
        chashdatum value;
-       mailimap * imap;
+       mailimap * imap, * oldimap;
        
        
-       imap = get_imap(folder);
-       if (imap) {
-               debug_print("deleting old imap %p\n", imap);
-               delete_imap(folder, imap);
-       }
+       oldimap = get_imap(folder);
 
        imap = mailimap_new(0, NULL);
        
 
        imap = mailimap_new(0, NULL);
        
+       if (oldimap) {
+               debug_print("deleting old imap %p\n", oldimap);
+               delete_imap(folder, oldimap);
+       }
+
        key.data = &folder;
        key.len = sizeof(folder);
        value.data = imap;
        key.data = &folder;
        key.len = sizeof(folder);
        value.data = imap;