diff --git a/doc/SPOE.txt b/doc/SPOE.txt index 7ce2bef84..cde3b1dff 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 5848fdc7b..8694b07a7 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;