Index: net/ftp/ftp_network_transaction.cc |
diff --git a/net/ftp/ftp_network_transaction.cc b/net/ftp/ftp_network_transaction.cc |
index ecbe6cd858138e3653f8fcc4f6b3b0cb2fd67c71..1b5bd92f61465ce67121b137bb3bbd04c0f64450 100644 |
--- a/net/ftp/ftp_network_transaction.cc |
+++ b/net/ftp/ftp_network_transaction.cc |
@@ -1149,7 +1149,13 @@ int FtpNetworkTransaction::ProcessResponseCWDNotADirectory() { |
// LIST command |
int FtpNetworkTransaction::DoCtrlWriteLIST() { |
- std::string command(system_type_ == SYSTEM_TYPE_VMS ? "LIST *.*;0" : "LIST"); |
+ // Use the -l option for mod_ftp configured in LISTIsNLST mode: the option |
+ // forces LIST output instead of NLST (which would be ambiguous for us |
+ // to parse). |
+ std::string command("LIST -l"); |
+ if (system_type_ == SYSTEM_TYPE_VMS) |
+ command = "LIST *.*;0"; |
+ |
next_state_ = STATE_CTRL_READ; |
return SendFtpCommand(command, command, COMMAND_LIST); |
} |