mirror of
https://github.com/apache/httpd.git
synced 2025-11-08 04:22:21 +03:00
allow <= and >= for filter dispatcher
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105507 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -275,7 +275,9 @@ struct ap_filter_provider_t {
|
||||
REGEX_MATCH,
|
||||
INT_EQ,
|
||||
INT_LT,
|
||||
INT_LE,
|
||||
INT_GT,
|
||||
INT_GE,
|
||||
DEFINED
|
||||
} match_type;
|
||||
|
||||
|
||||
@@ -170,11 +170,21 @@ static ap_out_filter_func filter_lookup(request_rec *r, ap_filter_rec_t *filter)
|
||||
match = 0;
|
||||
}
|
||||
break;
|
||||
case INT_LE:
|
||||
if (atoi(str) <= provider->match.number) {
|
||||
match = 0;
|
||||
}
|
||||
break;
|
||||
case INT_GT:
|
||||
if (atoi(str) > provider->match.number) {
|
||||
match = 0;
|
||||
}
|
||||
break;
|
||||
case INT_GE:
|
||||
if (atoi(str) >= provider->match.number) {
|
||||
match = 0;
|
||||
}
|
||||
break;
|
||||
case DEFINED: /* we already handled this:-) */
|
||||
break;
|
||||
}
|
||||
@@ -486,11 +496,23 @@ static const char *filter_provider(cmd_parms *cmd, void *CFG, const char *fname,
|
||||
|
||||
switch (*match++) {
|
||||
case '<':
|
||||
if (*match == '=') {
|
||||
provider->match_type = INT_LE;
|
||||
++match;
|
||||
}
|
||||
else {
|
||||
provider->match_type = INT_LT;
|
||||
}
|
||||
provider->match.number = atoi(match);
|
||||
break;
|
||||
case '>':
|
||||
if (*match == '=') {
|
||||
provider->match_type = INT_GE;
|
||||
++match;
|
||||
}
|
||||
else {
|
||||
provider->match_type = INT_GT;
|
||||
}
|
||||
provider->match.number = atoi(match);
|
||||
break;
|
||||
case '=':
|
||||
|
||||
Reference in New Issue
Block a user