diff options
author | Dan Winship <danw@src.gnome.org> | 2000-10-17 02:10:42 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2000-10-17 02:10:42 +0800 |
commit | f8e95fb8161a02b064e1170dd3ac77090530f20a (patch) | |
tree | 00aab2ef44f6aab24649ebd57283f044d96435d3 | |
parent | 6793123da8bf07d588c2b7c403e8d070ef7d3e91 (diff) | |
download | gsoc2013-evolution-f8e95fb8161a02b064e1170dd3ac77090530f20a.tar gsoc2013-evolution-f8e95fb8161a02b064e1170dd3ac77090530f20a.tar.gz gsoc2013-evolution-f8e95fb8161a02b064e1170dd3ac77090530f20a.tar.bz2 gsoc2013-evolution-f8e95fb8161a02b064e1170dd3ac77090530f20a.tar.lz gsoc2013-evolution-f8e95fb8161a02b064e1170dd3ac77090530f20a.tar.xz gsoc2013-evolution-f8e95fb8161a02b064e1170dd3ac77090530f20a.tar.zst gsoc2013-evolution-f8e95fb8161a02b064e1170dd3ac77090530f20a.zip |
Deal with the possibility of not getting a LIST response back for the top
* providers/imap/camel-imap-store.c (get_folder_info): Deal with
the possibility of not getting a LIST response back for the top
level.
svn path=/trunk/; revision=5941
-rw-r--r-- | camel/ChangeLog | 6 | ||||
-rw-r--r-- | camel/providers/imap/camel-imap-store.c | 26 |
2 files changed, 20 insertions, 12 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 15d9a4ed0b..d2e8bc5805 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,9 @@ +2000-10-16 Dan Winship <danw@helixcode.com> + + * providers/imap/camel-imap-store.c (get_folder_info): Deal with + the possibility of not getting a LIST response back for the top + level. + 2000-10-12 Dan Winship <danw@helixcode.com> * providers/imap/camel-imap-summary.c: Simple subclass of diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c index 1042160868..a561cab96d 100644 --- a/camel/providers/imap/camel-imap-store.c +++ b/camel/providers/imap/camel-imap-store.c @@ -520,7 +520,7 @@ get_folder_info (CamelStore *store, const char *top, gboolean fast, CamelImapResponse *response; GPtrArray *folders; char *dir_sep, *namespace, *base_url, *list; - CamelFolderInfo *topfi, *fi; + CamelFolderInfo *topfi = NULL, *fi; if (!top) top = ""; @@ -542,19 +542,21 @@ get_folder_info (CamelStore *store, const char *top, gboolean fast, response = camel_imap_command (imap_store, NULL, ex, "LIST \"\" \"%s\"", namespace); - if (!response) { - g_free (namespace); - g_free (base_url); - return NULL; + if (response) { + list = camel_imap_response_extract (response, "LIST", ex); + if (list) { + topfi = parse_list_response_as_folder_info (list, + namespace, + base_url); + g_free (list); + } } - list = camel_imap_response_extract (response, "LIST", ex); - if (!list) { - g_free (namespace); - g_free (base_url); - return NULL; + if (!topfi) { + camel_exception_clear (ex); + topfi = g_new0 (CamelFolderInfo, 1); + fi->full_name = g_strdup (namespace); + fi->name = g_strdup (namespace); } - topfi = parse_list_response_as_folder_info (list, namespace, base_url); - g_free (list); response = camel_imap_command (imap_store, NULL, ex, "LIST \"\" \"%s%s%c\"", |