From d4762b8474163dc94b7c514120163bcaef8a0d19 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 12 Oct 2021 11:02:48 +0200 Subject: [PATCH] MINOR: stream: report the current filter in "show sess all" when known Filters can block the stream on pre/post analysis for any reason and it can be useful to report it in "show sess all". So now, a "current_filter" extra line is reported for each channel if a filter is blocking the analysis. Note that this does not catch the TCP/HTTP payload analysis because all registered filters are always evaluated when more data are received. --- src/stream.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/stream.c b/src/stream.c index 162dfaa31..6d6374d4d 100644 --- a/src/stream.c +++ b/src/stream.c @@ -3382,6 +3382,12 @@ static int stats_dump_full_strm_to_buffer(struct stream_interface *si, struct st (htx->tail >= htx->head) ? "NO" : "YES", (unsigned long long)htx->extra); } + if (HAS_FILTERS(strm) && strm_flt(strm)->current[0]) { + struct filter *flt = strm_flt(strm)->current[0]; + + chunk_appendf(&trash, " current_filter=%p (id=\"%s\" flags=0x%x pre=0x%x post=0x%x) \n", + flt, flt->config->id, flt->flags, flt->pre_analyzers, flt->post_analyzers); + } chunk_appendf(&trash, " res=%p (f=0x%06x an=0x%x pipe=%d tofwd=%d total=%lld)\n" @@ -3420,6 +3426,12 @@ static int stats_dump_full_strm_to_buffer(struct stream_interface *si, struct st (htx->tail >= htx->head) ? "NO" : "YES", (unsigned long long)htx->extra); } + if (HAS_FILTERS(strm) && strm_flt(strm)->current[1]) { + struct filter *flt = strm_flt(strm)->current[1]; + + chunk_appendf(&trash, " current_filter=%p (id=\"%s\" flags=0x%x pre=0x%x post=0x%x) \n", + flt, flt->config->id, flt->flags, flt->pre_analyzers, flt->post_analyzers); + } if (strm->current_rule_list && strm->current_rule) { const struct act_rule *rule = strm->current_rule;