]> granicus.if.org Git - apache/commitdiff
Do not add forward proxy to other proxies. Use new function to
authorMladen Turk <mturk@apache.org>
Sat, 11 Sep 2004 09:31:10 +0000 (09:31 +0000)
committerMladen Turk <mturk@apache.org>
Sat, 11 Sep 2004 09:31:10 +0000 (09:31 +0000)
create the worker that isn't by default added to the list of other workers.
This enalbles mixing forward and reverse proxy functionality on the same box.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105070 13f79535-47bb-0310-9956-ffa450edef68

modules/proxy/mod_proxy.c
modules/proxy/mod_proxy.h
modules/proxy/proxy_util.c

index d16ae55b5f2c0e41785a0017a901d67ec451f060..22607ade9450496beaad1c557054bd9c78f9dbb1 100644 (file)
@@ -1114,19 +1114,17 @@ static const char *
 static const char *
     set_proxy_req(cmd_parms *parms, void *dummy, int flag)
 {
-    const char *err;
     proxy_server_conf *psf =
     ap_get_module_config(parms->server->module_config, &proxy_module);
 
     psf->req = flag;
     psf->req_set = 1;
 
-    if (flag) {
-        /* Add default forward proxy worker */
-        if ((err = ap_proxy_add_worker(&(psf->forward), parms->pool,
-                                       psf, "*://*:0"))) {
-            return apr_pstrcat(parms->temp_pool, "ProxyRequests ", err, NULL); 
-        }
+    if (flag && !psf->forward) {
+        psf->forward = ap_proxy_create_worker(parms->pool);
+        psf->forward->name     = "proxy:forward";
+        psf->forward->hostname = "*";
+        psf->forward->scheme   = "*";
 
         /* Do not disable worker in case of errors */
         psf->forward->status = PROXY_WORKER_IGNORE_ERRORS;
@@ -1610,8 +1608,8 @@ static int proxy_post_config(apr_pool_t *pconf, apr_pool_t *plog,
         ap_proxy_initialize_worker(worker, s);
         worker++;
     }
-
-    ap_proxy_initialize_worker(conf->forward, s);
+    if (conf->forward)
+        ap_proxy_initialize_worker(conf->forward, s);
 
     return OK;
 }
index caba7ad362157a070235a22b93d30f63d57082c8..24fb7c1511a5a33b07392e7d450ee8c684e7ac65 100644 (file)
@@ -409,6 +409,13 @@ PROXY_DECLARE(const char *) ap_proxy_add_worker(proxy_worker **worker,
                                                 proxy_server_conf *conf,
                                                 const char *url);
 
+/**
+ * Create new worker
+ * @param p      memory pool to allocate worker from 
+ * @return       new worker
+ */
+PROXY_DECLARE(proxy_worker *) ap_proxy_create_worker(apr_pool_t *p);
+
 /**
  * Initize the worker
  * @param worker the new worker
index 66e9438ba6177af70d2bce45d905b3549de360c3..4f743621d895d901240cbd807aa16bfd09d732e3 100644 (file)
@@ -1149,6 +1149,16 @@ PROXY_DECLARE(const char *) ap_proxy_add_worker(proxy_worker **worker,
     return NULL;
 }
 
+PROXY_DECLARE(proxy_worker *) ap_proxy_create_worker(apr_pool_t *p)
+{
+
+    proxy_worker *worker;
+    worker = (proxy_worker *)apr_pcalloc(p, sizeof(proxy_worker));
+    init_conn_pool(p, worker);
+
+    return worker;
+}
+
 PROXY_DECLARE(void) 
 ap_proxy_add_worker_to_balancer(apr_pool_t *pool, proxy_balancer *balancer, proxy_worker *worker)
 {