diff options
author | Daniel Stenberg <daniel@haxx.se> | 2010-04-26 00:36:25 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2010-04-26 00:36:25 +0200 |
commit | 107146676e20a00074321b433baaaeb027464871 (patch) | |
tree | 831ec9244ec613ddc7978e599aad43dd64a202a3 | |
parent | 79dc74e84de3e239f2c7e2e03317ad2bcf679ab7 (diff) |
SSH: init and cleanup libssh2 in global_init/cleanup
The necessary libssh2 functions require libssh2 1.2.5 or later.
-rw-r--r-- | CHANGES | 5 | ||||
-rw-r--r-- | lib/easy.c | 11 |
2 files changed, 16 insertions, 0 deletions
@@ -6,6 +6,11 @@ Changelog +Daniel Stenberg (26 Apr 2010) +- Make use of the libssh2_init/exit functions that libssh2 added in version + 1.2.5. Using them will improve how libcurl works in threaded situations when + SCP and SFTP are transfered. + Daniel Stenberg (25 Apr 2010) - Based on work by Kamil Dudka, I've introduced the new configure option --enable-threaded-resolver. When used, the configure script will check for diff --git a/lib/easy.c b/lib/easy.c index 35fb018b6..53f417fc3 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -287,6 +287,13 @@ CURLcode curl_global_init(long flags) } #endif +#if defined(USE_LIBSSH2) && defined(HAVE_LIBSSH2_INIT) + if(libssh2_init(0)) { + DEBUGF(fprintf(stderr, "Error: libssh2_init failed\n")); + return CURLE_FAILED_INIT; + } +#endif + init_flags = flags; /* Preset pseudo-random number sequence. */ @@ -355,6 +362,10 @@ void curl_global_cleanup(void) amiga_cleanup(); #endif +#if defined(USE_LIBSSH2) && defined(HAVE_LIBSSH2_EXIT) + (void)libssh2_exit(); +#endif + init_flags = 0; } |