]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: spoe: Add support for option dontlog-normal in the SPOE agent section
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 26 Mar 2018 15:20:36 +0000 (17:20 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 5 Apr 2018 13:13:54 +0000 (15:13 +0200)
It does the same than for proxies.

doc/SPOE.txt
src/flt_spoe.c

index 36e174eb8934f5a55b6ed130f564fa639cff327c..9583d6941a0d05fc02d012143b968c8e5e8ee10b 100644 (file)
@@ -172,6 +172,7 @@ spoe-agent <name>
     - 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 @@ option continue-on-error
   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
index 0706634b73602573ad8ddde4a974c6d9d8f06712..abd96cc912820fce854255de4e5c7e63c631c4c6 100644 (file)
@@ -94,6 +94,10 @@ struct list curvars;
 /* 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 @@ cfg_parse_spoe_agent(const char *file, int linenum, char **args, int kwm)
                                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 @@ parse_spoe_flt(char **args, int *cur_arg, struct proxy *px,
        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 @@ parse_spoe_flt(char **args, int *cur_arg, struct proxy *px,
         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);