From af395fada2c625abc02c9c9ffcdb7732f23dedad Mon Sep 17 00:00:00 2001 From: Eric Covener Date: Fri, 29 May 2015 14:22:10 +0000 Subject: [PATCH] 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 --- CHANGES | 3 +++ server/core.c | 21 +++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) 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, -- 2.40.0