summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-06-06 09:40:50 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2015-06-24 17:26:36 +0200
commitede517bc5322022850854f22906be934736b4f57 (patch)
treef2e785888a659c11e5a075cf13b939cf1b312c8d
parent8dea1c21f5edcf9ff44282134e416e54e6eaf9be (diff)
downloadlibgit2-ede517bc5322022850854f22906be934736b4f57.tar.gz
curl: add CHANGELOG and THREADING entries
-rw-r--r--CHANGELOG.md3
-rw-r--r--THREADING.md26
2 files changed, 20 insertions, 9 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1340f78f9..86f995545 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -72,6 +72,9 @@ support for HTTPS connections insead of OpenSSL.
* The race condition mitigations described in `racy-git.txt` have been
implemented.
+* If libcurl is installed, we will use it to connect to HTTP(S)
+ servers.
+
### API additions
* The `git_merge_options` gained a `file_flags` member.
diff --git a/THREADING.md b/THREADING.md
index cf7ac1ff0..3717d6c88 100644
--- a/THREADING.md
+++ b/THREADING.md
@@ -47,9 +47,14 @@ you.
On Mac OS X
-----------
-On OS X, the library makes use of CommonCrypto and SecureTransport for
-cryptographic support. These are thread-safe and you do not need to do
-anything special.
+By default we use libcurl to perform the encryption. The
+system-provided libcurl uses SecureTransport, so no special steps are
+necessary. If you link against another libcurl (e.g. from homebrew)
+refer to the general case.
+
+If the option to use libcurl was deactivated, the library makes use of
+CommonCrypto and SecureTransport for cryptographic support. These are
+thread-safe and you do not need to do anything special.
Note that libssh2 may still use OpenSSL itself. In that case, the
general case still affects you if you use ssh.
@@ -57,12 +62,15 @@ general case still affects you if you use ssh.
General Case
------------
-On the rest of the platforms, libgit2 uses OpenSSL to be able to use
-HTTPS as a transport. This library is made to be thread-implementation
-agnostic, and the users of the library must set which locking function
-it should use. This means that libgit2 cannot know what to set as the
-user of libgit2 may use OpenSSL independently and the locking settings
-must survive libgit2 shutting down.
+By default we use libcurl, which has its own ![recommendations for
+thread safety](http://curl.haxx.se/libcurl/c/libcurl-tutorial.html#Multi-threading).
+
+If libcurl was not found or was disabled, libgit2 uses OpenSSL to be
+able to use HTTPS as a transport. This library is made to be
+thread-implementation agnostic, and the users of the library must set
+which locking function it should use. This means that libgit2 cannot
+know what to set as the user of libgit2 may use OpenSSL independently
+and the locking settings must survive libgit2 shutting down.
libgit2 does provide a last-resort convenience function
`git_openssl_set_locking()` (available in `sys/openssl.h`) to use the