From 3eadf887f7a0231973a9eb3bb56d6c8659686ab6 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 4 Mar 2026 09:05:14 +0100 Subject: [PATCH] MINOR: filters: Use filter API as far as poissible to break loops on filters When the filters API was refactored to improve loops on filters, some places were not updated (or not fully updated). Some loops were not relying on resume_filter_list_break() while it was possible. So let's do so with this patch. --- src/filters.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/filters.c b/src/filters.c index f12f16e2e..2add2ab79 100644 --- a/src/filters.c +++ b/src/filters.c @@ -741,8 +741,7 @@ flt_http_payload(struct stream *s, struct http_msg *msg, unsigned int len) filter->calls++; ret = FLT_OPS(filter)->http_payload(s, filter, msg, out + offset, data - offset); if (ret < 0) { - s->last_entity.type = STRM_ENTITY_FILTER; - s->last_entity.ptr = filter; + resume_filter_list_break(s, msg->chn, filter, ret); goto end; } data = ret + *flt_off - *strm_off; @@ -888,8 +887,7 @@ flt_post_analyze(struct stream *s, struct channel *chn, unsigned int an_bit) filter->calls++; ret = FLT_OPS(filter)->channel_post_analyze(s, filter, chn, an_bit); if (ret < 0) { - s->last_entity.type = STRM_ENTITY_FILTER; - s->last_entity.ptr = filter; + resume_filter_list_break(s, chn, filter, ret); break; } filter->post_analyzers &= ~an_bit; @@ -1053,8 +1051,7 @@ flt_tcp_payload(struct stream *s, struct channel *chn, unsigned int len) filter->calls++; ret = FLT_OPS(filter)->tcp_payload(s, filter, chn, out + offset, data - offset); if (ret < 0) { - s->last_entity.type = STRM_ENTITY_FILTER; - s->last_entity.ptr = filter; + resume_filter_list_break(s, chn, filter, ret); goto end; } data = ret + *flt_off - *strm_off;