diff -urN php-4.4.2.org/ext/curl/curl.c php-4.4.2/ext/curl/curl.c --- php-4.4.2.org/ext/curl/curl.c 2006-01-05 19:03:18.000000000 +0100 +++ php-4.4.2/ext/curl/curl.c 2006-01-25 22:23:03.429339500 +0100 @@ -427,6 +427,8 @@ } /* }}} */ +static void php_restore_callbacks(void); + /* {{{ PHP_MSHUTDOWN_FUNCTION */ PHP_MSHUTDOWN_FUNCTION(curl) @@ -437,6 +439,7 @@ php_unregister_url_stream_wrapper("ftp" TSRMLS_CC); php_unregister_url_stream_wrapper("ldap" TSRMLS_CC); #endif + php_restore_callbacks(); curl_global_cleanup(); #ifdef PHP_CURL_NEED_SSL_TSL php_curl_ssl_cleanup(); @@ -1465,9 +1468,8 @@ for (i = 0; i < c; ++i) { php_curl_openssl_tsl[i] = tsrm_mutex_alloc(); } - - CRYPTO_set_id_callback(php_curl_ssl_id); - CRYPTO_set_locking_callback(php_curl_ssl_lock); + + php_restore_callbacks(); } static inline void php_curl_ssl_cleanup(void) @@ -1489,6 +1491,17 @@ #endif /* PHP_CURL_NEED_OPENSSL_TSL */ /* }}} */ +static void php_restore_callbacks(void) { +#ifdef PHP_CURL_NEED_OPENSSL_TSL + CRYPTO_set_id_callback(php_curl_ssl_id); + CRYPTO_set_locking_callback(php_curl_ssl_lock); +#else + CRYPTO_set_id_callback(NULL); + CRYPTO_set_locking_callback(NULL); +#endif +} + + #ifdef PHP_CURL_NEED_GNUTLS_TSL /* {{{ */ static int php_curl_ssl_mutex_create(void **m)