]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: filters: Skip disabled proxies during startup only
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 3 Nov 2020 15:40:37 +0000 (16:40 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 3 Nov 2020 15:51:48 +0000 (16:51 +0100)
This partially reverts the patch 400829cd2 ("BUG/MEDIUM: filters: Don't try to
init filters for disabled proxies"). Disabled proxies must not be skipped in
flt_deinit() and flt_deinit_all_per_thread() when HAProxy is stopped because,
obvioulsy, at this step, all proxies appear as disabled (or stopped, it is the
same state). It is safe to do so because, during startup, filters declared on
disabled proxies are removed. Thus they don't exist anymore during shutdown.

This patch must be backported in all versions where the patch above is.

src/filters.c

index 9e5557d132a7b75a99fd59d76bc055b7458ceb61..d18f7733234fa5efe5f25dcdb102b9e6d126165d 100644 (file)
@@ -356,7 +356,7 @@ flt_deinit(struct proxy *proxy)
        struct flt_conf *fconf, *back;
 
        list_for_each_entry_safe(fconf, back, &proxy->filter_configs, list) {
-               if (!proxy->disabled && fconf->ops->deinit)
+               if (fconf->ops->deinit)
                        fconf->ops->deinit(proxy, fconf);
                LIST_DEL(&fconf->list);
                free(fconf);
@@ -385,10 +385,8 @@ flt_deinit_all_per_thread()
 {
        struct proxy *px;
 
-       for (px = proxies_list; px; px = px->next) {
-               if (!px->disabled)
-                       flt_deinit_per_thread(px);
-       }
+       for (px = proxies_list; px; px = px->next)
+               flt_deinit_per_thread(px);
 }
 
 /* Attaches a filter to a stream. Returns -1 if an error occurs, 0 otherwise. */