From: Steve Holme <steve_holme@hotmail.com>
Date: Wed, 18 Dec 2013 07:00:00 +0000 (+0000)
Subject: imap: Moved the sending of the AUTHENICATE command into a separate function
X-Git-Tag: curl-7_35_0~232
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bd3a59ad415b9d370cf1273b91be2c49e9d236d5;p=curl

imap: Moved the sending of the AUTHENICATE command into a separate function
---

diff --git a/lib/imap.c b/lib/imap.c
index 547b7904f..23b020be4 100644
--- a/lib/imap.c
+++ b/lib/imap.c
@@ -555,6 +555,38 @@ static CURLcode imap_perform_login(struct connectdata *conn)
   return result;
 }
 
+/***********************************************************************
+ *
+ * imap_perform_authenticate()
+ *
+ * Sends an AUTHENTICATE command allowing the client to login with the given
+ * SASL authentication mechanism.
+ */
+static CURLcode imap_perform_authenticate(struct connectdata *conn,
+                                          const char *mech,
+                                          const char *initresp,
+                                          imapstate state1, imapstate state2)
+{
+  CURLcode result = CURLE_OK;
+
+  if(initresp) {
+    /* Send the AUTHENTICATE command with the initial response */
+    result = imap_sendf(conn, "AUTHENTICATE %s %s", mech, initresp);
+
+    if(!result)
+      state(conn, state2);
+  }
+  else {
+    /* Send the AUTHENTICATE command */
+    result = imap_sendf(conn, "AUTHENTICATE %s", mech);
+
+    if(!result)
+      state(conn, state1);
+  }
+
+  return result;
+}
+
 /***********************************************************************
  *
  * imap_perform_authentication()
@@ -653,18 +685,7 @@ static CURLcode imap_perform_authentication(struct connectdata *conn)
   if(!result) {
     if(mech && (imapc->preftype & IMAP_TYPE_SASL)) {
       /* 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, state1);
-      }
+      result = imap_perform_authenticate(conn, mech, initresp, state1, state2);
 
       Curl_safefree(initresp);
     }