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

index 637d7d51ec63d6c11e301cdc104a66eda65d9c67..54e5f46e2caa5544edaa54c533641d745b33bd7a 100644 (file)
@@ -614,7 +614,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));
@@ -666,17 +666,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);