From 4b14c11dcd4d27519b9c03d7acf638f9bface169 Mon Sep 17 00:00:00 2001 From: Pierrick Charron Date: Wed, 14 Dec 2011 04:02:56 +0000 Subject: [PATCH] Unregister appropriate curl wrappers --- ext/curl/interface.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 7c3c5a7975..bf6ffd8e90 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -1165,10 +1165,18 @@ PHP_MINIT_FUNCTION(curl) PHP_MSHUTDOWN_FUNCTION(curl) { #ifdef PHP_CURL_URL_WRAPPERS - php_unregister_url_stream_wrapper("http" TSRMLS_CC); - php_unregister_url_stream_wrapper("https" TSRMLS_CC); - php_unregister_url_stream_wrapper("ftp" TSRMLS_CC); - php_unregister_url_stream_wrapper("ldap" TSRMLS_CC); + { + curl_version_info_data *info = curl_version_info(CURLVERSION_NOW); + char **p = (char **)info->protocols; + + while (*p != NULL) { + /* Do not enable cURL "file" protocol and make sure cURL is always used when --with-curlwrappers is enabled */ + if (strncasecmp(*p, "file", sizeof("file")-1) != 0) { + php_unregister_url_stream_wrapper(*p TSRMLS_CC); + } + (void) *p++; + } + } #endif curl_global_cleanup(); #ifdef PHP_CURL_NEED_OPENSSL_TSL -- 2.40.0