+#ifdef HTTP_HAVE_MHASH
+ {
+ char mhash_info[32];
+
+ snprintf(mhash_info, 32, "libmhash/%d", MHASH_API_VERSION);
+ php_info_print_table_row(2, "mhash ETag Generator:", mhash_info);
+ }
+#else
+ php_info_print_table_row(2, "mhash ETag Generator:", "disabled");
+#endif
+#if defined(HTTP_HAVE_MAGIC) && !defined(WONKY)
+ php_info_print_table_row(2, "magic MIME Guessing:", "libmagic/unknown");
+#else
+ php_info_print_table_row(2, "magic MIME Guessing:", "disabled");
+#endif
+ php_info_print_table_row(2, "Registered Classes:",
+#ifndef ZEND_ENGINE_2
+ "none"
+#else
+ "HttpUtil, "
+ "HttpMessage, "
+# ifdef HTTP_HAVE_CURL
+ "HttpRequest, "
+ "HttpRequestPool, "
+# endif
+# ifndef WONKY
+ "HttpResponse"
+# endif
+#endif
+ );
+ }
+ php_info_print_table_end();
+
+ php_info_print_table_start();
+ {
+ unsigned i;
+ zval **custom_method;
+ phpstr *known_request_methods = phpstr_new();
+ phpstr *custom_request_methods = phpstr_new();
+
+ for (i = HTTP_NO_REQUEST_METHOD+1; i < HTTP_MAX_REQUEST_METHOD; ++i) {
+ phpstr_appendl(known_request_methods, http_request_method_name(i));
+ phpstr_appends(known_request_methods, ", ");
+ }
+ FOREACH_HASH_VAL(&HTTP_G(request).methods.custom, custom_method) {
+ phpstr_append(custom_request_methods, Z_STRVAL_PP(custom_method), Z_STRLEN_PP(custom_method));
+ phpstr_appends(custom_request_methods, ", ");
+ }
+
+ phpstr_append(known_request_methods, PHPSTR_VAL(custom_request_methods), PHPSTR_LEN(custom_request_methods));
+ phpstr_fix(known_request_methods);
+ phpstr_fix(custom_request_methods);
+
+ php_info_print_table_row(2, "Known Request Methods:", PHPSTR_VAL(known_request_methods));
+ php_info_print_table_row(2, "Custom Request Methods:",
+ PHPSTR_LEN(custom_request_methods) ? PHPSTR_VAL(custom_request_methods) : "none registered");
+
+ phpstr_free(&known_request_methods);
+ phpstr_free(&custom_request_methods);
+ }