]> granicus.if.org Git - php/commitdiff
- make the curl phpinfo more verbose
authorPierre Joye <pajoye@php.net>
Mon, 10 Nov 2008 22:58:44 +0000 (22:58 +0000)
committerPierre Joye <pajoye@php.net>
Mon, 10 Nov 2008 22:58:44 +0000 (22:58 +0000)
ext/curl/interface.c

index f10376bcd7c971d5c3edc511d05ca6f2f790a045..842b4cfc1455fa7f0309ce1835a977b71b37cfa1 100644 (file)
@@ -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();
 }
 /* }}} */