diff options
author | Jeffrey Stedfast <fejj@helixcode.com> | 2000-07-29 01:41:15 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2000-07-29 01:41:15 +0800 |
commit | 42ea927055d4462b9f396092e2791a4db34ce6ec (patch) | |
tree | 0976fd9c6b733e261ffc01c7ae201380ba85d873 /camel/providers/imap/camel-imap-store.c | |
parent | f0e2a902fabd26df037e567ba17adb6060247aff (diff) | |
download | gsoc2013-evolution-42ea927055d4462b9f396092e2791a4db34ce6ec.tar.gz gsoc2013-evolution-42ea927055d4462b9f396092e2791a4db34ce6ec.tar.zst gsoc2013-evolution-42ea927055d4462b9f396092e2791a4db34ce6ec.zip |
Get message count when STATUS is not available. (imap_init):
2000-07-28 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-folder.c
(imap_get_message_count_internal): Get message count when STATUS
is not available.
(imap_init): folder->has_search_capability is required for IMAP so
should always be set to TRUE (is currently being set to FALSE as
I've not yet implemented SEARCH support).
(camel_imap_folder_changed): Seem to have fixed my optimization
hack
2000-07-28 Jon K Hellan <hellan@acm.org>
* providers/imap/camel-imap-store.h (CamelImapServerLevel): New
enum.
(CamelImapStore): Added server_level and has_status_capability
members.
* providers/imap/camel-imap-store.c (imap_connect): Detect
IMAP4REV1, IMAP4 and STATUS in capability response.
* providers/imap/camel-imap-folder.c
(imap_get_message_count_internal): Use STATUS only if server
supports it. TODO: Get message count when STATUS not supported.
(imap_get_message, imap_get_summary_internal,
imap_get_message_info_internal): Handle IMAP4 as well.
(imap_protocol_get_summary_specifier): New function: Make a data
item specifier for the header lines we need, appropriate to the
server level.
svn path=/trunk/; revision=4406
Diffstat (limited to 'camel/providers/imap/camel-imap-store.c')
-rw-r--r-- | camel/providers/imap/camel-imap-store.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c index 29baae5b48..22a730e933 100644 --- a/camel/providers/imap/camel-imap-store.c +++ b/camel/providers/imap/camel-imap-store.c @@ -351,16 +351,24 @@ imap_connect (CamelService *service, CamelException *ex) status != CAMEL_IMAP_FAIL && result ? result : "Unknown error"); } + + /* FIXME: parse for capabilities here. */ + d(fprintf (stderr, "%s\n", result)); + + if (e_strstrcase (result, "IMAP4REV1")) + store->server_level = IMAP_LEVEL_IMAP4REV1; + else if (e_strstrcase (result, "IMAP4")) + store->server_level = IMAP_LEVEL_IMAP4; + else + store->server_level = IMAP_LEVEL_UNKNOWN; - if (e_strstrcase (result, "SEARCH")) - store->has_search_capability = TRUE; + if ((store->server_level >= IMAP_LEVEL_IMAP4REV1) || (e_strstrcase (result, "STATUS"))) + store->has_status_capability = TRUE; else - store->has_search_capability = FALSE; + store->has_status_capability = FALSE; g_free (result); - d(fprintf (stderr, "IMAP provider does%shave SEARCH support\n", store->has_search_capability ? " " : "n't ")); - /* We now need to find out which directory separator this daemon uses */ status = camel_imap_command_extended (store, NULL, &result, "LIST \"\" \"\""); |