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

loadfactor now decimal

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1805188 13f79535-47bb-0310-9956-ffa450edef68
parent d6e955ca
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
                                                         -*- coding: utf-8 -*-
Changes with Apache 2.5.0

  *) mod_proxy: loadfactor parameter can now be a decimal number (eg: 1.25).
     [Jim Jagielski]

  *) mod_ssl: add SSLPolicy (define/use) and SSLProxyPolicy directives plus documentation. Add
     core definitions for policies 'modern', 'intermediate' and 'old', as defined by Mozilla
     in <https://wiki.mozilla.org/Security/Server_Side_TLS>. [Stefan Eissing]
+3 −3
Original line number Diff line number Diff line
@@ -797,8 +797,8 @@ expressions</description>
            directive and can take any of the key value pair parameters available to
            <directive module="mod_proxy">ProxyPass</directive> directives.</p>
        <p>One additional parameter is available only to <directive>BalancerMember</directive> directives:
            <var>loadfactor</var>. This is the member load factor - a number between 1
            (default) and 100, which defines the weighted load to be applied to the
            <var>loadfactor</var>. This is the member load factor - a floating pount number between 1.0
            (default) and 100.0, which defines the weighted load to be applied to the
            member in question.</p>
        <p>The <var>balancerurl</var> is only needed when not within a
            <code>&lt;Proxy <var>balancer://</var>...&gt;</code>
@@ -1355,7 +1355,7 @@ ProxyPass "/" "balancer://mycluster/" stickysession=JSESSIONID|jsess
ProxyPass "/" "balancer://hotcluster/"
&lt;Proxy balancer://hotcluster&gt;
    BalancerMember ajp://1.2.3.4:8009 loadfactor=1
    BalancerMember ajp://1.2.3.5:8009 loadfactor=2
    BalancerMember ajp://1.2.3.5:8009 loadfactor=2.5
    # The server below is on hot standby
    BalancerMember ajp://1.2.3.6:8009 status=+H
    ProxySet lbmethod=bytraffic
