]> granicus.if.org Git - curl/commitdiff
email: Tidy up of *_perform_authenticate()
authorSteve Holme <steve_holme@hotmail.com>
Sun, 28 Apr 2013 11:57:42 +0000 (12:57 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 28 Apr 2013 11:57:42 +0000 (12:57 +0100)
Removed the hard returns from imap and pop3 by using the same style for
sending the authentication string as smtp. Moved the "Other mechanisms
not supported" check in smtp to match that of imap and pop3 to provide
consistency between the three email protocols.

lib/imap.c
lib/pop3.c
lib/smtp.c

index 6bdd5c1ae46a5b554cace711b9459087346e49f9..b13bd3da745479caa9e435dc6370e713026820fc 100644 (file)
@@ -596,33 +596,32 @@ static CURLcode imap_perform_authenticate(struct connectdata *conn)
                                               conn->passwd, &initresp, &len);
   }
 
-  if(result)
-    return result;
+  if(!result) {
+    if(mech) {
+      /* Perform SASL based authentication */
+      if(initresp) {
+        result = imap_sendf(conn, "AUTHENTICATE %s %s", mech, initresp);
 
-  if(mech) {
-    /* Perform SASL based authentication */
-    if(initresp) {
-      result = imap_sendf(conn, "AUTHENTICATE %s %s", mech, initresp);
+        if(!result)
+          state(conn, state2);
+      }
+      else {
+        result = imap_sendf(conn, "AUTHENTICATE %s", mech);
 
-      if(!result)
-        state(conn, state2);
+        if(!result)
+          state(conn, state1);
+      }
+
+      Curl_safefree(initresp);
     }
+    else if(!imapc->login_disabled)
+      /* Perform clear text authentication */
+      result = imap_perform_login(conn);
     else {
-      result = imap_sendf(conn, "AUTHENTICATE %s", mech);
-
-      if(!result)
-        state(conn, state1);
+      /* Other mechanisms not supported */
+      infof(conn->data, "No known authentication mechanisms supported!\n");
+      result = CURLE_LOGIN_DENIED;
     }
-
-    Curl_safefree(initresp);
-  }
-  else if(!imapc->login_disabled)
-    /* Perform clear text authentication */
-    result = imap_perform_login(conn);
-  else {
-    /* Other mechanisms not supported */
-    infof(conn->data, "No known authentication mechanisms supported!\n");
-    result = CURLE_LOGIN_DENIED;
   }
 
   return result;
index bace72a11a2a55b6fe2dbd5496767c71b01f3f02..6f188b254b213526c82aace7e46002cec257606b 100644 (file)
@@ -624,42 +624,40 @@ static CURLcode pop3_perform_authenticate(struct connectdata *conn)
     }
   }
 
-  if(result)
-    return result;
+  if(!result) {
+    if(mech && (pop3c->preftype & POP3_TYPE_SASL)) {
+      /* Perform SASL based authentication */
+      if(initresp &&
+         8 + strlen(mech) + len <= 255) { /* AUTH <mech> ...<crlf> */
+        result = Curl_pp_sendf(&pop3c->pp, "AUTH %s %s", mech, initresp);
 
-  if(mech && (pop3c->preftype & POP3_TYPE_SASL)) {
-    /* Perform SASL based authentication */
-    if(initresp &&
-       8 + strlen(mech) + len <= 255) { /* AUTH <mech> ...<crlf> */
-      result = Curl_pp_sendf(&pop3c->pp, "AUTH %s %s", mech, initresp);
+        if(!result)
+          state(conn, state2);
+      }
+      else {
+        result = Curl_pp_sendf(&pop3c->pp, "AUTH %s", mech);
 
-      if(!result)
-        state(conn, state2);
-    }
-    else {
-      /* Perform SASL based authentication */
-      result = Curl_pp_sendf(&pop3c->pp, "AUTH %s", mech);
+        if(!result)
+          state(conn, state1);
+      }
 
-      if(!result)
-        state(conn, state1);
+      Curl_safefree(initresp);
     }
-
-    Curl_safefree(initresp);
-  }
 #ifndef CURL_DISABLE_CRYPTO_AUTH
-  else if((pop3c->authtypes & POP3_TYPE_APOP) &&
-          (pop3c->preftype & POP3_TYPE_APOP))
-    /* Perform APOP authentication */
-    result = pop3_perform_apop(conn);
+    else if((pop3c->authtypes & POP3_TYPE_APOP) &&
+            (pop3c->preftype & POP3_TYPE_APOP))
+      /* Perform APOP authentication */
+      result = pop3_perform_apop(conn);
 #endif
-  else if((pop3c->authtypes & POP3_TYPE_CLEARTEXT) &&
-          (pop3c->preftype & POP3_TYPE_CLEARTEXT))
-    /* Perform clear text authentication */
-    result = pop3_perform_user(conn);
-  else {
-    /* Other mechanisms not supported */
-    infof(conn->data, "No known authentication mechanisms supported!\n");
-    result = CURLE_LOGIN_DENIED;
+    else if((pop3c->authtypes & POP3_TYPE_CLEARTEXT) &&
+            (pop3c->preftype & POP3_TYPE_CLEARTEXT))
+      /* Perform clear text authentication */
+      result = pop3_perform_user(conn);
+    else {
+      /* Other mechanisms not supported */
+      infof(conn->data, "No known authentication mechanisms supported!\n");
+      result = CURLE_LOGIN_DENIED;
+    }
   }
 
   return result;
index 72b3bbf6ac61fb8e94fe03d2d4d26aba9bf01835..72a6135ffd19dcb955444d789d4ab3ef9f54544b 100644 (file)
@@ -518,29 +518,31 @@ static CURLcode smtp_perform_authenticate(struct connectdata *conn)
       result = Curl_sasl_create_plain_message(conn->data, conn->user,
                                               conn->passwd, &initresp, &len);
   }
-  else {
-    /* Other mechanisms not supported */
-    infof(conn->data, "No known authentication mechanisms supported!\n");
-    result = CURLE_LOGIN_DENIED;
-  }
 
   if(!result) {
-    /* Perform SASL based authentication */
-    if(initresp &&
-       8 + strlen(mech) + len <= 512) { /* AUTH <mech> ...<crlf> */
-       result = Curl_pp_sendf(&smtpc->pp, "AUTH %s %s", mech, initresp);
+    if(mech) {
+      /* Perform SASL based authentication */
+      if(initresp &&
+         8 + strlen(mech) + len <= 512) { /* AUTH <mech> ...<crlf> */
+        result = Curl_pp_sendf(&smtpc->pp, "AUTH %s %s", mech, initresp);
 
-      if(!result)
-        state(conn, state2);
+        if(!result)
+          state(conn, state2);
+      }
+      else {
+        result = Curl_pp_sendf(&smtpc->pp, "AUTH %s", mech);
+
+        if(!result)
+          state(conn, state1);
+      }
+
+      Curl_safefree(initresp);
     }
     else {
-      result = Curl_pp_sendf(&smtpc->pp, "AUTH %s", mech);
-
-      if(!result)
-        state(conn, state1);
+      /* Other mechanisms not supported */
+      infof(conn->data, "No known authentication mechanisms supported!\n");
+      result = CURLE_LOGIN_DENIED;
     }
-
-    Curl_safefree(initresp);
   }
 
   return result;