smtp.c: Re-factored smtp_auth_login_user() for use with passwords
authorSteve Holme <steve_holme@hotmail.com>
Thu, 31 May 2012 21:49:14 +0000 (22:49 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Thu, 31 May 2012 21:49:14 +0000 (22:49 +0100)
In preparation for moving to the SASL module re-factored the
smtp_auth_login_user() function to smtp_auth_login() so that it can be
used for both user names and passwords as sending both of these under
the login authentication mechanism is the same.

lib/smtp.c

index 36bda31..d2b02bd 100644 (file)
@@ -383,22 +383,23 @@ static CURLcode smtp_state_helo(struct connectdata *conn)
   return CURLE_OK;
 }
 
-static CURLcode smtp_auth_login_user(struct connectdata *conn,
-                                     char **outptr, size_t *outlen)
+static CURLcode smtp_auth_login(struct connectdata *conn, const char *valuep,
+                                char **outptr, size_t *outlen)
 {
-  size_t ulen = strlen(conn->user);
+  size_t vlen = strlen(valuep);
 
-  if(!ulen) {
+  if(!vlen) {
     *outptr = strdup("=");
     if(*outptr) {
       *outlen = (size_t) 1;
       return CURLE_OK;
     }
+
     *outlen = 0;
     return CURLE_OUT_OF_MEMORY;
   }
 
-  return Curl_base64_encode(conn->data, conn->user, ulen, outptr, outlen);
+  return Curl_base64_encode(conn->data, valuep, vlen, outptr, outlen);
 }
 
 #ifdef USE_NTLM
@@ -458,7 +459,7 @@ static CURLcode smtp_authenticate(struct connectdata *conn)
     state1 = SMTP_AUTHLOGIN;
     state2 = SMTP_AUTHPASSWD;
     smtpc->authused = SASL_AUTH_LOGIN;
-    result = smtp_auth_login_user(conn, &initresp, &len);
+    result = smtp_auth_login(conn, conn->user, &initresp, &len);
   }
   else if(smtpc->authmechs & SASL_AUTH_PLAIN) {
     mech = "PLAIN";
@@ -684,7 +685,7 @@ static CURLcode smtp_state_authlogin_resp(struct connectdata *conn,
     result = CURLE_LOGIN_DENIED;
   }
   else {
-    result = smtp_auth_login_user(conn, &authuser, &len);
+    result = smtp_auth_login(conn, conn->user, &authuser, &len);
 
     if(!result) {
       if(authuser) {