MINOR: server: make use of srv_is_usable() instead of checking eweight
srv_is_usable() is broader than srv_is_usable() as it not only considers
the weight but the server's state as well. Future changes will allow a
server to be in drain mode with a non-zero weight, so we should migrate
to use that function instead.
diff --git a/src/lb_map.c b/src/lb_map.c
index df7af7f..be61b77 100644
--- a/src/lb_map.c
+++ b/src/lb_map.c
@@ -99,9 +99,8 @@
int max = 0;
best = NULL;
for (cur = px->srv; cur; cur = cur->next) {
- if (cur->eweight &&
- (cur->flags & SRV_F_BACKUP) == flag &&
- (cur->state == SRV_ST_STARTING || cur->state == SRV_ST_RUNNING)) {
+ if ((cur->flags & SRV_F_BACKUP) == flag &&
+ srv_is_usable(cur)) {
int v;
/* If we are forced to return only one server, we don't want to
diff --git a/src/queue.c b/src/queue.c
index 8b4d9ed..74fa659 100644
--- a/src/queue.c
+++ b/src/queue.c
@@ -204,7 +204,7 @@
{
int xferred;
- if (!s->eweight)
+ if (!srv_is_usable(s))
return 0;
for (xferred = 0; !s->maxconn || xferred < srv_dynamic_maxconn(s); xferred++) {
diff --git a/src/server.c b/src/server.c
index 98ac2cd..857c8aa 100644
--- a/src/server.c
+++ b/src/server.c
@@ -637,7 +637,7 @@
/* now propagate the status change to any LB algorithms */
if (px->lbprm.update_server_eweight)
px->lbprm.update_server_eweight(sv);
- else if (sv->eweight) {
+ else if (srv_is_usable(sv)) {
if (px->lbprm.set_server_status_up)
px->lbprm.set_server_status_up(sv);
}