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,
|
REGEX_MATCH,
|
||||||
INT_EQ,
|
INT_EQ,
|
||||||
INT_LT,
|
INT_LT,
|
||||||
|
INT_LE,
|
||||||
INT_GT,
|
INT_GT,
|
||||||
|
INT_GE,
|
||||||
DEFINED
|
DEFINED
|
||||||
} match_type;
|
} match_type;
|
||||||
|
|
||||||
|
|||||||
@@ -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 '<':
|
||||||
|
if (*match == '=') {
|
||||||
|
provider->match_type = INT_LE;
|
||||||
|
++match;
|
||||||
|
}
|
||||||
|
else {
|
||||||
provider->match_type = INT_LT;
|
provider->match_type = INT_LT;
|
||||||
|
}
|
||||||
provider->match.number = atoi(match);
|
provider->match.number = atoi(match);
|
||||||
break;
|
break;
|
||||||
case '>':
|
case '>':
|
||||||
|
if (*match == '=') {
|
||||||
|
provider->match_type = INT_GE;
|
||||||
|
++match;
|
||||||
|
}
|
||||||
|
else {
|
||||||
provider->match_type = INT_GT;
|
provider->match_type = INT_GT;
|
||||||
|
}
|
||||||
provider->match.number = atoi(match);
|
provider->match.number = atoi(match);
|
||||||
break;
|
break;
|
||||||
case '=':
|
case '=':
|
||||||
|
|||||||
Reference in New Issue
Block a user