Skip to content

Commit

Permalink
ssh: add a generic Curl_ssh_version function for SSH backends
Browse files Browse the repository at this point in the history
Closes #4235
  • Loading branch information
bagder committed Aug 17, 2019
1 parent 1a7634e commit ea28a6c
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 26 deletions.
8 changes: 6 additions & 2 deletions lib/ssh.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
32 changes: 8 additions & 24 deletions lib/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -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__
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down
5 changes: 5 additions & 0 deletions lib/vssh/libssh.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
4 changes: 4 additions & 0 deletions lib/vssh/libssh2.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

0 comments on commit ea28a6c

Please sign in to comment.