if (!strcasecmp(key, "loadfactor")) {
/* Normalized load factor. Used with BalancerMember,
- * it is a number between 1 and 100.
+ * it is a number between 1 and 100 (or 0.01 and 1.0).
*/
double fval = atof(val);
ival = fval * 100.0;
if (ival < 100 || ival > 10000)
return "LoadFactor must be a number between 1..100";
- worker->s->lbfactor = ival;
+ worker->s->lbfactor = ival / 100;
}
else if (!strcasecmp(key, "retry")) {
/* If set it will give the retry timeout for the worker
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>%.2f</td>", (float)((*worker)->s->lbfactor)/100.0);
+ ap_rprintf(r, "</td><td>%d</td>", (*worker)->s->lbfactor);
ap_rprintf(r, "<td>%d</td>", (*worker)->s->lbset);
ap_rprintf(r, "<td>%" APR_SIZE_T_FMT "</td><td>",
(*worker)->s->elected);
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(01192) "settings worker params");
if ((val = apr_table_get(params, "w_lf"))) {
- int ival;
double fval = atof(val);
- ival = fval * 100.0;
+ int ival = fval * 100.0;
if (ival >= 100 && ival <= 10000) {
- wsel->s->lbfactor = ival;
+ wsel->s->lbfactor = ival / 100;
if (bsel)
recalc_factors(bsel);
}
"</httpd:scheme>\n", NULL);
ap_rvputs(r, " <httpd:hostname>", worker->s->hostname,
"</httpd:hostname>\n", NULL);
- ap_rprintf(r, " <httpd:loadfactor>%.2f</httpd:loadfactor>\n",
- (float)(worker->s->lbfactor)/100.0);
+ ap_rprintf(r, " <httpd:loadfactor>%d</httpd:loadfactor>\n",
+ worker->s->lbfactor);
ap_rprintf(r,
" <httpd:port>%d</httpd:port>\n",
worker->s->port);
" <httpd:lbstatus>%d</httpd:lbstatus>\n",
worker->s->lbstatus);
ap_rprintf(r,
- " <httpd:loadfactor>%.2f</httpd:loadfactor>\n",
- (float)(worker->s->lbfactor)/100.0);
+ " <httpd:loadfactor>%d</httpd:loadfactor>\n",
+ worker->s->lbfactor);
ap_rprintf(r,
" <httpd:transferred>%" APR_OFF_T_FMT "</httpd:transferred>\n",
worker->s->transferred);
NULL);
ap_rvputs(r, "</td><td>",
ap_escape_html(r->pool, worker->s->redirect), NULL);
- ap_rprintf(r, "</td><td>%.2f</td>", (float)(worker->s->lbfactor)/100.0);
+ ap_rprintf(r, "</td><td>%d</td>", worker->s->lbfactor);
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);
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='%.2f'></td></tr>\n", (float)(wsel->s->lbfactor)/100.0);
+ ap_rprintf(r, "value='%d'></td></tr>\n", wsel->s->lbfactor);
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);