summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-01-19 20:16:29 +0000
committerDan Winship <danw@src.gnome.org>2001-01-19 20:16:29 +0000
commit2c3a684d52238c9a0c8edfcf4efb26dca01b0970 (patch)
tree8ea0693f1bc9cb9f56c1ccf88215bb4f969ef481
parentd49fce19493d6b6e71c4e465ab56fe722d9d7671 (diff)
downloadevolution-data-server-2c3a684d52238c9a0c8edfcf4efb26dca01b0970.tar.gz
If LISTing a subscribed folder doesn't return a LIST response, just ignore
* providers/imap/camel-imap-store.c (get_subscribed_folders_by_hand): If LISTing a subscribed folder doesn't return a LIST response, just ignore that folder. Yay RFC2060.
-rw-r--r--camel/ChangeLog7
-rw-r--r--camel/providers/imap/camel-imap-store.c9
2 files changed, 13 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 643894cf9..a4366f08b 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,10 @@
+2001-01-19 Dan Winship <danw@ximian.com>
+
+ * providers/imap/camel-imap-store.c
+ (get_subscribed_folders_by_hand): If LISTing a subscribed folder
+ doesn't return a LIST response, just ignore that folder. Yay
+ RFC2060.
+
2001-01-19 Kjartan Maraas <kmaraas@gnome.org>
* providers/smtp/camel-smtp-provider.c: Mark strings for translation.
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
index dd0ba7296..0ed99e8f8 100644
--- a/camel/providers/imap/camel-imap-store.c
+++ b/camel/providers/imap/camel-imap-store.c
@@ -735,10 +735,13 @@ get_subscribed_folders_by_hand (CamelImapStore *imap_store, const char *top,
g_ptr_array_free (names, TRUE);
return;
}
- result = camel_imap_response_extract (response, "LIST", ex);
+ result = camel_imap_response_extract (response, "LIST", NULL);
if (!result) {
- g_ptr_array_free (names, TRUE);
- return;
+ g_hash_table_remove (imap_store->subscribed_folders,
+ names->pdata[i]);
+ g_free (names->pdata[i]);
+ g_ptr_array_remove_index_fast (names, i--);
+ continue;
}
fi = parse_list_response_as_folder_info (imap_store, result);