From: Daniel Stenberg Date: Fri, 16 Aug 2019 13:32:05 +0000 (+0200) Subject: ssh: add a generic Curl_ssh_version function for SSH backends X-Git-Tag: curl-7_66_0~71 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea28a6cb2f168ce0b4e01c0f05e3675687dbd497;p=thirdparty%2Fcurl.git ssh: add a generic Curl_ssh_version function for SSH backends Closes #4235 --- diff --git a/lib/ssh.h b/lib/ssh.h index 96bb640999..3213c5a52e 100644 --- a/lib/ssh.h +++ b/lib/ssh.h @@ -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 afad726d81..ae2b09d310 100644 --- a/lib/version.c +++ b/lib/version.c @@ -54,18 +54,6 @@ #include #endif -#ifdef USE_LIBSSH2 -#include -#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 #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 d8186e0b27..76956a3c1f 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 011f1ecf3c..2b25a514f4 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 */