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

Unified Diff: net/ftp/ftp_network_transaction.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/ftp/ftp_network_session.cc ('k') | net/ftp/ftp_network_transaction.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/ftp/ftp_network_transaction.h
diff --git a/net/ftp/ftp_network_transaction.h b/net/ftp/ftp_network_transaction.h
deleted file mode 100644
index 6bf01bdf62952016bcc3da2b1789950b08838632..0000000000000000000000000000000000000000
--- a/net/ftp/ftp_network_transaction.h
+++ /dev/null
@@ -1,264 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef NET_FTP_FTP_NETWORK_TRANSACTION_H_
-#define NET_FTP_FTP_NETWORK_TRANSACTION_H_
-
-#include <string>
-#include <utility>
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "net/base/address_list.h"
-#include "net/base/auth.h"
-#include "net/base/net_log.h"
-#include "net/dns/host_resolver.h"
-#include "net/dns/single_request_host_resolver.h"
-#include "net/ftp/ftp_ctrl_response_buffer.h"
-#include "net/ftp/ftp_response_info.h"
-#include "net/ftp/ftp_transaction.h"
-
-namespace net {
-
-class ClientSocketFactory;
-class FtpNetworkSession;
-class StreamSocket;
-
-class NET_EXPORT_PRIVATE FtpNetworkTransaction : public FtpTransaction {
- public:
- FtpNetworkTransaction(FtpNetworkSession* session,
- ClientSocketFactory* socket_factory);
- ~FtpNetworkTransaction() override;
-
- int Stop(int error);
-
- // FtpTransaction methods:
- int Start(const FtpRequestInfo* request_info,
- const CompletionCallback& callback,
- const BoundNetLog& net_log) override;
- int RestartWithAuth(const AuthCredentials& credentials,
- const CompletionCallback& callback) override;
- int Read(IOBuffer* buf,
- int buf_len,
- const CompletionCallback& callback) override;
- const FtpResponseInfo* GetResponseInfo() const override;
- LoadState GetLoadState() const override;
- uint64 GetUploadProgress() const override;
-
- private:
- FRIEND_TEST_ALL_PREFIXES(FtpNetworkTransactionTest,
- DownloadTransactionEvilPasvUnsafeHost);
-
- enum Command {
- COMMAND_NONE,
- COMMAND_USER,
- COMMAND_PASS,
- COMMAND_SYST,
- COMMAND_TYPE,
- COMMAND_EPSV,
- COMMAND_PASV,
- COMMAND_PWD,
- COMMAND_SIZE,
- COMMAND_RETR,
- COMMAND_CWD,
- COMMAND_LIST,
- COMMAND_QUIT,
- };
-
- // 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,
- };
-
- // Data representation type, see RFC 959 section 3.1.1. Data Types.
- // We only support the two most popular data types.
- enum DataType {
- DATA_TYPE_ASCII,
- DATA_TYPE_IMAGE,
- };
-
- // In FTP we need to issue different commands depending on whether a resource
- // is a file or directory. If we don't know that, we're going to autodetect
- // it.
- enum ResourceType {
- RESOURCE_TYPE_UNKNOWN,
- RESOURCE_TYPE_FILE,
- RESOURCE_TYPE_DIRECTORY,
- };
-
- enum State {
- // Control connection states:
- STATE_CTRL_RESOLVE_HOST,
- STATE_CTRL_RESOLVE_HOST_COMPLETE,
- STATE_CTRL_CONNECT,
- STATE_CTRL_CONNECT_COMPLETE,
- STATE_CTRL_READ,
- STATE_CTRL_READ_COMPLETE,
- STATE_CTRL_WRITE,
- STATE_CTRL_WRITE_COMPLETE,
- STATE_CTRL_WRITE_USER,
- STATE_CTRL_WRITE_PASS,
- STATE_CTRL_WRITE_SYST,
- STATE_CTRL_WRITE_TYPE,
- STATE_CTRL_WRITE_EPSV,
- STATE_CTRL_WRITE_PASV,
- STATE_CTRL_WRITE_PWD,
- STATE_CTRL_WRITE_RETR,
- STATE_CTRL_WRITE_SIZE,
- STATE_CTRL_WRITE_CWD,
- STATE_CTRL_WRITE_LIST,
- STATE_CTRL_WRITE_QUIT,
- // Data connection states:
- STATE_DATA_CONNECT,
- STATE_DATA_CONNECT_COMPLETE,
- STATE_DATA_READ,
- STATE_DATA_READ_COMPLETE,
- STATE_NONE
- };
-
- // Resets the members of the transaction so it can be restarted.
- void ResetStateForRestart();
-
- // Establishes the data connection and switches to |state_after_connect|.
- // |state_after_connect| should only be RETR or LIST.
- void EstablishDataConnection(State state_after_connect);
-
- void DoCallback(int result);
- void OnIOComplete(int result);
-
- // Executes correct ProcessResponse + command_name function based on last
- // issued command. Returns error code.
- int ProcessCtrlResponse();
-
- int SendFtpCommand(const std::string& command,
- const std::string& command_for_log,
- Command cmd);
-
- // 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;
-
- // See if the request URL contains a typecode and make us respect it.
- void DetectTypecode();
-
- // Runs the state transition loop.
- int DoLoop(int result);
-
- // Each of these methods corresponds to a State value. Those with an input
- // argument receive the result from the previous state. If a method returns
- // ERR_IO_PENDING, then the result from OnIOComplete will be passed to the
- // next state method as the result arg.
- int DoCtrlResolveHost();
- int DoCtrlResolveHostComplete(int result);
- int DoCtrlConnect();
- int DoCtrlConnectComplete(int result);
- int DoCtrlRead();
- int DoCtrlReadComplete(int result);
- int DoCtrlWrite();
- int DoCtrlWriteComplete(int result);
- int DoCtrlWriteUSER();
- int ProcessResponseUSER(const FtpCtrlResponse& response);
- int DoCtrlWritePASS();
- int ProcessResponsePASS(const FtpCtrlResponse& response);
- int DoCtrlWriteSYST();
- int ProcessResponseSYST(const FtpCtrlResponse& response);
- int DoCtrlWritePWD();
- int ProcessResponsePWD(const FtpCtrlResponse& response);
- int DoCtrlWriteTYPE();
- int ProcessResponseTYPE(const FtpCtrlResponse& response);
- int DoCtrlWriteEPSV();
- int ProcessResponseEPSV(const FtpCtrlResponse& response);
- int DoCtrlWritePASV();
- int ProcessResponsePASV(const FtpCtrlResponse& response);
- int DoCtrlWriteRETR();
- int ProcessResponseRETR(const FtpCtrlResponse& response);
- int DoCtrlWriteSIZE();
- int ProcessResponseSIZE(const FtpCtrlResponse& response);
- int DoCtrlWriteCWD();
- int ProcessResponseCWD(const FtpCtrlResponse& response);
- int ProcessResponseCWDNotADirectory();
- int DoCtrlWriteLIST();
- int ProcessResponseLIST(const FtpCtrlResponse& response);
- int DoCtrlWriteQUIT();
- int ProcessResponseQUIT(const FtpCtrlResponse& response);
-
- int DoDataConnect();
- int DoDataConnectComplete(int result);
- int DoDataRead();
- int DoDataReadComplete(int result);
-
- void RecordDataConnectionError(int result);
-
- Command command_sent_;
-
- CompletionCallback io_callback_;
- CompletionCallback user_callback_;
-
- scoped_refptr<FtpNetworkSession> session_;
-
- BoundNetLog net_log_;
- const FtpRequestInfo* request_;
- FtpResponseInfo response_;
-
- // Cancels the outstanding request on destruction.
- SingleRequestHostResolver resolver_;
- AddressList addresses_;
-
- // User buffer passed to the Read method for control socket.
- scoped_refptr<IOBuffer> read_ctrl_buf_;
-
- scoped_ptr<FtpCtrlResponseBuffer> ctrl_response_buffer_;
-
- scoped_refptr<IOBuffer> read_data_buf_;
- int read_data_buf_len_;
-
- // Buffer holding the command line to be written to the control socket.
- scoped_refptr<IOBufferWithSize> write_command_buf_;
-
- // Buffer passed to the Write method of control socket. It actually writes
- // to the write_command_buf_ at correct offset.
- scoped_refptr<DrainableIOBuffer> write_buf_;
-
- int last_error_;
-
- SystemType system_type_;
-
- // Data type to be used for the TYPE command.
- DataType data_type_;
-
- // Detected resource type (file or directory).
- ResourceType resource_type_;
-
- // Initially we favour EPSV over PASV for transfers but should any
- // EPSV fail, we fall back to PASV for the duration of connection.
- bool use_epsv_;
-
- AuthCredentials credentials_;
-
- // Current directory on the remote server, as returned by last PWD command,
- // with any trailing slash removed.
- std::string current_remote_directory_;
-
- uint16 data_connection_port_;
-
- ClientSocketFactory* socket_factory_;
-
- scoped_ptr<StreamSocket> ctrl_socket_;
- scoped_ptr<StreamSocket> data_socket_;
-
- State next_state_;
-
- // State to switch to after data connection is complete.
- State state_after_data_connect_complete_;
-};
-
-} // namespace net
-
-#endif // NET_FTP_FTP_NETWORK_TRANSACTION_H_
« no previous file with comments | « net/ftp/ftp_network_session.cc ('k') | net/ftp/ftp_network_transaction.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698