]> granicus.if.org Git - curl/commitdiff
When doing FTP-SSL, advance to the next state properly when the response to
authorDaniel Stenberg <daniel@haxx.se>
Tue, 29 Mar 2005 11:43:02 +0000 (11:43 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 29 Mar 2005 11:43:02 +0000 (11:43 +0000)
AUTH has been received successfully.

lib/ftp.c

index be4ff413e1f121c77ee55357d0683e97716d4ba0..3967d119f556be2e9eb9d7505f886d722a268382 100644 (file)
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -2375,22 +2375,23 @@ static CURLcode ftp_statemach_act(struct connectdata *conn)
       if((ftpcode == 234) || (ftpcode == 334)) {
         /* Curl_SSLConnect is BLOCKING */
         result = Curl_SSLConnect(conn, FIRSTSOCKET);
-        if(result)
-          return result;
-        conn->protocol |= PROT_FTPS;
-        conn->ssl[SECONDARYSOCKET].use = FALSE; /* clear-text data */
+        if(CURLE_OK == result) {
+          conn->protocol |= PROT_FTPS;
+          conn->ssl[SECONDARYSOCKET].use = FALSE; /* clear-text data */
+          result = ftp_state_user(conn);
+        }
       }
       else if(ftp->count3 < 1) {
         ftp->count3++;
         ftp->count1 += ftp->count2; /* get next attempt */
-        NBFTPSENDF(conn, "AUTH %s", ftpauth[ftp->count1]);
+        result = Curl_nbftpsendf(conn, "AUTH %s", ftpauth[ftp->count1]);
         /* remain in this same state */
       }
-      else {
+      else
         result = ftp_state_user(conn);
-        if(result)
-          return result;
-      }
+
+      if(result)
+        return result;
       break;
 
     case FTP_USER: