X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_api.c;h=f59a7d0a75cf2d7fd7561b624d2068ff9406d840;hp=e2019ad47a4a4de301b7bc0f0a902ab9e4e7b3b9;hb=b562e34cf4f8c8fae7b8fe773e0eed71592b09c2;hpb=a673ef718611fe1a7c8a4c61b2f4c97fc06efc2d diff --git a/http_api.c b/http_api.c index e2019ad..f59a7d0 100644 --- a/http_api.c +++ b/http_api.c @@ -37,6 +37,9 @@ #include #ifdef HTTP_HAVE_MAGIC +# if defined(PHP_WIN32) && !defined(USE_MAGIC_DLL) && !defined(USE_MAGIC_STATIC) +# define USE_MAGIC_STATIC +# endif # include #endif @@ -161,24 +164,20 @@ STATUS _http_parse_key_list(const char *list, HashTable *items, char separator, /* }}} */ /* {{{ void http_error(long, long, char*) */ -void _http_error_ex(long type, long code, const char *format, ...) +void _http_error_ex(long type TSRMLS_DC, long code, const char *format, ...) { va_list args; - TSRMLS_FETCH(); - + va_start(args, format); - if (type == E_THROW) { #ifdef ZEND_ENGINE_2 + if ((type == E_THROW) || (PG(error_handling) == EH_THROW)) { 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); } /* }}} */ @@ -198,7 +197,7 @@ void _http_log_ex(char *file, const char *ident, const char *message TSRMLS_DC) php_stream *log = php_stream_open_wrapper(file, "ab", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL); \ \ if (log) { \ - php_stream_printf(log TSRMLS_CC, "%s [%12s] %32s <%s>%s", datetime, type, msg, SG(request_info).request_uri, PHP_EOL); \ + php_stream_printf(log TSRMLS_CC, "%s\t[%s]\t%s\t<%s>%s", datetime, type, msg, SG(request_info).request_uri, PHP_EOL); \ php_stream_close(log); \ } \ \ @@ -393,13 +392,12 @@ PHP_HTTP_API char *_http_guess_content_type(const char *magicfile, long magicmod 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