summaryrefslogtreecommitdiff
path: root/include/git2/sys/openssl.h
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-12-12 08:29:43 +0100
committerCarlos Martín Nieto <cmn@dwim.me>2014-12-12 15:46:57 +0100
commit263b1d6ed97d56608f9a358fa0bfe9e66c968f36 (patch)
tree1a12b0651cb6b194b8cef8615054c24e0cfbf6a0 /include/git2/sys/openssl.h
parent4eb97ef3bf18403fbce351ae4cac673655d2886a (diff)
downloadlibgit2-263b1d6ed97d56608f9a358fa0bfe9e66c968f36.tar.gz
Make the OpenSSL locking function warnings more severe
Our git_openssl_set_locking() would ideally not exist. Make it clearer that we provide it as a last resort and you should prefer anything else.
Diffstat (limited to 'include/git2/sys/openssl.h')
-rw-r--r--include/git2/sys/openssl.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/include/git2/sys/openssl.h b/include/git2/sys/openssl.h
new file mode 100644
index 000000000..ad05e6ca8
--- /dev/null
+++ b/include/git2/sys/openssl.h
@@ -0,0 +1,38 @@
+/*
+ * 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_git_openssl_h__
+#define INCLUDE_git_openssl_h__
+
+#include "common.h"
+
+GIT_BEGIN_DECL
+
+/**
+ * Initialize the OpenSSL locks
+ *
+ * OpenSSL requires the application to determine how it performs
+ * locking.
+ *
+ * This is a last-resort convenience function which libgit2 provides for
+ * allocating and initializing the locks as well as setting the
+ * locking function to use the system's native locking functions.
+ *
+ * The locking function will be cleared and the memory will be freed
+ * when you call git_threads_sutdown().
+ *
+ * If your programming language has an OpenSSL package/bindings, it
+ * likely sets up locking. You should very strongly prefer that over
+ * this function.
+ *
+ * @return 0 on success, -1 if there are errors or if libgit2 was not
+ * built with OpenSSL and threading support.
+ */
+GIT_EXTERN(int) git_openssl_set_locking(void);
+
+GIT_END_DECL
+#endif
+