From: Pierre Joye Date: Mon, 10 Nov 2008 22:58:44 +0000 (+0000) Subject: - make the curl phpinfo more verbose X-Git-Tag: BEFORE_HEAD_NS_CHANGE~18 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e1ab50627bbb8b8cee828525f36d220164b035a4;p=php - make the curl phpinfo more verbose --- diff --git a/ext/curl/interface.c b/ext/curl/interface.c index f10376bcd7..842b4cfc14 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -336,9 +336,94 @@ ZEND_GET_MODULE (curl) */ PHP_MINFO_FUNCTION(curl) { + curl_version_info_data *d; + char **p; + char str[1024]; + size_t n = 0; + + + d = curl_version_info(CURLVERSION_NOW); php_info_print_table_start(); php_info_print_table_row(2, "cURL support", "enabled"); - php_info_print_table_row(2, "cURL Information", curl_version()); + php_info_print_table_row(2, "cURL Information", d->version); + sprintf(str, "%d", d->age); + php_info_print_table_row(2, "Age", str); + + + if (d->features & CURL_VERSION_IPV6) { + n = sprintf(str, "%s", "IPv6-enabled, "); + } + if (d->features & CURL_VERSION_KERBEROS4) { + n += sprintf(str + n, "%s", "kerberos auth is supported, "); + } + if (d->features & CURL_VERSION_SSL) { + n += sprintf(str + n, "%s", "SSL options are present, "); + } + if (d->features & CURL_VERSION_LIBZ) { + n += sprintf(str + n, "%s", "libz features are present, "); + } + if (d->features & CURL_VERSION_NTLM) { + n += sprintf(str + n, "%s", "NTLM auth is supported, "); + } + if (d->features & CURL_VERSION_GSSNEGOTIATE) { + n += sprintf(str + n, "%s", "Negotiate auth support, "); + } + if (d->features & CURL_VERSION_DEBUG) { + n += sprintf(str + n, "%s", "built with debug capabilities, "); + } + if (d->features & CURL_VERSION_ASYNCHDNS) { + n += sprintf(str + n, "%s", "asynchronous dns resolves, "); + } + if (d->features & CURL_VERSION_SPNEGO) { + n += sprintf(str + n, "%s", "SPNEGO auth, "); + } + if (d->features & CURL_VERSION_LARGEFILE) { + n += sprintf(str + n, "%s", "supports files bigger than 2GB, "); + } + if (d->features & CURL_VERSION_IDN) { + n += sprintf(str + n, "%s", "International Domain Names support, "); + } + if (d->features & CURL_VERSION_SSPI) { + n += sprintf(str + n, "%s", "SSPI is supported, "); + } + if (d->features & CURL_VERSION_CONV) { + n += sprintf(str + n, "%s", "character conversions are supported, "); + } + + if (n > 3) { + str[n - 2] = '\0'; + } + php_info_print_table_row(2, "Features", str); + n = 0; + p = (char **) d->protocols; + while (*p != NULL) { + n += sprintf(str + n, "%s%s", *p, *(p + 1) != NULL ? ", " : ""); + p++; + } + php_info_print_table_row(2, "Protocols", str); + + php_info_print_table_row(2, "Host", d->host); + + if (d->ssl_version) { + php_info_print_table_row(2, "SSL Version", d->ssl_version); + } + + if (d->libz_version) { + php_info_print_table_row(2, "ZLib Version", d->libz_version); + } + + if (d->libz_version) { + php_info_print_table_row(2, "libIDN Version", d->libidn); + } + + if (d->iconv_ver_num) { + php_info_print_table_row(2, "IconV Version", d->iconv_ver_num); + } + + if (d->libssh_version) { + php_info_print_table_row(2, "libSSH Version", d->libssh_version); + } + php_info_print_table_end(); } /* }}} */