Commit 76c42ec0 authored by Andre Malo's avatar Andre Malo
Browse files

allow <= and >= for filter dispatcher


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105507 13f79535-47bb-0310-9956-ffa450edef68
parent 68989b02
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -275,7 +275,9 @@ struct ap_filter_provider_t {
        REGEX_MATCH,
        INT_EQ,
        INT_LT,
        INT_LE,
        INT_GT,
        INT_GE,
        DEFINED
    } match_type;

+24 −2
Original line number Diff line number Diff line
@@ -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 '=':