From 743bd6adc8a7657b324ac59376311d23d65bb4ed Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 3 Nov 2020 16:40:37 +0100 Subject: [PATCH] BUG/MINOR: filters: Skip disabled proxies during startup only 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 | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/filters.c b/src/filters.c index 9e5557d13..d18f77332 100644 --- a/src/filters.c +++ b/src/filters.c @@ -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. */