Re: cvs: php-src /ext/curl interface.c
| From: | Kalle Sommer Nielsen | Date: | Tue, 11 Nov 2008 01:39:40 +0000 |
| Subject: | Re: cvs: php-src /ext/curl interface.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-54179@lists.php.net to get a copy of this message | ||
2008/11/10 Pierre-Alain Joye <pajoye@php.net>:
> pajoye Mon Nov 10 22:58:44 2008 UTC
>
> Modified files:
> /php-src/ext/curl interface.c
> Log:
> - make the curl phpinfo more verbose
>
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.128&r2=1.129&diff_format=u
> Index: php-src/ext/curl/interface.c
> diff -u php-src/ext/curl/interface.c:1.128 php-src/ext/curl/interface.c:1.129
> --- php-src/ext/curl/interface.c:1.128 Sun Nov 2 21:10:07 2008
> +++ php-src/ext/curl/interface.c Mon Nov 10 22:58:44 2008
> @@ -16,7 +16,7 @@
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: interface.c,v 1.128 2008/11/02 21:10:07 felipe Exp $ */
> +/* $Id: interface.c,v 1.129 2008/11/10 22:58:44 pajoye Exp $ */
>
> #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
>
> @@ -336,9 +336,94 @@
> */
> 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();
> }
> /* }}} */
>
I don't remember which versions that ext/curl minimum supports, but
the CURL_VERSION_CONV was added in 7.15.4 so unless thats below the
minimum version required 7.15.4 is required.
Also adding the CURL_VERSION_* constants to userland so they can use
the bitmask exposed by curl_version()['features'] to check for such
features might be a good ideal :)
--
Kalle Sommer Nielsen