]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: Replace repeated code to count usable servers with be_usable_srv()
authorNenad Merdanovic <nmerdan@haproxy.com>
Sun, 12 Mar 2017 20:56:56 +0000 (21:56 +0100)
committerWilly Tarreau <w@1wt.eu>
Mon, 13 Mar 2017 17:26:05 +0000 (18:26 +0100)
2 places were using an open-coded implementation of this function to count
available servers. Note that the avg_queue_size() fetch didn't check that
the proxy was in STOPPED state so it would possibly return a wrong server
count here but that wouldn't impact the returned value.

Signed-off-by: Nenad Merdanovic <nmerdan@haproxy.com>
src/backend.c

index 5e2b8fc56a930607a3fb4c3480d51217be6c4e92..b0e03323a57231327d24d1ec12cd12fca88ba073 100644 (file)
@@ -1614,14 +1614,7 @@ smp_fetch_nbsrv(const struct arg *args, struct sample *smp, const char *kw, void
        smp->data.type = SMP_T_SINT;
        px = args->data.prx;
 
-       if (px->state == PR_STSTOPPED)
-               smp->data.u.sint = 0;
-       else if (px->srv_act)
-               smp->data.u.sint = px->srv_act;
-       else if (px->lbprm.fbck)
-               smp->data.u.sint = 1;
-       else
-               smp->data.u.sint = px->srv_bck;
+       smp->data.u.sint = be_usable_srv(px);
 
        return 1;
 }
@@ -1780,12 +1773,7 @@ smp_fetch_avg_queue_size(const struct arg *args, struct sample *smp, const char
        smp->data.type = SMP_T_SINT;
        px = args->data.prx;
 
-       if (px->srv_act)
-               nbsrv = px->srv_act;
-       else if (px->lbprm.fbck)
-               nbsrv = 1;
-       else
-               nbsrv = px->srv_bck;
+       nbsrv = be_usable_srv(px);
 
        if (nbsrv > 0)
                smp->data.u.sint = (px->totpend + nbsrv - 1) / nbsrv;