diff options
author | Daniel Stenberg <daniel@haxx.se> | 2005-01-25 22:13:12 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2005-01-25 22:13:12 +0000 |
commit | 177dbc7be07125582ddb7416dba7140b88ab9f62 (patch) | |
tree | 427fa08bfdea3642ac8ecd19776b43b888b2bc24 /lib/ftp.c | |
parent | f2e71edcbd479345678bb03e76fad17157fc318e (diff) |
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.
Diffstat (limited to 'lib/ftp.c')
-rw-r--r-- | lib/ftp.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -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; |