aboutsummaryrefslogtreecommitdiff
path: root/lib/vssh
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-08-16 16:16:33 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-08-17 16:57:55 +0200
commitd6dea75af7c00e396cffa2e74350352703312180 (patch)
treebd1f2dd454929bf9aa6e62b3d286b631ed75f208 /lib/vssh
parent5b2d703fe5900fcda846e41d67c62f62dd755839 (diff)
vssh: move ssh init/cleanup functions into backend code
Diffstat (limited to 'lib/vssh')
-rw-r--r--lib/vssh/libssh.c13
-rw-r--r--lib/vssh/libssh2.c19
2 files changed, 32 insertions, 0 deletions
diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c
index 4b34b0212..d8186e0b2 100644
--- a/lib/vssh/libssh.c
+++ b/lib/vssh/libssh.c
@@ -2725,5 +2725,18 @@ static void sftp_quote_stat(struct connectdata *conn)
return;
}
+CURLcode Curl_ssh_init(void)
+{
+ if(ssh_init()) {
+ DEBUGF(fprintf(stderr, "Error: libssh_init failed\n"));
+ return CURLE_FAILED_INIT;
+ }
+ return CURLE_OK;
+}
+
+void Curl_ssh_cleanup(void)
+{
+ (void)ssh_finalize();
+}
#endif /* USE_LIBSSH */
diff --git a/lib/vssh/libssh2.c b/lib/vssh/libssh2.c
index 5dd6ee29e..011f1ecf3 100644
--- a/lib/vssh/libssh2.c
+++ b/lib/vssh/libssh2.c
@@ -3320,4 +3320,23 @@ static const char *sftp_libssh2_strerror(int err)
return "Unknown error in libssh2";
}
+CURLcode Curl_ssh_init(void)
+{
+#ifdef HAVE_LIBSSH2_INIT
+ if(libssh2_init(0)) {
+ DEBUGF(fprintf(stderr, "Error: libssh2_init failed\n"));
+ return CURLE_FAILED_INIT;
+ }
+#endif
+ return CURLE_OK;
+}
+
+void Curl_ssh_cleanup(void)
+{
+#ifdef HAVE_LIBSSH2_EXIT
+ (void)libssh2_exit();
+#endif
+}
+
+
#endif /* USE_LIBSSH2 */