mirror of https://github.com/aria2/aria2
sftp: Make sftp works through HTTP proxy
parent
d0ad7033c3
commit
21c328fc11
|
@ -132,6 +132,17 @@ 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(),
|
||||
|
@ -144,6 +155,8 @@ std::unique_ptr<Command> FtpInitiateConnectionCommand::createNextCommandProxied
|
|||
options);
|
||||
}
|
||||
|
||||
assert(getRequest()->getProtocol() == "ftp");
|
||||
|
||||
if(proxyMethod != V_GET) {
|
||||
assert(0);
|
||||
return nullptr;
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "Segment.h"
|
||||
#include "SocketCore.h"
|
||||
#include "SocketRecvBuffer.h"
|
||||
#include "SftpNegotiationCommand.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
||||
|
@ -59,6 +60,13 @@ FtpTunnelResponseCommand::~FtpTunnelResponseCommand() {}
|
|||
|
||||
std::unique_ptr<Command> FtpTunnelResponseCommand::getNextCommand()
|
||||
{
|
||||
if (getRequest()->getProtocol() == "sftp") {
|
||||
return make_unique<SftpNegotiationCommand>
|
||||
(getCuid(), getRequest(), getFileEntry(),
|
||||
getRequestGroup(), getDownloadEngine(),
|
||||
getSocket());
|
||||
}
|
||||
|
||||
return make_unique<FtpNegotiationCommand>
|
||||
(getCuid(), getRequest(), getFileEntry(),
|
||||
getRequestGroup(), getDownloadEngine(),
|
||||
|
|
Loading…
Reference in New Issue