| Index: net/ftp/ftp_network_transaction.cc
|
| diff --git a/net/ftp/ftp_network_transaction.cc b/net/ftp/ftp_network_transaction.cc
|
| index d448ad370676b8a5e776c9d12a89753847a0bd43..24ab0f97687373866d500a761f6478550a26de8f 100644
|
| --- a/net/ftp/ftp_network_transaction.cc
|
| +++ b/net/ftp/ftp_network_transaction.cc
|
| @@ -248,10 +248,13 @@ int FtpNetworkTransaction::Start(const FtpRequestInfo* request_info,
|
| request_ = request_info;
|
|
|
| if (request_->url.has_username()) {
|
| - GetIdentityFromURL(request_->url, &username_, &password_);
|
| + string16 username;
|
| + string16 password;
|
| + GetIdentityFromURL(request_->url, &username, &password);
|
| + credentials_.Set(username, password);
|
| } else {
|
| - username_ = ASCIIToUTF16("anonymous");
|
| - password_ = ASCIIToUTF16("chrome@example.com");
|
| + credentials_.Set(ASCIIToUTF16("anonymous"),
|
| + ASCIIToUTF16("chrome@example.com"));
|
| }
|
|
|
| DetectTypecode();
|
| @@ -263,13 +266,11 @@ int FtpNetworkTransaction::Start(const FtpRequestInfo* request_info,
|
| return rv;
|
| }
|
|
|
| -int FtpNetworkTransaction::RestartWithAuth(const string16& username,
|
| - const string16& password,
|
| +int FtpNetworkTransaction::RestartWithAuth(const AuthCredentials& credentials,
|
| OldCompletionCallback* callback) {
|
| ResetStateForRestart();
|
|
|
| - username_ = username;
|
| - password_ = password;
|
| + credentials_ = credentials;
|
|
|
| next_state_ = STATE_CTRL_RESOLVE_HOST;
|
| int rv = DoLoop(OK);
|
| @@ -668,8 +669,10 @@ int FtpNetworkTransaction::DoCtrlReadComplete(int result) {
|
| // Some servers (for example Pure-FTPd) apparently close the control
|
| // connection when anonymous login is not permitted. For more details
|
| // see http://crbug.com/25023.
|
| - if (command_sent_ == COMMAND_USER && username_ == ASCIIToUTF16("anonymous"))
|
| + if (command_sent_ == COMMAND_USER &&
|
| + credentials_.username() == ASCIIToUTF16("anonymous")) {
|
| response_.needs_auth = true;
|
| + }
|
| return Stop(ERR_EMPTY_RESPONSE);
|
| }
|
| if (result < 0)
|
| @@ -715,7 +718,7 @@ int FtpNetworkTransaction::DoCtrlWriteComplete(int result) {
|
|
|
| // USER Command.
|
| int FtpNetworkTransaction::DoCtrlWriteUSER() {
|
| - std::string command = "USER " + UTF16ToUTF8(username_);
|
| + std::string command = "USER " + UTF16ToUTF8(credentials_.username());
|
|
|
| if (!IsValidFTPCommandString(command))
|
| return Stop(ERR_MALFORMED_IDENTITY);
|
| @@ -746,7 +749,7 @@ int FtpNetworkTransaction::ProcessResponseUSER(
|
|
|
| // PASS command.
|
| int FtpNetworkTransaction::DoCtrlWritePASS() {
|
| - std::string command = "PASS " + UTF16ToUTF8(password_);
|
| + std::string command = "PASS " + UTF16ToUTF8(credentials_.password());
|
|
|
| if (!IsValidFTPCommandString(command))
|
| return Stop(ERR_MALFORMED_IDENTITY);
|
|
|