From 2758fba10c79a76e07f7cfb894f5cfcbaff85ff7 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 12 May 2015 00:52:50 +0900 Subject: [PATCH] sftp: Add SFTP and libssh2 to feature summary, and add tests --- src/FeatureConfig.cc | 17 ++++++++++++++++- src/FeatureConfig.h | 1 + test/FeatureConfigTest.cc | 11 +++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/FeatureConfig.cc b/src/FeatureConfig.cc index aa8cd8f2..1b5b183a 100644 --- a/src/FeatureConfig.cc +++ b/src/FeatureConfig.cc @@ -67,7 +67,9 @@ #ifdef HAVE_SYS_UTSNAME_H # include #endif // HAVE_SYS_UTSNAME_H - +#ifdef HAVE_LIBSSH2 +# include +#endif // HAVE_LIBSSH2 #include "util.h" namespace aria2 { @@ -168,6 +170,14 @@ const char* strSupportedFeature(int feature) #endif // !ENABLE_XML_RPC break; + case(FEATURE_SFTP): +#ifdef HAVE_LIBSSH2 + return "SFTP"; +#else // !HAVE_LIBSSH2 + return nullptr; +#endif // !HAVE_LIBSSH2 + break; + default: return nullptr; } @@ -223,6 +233,11 @@ std::string usedLibs() #ifdef HAVE_LIBCARES res += "c-ares/" ARES_VERSION_STR " "; #endif // HAVE_LIBCARES + +#ifdef HAVE_LIBSSH2 + res += "libssh2/" LIBSSH2_VERSION " "; +#endif // HAVE_LIBSSH2 + if(!res.empty()) { res.erase(res.length()-1); } diff --git a/src/FeatureConfig.h b/src/FeatureConfig.h index 9c0a2798..214dca25 100644 --- a/src/FeatureConfig.h +++ b/src/FeatureConfig.h @@ -53,6 +53,7 @@ enum FeatureType { FEATURE_MESSAGE_DIGEST, FEATURE_METALINK, FEATURE_XML_RPC, + FEATURE_SFTP, MAX_FEATURE }; diff --git a/test/FeatureConfigTest.cc b/test/FeatureConfigTest.cc index 3b8b8460..65de79f9 100644 --- a/test/FeatureConfigTest.cc +++ b/test/FeatureConfigTest.cc @@ -30,6 +30,7 @@ void FeatureConfigTest::testGetDefaultPort() { CPPUNIT_ASSERT_EQUAL((uint16_t)80, getDefaultPort("http")); CPPUNIT_ASSERT_EQUAL((uint16_t)443, getDefaultPort("https")); CPPUNIT_ASSERT_EQUAL((uint16_t)21, getDefaultPort("ftp")); + CPPUNIT_ASSERT_EQUAL((uint16_t)22, getDefaultPort("sftp")); } void FeatureConfigTest::testStrSupportedFeature() { @@ -40,6 +41,13 @@ void FeatureConfigTest::testStrSupportedFeature() { CPPUNIT_ASSERT(!https); #endif // ENABLE_SSL CPPUNIT_ASSERT(!strSupportedFeature(MAX_FEATURE)); + + auto sftp = strSupportedFeature(FEATURE_SFTP); +#ifdef HAVE_LIBSSH2 + CPPUNIT_ASSERT(sftp); +#else // !HAVE_LIBSSH2 + CPPUNIT_ASSERT(!sftp); +#endif // !HAVE_LIBSSH2 } void FeatureConfigTest::testFeatureSummary() { @@ -75,6 +83,9 @@ void FeatureConfigTest::testFeatureSummary() { "XML-RPC", #endif // ENABLE_XML_RPC +#ifdef HAVE_LIBSSH2 + "SFTP", +#endif // HAVE_LIBSSH2 }; std::string featuresString = strjoin(std::begin(features),