ssl: init also without threads
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
diff --git a/src/global.c b/src/global.c
index e9c940f..41428ec 100644
--- a/src/global.c
+++ b/src/global.c
@@ -47,6 +47,15 @@ static void git__shutdown(void)
}
+static void init_ssl(void)
+{
+#ifdef GIT_SSL
+ SSL_load_error_strings();
+ OpenSSL_add_ssl_algorithms();
+ git__ssl_ctx = SSL_CTX_new(SSLv23_method());
+#endif
+}
+
/**
* Handle the global state with TLS
*
@@ -165,15 +174,6 @@ static pthread_key_t _tls_key;
static pthread_once_t _once_init = PTHREAD_ONCE_INIT;
int init_error = 0;
-static void init_ssl(void)
-{
-#ifdef GIT_SSL
- SSL_load_error_strings();
- OpenSSL_add_ssl_algorithms();
- git__ssl_ctx = SSL_CTX_new(SSLv23_method());
-#endif
-}
-
static void cb__free_status(void *st)
{
git__free(st);
@@ -248,6 +248,7 @@ static git_global_st __state;
int git_threads_init(void)
{
+ init_ssl();
git_atomic_inc(&git__n_inits);
return 0;
}