diff options
author | Dan Winship <danw@src.gnome.org> | 2001-01-20 04:16:29 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-01-20 04:16:29 +0800 |
commit | 60baa4ad9052807f3d45840ea3b1b65ab64dabee (patch) | |
tree | cbf6f7cb12a490e785d54bc7d8c3f27fa9754b37 /camel | |
parent | 62a2dc7c2e5c5a11184ac23fc626aa22f499ab03 (diff) | |
download | gsoc2013-evolution-60baa4ad9052807f3d45840ea3b1b65ab64dabee.tar.gz gsoc2013-evolution-60baa4ad9052807f3d45840ea3b1b65ab64dabee.tar.zst gsoc2013-evolution-60baa4ad9052807f3d45840ea3b1b65ab64dabee.zip |
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.
svn path=/trunk/; revision=7650
Diffstat (limited to 'camel')
-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 643894cf91..a4366f08b9 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 dd0ba72964..0ed99e8f8c 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); |