email: Another post optimisation of endofresp() tidy up
authorSteve Holme <steve_holme@hotmail.com>
Tue, 12 Feb 2013 23:00:34 +0000 (23:00 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Tue, 12 Feb 2013 23:00:34 +0000 (23:00 +0000)
lib/imap.c
lib/pop3.c

index 320101b..27e67ff 100644 (file)
@@ -339,6 +339,7 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,
   if(len >= id_len + 3) {
     if(!memcmp(id, line, id_len) && line[id_len] == ' ') {
       *resp = line[id_len + 1]; /* O, N or B */
+
       return TRUE;
     }
   }
@@ -347,6 +348,7 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,
   if((len == 3 && !memcmp("+", line, 1)) ||
      (len >= 2 && !memcmp("+ ", line, 2))) {
     *resp = '+';
+
     return TRUE;
   }
 
@@ -416,12 +418,12 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,
       }
     }
   }
-
   /* Are we processing FETCH command responses? */
-  if(imapc->state == IMAP_FETCH) {
+  else if(imapc->state == IMAP_FETCH) {
     /* Do we have a valid response? */
     if(len >= 2 && !memcmp("* ", line, 2)) {
       *resp = '*';
       return TRUE;
     }
   }
index 3fbe14e..6545067 100644 (file)
@@ -216,10 +216,10 @@ static void pop3_to_pop3s(struct connectdata *conn)
 #define pop3_to_pop3s(x) Curl_nop_stmt
 #endif
 
-/* Function that checks for an ending pop3 status code at the start of the
+/* Function that checks for an ending POP3 status code at the start of the
    given string, but also detects the APOP timestamp from the server greeting
-   as well as the supported authentication types and allowed SASL mechanisms
-   from the CAPA response. */
+   and various capabilities from the CAPA response including the supported
+   authentication types and allowed SASL mechanisms. */
 static bool pop3_endofresp(struct connectdata *conn, char *line, size_t len,
                            int *resp)
 {
@@ -259,7 +259,6 @@ static bool pop3_endofresp(struct connectdata *conn, char *line, size_t len,
   }
   /* Are we processing CAPA command responses? */
   else if(pop3c->state == POP3_CAPA) {
-
     /* Do we have the terminating line? */
     if(len >= 1 && !memcmp(line, ".", 1)) {
       *resp = '+';
@@ -330,14 +329,15 @@ static bool pop3_endofresp(struct connectdata *conn, char *line, size_t len,
     return FALSE;
   }
 
-  if((len < 1 || memcmp("+", line, 1)) &&
-     (len < 3 || memcmp("+OK", line, 3)))
-  return FALSE; /* Nothing for us */
+  /* Do we have a command or continuation response? */
+  if((len >= 3 && !memcmp("+OK", line, 3)) ||
+     (len >= 1 && !memcmp("+", line, 1))) {
+    *resp = '+';
 
-  /* Otherwise it's a positive response */
-  *resp = '+';
+    return TRUE;
+  }
 
-  return TRUE;
+  return FALSE; /* Nothing for us */
 }
 
 /* This is the ONLY way to change POP3 state! */