From: Eric Covener Date: Fri, 29 May 2015 14:22:10 +0000 (+0000) Subject: PR 57968: Don't lowercase the argument to SetHandler if the handler is X-Git-Tag: 2.5.0-alpha~3119 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=af395fada2c625abc02c9c9ffcdb7732f23dedad;p=apache PR 57968: Don't lowercase the argument to SetHandler if the handler is proxy:unix. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1682482 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 3ee116c823..88db7237d5 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) core: Don't lowercase the argument to SetHandler if it begins with + "proxy:unix". PR 57968. [Eric Covener] + *) mod_ssl: add ALPN support by allowing other modules to register callbacks for negotiation of the application layer protocol. PR 52210. [Matthew Steele , Joe Orton, Jim Jagielski, diff --git a/server/core.c b/server/core.c index 67875bdb3f..7138444070 100644 --- a/server/core.c +++ b/server/core.c @@ -1926,6 +1926,24 @@ static const char *set_default_type(cmd_parms *cmd, void *d_, return NULL; } +static const char *set_sethandler(cmd_parms *cmd, + void *d_, + const char *arg_) +{ + core_dir_config *dirconf = d_; + + if (arg_ == ap_strstr_c(arg_, "proxy:unix")) { + dirconf->handler = arg_; + } + else { + char *arg = apr_pstrdup(cmd->pool,arg_); + ap_str_tolower(arg); + dirconf->handler = arg; + } + + return NULL; +} + /* * Note what data should be used when forming file ETag values. * It would be nicer to do this as an ITERATE, but then we couldn't @@ -4371,8 +4389,7 @@ AP_INIT_FLAG("CGIPassAuth", set_cgi_pass_auth, NULL, OR_AUTHCFG, AP_INIT_TAKE1("ForceType", ap_set_string_slot_lower, (void *)APR_OFFSETOF(core_dir_config, mime_type), OR_FILEINFO, "a mime type that overrides other configured type"), -AP_INIT_TAKE1("SetHandler", ap_set_string_slot_lower, - (void *)APR_OFFSETOF(core_dir_config, handler), OR_FILEINFO, +AP_INIT_TAKE1("SetHandler", set_sethandler, NULL, OR_FILEINFO, "a handler name that overrides any other configured handler"), AP_INIT_TAKE1("SetOutputFilter", ap_set_string_slot, (void *)APR_OFFSETOF(core_dir_config, output_filters), OR_FILEINFO,