diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-07-02 15:18:13 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-07-02 15:18:13 +0000 |
| commit | 01fdb2aaeb4dcb351931c14ca63d9347f0adc529 (patch) | |
| tree | 94f6e4a327c77b358316d5790224d9cccee8e3c1 /src/FtpNegotiationCommand.cc | |
| parent | 8796993c71c8a326c2f261c01db5066cfc3b2848 (diff) | |
2009-07-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Try all available addresses returned by DNS until it gets
connected in HTTP(S)/FTP download
* src/AbstractCommand.cc
* src/AbstractCommand.h
* src/AbstractProxyRequestCommand.cc
* src/AbstractProxyRequestCommand.h
* src/DNSCache.h
* src/DownloadEngine.cc
* src/DownloadEngine.h
* src/FtpInitiateConnectionCommand.cc
* src/FtpInitiateConnectionCommand.h
* src/FtpNegotiationCommand.cc
* src/FtpNegotiationCommand.h
* src/HttpInitiateConnectionCommand.cc
* src/HttpInitiateConnectionCommand.h
* src/HttpRequestCommand.cc
* src/HttpRequestCommand.h
* src/InitiateConnectionCommand.cc
* src/InitiateConnectionCommand.h
* test/DNSCacheTest.cc
* test/Makefile.am
* test/SimpleDNSCacheTest.cc
Diffstat (limited to 'src/FtpNegotiationCommand.cc')
| -rw-r--r-- | src/FtpNegotiationCommand.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/FtpNegotiationCommand.cc b/src/FtpNegotiationCommand.cc index 95cda465..a4312c70 100644 --- a/src/FtpNegotiationCommand.cc +++ b/src/FtpNegotiationCommand.cc @@ -118,6 +118,8 @@ bool FtpNegotiationCommand::executeInternal() { sequence = SEQ_PREPARE_SERVER_SOCKET; } return false; + } else if(sequence == SEQ_EXIT) { + return true; } else { e->commands.push_back(this); return false; @@ -125,7 +127,11 @@ bool FtpNegotiationCommand::executeInternal() { } bool FtpNegotiationCommand::recvGreeting() { - checkIfConnectionEstablished(socket); + if(!checkIfConnectionEstablished + (socket, _connectedHostname, _connectedAddr, _connectedPort)) { + sequence = SEQ_EXIT; + return false; + } setTimeout(_requestGroup->getTimeout()); //socket->setBlockingMode(); disableWriteCheckSocket(); |
