]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: mworker: no need to stop peers for each proxy
authorWilliam Lallemand <wlallemand@haproxy.com>
Tue, 11 Sep 2018 08:06:19 +0000 (10:06 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 11 Sep 2018 08:21:58 +0000 (10:21 +0200)
The mworker_cleanlisteners() was cleaning the peers in the proxy loop,
which is useless since we need to stop the peers only once.

src/haproxy.c

index d40316a6c1b60e7c38d5cd4de2f5cf5c54d9ffd1..6504e96fe98d4e4a3e14b3f922141a79ed9fa5a5 100644 (file)
@@ -534,22 +534,21 @@ static void mworker_cleanlisteners()
        struct proxy *curproxy;
        struct peers *curpeers;
 
-       for (curproxy = proxies_list; curproxy; curproxy = curproxy->next) {
-               /* we might have to unbind some peers sections from some processes */
-               for (curpeers = cfg_peers; curpeers; curpeers = curpeers->next) {
-                       if (!curpeers->peers_fe)
-                               continue;
+       /* we might have to unbind some peers sections from some processes */
+       for (curpeers = cfg_peers; curpeers; curpeers = curpeers->next) {
+               if (!curpeers->peers_fe)
+                       continue;
 
-                       stop_proxy(curpeers->peers_fe);
-                       /* disable this peer section so that it kills itself */
-                       signal_unregister_handler(curpeers->sighandler);
-                       task_delete(curpeers->sync_task);
-                       task_free(curpeers->sync_task);
-                       curpeers->sync_task = NULL;
-                       task_free(curpeers->peers_fe->task);
-                       curpeers->peers_fe->task = NULL;
-                       curpeers->peers_fe = NULL;
-               }
+               stop_proxy(curpeers->peers_fe);
+               /* disable this peer section so that it kills itself */
+               signal_unregister_handler(curpeers->sighandler);
+               task_delete(curpeers->sync_task);
+               task_free(curpeers->sync_task);
+               curpeers->sync_task = NULL;
+               task_free(curpeers->peers_fe->task);
+               curpeers->peers_fe->task = NULL;
+               curpeers->peers_fe = NULL;
+       }
 
                list_for_each_entry_safe(l, l_next, &curproxy->conf.listeners, by_fe) {
                        /* does not close if the FD is inherited with fd@