Loading docs/examples/threaded-ssl.c +25 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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[]= { Loading Loading
docs/examples/threaded-ssl.c +25 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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[]= { Loading