Commit c9eac71c authored by Jim Jagielski's avatar Jim Jagielski
Browse files

Expose this as part of the API. That way, other code/modules

which want to overload mod_proxy's trans phase can use it to
handle ProxyPass as well, without requiring monkeying
with conf->aliases...

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1068400 13f79535-47bb-0310-9956-ffa450edef68
parent 9ae1372e
Loading
Loading
Loading
Loading
+4 −4
Changes for modules/proxy/mod_proxy.c: 4 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -539,7 +539,7 @@ static apr_array_header_t *proxy_vars(request_rec *r,
    return ret;
}

static int proxy_trans_match(request_rec *r, struct proxy_alias *ent,
PROXY_DECLARE(int) ap_proxy_trans_match(request_rec *r, struct proxy_alias *ent,
                                        proxy_dir_conf *dconf)
{
    int len;
@@ -552,7 +552,7 @@ static int proxy_trans_match(request_rec *r, struct proxy_alias *ent,
    unsigned int nocanon = ent->flags & PROXYPASS_NOCANON;
    const char *use_uri = nocanon ? r->unparsed_uri : r->uri;

    if ((dconf->interpolate_env == 1) && (ent->flags & PROXYPASS_INTERPOLATE)) {
    if (dconf && (dconf->interpolate_env == 1) && (ent->flags & PROXYPASS_INTERPOLATE)) {
        fake = proxy_interpolate(r, ent->fake);
        real = proxy_interpolate(r, ent->real);
    }
@@ -653,7 +653,7 @@ static int proxy_trans(request_rec *r)

    /* short way - this location is reverse proxied? */
    if (dconf->alias) {
        int rv = proxy_trans_match(r, dconf->alias, dconf);
        int rv = ap_proxy_trans_match(r, dconf->alias, dconf);
        if (DONE != rv) {
            return rv;
        }
@@ -666,7 +666,7 @@ static int proxy_trans(request_rec *r)
    if (conf->aliases->nelts) {
        ent = (struct proxy_alias *) conf->aliases->elts;
        for (i = 0; i < conf->aliases->nelts; i++) {
            int rv = proxy_trans_match(r, &ent[i], dconf);
            int rv = ap_proxy_trans_match(r, &ent[i], dconf);
            if (DONE != rv) {
                return rv;
            }
+11 −0
Changes for modules/proxy/mod_proxy.h: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -863,6 +863,17 @@ PROXY_DECLARE(char *) ap_proxy_parse_wstatus(apr_pool_t *p, proxy_worker *w);
PROXY_DECLARE(apr_status_t) ap_proxy_update_members(proxy_balancer *b, server_rec *s,
                                                    proxy_server_conf *conf);


/**
 * Find the matched alias for this request and setup for proxy handler
 * @param r     request
 * @param ent   proxy_alias record
 * @param dconf per-dir config or NULL
 * @return      DECLINED, DONE or OK if matched
 */
PROXY_DECLARE(int) ap_proxy_trans_match(request_rec *r, struct proxy_alias *ent,
                                        proxy_dir_conf *dconf);

#define PROXY_LBMETHOD "proxylbmethod"

/* The number of dynamic workers that can be added when reconfiguring.