Remove OpenSSL locking callbacks 34/207934/2
authorSeonah Moon <seonah1.moon@samsung.com>
Fri, 14 Jun 2019 05:15:18 +0000 (14:15 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Fri, 14 Jun 2019 06:38:43 +0000 (15:38 +0900)
OpenSSL has been updated to 1.1 from 1.0.2.
locking callbacks are no longer needed.

Change-Id: I9dd183db7d6cf08aeac58b3999fc8f68f3ee910f

CMakeLists.txt
packaging/capi-network-http.spec
src/http_common.c

index 29579bf..1e9b668 100644 (file)
@@ -9,7 +9,7 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 SET(INC_DIR include)
 INCLUDE_DIRECTORIES(${INC_DIR})
 
-SET(dependents "dlog gio-2.0 gio-unix-2.0 glib-2.0 capi-base-common capi-network-connection libcurl libssl cynara-client")
+SET(dependents "dlog gio-2.0 gio-unix-2.0 glib-2.0 capi-base-common capi-network-connection libcurl cynara-client")
 
 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
        SET(CMAKE_BUILD_TYPE "Release")
index 42fe994..3a9db13 100644 (file)
@@ -1,6 +1,6 @@
 Name:          capi-network-http
 Summary:       Http Framework
-Version:       0.0.38
+Version:       0.0.39
 Release:       0
 Group:         System/Network
 License:       Apache-2.0
@@ -11,7 +11,6 @@ BuildRequires:        pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(gio-2.0)
 BuildRequires: pkgconfig(capi-network-connection)
 BuildRequires: pkgconfig(libcurl)
-BuildRequires: pkgconfig(openssl)
 BuildRequires: pkgconfig(cynara-client)
 BuildRequires: cmake
 Requires(post):                /sbin/ldconfig
index de02b92..cff8e73 100644 (file)
 #include <sys/types.h>
 #include <unistd.h>
 #include <pthread.h>
-#include <openssl/err.h>
-#include <openssl/opensslv.h>
 #include <cynara-client.h>
 
-#define MUTEX_TYPE       pthread_mutex_t
-#define MUTEX_SETUP(x)   pthread_mutex_init(&(x), NULL)
-#define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x))
-#define MUTEX_LOCK(x)    pthread_mutex_lock(&(x))
-#define MUTEX_UNLOCK(x)  pthread_mutex_unlock(&(x))
-#define THREAD_ID        pthread_self()
-
 #define SMACK_LABEL_LEN 255
 
 /* This array will store all of the mutexes available to OpenSSL. */
-static MUTEX_TYPE *mutex_buf = NULL;
 static bool is_init = false;
 
 bool _http_is_init(void)
@@ -322,86 +312,17 @@ CATCH:
        return proxy_addr;
 }
 
-static void locking_function(int mode, int n, const char * file, int line)
-{
-       if (mode & CRYPTO_LOCK)
-               MUTEX_LOCK(mutex_buf[n]);
-       else
-               MUTEX_UNLOCK(mutex_buf[n]);
-}
-
-static unsigned long id_function(void)
-{
-       return ((unsigned long)THREAD_ID);
-}
-
-#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
-static void threadid_function(CRYPTO_THREADID *threadid)
-{
-       CRYPTO_THREADID_set_numeric(threadid, id_function());
-}
-#endif
-
-int thread_setup(void)
-{
-       int index = 0;
-
-       mutex_buf = malloc(CRYPTO_num_locks() * sizeof(MUTEX_TYPE));
-       if (!mutex_buf)
-               return 0;
-
-       for (index = 0;  index < CRYPTO_num_locks();  index++)
-               MUTEX_SETUP(mutex_buf[index]);
-
-#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
-       CRYPTO_THREADID_set_callback(threadid_function);
-#else
-       CRYPTO_set_id_callback(id_function);
-#endif
-       CRYPTO_set_locking_callback(locking_function);
-
-       return 1;
-}
-
-int thread_cleanup(void)
-{
-       int index;
-
-       if (!mutex_buf)
-               return 0;
-
-       CRYPTO_set_id_callback(NULL);
-       CRYPTO_set_locking_callback(NULL);
-
-       for (index = 0;  index < CRYPTO_num_locks();  index++)
-               MUTEX_CLEANUP(mutex_buf[index]);
-
-       free(mutex_buf);
-       mutex_buf = NULL;
-
-       return 1;
-}
-
 API int http_init(void)
 {
        _retvm_if(_http_is_init(), HTTP_ERROR_INVALID_OPERATION,
                        "http is already initialized!!");
 
-       int ret = 0;
-
        __http_set_init(true);
-
        if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
                DBG("curl_global_init failed, so returning!\n");
                return HTTP_ERROR_OPERATION_FAILED;
        }
 
-       ret = thread_setup();
-       if (!ret) {
-               DBG("ssl thread initialization failed!\n");
-               return HTTP_ERROR_OPERATION_FAILED;
-       }
-
        return HTTP_ERROR_NONE;
 }
 
@@ -410,16 +331,7 @@ API int http_deinit(void)
        _retvm_if(_http_is_init() == false, HTTP_ERROR_INVALID_OPERATION,
                        "http is already deinitialized!!");
 
-       int ret = 0;
-
        __http_set_init(false);
-
-       ret = thread_cleanup();
-       if (!ret) {
-               DBG("ssl thread de-initialization failed!\n");
-               return HTTP_ERROR_OPERATION_FAILED;
-       }
-
        curl_global_cleanup();
 
        return HTTP_ERROR_NONE;