imap: Introduced FETCH_FINAL state for processing final fetch responses

A typical FETCH response can be broken down into four parts:

  1) "* <uid> FETCH (<what> {<size>}\r\n", using continuation syntax
  2) <size> bytes of the actual message
  3) ")\r\n", finishing the untagged response
  4) "<tag> 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.
This commit is contained in:
Jiri Hruska 2013-02-28 19:16:33 +01:00 committed by Steve Holme
parent 692ef0e158
commit 974c663471
2 changed files with 2 additions and 0 deletions

View File

@ -467,6 +467,7 @@ static void state(struct connectdata *conn, imapstate newstate)
"LOGIN",
"SELECT",
"FETCH",
"FETCH_FINAL",
"LOGOUT",
/* LAST */
};

View File

@ -47,6 +47,7 @@ typedef enum {
IMAP_LOGIN,
IMAP_SELECT,
IMAP_FETCH,
IMAP_FETCH_FINAL,
IMAP_LOGOUT,
IMAP_LAST /* never used */
} imapstate;