]> granicus.if.org Git - curl/commitdiff
imap: Changed the order of the response types in imap_endofresp()
authorSteve Holme <steve_holme@hotmail.com>
Sun, 24 Feb 2013 16:14:16 +0000 (16:14 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 24 Feb 2013 16:14:16 +0000 (16:14 +0000)
From a maintenance point of view the code reads better to view tagged
responses, then untagged followed by continuation responses.

Additionally, this matches the order of responses in POP3.

lib/imap.c

index d135ba9169b49814bbf4faf84c78947617071e34..0c0154824d8e770d683525796a2162302056d539 100644 (file)
@@ -353,32 +353,6 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,
     return TRUE;
   }
 
-  /* Do we have a continuation response? */
-  if((len == 3 && !memcmp("+", line, 1)) ||
-     (len >= 2 && !memcmp("+ ", line, 2))) {
-    switch(imapc->state) {
-      /* States which are interested in continuation responses */
-      case IMAP_AUTHENTICATE_PLAIN:
-      case IMAP_AUTHENTICATE_LOGIN:
-      case IMAP_AUTHENTICATE_LOGIN_PASSWD:
-      case IMAP_AUTHENTICATE_CRAMMD5:
-      case IMAP_AUTHENTICATE_DIGESTMD5:
-      case IMAP_AUTHENTICATE_DIGESTMD5_RESP:
-      case IMAP_AUTHENTICATE_NTLM:
-      case IMAP_AUTHENTICATE_NTLM_TYPE2MSG:
-      case IMAP_AUTHENTICATE:
-        *resp = '+';
-        break;
-
-      default:
-        failf(conn->data, "Unexpected continuation response");
-        *resp = -1;
-        break;
-    }
-
-    return TRUE;
-  }
-
   /* Do we have an untagged command response */
   if(len >= 2 && !memcmp("* ", line, 2)) {
     /* Are we processing CAPABILITY command data? */
@@ -443,6 +417,8 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,
         line += wordlen;
         len -= wordlen;
       }
+
+      return FALSE;
     }
     /* Are we processing FETCH command responses? */
     else if(imapc->state == IMAP_FETCH) {
@@ -452,6 +428,32 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,
     }
   }
 
+  /* Do we have a continuation response? */
+  if((len == 3 && !memcmp("+", line, 1)) ||
+     (len >= 2 && !memcmp("+ ", line, 2))) {
+    switch(imapc->state) {
+      /* States which are interested in continuation responses */
+      case IMAP_AUTHENTICATE_PLAIN:
+      case IMAP_AUTHENTICATE_LOGIN:
+      case IMAP_AUTHENTICATE_LOGIN_PASSWD:
+      case IMAP_AUTHENTICATE_CRAMMD5:
+      case IMAP_AUTHENTICATE_DIGESTMD5:
+      case IMAP_AUTHENTICATE_DIGESTMD5_RESP:
+      case IMAP_AUTHENTICATE_NTLM:
+      case IMAP_AUTHENTICATE_NTLM_TYPE2MSG:
+      case IMAP_AUTHENTICATE:
+        *resp = '+';
+        break;
+
+      default:
+        failf(conn->data, "Unexpected continuation response");
+        *resp = -1;
+        break;
+    }
+
+    return TRUE;
+  }
+
   return FALSE; /* Nothing for us */
 }