MINOR: listeners: check the current listener earlier state in resume_listener()
authorWilly Tarreau <w@1wt.eu>
Thu, 24 Sep 2020 16:54:11 +0000 (18:54 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 9 Oct 2020 09:27:30 +0000 (11:27 +0200)
It's quite confusing to have the test on LI_READY very low in the function
as it should be made much earlier. Just like with previous commit, let's
do it when entering. The additional states, however (limited, full) continue
to go through the whole function.

src/listener.c

index 6370a9f..6327949 100644 (file)
@@ -395,6 +395,9 @@ int resume_listener(struct listener *l)
            !(proc_mask(l->rx.settings->bind_proc) & pid_bit))
                goto end;
 
+       if (l->state == LI_READY)
+               goto end;
+
        if (l->state == LI_ASSIGNED) {
                char msg[100];
                int err;
@@ -423,9 +426,6 @@ int resume_listener(struct listener *l)
                goto end;
        }
 
-       if (l->state == LI_READY)
-               goto end;
-
        if (l->maxconn && l->nbconn >= l->maxconn) {
                listener_set_state(l, LI_FULL);
                goto end;