summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@github.com>2016-03-03 22:57:45 +0000
committerEdward Thomson <ethomson@github.com>2016-03-03 22:57:45 +0000
commit16099833772cb497eac4118350e974abf08c8032 (patch)
treeb05d36e992c8321a528d0705ce6b22966b9a72a5
parent839bdb05a0a2957c0362cdbab219dcfa463a0e94 (diff)
parent22f3d3aa6b2500a0c587938f7939c05a28afacf2 (diff)
downloadlibgit2-16099833772cb497eac4118350e974abf08c8032.tar.gz
Merge pull request #3651 from libgit2/cmn/init-libssh2
ssh: initialize libssh2
-rw-r--r--src/global.c4
-rw-r--r--src/transports/ssh.c16
-rw-r--r--src/transports/ssh.h12
3 files changed, 31 insertions, 1 deletions
diff --git a/src/global.c b/src/global.c
index c65b21a11..0bfde1e04 100644
--- a/src/global.c
+++ b/src/global.c
@@ -12,6 +12,7 @@
#include "openssl_stream.h"
#include "thread-utils.h"
#include "git2/global.h"
+#include "transports/ssh.h"
#if defined(GIT_MSVC_CRTDBG)
#include "win32/w32_stack.h"
@@ -56,7 +57,8 @@ static int init_common(void)
/* Initialize any other subsystems that have global state */
if ((ret = git_hash_global_init()) == 0 &&
(ret = git_sysdir_global_init()) == 0 &&
- (ret = git_filter_global_init()) == 0)
+ (ret = git_filter_global_init()) == 0 &&
+ (ret = git_transport_ssh_global_init()) == 0)
ret = git_openssl_stream_global_init();
GIT_MEMORY_BARRIER;
diff --git a/src/transports/ssh.c b/src/transports/ssh.c
index 239e0bae7..35739abe3 100644
--- a/src/transports/ssh.c
+++ b/src/transports/ssh.c
@@ -15,6 +15,7 @@
#include "smart.h"
#include "cred.h"
#include "socket_stream.h"
+#include "ssh.h"
#ifdef GIT_SSH
@@ -876,3 +877,18 @@ int git_transport_ssh_with_paths(git_transport **out, git_remote *owner, void *p
return -1;
#endif
}
+
+int git_transport_ssh_global_init(void)
+{
+#ifdef GIT_SSH
+
+ libssh2_init(0);
+ return 0;
+
+#else
+
+ /* Nothing to initialize */
+ return 0;
+
+#endif
+}
diff --git a/src/transports/ssh.h b/src/transports/ssh.h
new file mode 100644
index 000000000..2db2cc5df
--- /dev/null
+++ b/src/transports/ssh.h
@@ -0,0 +1,12 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+#ifndef INCLUDE_ssh_h__
+#define INCLUDE_ssh_h__
+
+int git_transport_ssh_global_init(void);
+
+#endif