]> granicus.if.org Git - php/commitdiff
- check CRYPTO_get_id_callback() if anyone else already set thread lock callbacks
authorMichael Wallner <mike@php.net>
Tue, 19 Dec 2006 21:41:12 +0000 (21:41 +0000)
committerMichael Wallner <mike@php.net>
Tue, 19 Dec 2006 21:41:12 +0000 (21:41 +0000)
ext/curl/interface.c

index 0185f5f33c568246d662c15acbcbe5cc04df9452..2df4bdde0affe638634cf05bf4667d6de8d2464b 100644 (file)
@@ -612,7 +612,7 @@ PHP_MINIT_FUNCTION(curl)
 #endif
 
 #ifdef PHP_CURL_NEED_OPENSSL_TSL
-       {
+       if (!CRYPTO_get_id_callback()) {
                int i, c = CRYPTO_num_locks();
                
                php_curl_openssl_tsl = malloc(c * sizeof(MUTEX_T));
@@ -664,17 +664,12 @@ PHP_MSHUTDOWN_FUNCTION(curl)
        php_unregister_url_stream_wrapper("https" TSRMLS_CC);
        php_unregister_url_stream_wrapper("ftp" TSRMLS_CC);
        php_unregister_url_stream_wrapper("ldap" TSRMLS_CC);
-#endif
-#ifdef PHP_CURL_NEED_OPENSSL_TSL
-       /* ensure there are valid callbacks set */
-       CRYPTO_set_id_callback(php_curl_ssl_id);
-       CRYPTO_set_locking_callback(php_curl_ssl_lock);
 #endif
        curl_global_cleanup();
 #ifdef PHP_CURL_NEED_OPENSSL_TSL
        if (php_curl_openssl_tsl) {
                int i, c = CRYPTO_num_locks();
-                       
+               
                CRYPTO_set_id_callback(NULL);
                CRYPTO_set_locking_callback(NULL);