The h2c_report_glitch() function is now replaced with a macro to support
enumerating counters for each individual glitch line. For now this adds
43 such counters. The macro supports an optional description, though that
is not being used for now. It gives outputs like this (note that the last
one was purposely instrumented to pass a description):
> debug dev counters glt all
0 GLT mux_h2.c:5976 h2c_dec_hdrs()
0 GLT mux_h2.c:5960 h2c_dec_hdrs()
(...)
0 GLT mux_h2.c:2207 h2c_frt_recv_preface()
0 GLT mux_h2.c:1954 h2c_frt_stream_new(): new stream too early
As a reminder, this requires to build with -DDEBUG_GLITCHES=1.
* glitch limit was reached, in which case an error is also reported on the
* connection.
*/
-static inline int h2c_report_glitch(struct h2c *h2c, int increment)
+#define h2c_report_glitch(h2c, inc, ...) ({ \
+ COUNT_GLITCH(__VA_ARGS__); \
+ _h2c_report_glitch(h2c, inc); \
+ })
+
+static inline int _h2c_report_glitch(struct h2c *h2c, int increment)
{
int thres = (h2c->flags & H2_CF_IS_BACK) ?
h2_be_glitches_threshold : h2_fe_glitches_threshold;