Index: net/ftp/ftp_network_transaction.h |
diff --git a/net/ftp/ftp_network_transaction.h b/net/ftp/ftp_network_transaction.h |
index 3366c71cd7735a6be2511e73c42a408d05d576de..e621a9bfbc41e8be768869b14b81a28c8f59048c 100644 |
--- a/net/ftp/ftp_network_transaction.h |
+++ b/net/ftp/ftp_network_transaction.h |
@@ -85,6 +85,15 @@ class FtpNetworkTransaction : public FtpTransaction { |
ERROR_CLASS_PERMANENT_ERROR, |
}; |
+ // Major categories of remote system types, as returned by SYST command. |
+ enum SystemType { |
+ SYSTEM_TYPE_UNKNOWN, |
+ SYSTEM_TYPE_UNIX, |
+ SYSTEM_TYPE_WINDOWS, |
+ SYSTEM_TYPE_OS2, |
+ SYSTEM_TYPE_VMS, |
+ }; |
+ |
// Resets the members of the transaction so it can be restarted. |
void ResetStateForRestart(); |
@@ -101,8 +110,9 @@ class FtpNetworkTransaction : public FtpTransaction { |
// code to be in range 100-599. |
static ErrorClass GetErrorClass(int response_code); |
- // Returns request path suitable to be included in an FTP command. |
- std::string GetRequestPathForFtpCommand() const; |
+ // Returns request path suitable to be included in an FTP command. If the path |
+ // will be used as a directory, |is_directory| should be true. |
+ std::string GetRequestPathForFtpCommand(bool is_directory) const; |
// Runs the state transition loop. |
int DoLoop(int result); |
@@ -190,11 +200,17 @@ class FtpNetworkTransaction : public FtpTransaction { |
int last_error_; |
+ SystemType system_type_; |
+ |
// We get username and password as wstrings in RestartWithAuth, so they are |
// also kept as wstrings here. |
std::wstring username_; |
std::wstring password_; |
+ // Current directory on the remote server, as returned by last PWD command, |
+ // with any trailing slash removed. |
+ std::string current_remote_directory_; |
+ |
bool retr_failed_; |
int data_connection_port_; |