X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_api.c;h=eec41daa0d7068d964cc26ab7377e15dc6b78fba;hp=cbc5a60d7d9adefdc21eb592c4bc0ff6e0f0eb72;hb=5dca59e3a269c903b395d97abe831c0fc138b5b6;hpb=f4b831c61cac25db5250db4b5421a5cdf3933ef0 diff --git a/http_api.c b/http_api.c index cbc5a60..eec41da 100644 --- a/http_api.c +++ b/http_api.c @@ -85,7 +85,7 @@ STATUS _http_parse_key_list(const char *list, HashTable *items, char separator, int vallen = 0, keylen = 0, done = 0; zval array; - Z_ARRVAL(array) = items; + INIT_ZARR(array, items); if (!(val = strchr(list, '='))) { return FAILURE; @@ -164,10 +164,9 @@ 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); #ifdef ZEND_ENGINE_2 @@ -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); \ } \ \ @@ -359,15 +358,19 @@ PHP_HTTP_API char *_http_guess_content_type(const char *magicfile, long magicmod char *ct = NULL; #ifdef HTTP_HAVE_MAGIC - struct magic_set *magic = magic_open(magicmode); + /* magic_load() fails if MAGIC_MIME is set because it + cowardly adds .mime to the file name */ + struct magic_set *magic = magic_open(magicmode &~ MAGIC_MIME); if (!magic) { http_error_ex(HE_WARNING, HTTP_E_INVALID_PARAM, "Invalid magic mode: %ld", magicmode); } else if (-1 == magic_load(magic, magicfile)) { - http_error_ex(HE_WARNING, HTTP_E_RUNTIME, "Failed to load magic database '%s'", magicfile); + http_error_ex(HE_WARNING, HTTP_E_RUNTIME, "Failed to load magic database '%s' (%s)", magicfile, magic_error(magic)); } else { const char *ctype = NULL; + magic_setflags(magic, magicmode); + switch (data_mode) { case SEND_RSRC: