]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: proxy: remove the first_to_listen hack in zombify_proxy()
authorWilly Tarreau <w@1wt.eu>
Wed, 23 Sep 2020 16:16:03 +0000 (18:16 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 9 Oct 2020 09:27:29 +0000 (11:27 +0200)
This thing was needed for an optimization used in soft_stop() which
doesn't exist anymore, so let's remove it as it's cryptic and hinders
the listeners cleanup.

src/proxy.c

index d5af92fc0040694c6a7ba65452dd6e368993acb3..a901f53ada640a96399b5d31eb4c5aa450783474 100644 (file)
@@ -1326,33 +1326,12 @@ int pause_proxy(struct proxy *p)
 void zombify_proxy(struct proxy *p)
 {
        struct listener *l;
-       struct listener *first_to_listen = NULL;
 
        list_for_each_entry(l, &p->conf.listeners, by_fe) {
-               enum li_state oldstate = l->state;
-
                unbind_listener_no_close(l);
-               if (l->state >= LI_ASSIGNED) {
+               if (l->state >= LI_ASSIGNED)
                        delete_listener(l);
-               }
-               /*
-                * Pretend we're still up and running so that the fd
-                * will be sent if asked.
-                */
-               if (!first_to_listen && oldstate >= LI_LISTEN)
-                       first_to_listen = l;
        }
-       /* Quick hack : at stop time, to know we have to close the sockets
-        * despite the proxy being marked as stopped, make the first listener
-        * of the listener list an active one, so that we don't have to
-        * parse the whole list to be sure.
-        */
-       if (first_to_listen && LIST_ELEM(p->conf.listeners.n,
-           struct listener *, by_fe) != first_to_listen) {
-               LIST_DEL(&l->by_fe);
-               LIST_ADD(&p->conf.listeners, &l->by_fe);
-       }
-
        p->state = PR_STSTOPPED;
 }