فهرست منبع

sftp: Guard sftp code with HAVE_LIBSSH2

Tatsuhiro Tsujikawa 10 سال پیش
والد
کامیت
46595e77d7
2فایلهای تغییر یافته به همراه13 افزوده شده و 1 حذف شده
  1. 8 0
      src/FtpInitiateConnectionCommand.cc
  2. 5 1
      src/FtpTunnelResponseCommand.cc

+ 8 - 0
src/FtpInitiateConnectionCommand.cc

@@ -132,6 +132,7 @@ std::unique_ptr<Command> FtpInitiateConnectionCommand::createNextCommandProxied
 
   setConnectedAddrInfo(getRequest(), hostname, pooledSocket);
   if(proxyMethod == V_TUNNEL) {
+#ifdef HAVE_LIBSSH2
     if (getRequest()->getProtocol() == "sftp") {
       return make_unique<SftpNegotiationCommand>
         (getCuid(),
@@ -142,6 +143,7 @@ std::unique_ptr<Command> FtpInitiateConnectionCommand::createNextCommandProxied
          pooledSocket,
          SftpNegotiationCommand::SEQ_SFTP_OPEN);
     }
+#endif // HAVE_LIBSSH2
 
     // options contains "baseWorkingDir"
     return make_unique<FtpNegotiationCommand>
@@ -206,7 +208,11 @@ std::unique_ptr<Command> FtpInitiateConnectionCommand::createNextCommandPlain
                                          getSocket());
 
     if(getRequest()->getProtocol() == "sftp") {
+#ifdef HAVE_LIBSSH2
       c->setControlChain(std::make_shared<SftpNegotiationConnectChain>());
+#else // !HAVE_LIBSSH2
+      assert(0);
+#endif // !HAVE_LIBSSH2
     } else {
       c->setControlChain(std::make_shared<FtpNegotiationConnectChain>());
     }
@@ -216,6 +222,7 @@ std::unique_ptr<Command> FtpInitiateConnectionCommand::createNextCommandPlain
 
   setConnectedAddrInfo(getRequest(), hostname, pooledSocket);
 
+#ifdef HAVE_LIBSSH2
   if (getRequest()->getProtocol() == "sftp") {
     return make_unique<SftpNegotiationCommand>
       (getCuid(),
@@ -226,6 +233,7 @@ std::unique_ptr<Command> FtpInitiateConnectionCommand::createNextCommandPlain
        pooledSocket,
        SftpNegotiationCommand::SEQ_SFTP_OPEN);
   }
+#endif // HAVE_LIBSSH2
 
   // options contains "baseWorkingDir"
   return make_unique<FtpNegotiationCommand>

+ 5 - 1
src/FtpTunnelResponseCommand.cc

@@ -40,7 +40,9 @@
 #include "Segment.h"
 #include "SocketCore.h"
 #include "SocketRecvBuffer.h"
-#include "SftpNegotiationCommand.h"
+#ifdef HAVE_LIBSSH2
+# include "SftpNegotiationCommand.h"
+#endif // HAVE_LIBSSH2
 
 namespace aria2 {
 
@@ -60,12 +62,14 @@ FtpTunnelResponseCommand::~FtpTunnelResponseCommand() {}
 
 std::unique_ptr<Command> FtpTunnelResponseCommand::getNextCommand()
 {
+#ifdef HAVE_LIBSSH2
   if (getRequest()->getProtocol() == "sftp") {
     return make_unique<SftpNegotiationCommand>
       (getCuid(), getRequest(), getFileEntry(),
        getRequestGroup(), getDownloadEngine(),
        getSocket());
   }
+#endif // HAVE_LIBSSH2
 
   return make_unique<FtpNegotiationCommand>
     (getCuid(), getRequest(), getFileEntry(),