From 177dbc7be07125582ddb7416dba7140b88ab9f62 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 25 Jan 2005 22:13:12 +0000 Subject: Ian Ford asked about support for the FTP command ACCT, and I discovered it is present in RFC959... so now (lib)curl supports it as well. --ftp-account and CURLOPT_FTP_ACCOUNT set the account string. (The server may ask for an account string after PASS have been sent away. The client responds with "ACCT [account string]".) Added test case 228 and 229 to verify the functionality. Updated the test FTP server to support ACCT somewhat. --- lib/ftp.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/ftp.c') diff --git a/lib/ftp.c b/lib/ftp.c index 3f4b23fe7..caca95e95 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -621,6 +621,23 @@ CURLcode Curl_ftp_connect(struct connectdata *conn) infof(data, "We have successfully logged in\n"); } + else if(ftpcode == 332) { + /* 332 Please provide account info */ + if(data->set.ftp_account) { + FTPSENDF(conn, "ACCT %s", data->set.ftp_account); + result = Curl_GetFTPResponse(&nread, conn, &ftpcode); + if(!result && (ftpcode != 230)) { + failf(data, "ACCT rejected by server: %03d", ftpcode); + result = CURLE_FTP_WEIRD_PASS_REPLY; /* FIX */ + } + } + else { + failf(data, "ACCT requested by none available"); + result = CURLE_FTP_WEIRD_PASS_REPLY; + } + if(result) + return result; + } else { failf(data, "Odd return code after PASS"); return CURLE_FTP_WEIRD_PASS_REPLY; -- cgit v1.2.3