1
0
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:
André Malo
2004-10-17 18:31:44 +00:00
parent bb5a48b58e
commit a9a11aab67
2 changed files with 26 additions and 2 deletions

View File

@@ -275,7 +275,9 @@ struct ap_filter_provider_t {
REGEX_MATCH,
INT_EQ,
INT_LT,
INT_LE,
INT_GT,
INT_GE,
DEFINED
} match_type;

View File

@@ -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 '=':