]> granicus.if.org Git - curl/commitdiff
imap: Fixed handling of untagged responses for the STORE custom command
authorSteve Holme <steve_holme@hotmail.com>
Fri, 8 Mar 2013 21:18:36 +0000 (21:18 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Fri, 8 Mar 2013 21:18:36 +0000 (21:18 +0000)
Added an exception, for the STORE command, to the untagged response
processor in imap_endofresp() as servers will back respones containing
the FETCH keyword instead.

lib/imap.c

index 2ca87b8a0daf01d13dbfaa998148738dafa95c61..ae5ec86c250af8f55c3d6e34b05360cb87bc6824 100644 (file)
@@ -415,9 +415,12 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,
       case IMAP_CUSTOM:
         /* When dealing with a custom command, we are interested in all
            intermediate responses which match the parameter name. The
-           exceptions are SELECT and EXAMINE commands, for which no
-           filtering is (or can be easily) done. */
+           exceptions are STORE, which returns untagged responses as FETCH,
+           and SELECT and EXAMINE commands, for which no filtering is (or can
+           be easily) done. */
         if(!imap_matchresp(line, len, imap->custom) &&
+           (strcmp(imap->custom, "STORE") ||
+            !imap_matchresp(line, len, "FETCH")) &&
            strcmp(imap->custom, "SELECT") &&
            strcmp(imap->custom, "EXAMINE"))
           return FALSE;