ssh: add a generic Curl_ssh_version function for SSH backends

Closes #4235
This commit is contained in:
Daniel Stenberg 2019-08-16 15:32:05 +02:00
parent 1a7634e484
commit ea28a6cb2f
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
4 changed files with 27 additions and 30 deletions

View File

@ -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;
CURLcode Curl_ssh_init(void);
void Curl_ssh_cleanup(void);
#else
#define Curl_ssh_cleanup()
#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
#endif /* HEADER_CURL_SSH_H */

View File

@ -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

View File

@ -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 */

View File

@ -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 */