WARNING("curl convenience functions not enabled; libraries and headers not found");
}
+ MAGIC_LIB = PHP_DEBUG != "no" ? "libmagic-staticd.lib":"libmagic-static.lib";
+
if (CHECK_HEADER_ADD_INCLUDE("magic.h", "CFLAGS_HTTP") &&
- CHECK_LIB("magic.lib", "http", PHP_HTTP)) {
+ CHECK_LIB(MAGIC_LIB, "http", PHP_HTTP)) {
AC_DEFINE("HTTP_HAVE_MAGIC", 1, "Have magic library");
} else {
WARNING("content type guessing not enabled; libraries and headers not found");
}
#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
#include <ctype.h>
#ifdef HTTP_HAVE_MAGIC
+# if defined(PHP_WIN32) && !defined(USE_MAGIC_DLL)
+# define USE_MAGIC_STATIC
+# endif
# include <magic.h>
#endif
void _http_error_ex(long type, long code, const char *format, ...)
{
va_list args;
+ zend_bool throw_exception = 0;
TSRMLS_FETCH();
- va_start(args, format);
if (type == E_THROW) {
+ throw_exception = 1;
+ type = E_WARNING;
+ } else if (PG(error_handling) == EH_THROW) {
+ throw_exception = 1;
+ }
+
+ va_start(args, format);
#ifdef ZEND_ENGINE_2
+ if (throw_exception) {
char *message;
+
vspprintf(&message, 0, format, args);
zend_throw_exception(http_exception_get_for_code(code), message, code TSRMLS_CC);
-#else
- type = E_WARNING;
+ } else
#endif
- }
- if (type != E_THROW) {
- php_verror(NULL, "", type, format, args TSRMLS_CC);
- }
+ php_verror(NULL, "", type, format, args TSRMLS_CC);
va_end(args);
}
/* }}} */
if (ctype) {
ct = estrdup(ctype);
} else {
- http_error(HE_WARNING, HTTP_E_RUNTIME, "Failed to guess Content-Type");
- }
-
- if (magic) {
- magic_close(magic);
+ http_error_ex(HE_WARNING, HTTP_E_RUNTIME, "Failed to guess Content-Type: %s", magic_error(magic));
}
}
+ if (magic) {
+ magic_close(magic);
+ }
#else
http_error(HE_WARNING, HTTP_E_RUNTIME, "Cannot guess Content-Type; libmagic not available");
#endif