diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2015-05-12 00:32:08 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2015-05-12 00:32:30 +0900 |
| commit | 21c328fc113d28f3bbb1b1d74b53e4e2a36c4e9d (patch) | |
| tree | 3b3f92d2031d452e3b24e430112a18eab3ac833a /src/FtpInitiateConnectionCommand.cc | |
| parent | d0ad7033c3e11549529b44990ef022a655877601 (diff) | |
sftp: Make sftp works through HTTP proxy
Diffstat (limited to 'src/FtpInitiateConnectionCommand.cc')
| -rw-r--r-- | src/FtpInitiateConnectionCommand.cc | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/FtpInitiateConnectionCommand.cc b/src/FtpInitiateConnectionCommand.cc index 3950fed0..78c0ca0c 100644 --- a/src/FtpInitiateConnectionCommand.cc +++ b/src/FtpInitiateConnectionCommand.cc @@ -132,18 +132,31 @@ std::unique_ptr<Command> FtpInitiateConnectionCommand::createNextCommandProxied setConnectedAddrInfo(getRequest(), hostname, pooledSocket); if(proxyMethod == V_TUNNEL) { + if (getRequest()->getProtocol() == "sftp") { + return make_unique<SftpNegotiationCommand> + (getCuid(), + getRequest(), + getFileEntry(), + getRequestGroup(), + getDownloadEngine(), + pooledSocket, + SftpNegotiationCommand::SEQ_SFTP_OPEN); + } + // options contains "baseWorkingDir" return make_unique<FtpNegotiationCommand> (getCuid(), - getRequest(), - getFileEntry(), - getRequestGroup(), - getDownloadEngine(), - pooledSocket, - FtpNegotiationCommand::SEQ_SEND_CWD_PREP, - options); + getRequest(), + getFileEntry(), + getRequestGroup(), + getDownloadEngine(), + pooledSocket, + FtpNegotiationCommand::SEQ_SEND_CWD_PREP, + options); } + assert(getRequest()->getProtocol() == "ftp"); + if(proxyMethod != V_GET) { assert(0); return nullptr; |
