diff --git a/src/lb_fwrr.c b/src/lb_fwrr.c index 311698f82..d419b8ee5 100644 --- a/src/lb_fwrr.c +++ b/src/lb_fwrr.c @@ -552,7 +552,7 @@ struct server *fwrr_get_next_server(struct proxy *p, struct server *srvtoavoid) if (switched) { if (avoided) { srv = avoided; - break; + goto take_this_one; } goto requeue_servers; } @@ -582,6 +582,7 @@ struct server *fwrr_get_next_server(struct proxy *p, struct server *srvtoavoid) full = srv; } + take_this_one: /* OK, we got the best server, let's update it */ fwrr_queue_srv(srv);