Commit 65ea67ad authored by Mladen Turk's avatar Mladen Turk
Browse files

First try the reverse proxies. If there is no worker defined for

requested uri use the forward worker, but only for PROXYREQ_PROXY
requests.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105048 13f79535-47bb-0310-9956-ffa450edef68
parent e2900677
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -1237,16 +1237,6 @@ PROXY_DECLARE(int) ap_proxy_pre_request(proxy_worker **worker,
{
    int access_status;
    
    if (r->proxyreq == PROXYREQ_PROXY) {
        if (conf->forward) {
            *balancer = NULL;
            *worker = conf->forward;
            access_status = OK;
        }
        else
            access_status = DECLINED;
        return access_status;
    }
    access_status = proxy_run_pre_request(worker, balancer, r, conf, url);
    if (access_status == DECLINED && *balancer == NULL) {
        *worker = ap_proxy_get_worker(r->pool, conf, *url);
@@ -1254,8 +1244,13 @@ PROXY_DECLARE(int) ap_proxy_pre_request(proxy_worker **worker,
            *balancer = NULL;
            access_status = OK;
        }
        else
            access_status = DECLINED;
        else if (r->proxyreq == PROXYREQ_PROXY) {
            if (conf->forward) {
                *balancer = NULL;
                *worker = conf->forward;
                access_status = OK;
            }
        }
    }
    else if (access_status == DECLINED && balancer != NULL) {
        /* All the workers are busy */