From 974c663471c15721082d9bdc50d90dd6843467b0 Mon Sep 17 00:00:00 2001 From: Jiri Hruska Date: Thu, 28 Feb 2013 19:16:33 +0100 Subject: [PATCH] imap: Introduced FETCH_FINAL state for processing final fetch responses A typical FETCH response can be broken down into four parts: 1) "* FETCH ( {}\r\n", using continuation syntax 2) bytes of the actual message 3) ")\r\n", finishing the untagged response 4) " OK ...", finishing the command Part 1 is read in imap_fetch_resp(), part 2 is consumed in the PERFORM phase by the transfer subsystem, parts 3 and 4 are currently ignored. --- lib/imap.c | 1 + lib/imap.h | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/imap.c b/lib/imap.c index 8c1ea01d6..8f6aad7c6 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -467,6 +467,7 @@ static void state(struct connectdata *conn, imapstate newstate) "LOGIN", "SELECT", "FETCH", + "FETCH_FINAL", "LOGOUT", /* LAST */ }; diff --git a/lib/imap.h b/lib/imap.h index 428bc23ae..af12130bd 100644 --- a/lib/imap.h +++ b/lib/imap.h @@ -47,6 +47,7 @@ typedef enum { IMAP_LOGIN, IMAP_SELECT, IMAP_FETCH, + IMAP_FETCH_FINAL, IMAP_LOGOUT, IMAP_LAST /* never used */ } imapstate;