From: Jim Jagielski Date: Fri, 18 Dec 2009 14:10:56 +0000 (+0000) Subject: Merge r821298 from trunk: X-Git-Tag: 2.2.15~131 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7767de3a583f9460c9e7729d4bd213ecb78892cb;p=thirdparty%2Fapache%2Fhttpd.git Merge r821298 from trunk: Make RemoveType override the info from TypesConfig Submitted by: sf Reviewed/backported by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@892258 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index a71324f3c2d..5d5d88c0324 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,9 @@ Changes with Apache 2.2.15 control is still vulnerable, unless using OpenSSL >= 0.9.8l. [Joe Orton, Ruediger Pluem] + *) mod_mime: Make RemoveType override the info from TypesConfig. + PR 38330. [Stefan Fritsch] + *) Proxy: unable to connect to a backend is SERVICE_UNAVAILABLE, rather than BAD_GATEWAY or (especially) NOT_FOUND. PR 46971 [evanc nortel.com] diff --git a/STATUS b/STATUS index 22dd1e71ced..a807febe851 100644 --- a/STATUS +++ b/STATUS @@ -87,12 +87,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * mod_mime: Make RemoveType override the info from TypesConfig - PR 38330. - Trunk Patch: http://svn.apache.org/viewvc?rev=821298&view=rev - 2.2.x Patch: trunk patch works with some offset (except for CHANGES) - +1: sf, rpluem, rjung, jim - * build: fix --with-module option to work as documented PR 43881 Patch: http://svn.apache.org/viewvc?rev=880794&view=rev diff --git a/modules/http/mod_mime.c b/modules/http/mod_mime.c index a801a0ca1d4..eed6ebd9b93 100644 --- a/modules/http/mod_mime.c +++ b/modules/http/mod_mime.c @@ -273,6 +273,16 @@ static const char *add_extension_info(cmd_parms *cmd, void *m_, return NULL; } +/* + * As RemoveType should also override the info from TypesConfig, we add an + * empty string as type instead of actually removing the type. + */ +static const char *remove_extension_type(cmd_parms *cmd, void *m_, + const char *ext) +{ + return add_extension_info(cmd, m_, "", ext); +} + /* * Note handler names are un-added with each per_dir_config merge. * This keeps the association from being inherited, but not @@ -403,7 +413,7 @@ static const command_rec mime_cmds[] = AP_INIT_ITERATE("RemoveOutputFilter", remove_extension_info, (void *)APR_OFFSETOF(extension_info, output_filters), OR_FILEINFO, "one or more file extensions"), - AP_INIT_ITERATE("RemoveType", remove_extension_info, + AP_INIT_ITERATE("RemoveType", remove_extension_type, (void *)APR_OFFSETOF(extension_info, forced_type), OR_FILEINFO, "one or more file extensions"), AP_INIT_TAKE1("TypesConfig", set_types_config, NULL, RSRC_CONF, @@ -815,7 +825,8 @@ static int find_ct(request_rec *r) if (exinfo != NULL) { - if (exinfo->forced_type) { + /* empty string is treated as special case for RemoveType */ + if (exinfo->forced_type && *exinfo->forced_type) { ap_set_content_type(r, exinfo->forced_type); found = 1; }