MINOR: flt-trace: Add an option to inhibits trace messages

The 'quiet' option may be set to inibits the trace messages. The trace filter is
a bit verbose. This option may be used to not display the messages.
This commit is contained in:
Christopher Faulet 2020-11-17 10:45:05 +01:00
parent c41d8bd65a
commit 96a577acae
2 changed files with 23 additions and 12 deletions

View File

@ -20272,6 +20272,7 @@ filter trace [name <name>] [random-forwarding] [hexdump]
<name> is an arbitrary name that will be reported in
messages. If no name is provided, "TRACE" is used.
<quiet> inhibits trace messages.
<random-forwarding> enables the random forwarding of parsed data. By
default, this filter forwards all previously parsed

View File

@ -32,21 +32,28 @@ struct flt_ops trace_ops;
struct trace_config {
struct proxy *proxy;
char *name;
int quiet;
int rand_forwarding;
int hexdump;
};
#define FLT_TRACE(conf, fmt, ...) \
fprintf(stderr, "%d.%06d [%-20s] " fmt "\n", \
(int)now.tv_sec, (int)now.tv_usec, (conf)->name, \
##__VA_ARGS__)
do { \
if (!(conf->quiet)) \
fprintf(stderr, "%d.%06d [%-20s] " fmt "\n", \
(int)now.tv_sec, (int)now.tv_usec, (conf)->name,\
##__VA_ARGS__); \
} while (0)
#define FLT_STRM_TRACE(conf, strm, fmt, ...) \
fprintf(stderr, "%d.%06d [%-20s] [strm %p(%x) 0x%08x 0x%08x] " fmt "\n", \
(int)now.tv_sec, (int)now.tv_usec, (conf)->name, \
strm, (strm ? ((struct stream *)strm)->uniq_id : ~0U), \
(strm ? strm->req.analysers : 0), (strm ? strm->res.analysers : 0), \
##__VA_ARGS__)
#define FLT_STRM_TRACE(conf, strm, fmt, ...) \
do { \
if (!(conf->quiet)) \
fprintf(stderr, "%d.%06d [%-20s] [strm %p(%x) 0x%08x 0x%08x] " fmt "\n", \
(int)now.tv_sec, (int)now.tv_usec, (conf)->name, \
strm, (strm ? ((struct stream *)strm)->uniq_id : ~0U), \
(strm ? strm->req.analysers : 0), (strm ? strm->res.analysers : 0), \
##__VA_ARGS__); \
} while (0)
static const char *
@ -187,9 +194,10 @@ trace_init(struct proxy *px, struct flt_conf *fconf)
fconf->flags |= FLT_CFG_FL_HTX;
fconf->conf = conf;
FLT_TRACE(conf, "filter initialized [fwd random=%s - hexdump=%s]",
(conf->rand_forwarding ? "true" : "false"),
(conf->hexdump ? "true" : "false"));
FLT_TRACE(conf, "filter initialized [quiet=%s - fwd random=%s - hexdump=%s]",
(conf->quiet ? "true" : "false"),
(conf->rand_forwarding ? "true" : "false"),
(conf->hexdump ? "true" : "false"));
return 0;
}
@ -630,6 +638,8 @@ parse_trace_flt(char **args, int *cur_arg, struct proxy *px,
}
pos++;
}
else if (!strcmp(args[pos], "quiet"))
conf->quiet = 1;
else if (!strcmp(args[pos], "random-parsing"))
continue; // ignore
else if (!strcmp(args[pos], "random-forwarding"))