From e8ade385b4080caebeac38a8638394ae7ee9a5b7 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Thu, 25 Jan 2018 15:32:22 +0100 Subject: [PATCH] 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. --- doc/SPOE.txt | 5 +++++ src/flt_spoe.c | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) 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;