MINOR: spoe: Add support for option dontlog-normal in the SPOE agent section
It does the same than for proxies.
diff --git a/doc/SPOE.txt b/doc/SPOE.txt
index 36e174e..9583d69 100644
--- a/doc/SPOE.txt
+++ b/doc/SPOE.txt
@@ -172,6 +172,7 @@
- max-waiting-frames
- messages
- [no] option async
+ - [no] option dontlog-normal
- [no] option pipelining
- [no] option send-frag-payload
- option continue-on-error
@@ -260,6 +261,16 @@
When set, this option bypass this behaviour and only the current event will
be ignored.
+
+option dontlog-normal
+no option dontlog-normal
+ Enable or disable logging of normal, successful processing.
+
+ Arguments : none
+
+ See also: "log" and section 4 about logging.
+
+
option force-set-var
By default, SPOE filter only register already known variables (mainly from
parsing of the configuration). If you want that haproxy trusts the agent and
diff --git a/src/flt_spoe.c b/src/flt_spoe.c
index 0706634..abd96cc 100644
--- a/src/flt_spoe.c
+++ b/src/flt_spoe.c
@@ -94,6 +94,10 @@
/* list of log servers used during the parsing */
struct list curlogsrvs;
+/* agent's proxy flags (PR_O_* and PR_O2_*) used during parsing */
+int curpxopts;
+int curpxopts2;
+
/* Pools used to allocate SPOE structs */
static struct pool_head *pool_head_spoe_ctx = NULL;
static struct pool_head *pool_head_spoe_appctx = NULL;
@@ -3461,6 +3465,14 @@
curagent->flags |= SPOE_FL_SND_FRAGMENTATION;
goto out;
}
+ else if (!strcmp(args[1], "dontlog-normal")) {
+ if (alertif_too_many_args(1, file, linenum, args, &err_code))
+ goto out;
+ if (kwm == 1)
+ curpxopts2 &= ~PR_O2_NOLOGNORM;
+ else
+ curpxopts2 |= PR_O2_NOLOGNORM;
+ }
/* Following options does not support negation */
if (kwm == 1) {
@@ -3983,6 +3995,8 @@
LIST_INIT(&curgphs);
LIST_INIT(&curvars);
LIST_INIT(&curlogsrvs);
+ curpxopts = 0;
+ curpxopts2 = 0;
conf = calloc(1, sizeof(*conf));
if (conf == NULL) {
@@ -4306,6 +4320,8 @@
init_new_proxy(&conf->agent_fe);
conf->agent_fe.id = conf->agent->id;
conf->agent_fe.parent = conf->agent;
+ conf->agent_fe.options |= curpxopts;
+ conf->agent_fe.options2 |= curpxopts2;
list_for_each_entry_safe(logsrv, logsrvback, &curlogsrvs, list) {
LIST_DEL(&logsrv->list);