From: Christopher Faulet Date: Thu, 25 Jan 2018 14:32:22 +0000 (+0100) Subject: MINOR: spoe: Add max-waiting-frames directive in spoe-agent configuration X-Git-Tag: v1.9-dev1~456 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e8ade385b4080caebeac38a8638394ae7ee9a5b7;p=thirdparty%2Fhaproxy.git MINOR: spoe: Add max-waiting-frames directive in spoe-agent configuration This is the maximum number of frames waiting for an acknowledgement on the same connection. This value is only used when the pipelinied or asynchronus exchanges between HAProxy and SPOA are enabled. By default, it is set to 20. --- diff --git a/doc/SPOE.txt b/doc/SPOE.txt index 7ce2bef842..cde3b1dffe 100644 --- a/doc/SPOE.txt +++ b/doc/SPOE.txt @@ -167,6 +167,7 @@ spoe-agent - maxconnrate - maxerrrate - max-frame-size + - max-waiting-frames - messages - [no] option async - [no] option pipelining @@ -209,6 +210,10 @@ max-frame-size It must be in the range [256, tune.bufsize-4] (4 bytes are reserved for the frame length). By default, it is set to (tune.bufsize-4). +max-waiting-frames + Set the maximum number of frames waiting for an acknowledgement on the same + connection. This value is only used when the pipelinied or asynchronus + exchanges between HAProxy and SPOA are enabled. By default, it is set to 20. messages ... Declare the list of SPOE messages that an agent will handle. diff --git a/src/flt_spoe.c b/src/flt_spoe.c index 5848fdc7b3..8694b07a76 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -3455,6 +3455,23 @@ cfg_parse_spoe_agent(const char *file, int linenum, char **args, int kwm) goto out; } } + else if (!strcmp(args[0], "max-waiting-frames")) { + if (!*args[1]) { + ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", + file, linenum, args[0]); + err_code |= ERR_ALERT | ERR_FATAL; + goto out; + } + if (alertif_too_many_args(1, file, linenum, args, &err_code)) + goto out; + curagent->max_fpa = atol(args[1]); + if (curagent->max_fpa < 1) { + ha_alert("parsing [%s:%d] : '%s' expects a positive integer argument.\n", + file, linenum, args[0]); + err_code |= ERR_ALERT | ERR_FATAL; + goto out; + } + } else if (!strcmp(args[0], "register-var-names")) { int cur_arg;