diff options
author | Daniel Stenberg <daniel@haxx.se> | 2008-02-23 23:00:24 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2008-02-23 23:00:24 +0000 |
commit | 3154f04fb908ddf0066fe1d07cab2bbc0e9e67f4 (patch) | |
tree | 3b0bdcc6afb2ed651239497b6a0562bf47c04c04 /docs/examples | |
parent | 6982ed4db767d23141c2399be47595d47a45f4fe (diff) |
now builds and runs with GnuTLS-built libcurls too
Diffstat (limited to 'docs/examples')
-rw-r--r-- | docs/examples/threaded-ssl.c | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/docs/examples/threaded-ssl.c b/docs/examples/threaded-ssl.c index e49443d40..c3455369b 100644 --- a/docs/examples/threaded-ssl.c +++ b/docs/examples/threaded-ssl.c @@ -8,20 +8,26 @@ * $Id$ * * A multi-threaded example that uses pthreads and fetches 4 remote files at - * once over HTTPS. The lock callbacks and stuff assume OpenSSL so far. - * Should be expanded to do optional GnuTLS style locking. + * once over HTTPS. The lock callbacks and stuff assume OpenSSL or GnuTLS + * (libgcrypt) so far. * - * OpenSSL docs for this: http://www.openssl.org/docs/crypto/threads.html + * OpenSSL docs for this: + * http://www.openssl.org/docs/crypto/threads.html + * gcrypt docs for this: + * http://gnupg.org/documentation/manuals/gcrypt/Multi_002dThreading.html */ +#define USE_OPENSSL /* or USE_GNUTLS accordingly */ + #include <stdio.h> #include <pthread.h> #include <curl/curl.h> -#include <openssl/crypto.h> /* we have this global to let the callback get easy access to it */ static pthread_mutex_t *lockarray; +#ifdef USE_OPENSSL +#include <openssl/crypto.h> static void lock_callback(int mode, int type, char *file, int line) { (void)file; @@ -66,6 +72,21 @@ static void kill_locks(void) OPENSSL_free(lockarray); } +#endif + +#ifdef USE_GNUTLS +#include <gcrypt.h> +#include <errno.h> + +GCRY_THREAD_OPTION_PTHREAD_IMPL; + +void init_locks(void) +{ + gcry_control(GCRYCTL_SET_THREAD_CBS); +} + +#define kill_locks() +#endif /* List of URLs to fetch.*/ const char *urls[]= { |