diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-08-16 15:32:05 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-08-17 16:57:58 +0200 |
commit | ea28a6cb2f168ce0b4e01c0f05e3675687dbd497 (patch) | |
tree | 064695cfa7d49323e3a73d53f127f37c11f0b7dd | |
parent | 1a7634e484f1f1b46cada618ac3df04a9273571f (diff) |
ssh: add a generic Curl_ssh_version function for SSH backends
Closes #4235
-rw-r--r-- | lib/ssh.h | 8 | ||||
-rw-r--r-- | lib/version.c | 32 | ||||
-rw-r--r-- | lib/vssh/libssh.c | 5 | ||||
-rw-r--r-- | lib/vssh/libssh2.c | 4 |
4 files changed, 23 insertions, 26 deletions
@@ -239,12 +239,16 @@ extern const struct Curl_handler Curl_handler_sftp; extern const struct Curl_handler Curl_handler_scp; extern const struct Curl_handler Curl_handler_sftp; +#endif /* USE_LIBSSH2 */ +#ifdef USE_SSH +/* generic SSH backend functions */ CURLcode Curl_ssh_init(void); void Curl_ssh_cleanup(void); - +size_t Curl_ssh_version(char *buffer, size_t buflen); #else +/* for non-SSH builds */ #define Curl_ssh_cleanup() -#endif /* USE_LIBSSH2 */ +#endif #endif /* HEADER_CURL_SSH_H */ diff --git a/lib/version.c b/lib/version.c index afad726d8..ae2b09d31 100644 --- a/lib/version.c +++ b/lib/version.c @@ -54,18 +54,6 @@ #include <librtmp/rtmp.h> #endif -#ifdef USE_LIBSSH2 -#include <libssh2.h> -#endif - -#ifdef HAVE_LIBSSH2_VERSION -/* get it run-time if possible */ -#define CURL_LIBSSH2_VERSION libssh2_version(0) -#else -/* use build-time if run-time not possible */ -#define CURL_LIBSSH2_VERSION LIBSSH2_VERSION -#endif - #ifdef HAVE_ZLIB_H #include <zlib.h> #ifdef __SYMBIAN32__ @@ -173,13 +161,12 @@ char *curl_version(void) left -= len; ptr += len; #endif -#ifdef USE_LIBSSH2 - len = msnprintf(ptr, left, " libssh2/%s", CURL_LIBSSH2_VERSION); - left -= len; - ptr += len; -#endif -#ifdef USE_LIBSSH - len = msnprintf(ptr, left, " libssh/%s", CURL_LIBSSH_VERSION); +#ifdef USE_SSH + if(left) { + *ptr++=' '; + left--; + } + len = Curl_ssh_version(ptr, left); left -= len; ptr += len; #endif @@ -458,11 +445,8 @@ curl_version_info_data *curl_version_info(CURLversion stamp) #endif /* _LIBICONV_VERSION */ #endif -#if defined(USE_LIBSSH2) - msnprintf(ssh_buffer, sizeof(ssh_buffer), "libssh2/%s", LIBSSH2_VERSION); - version_info.libssh_version = ssh_buffer; -#elif defined(USE_LIBSSH) - msnprintf(ssh_buffer, sizeof(ssh_buffer), "libssh/%s", CURL_LIBSSH_VERSION); +#if defined(USE_SSH) + Curl_ssh_version(ssh_buffer, sizeof(ssh_buffer)); version_info.libssh_version = ssh_buffer; #endif diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c index d8186e0b2..76956a3c1 100644 --- a/lib/vssh/libssh.c +++ b/lib/vssh/libssh.c @@ -2739,4 +2739,9 @@ void Curl_ssh_cleanup(void) (void)ssh_finalize(); } +size_t Curl_ssh_version(char *buffer, size_t buflen) +{ + return msnprintf(buffer, buflen, "libssh/%s", CURL_LIBSSH_VERSION); +} + #endif /* USE_LIBSSH */ diff --git a/lib/vssh/libssh2.c b/lib/vssh/libssh2.c index 011f1ecf3..2b25a514f 100644 --- a/lib/vssh/libssh2.c +++ b/lib/vssh/libssh2.c @@ -3338,5 +3338,9 @@ void Curl_ssh_cleanup(void) #endif } +size_t Curl_ssh_version(char *buffer, size_t buflen) +{ + return msnprintf(buffer, buflen, "libssh2/%s", LIBSSH2_VERSION); +} #endif /* USE_LIBSSH2 */ |