Phil Endecott wrote:
Phil Endecott wrote:
I'm going to have another look at the source, and see whether I can change the sentinel value for "smax not specified" from 0 to -1, so that 0 can really mean zero.

I have tried the following:

Index: proxy_util.c
===================================================================
--- proxy_util.c        (revision 573391)
+++ proxy_util.c        (working copy)
@@ -1752,7 +1752,7 @@
          if (worker->hmax == 0 || worker->hmax > mpm_threads) {
              worker->hmax = mpm_threads;
          }
-        if (worker->smax == 0 || worker->smax > worker->hmax) {
+        if (worker->smax == -1 || worker->smax > worker->hmax) {
              worker->smax = worker->hmax;
          }
          /* Set min to be lower then smax */
Index: mod_proxy.c
===================================================================
--- mod_proxy.c (revision 573391)
+++ mod_proxy.c (working copy)
@@ -1263,6 +1263,7 @@
          }
          PROXY_COPY_CONF_PARAMS(worker, conf);

+        worker->smax = -1;
          for (i = 0; i < arr->nelts; i++) {
              const char *err = set_worker_param(cmd->pool, worker, elts[i].key,
                                                 elts[i].val);

This does seem to result in smax=0 being used, but it breaks something; as far as I can see the requests never reach the backend. I have taken the source from trunk and am loading the module into my 2.2.4 server

OK, I've tried again with the same patch applied to the 2.2.4 source, and it seems to be somewhat working; I think I've seen the backend drop to zero connections.

I would much appreciate some input from someone who knows their way around this code.

Please!


Regards,

Phil.




Reply via email to