From: Pierre Joye Date: Sun, 25 Jan 2009 17:12:22 +0000 (+0000) Subject: - nicer features list X-Git-Tag: php-5.4.0alpha1~191^2~4391 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7c73ea1f9e26521c0e2580c03614e08f707e93e2;p=php - nicer features list --- diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 08da8d310e..477aa40bad 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -330,77 +330,65 @@ PHP_MINFO_FUNCTION(curl) sprintf(str, "%d", d->age); php_info_print_table_row(2, "Age", str); -#ifdef CURL_VERSION_IPV6 - if (d->features & CURL_VERSION_IPV6) { - n = sprintf(str, "%s", "IPv6-enabled, "); - } -#endif - -#ifdef CURL_VERSION_KERBEROS4 - if (d->features & CURL_VERSION_KERBEROS4) { - n += sprintf(str + n, "%s", "kerberos auth is supported, "); - } -#endif + /* To update on each new cURL release using src/main.c in cURL sources */ + if(d->features) { + struct feat { + const char *name; + int bitmask; + }; -#ifdef CURL_VERSION_SSL - if (d->features & CURL_VERSION_SSL) { - n += sprintf(str + n, "%s", "SSL options are present, "); - } -#endif + unsigned int i; -#ifdef CURL_VERSION_LIBZ - if (d->features & CURL_VERSION_LIBZ) { - n += sprintf(str + n, "%s", "libz features are present, "); - } + static const struct feat feats[] = { +#if LIBCURL_VERSION_NUM > 0x070a06 /* 7.10.7 */ + {"AsynchDNS", CURL_VERSION_ASYNCHDNS}, #endif #if LIBCURL_VERSION_NUM > 0x070a05 /* 7.10.6 */ - 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, "); - } + {"Debug", CURL_VERSION_DEBUG}, + {"GSS-Negotiate", CURL_VERSION_GSSNEGOTIATE}, #endif - -#if LIBCURL_VERSION_NUM > 0x070a06 /* 7.10.7 */ - if (d->features & CURL_VERSION_ASYNCHDNS) { - n += sprintf(str + n, "%s", "asynchronous dns resolves, "); - } +#if LIBCURL_VERSION_NUM > 0x070b02 /* 7.12.0 */ + {"IDN", CURL_VERSION_IDN}, #endif -#if LIBCURL_VERSION_NUM > 0x070a07 /* 7.10.8 */ - if (d->features & CURL_VERSION_SPNEGO) { - n += sprintf(str + n, "%s", "SPNEGO auth, "); - } +#ifdef CURL_VERSION_IPV6 + {"IPv6", CURL_VERSION_IPV6}, #endif #if LIBCURL_VERSION_NUM > 0x070a09 /* 7.10.1 */ - if (d->features & CURL_VERSION_LARGEFILE) { - n += sprintf(str + n, "%s", "supports files bigger than 2GB, "); - } + {"Largefile", CURL_VERSION_LARGEFILE}, #endif -#if LIBCURL_VERSION_NUM > 0x070b02 /* 7.12.0 */ - if (d->features & CURL_VERSION_IDN) { - n += sprintf(str + n, "%s", "International Domain Names support, "); - } +#if LIBCURL_VERSION_NUM > 0x070a05 /* 7.10.6 */ + {"NTLM", CURL_VERSION_NTLM}, +#endif +#if LIBCURL_VERSION_NUM > 0x070a07 /* 7.10.8 */ + {"SPNEGO", CURL_VERSION_SPNEGO}, +#endif +#ifdef CURL_VERSION_SSL + {"SSL", CURL_VERSION_SSL}, #endif #if LIBCURL_VERSION_NUM > 0x070d01 /* 7.13.2 */ - if (d->features & CURL_VERSION_SSPI) { - n += sprintf(str + n, "%s", "SSPI is supported, "); - } + {"SSPI", CURL_VERSION_SSPI}, +#endif +#ifdef CURL_VERSION_KERBEROS4 + {"krb4", CURL_VERSION_KERBEROS4}, +#endif +#ifdef CURL_VERSION_LIBZ + {"libz", CURL_VERSION_LIBZ}, #endif #if LIBCURL_VERSION_NUM > 0x070f03 /* 7.15.4 */ - if (d->features & CURL_VERSION_CONV) { - n += sprintf(str + n, "%s", "character conversions are supported, "); - } + {"CharConv", CURL_VERSION_CONV}, #endif + NULL, 0 + }; - if (n > 3) { - str[n - 2] = '\0'; + php_info_print_table_row(1, "Features"); + for(i=0; ifeatures & feats[i].bitmask ? "Yes" : "No"); + } + } } - php_info_print_table_row(2, "Features", str); + n = 0; p = (char **) d->protocols; while (*p != NULL) {