diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-04-01 23:51:33 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-04-01 23:51:33 +0900 |
| commit | 26972b85359a4ab1f00545c9082a6c1b7d5a2593 (patch) | |
| tree | 37c4d9c264e6281424137af235d0cef74b448bdb /src/FtpNegotiationCommand.cc | |
| parent | cf23e3e11dfc7abfd4b95c5ce200404113cbe8e8 (diff) | |
Rewrite backup connection handling
Now dedicated ConnectCommand handles connection establishment. It
checks whether connection is established or not. It also handles
backup connection. The next Command creation is abstracted using
ControlChain struct template.
Diffstat (limited to 'src/FtpNegotiationCommand.cc')
| -rw-r--r-- | src/FtpNegotiationCommand.cc | 52 |
1 files changed, 1 insertions, 51 deletions
diff --git a/src/FtpNegotiationCommand.cc b/src/FtpNegotiationCommand.cc index b21ff71f..9965781a 100644 --- a/src/FtpNegotiationCommand.cc +++ b/src/FtpNegotiationCommand.cc @@ -74,7 +74,6 @@ #include "CheckIntegrityEntry.h" #include "error_code.h" #include "SocketRecvBuffer.h" -#include "BackupIPv4ConnectCommand.h" #ifdef ENABLE_MESSAGE_DIGEST # include "ChecksumCheckIntegrityEntry.h" #endif // ENABLE_MESSAGE_DIGEST @@ -102,20 +101,9 @@ FtpNegotiationCommand::FtpNegotiationCommand if(seq == SEQ_RECV_GREETING) { setTimeout(getOption()->getAsInt(PREF_CONNECT_TIMEOUT)); } - disableReadCheckSocket(); - setWriteCheckSocket(getSocket()); } -FtpNegotiationCommand::~FtpNegotiationCommand() -{ - if(backupConnectionInfo_) { - backupConnectionInfo_->cancel = true; - } -} - -bool FtpNegotiationCommand::noCheck() { - return backupConnectionInfo_ && !backupConnectionInfo_->ipaddr.empty(); -} +FtpNegotiationCommand::~FtpNegotiationCommand() {} bool FtpNegotiationCommand::executeInternal() { while(processSequence(getSegments().front())); @@ -155,38 +143,6 @@ bool FtpNegotiationCommand::executeInternal() { } bool FtpNegotiationCommand::recvGreeting() { - if(backupConnectionInfo_ && !backupConnectionInfo_->ipaddr.empty()) { - A2_LOG_INFO(fmt("CUID#%"PRId64" - Use backup connection address %s", - getCuid(), backupConnectionInfo_->ipaddr.c_str())); - getDownloadEngine()->markBadIPAddress - (getRequest()->getConnectedHostname(), - getRequest()->getConnectedAddr(), - getRequest()->getConnectedPort()); - - getRequest()->setConnectedAddrInfo(getRequest()->getConnectedHostname(), - backupConnectionInfo_->ipaddr, - getRequest()->getConnectedPort()); - - FtpNegotiationCommand* c = - new FtpNegotiationCommand(getCuid(), getRequest(), getFileEntry(), - getRequestGroup(), getDownloadEngine(), - backupConnectionInfo_->socket); - c->setStatus(STATUS_ONESHOT_REALTIME); - getDownloadEngine()->setNoWait(true); - getDownloadEngine()->addCommand(c); - backupConnectionInfo_.reset(); - return true; - } - if(!checkIfConnectionEstablished - (getSocket(), getRequest()->getConnectedHostname(), - getRequest()->getConnectedAddr(), getRequest()->getConnectedPort())) { - sequence_ = SEQ_EXIT; - return false; - } - if(backupConnectionInfo_) { - backupConnectionInfo_->cancel = true; - backupConnectionInfo_.reset(); - } setTimeout(getRequestGroup()->getTimeout()); //socket->setBlockingMode(); disableWriteCheckSocket(); @@ -1009,10 +965,4 @@ void FtpNegotiationCommand::onDryRunFileFound() sequence_ = SEQ_HEAD_OK; } -void FtpNegotiationCommand::setBackupConnectInfo -(const SharedHandle<BackupConnectInfo>& info) -{ - backupConnectionInfo_ = info; -} - } // namespace aria2 |
