ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
ENDIF (SUPPORT_OMA_DRM)
-IF (USE_SSL_THREAD_LOCKING)
- MESSAGE("USE_SSL_THREAD_LOCKING(openssl<=1.0):On")
- ADD_DEFINITIONS("-DUSE_SSL_THREAD_LOCKING")
-ENDIF (USE_SSL_THREAD_LOCKING)
-
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror -Werror-implicit-function-declaration")
IF (BUILD_GTESTS)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=default")
#include <curl/curl.h>
#include <pthread.h>
-#ifdef USE_SSL_THREAD_LOCKING
-#include <openssl/crypto.h>
-#endif
-
#include "download-agent-dl-info.h"
#include "download-agent-http-mgr.h"
#include "download-agent-http-msg-handler.h"
static pthread_mutex_t mutex_da_info_list = PTHREAD_MUTEX_INITIALIZER;
da_info_t *da_info_list[DA_MAX_ID];
-#ifdef USE_SSL_THREAD_LOCKING
-static pthread_mutex_t *g_openssl_locks_list;
-
-/* locking mechnism for safe use of openssl context */
-static void openssl_lock_callback(int mode, int type, char *file, int line)
-{
- DA_LOGV("type [%d], mode [%d]", type, mode);
- (void)file;
- (void)line;
-
- if (mode & CRYPTO_LOCK)
- pthread_mutex_lock(&(g_openssl_locks_list[type]));
- else
- pthread_mutex_unlock(&(g_openssl_locks_list[type]));
-}
-
-static unsigned long thread_id(void)
-{
- unsigned long ret = (unsigned long)pthread_self();
- return ret;
-}
-
-da_ret_t init_openssl_locks(void)
-{
- DA_LOGD("");
- int index;
- int crypto_num_locks = CRYPTO_num_locks();
- DA_LOGD("crypto_num_locks [%d]", crypto_num_locks);
- g_openssl_locks_list = (pthread_mutex_t *)OPENSSL_malloc(crypto_num_locks * sizeof(pthread_mutex_t));
- if (g_openssl_locks_list == DA_NULL) {
- DA_LOGE("Failed to OPENSSL_malloc");
- return DA_ERR_FAIL_TO_MEMALLOC;
- }
- for (index = 0; index < crypto_num_locks; index++)
- pthread_mutex_init(&(g_openssl_locks_list[index]), NULL);
-
- CRYPTO_set_id_callback((unsigned long (*)())thread_id);
- CRYPTO_set_locking_callback((void (*)())openssl_lock_callback);
-
- return DA_RESULT_OK;
-}
-da_ret_t deinit_openssl_locks(void)
-{
- DA_LOGD("");
- int index;
- int crypto_num_locks = CRYPTO_num_locks();
- for (index = 0; index < crypto_num_locks; index++)
- pthread_mutex_destroy(&(g_openssl_locks_list[index]));
-
- CRYPTO_set_id_callback(NULL);
- CRYPTO_set_locking_callback(NULL);
- OPENSSL_free(g_openssl_locks_list);
- g_openssl_locks_list = NULL;
-
- return DA_RESULT_OK;
-}
-#endif
-
static void __init_da_info(int id)
{
da_info_t *da_info = DA_NULL;
ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
ENDIF (SUPPORT_OMA_DRM)
-IF (USE_SSL_THREAD_LOCKING)
- MESSAGE("USE_SSL_THREAD_LOCKING(openssl<=1.0):On")
- ADD_DEFINITIONS("-DUSE_SSL_THREAD_LOCKING")
-ENDIF (USE_SSL_THREAD_LOCKING)
-
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror -Werror-implicit-function-declaration")
IF (BUILD_GTESTS)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=default")