From: Nick Kew Date: Thu, 22 Jul 2010 22:27:42 +0000 (+0000) Subject: Support multiple names in reimplemented AddOutputFilterByType X-Git-Tag: 2.3.7~65 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ebdf9d85d0829267fa1589ffbb10d4a82614ee65;p=thirdparty%2Fapache%2Fhttpd.git Support multiple names in reimplemented AddOutputFilterByType git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@966881 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/filters/mod_filter.c b/modules/filters/mod_filter.c index dc48a80b5f3..22042c1dbc5 100644 --- a/modules/filters/mod_filter.c +++ b/modules/filters/mod_filter.c @@ -510,8 +510,8 @@ static const char *filter_chain(cmd_parms *cmd, void *CFG, const char *arg) return NULL; } -static const char *filter_bytype(cmd_parms *cmd, void *CFG, - const char *pname, const char *type) +static const char *filter_bytype1(cmd_parms *cmd, void *CFG, + const char *pname, const char *type) { char *etype; char *p; @@ -552,6 +552,21 @@ static const char *filter_bytype(cmd_parms *cmd, void *CFG, } return rv; } +static const char *filter_bytype(cmd_parms *cmd, void *CFG, + const char *names, const char *type) +{ + /* back compatibility, need to parse multiple components in pname */ + char *pname; + char *strtok_state = NULL; + char *name = apr_pstrdup(cmd->pool, names); + const char *rv = NULL; + for (pname = apr_strtok(name, ";", &strtok_state); + pname != NULL && rv == NULL; + pname = apr_strtok(NULL, ";", &strtok_state)) { + rv = filter_bytype1(cmd, CFG, pname, type); + } + return rv; +} static const char *filter_debug(cmd_parms *cmd, void *CFG, const char *fname, const char *level)