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, REGEX_MATCH,
INT_EQ, INT_EQ,
INT_LT, INT_LT,
INT_LE,
INT_GT, INT_GT,
INT_GE,
DEFINED DEFINED
} match_type; } 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; match = 0;
} }
break; break;
case INT_LE:
if (atoi(str) <= provider->match.number) {
match = 0;
}
break;
case INT_GT: case INT_GT:
if (atoi(str) > provider->match.number) { if (atoi(str) > provider->match.number) {
match = 0; match = 0;
} }
break; break;
case INT_GE:
if (atoi(str) >= provider->match.number) {
match = 0;
}
break;
case DEFINED: /* we already handled this:-) */ case DEFINED: /* we already handled this:-) */
break; break;
} }
@@ -486,11 +496,23 @@ static const char *filter_provider(cmd_parms *cmd, void *CFG, const char *fname,
switch (*match++) { switch (*match++) {
case '<': case '<':
provider->match_type = INT_LT; if (*match == '=') {
provider->match_type = INT_LE;
++match;
}
else {
provider->match_type = INT_LT;
}
provider->match.number = atoi(match); provider->match.number = atoi(match);
break; break;
case '>': case '>':
provider->match_type = INT_GT; if (*match == '=') {
provider->match_type = INT_GE;
++match;
}
else {
provider->match_type = INT_GT;
}
provider->match.number = atoi(match); provider->match.number = atoi(match);
break; break;
case '=': case '=':