+5 −5
Original line number Diff line number Diff line
top_srcdir   = /Users/sei/projects/httpd/trunk
top_builddir = /Users/sei/projects/httpd/trunk
srcdir       = /Users/sei/projects/httpd/trunk/modules/md
builddir     = /Users/sei/projects/httpd/trunk/modules/md
VPATH        = /Users/sei/projects/httpd/trunk/modules/md
top_srcdir   = /Users/jim/src/asf/code/dev/httpd-git-trunk
top_builddir = /Users/jim/src/asf/code/dev/httpd-git-trunk
srcdir       = /Users/jim/src/asf/code/dev/httpd-git-trunk/modules/md
builddir     = /Users/jim/src/asf/code/dev/httpd-git-trunk/modules/md
VPATH        = /Users/jim/src/asf/code/dev/httpd-git-trunk/modules/md
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
+3 −2
Original line number Diff line number Diff line
@@ -106,7 +106,8 @@ static const char *set_worker_param(apr_pool_t *p,
        /* Normalized load factor. Used with BalancerMember,
         * it is a number between 1 and 100.
         */
        ival = atoi(val);
        double fval = atof(val);
        ival = fval * 100.0;
        if (ival < 1 || ival > 100)
            return "LoadFactor must be a number between 1..100";
        worker->s->lbfactor = ival;
@@ -2882,7 +2883,7 @@ static int proxy_status_hook(request_rec *r, int flags)
                ap_rvputs(r, ap_proxy_parse_wstatus(r->pool, *worker), NULL);
                ap_rvputs(r, "</td><td>", (*worker)->s->route, NULL);
                ap_rvputs(r, "</td><td>", (*worker)->s->redirect, NULL);
                ap_rprintf(r, "</td><td>%d</td>", (*worker)->s->lbfactor);
                ap_rprintf(r, "</td><td>%f.2</td>", (float)((*worker)->s->lbfactor)/100.0);
                ap_rprintf(r, "<td>%d</td>", (*worker)->s->lbset);
                ap_rprintf(r, "<td>%" APR_SIZE_T_FMT "</td><td>",
                           (*worker)->s->elected);
+11 −9
Original line number Diff line number Diff line
@@ -700,10 +700,10 @@ static void recalc_factors(proxy_balancer *balancer)
    /* Recalculate lbfactors */
    workers = (proxy_worker **)balancer->workers->elts;
    /* Special case if there is only one worker its
     * load factor will always be 1
     * load factor will always be 100
     */
    if (balancer->workers->nelts == 1) {
        (*workers)->s->lbstatus = (*workers)->s->lbfactor = 1;
        (*workers)->s->lbstatus = (*workers)->s->lbfactor = 100;
        return;
    }
    for (i = 0; i < balancer->workers->nelts; i++) {
@@ -1093,7 +1093,9 @@ static int balancer_handler(request_rec *r)
        ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(01192) "settings worker params");

        if ((val = apr_table_get(params, "w_lf"))) {
            int ival = atoi(val);
            int ival;
            double fval = atof(val);
            ival = fval * 100.0;
            if (ival >= 1 && ival <= 100) {
                wsel->s->lbfactor = ival;
                if (bsel)
@@ -1362,8 +1364,8 @@ static int balancer_handler(request_rec *r)
                          "</httpd:scheme>\n", NULL);
                ap_rvputs(r, "          <httpd:hostname>", worker->s->hostname,
                          "</httpd:hostname>\n", NULL);
                ap_rprintf(r, "          <httpd:loadfactor>%d</httpd:loadfactor>\n",
                          worker->s->lbfactor);
                ap_rprintf(r, "          <httpd:loadfactor>%f.2</httpd:loadfactor>\n",
                          (float)(worker->s->lbfactor)/100.0);
                ap_rprintf(r,
                           "          <httpd:port>%d</httpd:port>\n",
                           worker->s->port);
@@ -1416,8 +1418,8 @@ static int balancer_handler(request_rec *r)
                           "          <httpd:lbstatus>%d</httpd:lbstatus>\n",
                           worker->s->lbstatus);
                ap_rprintf(r,
                           "          <httpd:loadfactor>%d</httpd:loadfactor>\n",
                           worker->s->lbfactor);
                           "          <httpd:loadfactor>%f.2</httpd:loadfactor>\n",
                           (float)(worker->s->lbfactor)/100.0);
                ap_rprintf(r,
                           "          <httpd:transferred>%" APR_OFF_T_FMT "</httpd:transferred>\n",
                           worker->s->transferred);
@@ -1603,7 +1605,7 @@ static int balancer_handler(request_rec *r)
                          NULL);
                ap_rvputs(r, "</td><td>",
                          ap_escape_html(r->pool, worker->s->redirect), NULL);
                ap_rprintf(r, "</td><td>%d</td>", worker->s->lbfactor);
                ap_rprintf(r, "</td><td>%f.2</td>", (float)(worker->s->lbfactor)/100.0);
                ap_rprintf(r, "<td>%d</td><td>", worker->s->lbset);
                ap_rvputs(r, ap_proxy_parse_wstatus(r->pool, worker), NULL);
                ap_rputs("</td>", r);
@@ -1638,7 +1640,7 @@ static int balancer_handler(request_rec *r)
            ap_rputs("<form method='POST' enctype='application/x-www-form-urlencoded' action='", r);
            ap_rvputs(r, ap_escape_uri(r->pool, action), "'>\n", NULL);
            ap_rputs("<table><tr><td>Load factor:</td><td><input name='w_lf' id='w_lf' type=text ", r);
            ap_rprintf(r, "value='%d'></td></tr>\n", wsel->s->lbfactor);
            ap_rprintf(r, "value='%f.2'></td></tr>\n", (float)(wsel->s->lbfactor)/100.0);
            ap_rputs("<tr><td>LB Set:</td><td><input name='w_ls' id='w_ls' type=text ", r);
            ap_rprintf(r, "value='%d'></td></tr>\n", wsel->s->lbset);
            ap_rputs("<tr><td>Route:</td><td><input name='w_wr' id='w_wr' type=text ", r);
Loading