diff options
author | Dan Winship <danw@src.gnome.org> | 2001-01-19 20:16:29 +0000 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-01-19 20:16:29 +0000 |
commit | 2c3a684d52238c9a0c8edfcf4efb26dca01b0970 (patch) | |
tree | 8ea0693f1bc9cb9f56c1ccf88215bb4f969ef481 | |
parent | d49fce19493d6b6e71c4e465ab56fe722d9d7671 (diff) | |
download | evolution-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/ChangeLog | 7 | ||||
-rw-r--r-- | camel/providers/imap/camel-imap-store.c | 9 |
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); |