Index: net/ftp/ftp_network_transaction.cc |
diff --git a/net/ftp/ftp_network_transaction.cc b/net/ftp/ftp_network_transaction.cc |
index d4820b1b80f640a9fd6419193fcc34f230ce8d50..03a12916a38e6b58363dc46befb22298e996ac82 100644 |
--- a/net/ftp/ftp_network_transaction.cc |
+++ b/net/ftp/ftp_network_transaction.cc |
@@ -923,8 +923,10 @@ int FtpNetworkTransaction::ProcessResponseRETR( |
retr_failed_ = true; |
// It's possible that RETR failed because the path is a directory. |
- // Try CWD next, to see if that's the case. |
- next_state_ = STATE_CTRL_WRITE_CWD; |
+ // We're going to try CWD next, but first send a PASV one more time, |
+ // because some FTP servers, including FileZilla, require that. |
+ // See http://crbug.com/25316. |
+ next_state_ = STATE_CTRL_WRITE_PASV; |
wtc
2009/10/22 22:15:29
It's not clear how we arrange to try CWD after the
|
break; |
default: |
NOTREACHED(); |