Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Side by Side Diff: net/ftp/ftp_network_transaction.cc

Issue 3040016: Net: Convert username and password to string16. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: address comments Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/ftp/ftp_network_transaction.h ('k') | net/ftp/ftp_network_transaction_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/ftp/ftp_network_transaction.h" 5 #include "net/ftp/ftp_network_transaction.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/histogram.h" 8 #include "base/histogram.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 205
206 int FtpNetworkTransaction::Start(const FtpRequestInfo* request_info, 206 int FtpNetworkTransaction::Start(const FtpRequestInfo* request_info,
207 CompletionCallback* callback, 207 CompletionCallback* callback,
208 const BoundNetLog& net_log) { 208 const BoundNetLog& net_log) {
209 net_log_ = net_log; 209 net_log_ = net_log;
210 request_ = request_info; 210 request_ = request_info;
211 211
212 if (request_->url.has_username()) { 212 if (request_->url.has_username()) {
213 GetIdentityFromURL(request_->url, &username_, &password_); 213 GetIdentityFromURL(request_->url, &username_, &password_);
214 } else { 214 } else {
215 username_ = L"anonymous"; 215 username_ = ASCIIToUTF16("anonymous");
216 password_ = L"chrome@example.com"; 216 password_ = ASCIIToUTF16("chrome@example.com");
217 } 217 }
218 218
219 DetectTypecode(); 219 DetectTypecode();
220 220
221 next_state_ = STATE_CTRL_RESOLVE_HOST; 221 next_state_ = STATE_CTRL_RESOLVE_HOST;
222 int rv = DoLoop(OK); 222 int rv = DoLoop(OK);
223 if (rv == ERR_IO_PENDING) 223 if (rv == ERR_IO_PENDING)
224 user_callback_ = callback; 224 user_callback_ = callback;
225 return rv; 225 return rv;
226 } 226 }
227 227
228 int FtpNetworkTransaction::Stop(int error) { 228 int FtpNetworkTransaction::Stop(int error) {
229 if (command_sent_ == COMMAND_QUIT) 229 if (command_sent_ == COMMAND_QUIT)
230 return error; 230 return error;
231 231
232 next_state_ = STATE_CTRL_WRITE_QUIT; 232 next_state_ = STATE_CTRL_WRITE_QUIT;
233 last_error_ = error; 233 last_error_ = error;
234 return OK; 234 return OK;
235 } 235 }
236 236
237 int FtpNetworkTransaction::RestartWithAuth(const std::wstring& username, 237 int FtpNetworkTransaction::RestartWithAuth(const string16& username,
238 const std::wstring& password, 238 const string16& password,
239 CompletionCallback* callback) { 239 CompletionCallback* callback) {
240 ResetStateForRestart(); 240 ResetStateForRestart();
241 241
242 username_ = username; 242 username_ = username;
243 password_ = password; 243 password_ = password;
244 244
245 next_state_ = STATE_CTRL_RESOLVE_HOST; 245 next_state_ = STATE_CTRL_RESOLVE_HOST;
246 int rv = DoLoop(OK); 246 int rv = DoLoop(OK);
247 if (rv == ERR_IO_PENDING) 247 if (rv == ERR_IO_PENDING)
248 user_callback_ = callback; 248 user_callback_ = callback;
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 read_ctrl_buf_, 646 read_ctrl_buf_,
647 kCtrlBufLen, 647 kCtrlBufLen,
648 &io_callback_); 648 &io_callback_);
649 } 649 }
650 650
651 int FtpNetworkTransaction::DoCtrlReadComplete(int result) { 651 int FtpNetworkTransaction::DoCtrlReadComplete(int result) {
652 if (result == 0) { 652 if (result == 0) {
653 // Some servers (for example Pure-FTPd) apparently close the control 653 // Some servers (for example Pure-FTPd) apparently close the control
654 // connection when anonymous login is not permitted. For more details 654 // connection when anonymous login is not permitted. For more details
655 // see http://crbug.com/25023. 655 // see http://crbug.com/25023.
656 if (command_sent_ == COMMAND_USER && username_ == L"anonymous") 656 if (command_sent_ == COMMAND_USER && username_ == ASCIIToUTF16("anonymous"))
657 response_.needs_auth = true; 657 response_.needs_auth = true;
658 return Stop(ERR_EMPTY_RESPONSE); 658 return Stop(ERR_EMPTY_RESPONSE);
659 } 659 }
660 if (result < 0) 660 if (result < 0)
661 return Stop(result); 661 return Stop(result);
662 662
663 ctrl_response_buffer_->ConsumeData(read_ctrl_buf_->data(), result); 663 ctrl_response_buffer_->ConsumeData(read_ctrl_buf_->data(), result);
664 664
665 if (!ctrl_response_buffer_->ResponseAvailable()) { 665 if (!ctrl_response_buffer_->ResponseAvailable()) {
666 // Read more data from the control socket. 666 // Read more data from the control socket.
(...skipping 26 matching lines...) Expand all
693 } else { 693 } else {
694 next_state_ = STATE_CTRL_WRITE; 694 next_state_ = STATE_CTRL_WRITE;
695 } 695 }
696 return OK; 696 return OK;
697 } 697 }
698 698
699 // FTP Commands and responses 699 // FTP Commands and responses
700 700
701 // USER Command. 701 // USER Command.
702 int FtpNetworkTransaction::DoCtrlWriteUSER() { 702 int FtpNetworkTransaction::DoCtrlWriteUSER() {
703 std::string command = "USER " + WideToUTF8(username_); 703 std::string command = "USER " + UTF16ToUTF8(username_);
704 704
705 if (!IsValidFTPCommandString(command)) 705 if (!IsValidFTPCommandString(command))
706 return Stop(ERR_MALFORMED_IDENTITY); 706 return Stop(ERR_MALFORMED_IDENTITY);
707 707
708 next_state_ = STATE_CTRL_READ; 708 next_state_ = STATE_CTRL_READ;
709 return SendFtpCommand(command, COMMAND_USER); 709 return SendFtpCommand(command, COMMAND_USER);
710 } 710 }
711 711
712 int FtpNetworkTransaction::ProcessResponseUSER( 712 int FtpNetworkTransaction::ProcessResponseUSER(
713 const FtpCtrlResponse& response) { 713 const FtpCtrlResponse& response) {
(...skipping 11 matching lines...) Expand all
725 return Stop(GetNetErrorCodeForFtpResponseCode(response.status_code)); 725 return Stop(GetNetErrorCodeForFtpResponseCode(response.status_code));
726 default: 726 default:
727 NOTREACHED(); 727 NOTREACHED();
728 return Stop(ERR_UNEXPECTED); 728 return Stop(ERR_UNEXPECTED);
729 } 729 }
730 return OK; 730 return OK;
731 } 731 }
732 732
733 // PASS command. 733 // PASS command.
734 int FtpNetworkTransaction::DoCtrlWritePASS() { 734 int FtpNetworkTransaction::DoCtrlWritePASS() {
735 std::string command = "PASS " + WideToUTF8(password_); 735 std::string command = "PASS " + UTF16ToUTF8(password_);
736 736
737 if (!IsValidFTPCommandString(command)) 737 if (!IsValidFTPCommandString(command))
738 return Stop(ERR_MALFORMED_IDENTITY); 738 return Stop(ERR_MALFORMED_IDENTITY);
739 739
740 next_state_ = STATE_CTRL_READ; 740 next_state_ = STATE_CTRL_READ;
741 return SendFtpCommand(command, COMMAND_PASS); 741 return SendFtpCommand(command, COMMAND_PASS);
742 } 742 }
743 743
744 int FtpNetworkTransaction::ProcessResponsePASS( 744 int FtpNetworkTransaction::ProcessResponsePASS(
745 const FtpCtrlResponse& response) { 745 const FtpCtrlResponse& response) {
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
1318 if (!had_error_type[type]) { 1318 if (!had_error_type[type]) {
1319 had_error_type[type] = true; 1319 had_error_type[type] = true;
1320 UMA_HISTOGRAM_ENUMERATION("Net.FtpDataConnectionErrorHappened", 1320 UMA_HISTOGRAM_ENUMERATION("Net.FtpDataConnectionErrorHappened",
1321 type, NUM_OF_NET_ERROR_TYPES); 1321 type, NUM_OF_NET_ERROR_TYPES);
1322 } 1322 }
1323 UMA_HISTOGRAM_ENUMERATION("Net.FtpDataConnectionErrorCount", 1323 UMA_HISTOGRAM_ENUMERATION("Net.FtpDataConnectionErrorCount",
1324 type, NUM_OF_NET_ERROR_TYPES); 1324 type, NUM_OF_NET_ERROR_TYPES);
1325 } 1325 }
1326 1326
1327 } // namespace net 1327 } // namespace net
OLDNEW
« no previous file with comments | « net/ftp/ftp_network_transaction.h ('k') | net/ftp/ftp_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698