MINOR: server: create srv_was_usable() from srv_is_usable() and use a pointer
We used to call srv_is_usable() with either the current state and weights
or the previous ones. This causes trouble for future changes, so let's first
split it in two variants :
- srv_is_usable(srv) considers the current status
- srv_was_usable(srv) considers the previous status
diff --git a/src/lb_fas.c b/src/lb_fas.c
index b8b0569..7bd3d05 100644
--- a/src/lb_fas.c
+++ b/src/lb_fas.c
@@ -80,10 +80,10 @@
if (!srv_lb_status_changed(srv))
return;
- if (srv_is_usable(srv->state, srv->eweight))
+ if (srv_is_usable(srv))
goto out_update_state;
- if (!srv_is_usable(srv->prev_state, srv->prev_eweight))
+ if (!srv_was_usable(srv))
/* server was already down */
goto out_update_backend;
@@ -100,7 +100,7 @@
srv2 = srv2->next;
} while (srv2 &&
!((srv2->state & SRV_BACKUP) &&
- srv_is_usable(srv2->state, srv2->eweight)));
+ srv_is_usable(srv2)));
p->lbprm.fbck = srv2;
}
} else {
@@ -132,10 +132,10 @@
if (!srv_lb_status_changed(srv))
return;
- if (!srv_is_usable(srv->state, srv->eweight))
+ if (!srv_is_usable(srv))
goto out_update_state;
- if (srv_is_usable(srv->prev_state, srv->prev_eweight))
+ if (srv_was_usable(srv))
/* server was already up */
goto out_update_backend;
@@ -195,8 +195,8 @@
* possibly a new tree for this server.
*/
- old_state = srv_is_usable(srv->prev_state, srv->prev_eweight);
- new_state = srv_is_usable(srv->state, srv->eweight);
+ old_state = srv_was_usable(srv);
+ new_state = srv_is_usable(srv);
if (!old_state && !new_state) {
srv_lb_commit_status(srv);
@@ -257,7 +257,7 @@
/* queue active and backup servers in two distinct groups */
for (srv = p->srv; srv; srv = srv->next) {
- if (!srv_is_usable(srv->state, srv->eweight))
+ if (!srv_is_usable(srv))
continue;
srv->lb_tree = (srv->state & SRV_BACKUP) ? &p->lbprm.fas.bck : &p->lbprm.fas.act;
fas_queue_srv(srv);