diff --git a/client/3rd/qtkeychain b/client/3rd/qtkeychain index f197cdb9..c6f0b663 160000 --- a/client/3rd/qtkeychain +++ b/client/3rd/qtkeychain @@ -1 +1 @@ -Subproject commit f197cdb935b0cfd9881fdc6860874cb8379d1238 +Subproject commit c6f0b66318f8da6917fb4681103f7303b1836194 diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 15aba327..e913c370 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -10,6 +10,12 @@ if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.17) cmake_policy(SET CMP0099 OLD) endif() +if(ANDROID) + # For a some reason cmake do not applying GNU_SOURCE/BSD_SOURCE flags on Android platform. + # We have to do this manually for building of libssh. + add_definitions(-D_BSD_SOURCE) +endif() + set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) diff --git a/client/cmake/3rdparty.cmake b/client/cmake/3rdparty.cmake index 8d4cf20f..6549e6e8 100644 --- a/client/cmake/3rdparty.cmake +++ b/client/cmake/3rdparty.cmake @@ -13,7 +13,7 @@ set(LIBS ${LIBS} SortFilterProxyModel) include(${CLIENT_ROOT_DIR}/3rd/qrcodegen/qrcodegen.cmake) include(${CLIENT_ROOT_DIR}/3rd/QSimpleCrypto/QSimpleCrypto.cmake) -set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) +set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE) add_subdirectory(${CLIENT_ROOT_DIR}/3rd/zlib) if(WIN32) set(ZLIB_LIBRARY $,zlibd,zlib>) @@ -47,6 +47,15 @@ if(NOT LINUX) set(OPENSSL_SSL_LIBRARY "${OPENSSL_LIBRARIES_DIR}/libssl.a") set(OPENSSL_LIB_SSL_PATH "${OPENSSL_PATH}/lib/ios/iphone/libssl.a") set(OPENSSL_LIB_CRYPTO_PATH "${OPENSSL_PATH}/lib/ios/iphone/libcrypto.a") + elseif(ANDROID) + set(abi ${CMAKE_ANDROID_ARCH_ABI}) + + set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_LIBRARIES_DIR}/android/${abi}/libcrypto.a") + set(OPENSSL_SSL_LIBRARY "${OPENSSL_LIBRARIES_DIR}/android/${abi}/libssl.a") + set(OPENSSL_LIB_SSL_PATH "${OPENSSL_PATH}/lib/android/${abi}/libssl.a") + set(OPENSSL_LIB_CRYPTO_PATH "${OPENSSL_PATH}/lib/android/${abi}/libcrypto.a") + + set(OPENSSL_LIBRARIES_DIR "${OPENSSL_LIBRARIES_DIR}/android/${abi}") endif() file(COPY ${OPENSSL_LIB_SSL_PATH} ${OPENSSL_LIB_CRYPTO_PATH} @@ -62,6 +71,7 @@ set(LIBS ${LIBS} OpenSSL::SSL ) +set(WITH_GSSAPI OFF CACHE BOOL "" FORCE) set(WITH_EXAMPLES OFF CACHE BOOL "" FORCE) add_subdirectory(${CLIENT_ROOT_DIR}/3rd/libssh) add_compile_definitions(_WINSOCKAPI_) diff --git a/client/core/sshclient.cpp b/client/core/sshclient.cpp index 8c5a9ebc..bdb396c3 100644 --- a/client/core/sshclient.cpp +++ b/client/core/sshclient.cpp @@ -11,14 +11,10 @@ namespace libssh { Client::Client(QObject *parent) : QObject(parent) - { - ssh_init(); - } + { } Client::~Client() - { - ssh_finalize(); - } + { } ErrorCode Client::connectToHost(const ServerCredentials &credentials) {