diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-24 17:01:57 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-24 17:01:57 +0000 |
| commit | 6bc233f414b74bf3acf4abf5d5655c236e78ae41 (patch) | |
| tree | 3458e27259263587e4219c0c0da2f7c270f96d83 /src/FtpInitiateConnectionCommand.cc | |
| parent | d717ffb1d00511958234d1eb4df1d60382297374 (diff) | |
2008-09-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Issue PWD command first and get working directory and use it as
a prefix
for CWD command.
* src/DownloadEngine.cc
* src/DownloadEngine.h
* src/FtpConnection.cc
* src/FtpConnection.h
* src/FtpFinishDownloadCommand.cc
* src/FtpInitiateConnectionCommand.cc
* src/FtpNegotiationCommand.cc
* src/FtpNegotiationCommand.h
* test/FtpConnectionTest.cc
Diffstat (limited to 'src/FtpInitiateConnectionCommand.cc')
| -rw-r--r-- | src/FtpInitiateConnectionCommand.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/FtpInitiateConnectionCommand.cc b/src/FtpInitiateConnectionCommand.cc index e1598efa..389689e3 100644 --- a/src/FtpInitiateConnectionCommand.cc +++ b/src/FtpInitiateConnectionCommand.cc @@ -47,6 +47,7 @@ #include "prefs.h" #include "HttpConnection.h" #include "Socket.h" +#include <map> namespace aria2 { @@ -81,17 +82,20 @@ Command* FtpInitiateConnectionCommand::createNextCommand throw DlAbortEx("ERROR"); } } else { + std::map<std::string, std::string> options; SharedHandle<SocketCore> pooledSocket = - e->popPooledSocket(resolvedAddresses, req->getPort()); + e->popPooledSocket(options, resolvedAddresses, req->getPort()); if(pooledSocket.isNull()) { - logger->info(MSG_CONNECTING_TO_SERVER, cuid, req->getHost().c_str(), req->getPort()); socket.reset(new SocketCore()); socket->establishConnection(resolvedAddresses.front(), req->getPort()); command = new FtpNegotiationCommand(cuid, req, _requestGroup, e, socket); } else { - command = new FtpNegotiationCommand(cuid, req, _requestGroup, e, pooledSocket, FtpNegotiationCommand::SEQ_SEND_CWD); + command = + new FtpNegotiationCommand(cuid, req, _requestGroup, e, pooledSocket, + FtpNegotiationCommand::SEQ_SEND_CWD, + options["baseWorkingDir"]); } } return command; |
