X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_api.c;h=eec41daa0d7068d964cc26ab7377e15dc6b78fba;hp=abc2c9beeb155a925b1b4e8dcf52568bc8ba0d86;hb=c04184b2188a60efed4753d7eef7f3952aed9cef;hpb=afd561b680a07837192efbdb9ffe248def36f8e9;ds=sidebyside diff --git a/http_api.c b/http_api.c index abc2c9b..eec41da 100644 --- a/http_api.c +++ b/http_api.c @@ -358,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: