diff options
author | David Woodhouse <David.Woodhouse@intel.com> | 2010-06-19 12:41:11 +0100 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2010-06-28 13:29:45 +0100 |
commit | 8d504b79544970ed356e4f0117d614ed6347a3e2 (patch) | |
tree | 4e06abf7cc97f02928bd00d30e20a7d24cdf6c47 | |
parent | 176295453fca187e36538c7f77a5ca63d3109c05 (diff) | |
download | evolution-data-server-8d504b79544970ed356e4f0117d614ed6347a3e2.tar.gz |
Support VANISHED response (RFC5162)
(cherry picked from commit 425190c799760d87e2c6ca8f93ef1d73a9543f55)
-rw-r--r-- | camel/providers/imapx/camel-imapx-server.c | 14 | ||||
-rw-r--r-- | camel/providers/imapx/camel-imapx-tokens.txt | 1 | ||||
-rw-r--r-- | camel/providers/imapx/camel-imapx-utils.h | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c index 68e8d84b0..252016733 100644 --- a/camel/providers/imapx/camel-imapx-server.c +++ b/camel/providers/imapx/camel-imapx-server.c @@ -1174,6 +1174,20 @@ imapx_untagged(CamelIMAPXServer *imap, CamelException *ex) break; } + case IMAPX_VANISHED: { + GPtrArray *uids = imapx_parse_uids(imap->stream, ex); + int i; + + if (camel_exception_is_set(ex)) + return -1; + for (i = 0; i < uids->len; i++) { + gchar *uid = g_strdup_printf("%u", GPOINTER_TO_UINT(g_ptr_array_index (uids, i))); + c(printf("vanished: %s\n", uid)); + imapx_expunge_uid_from_summary(imap, uid); + } + g_ptr_array_free (uids, FALSE); + break; + } case IMAPX_NAMESPACE: { CamelIMAPXNamespaceList *nsl = NULL; diff --git a/camel/providers/imapx/camel-imapx-tokens.txt b/camel/providers/imapx/camel-imapx-tokens.txt index be863acef..d1d36381c 100644 --- a/camel/providers/imapx/camel-imapx-tokens.txt +++ b/camel/providers/imapx/camel-imapx-tokens.txt @@ -39,3 +39,4 @@ UID, IMAPX_UID UIDVALIDITY, IMAPX_UIDVALIDITY UNSEEN, IMAPX_UNSEEN UIDNEXT, IMAPX_UIDNEXT +VANISHED, IMAPX_VANISHED diff --git a/camel/providers/imapx/camel-imapx-utils.h b/camel/providers/imapx/camel-imapx-utils.h index 6215afaf5..a65255333 100644 --- a/camel/providers/imapx/camel-imapx-utils.h +++ b/camel/providers/imapx/camel-imapx-utils.h @@ -49,6 +49,7 @@ typedef enum _camel_imapx_id_t { IMAPX_UIDVALIDITY, IMAPX_UNSEEN, IMAPX_UIDNEXT, + IMAPX_VANISHED, } camel_imapx_id_t; /* str MUST be in upper case, tokenised using gperf function */ |