MINOR: server: Add "no-tfo" option.

Simple patch to add "no-tfo" option to "default-server" and "server" lines
to disable any usage of TCP fast open.

Must be backported to 2.0.
This commit is contained in:
Frédéric Lécaille 2019-07-04 14:19:06 +02:00 committed by Olivier Houchard
parent cee0389088
commit 1b9423d214
2 changed files with 17 additions and 1 deletions

View File

@ -12127,6 +12127,13 @@ no-verifyhost
It may also be used as "default-server" setting to reset any previous It may also be used as "default-server" setting to reset any previous
"default-server" "verifyhost" setting. "default-server" "verifyhost" setting.
no-tfo
This option may be used as "server" setting to reset any "tfo"
setting which would have been inherited from "default-server" directive as
default value.
It may also be used as "default-server" setting to reset any previous
"default-server" "tfo" setting.
non-stick non-stick
Never add connections allocated to this sever to a stick-table. Never add connections allocated to this sever to a stick-table.
This may be used in conjunction with backup to ensure that This may be used in conjunction with backup to ensure that
@ -12482,7 +12489,7 @@ tfo
See the "tfo" bind option for more information about TCP fast open. See the "tfo" bind option for more information about TCP fast open.
Please note that when using tfo, you should also use the "conn-failure", Please note that when using tfo, you should also use the "conn-failure",
"empty-response" and "response-timeout" keywords for "retry-on", or haproxy "empty-response" and "response-timeout" keywords for "retry-on", or haproxy
won't be able to retry the connection on failure. won't be able to retry the connection on failure. See also "no-tfo".
track [<proxy>/]<server> track [<proxy>/]<server>
This option enables ability to set the current state of the server by tracking This option enables ability to set the current state of the server by tracking

View File

@ -583,6 +583,14 @@ static int srv_parse_no_send_proxy_v2(char **args, int *cur_arg,
return srv_disable_pp_flags(newsrv, SRV_PP_V2); return srv_disable_pp_flags(newsrv, SRV_PP_V2);
} }
/* Parse the "no-tfo" server keyword */
static int srv_parse_no_tfo(char **args, int *cur_arg,
struct proxy *curproxy, struct server *newsrv, char **err)
{
newsrv->flags &= ~SRV_F_FASTOPEN;
return 0;
}
/* Parse the "non-stick" server keyword */ /* Parse the "non-stick" server keyword */
static int srv_parse_non_stick(char **args, int *cur_arg, static int srv_parse_non_stick(char **args, int *cur_arg,
struct proxy *curproxy, struct server *newsrv, char **err) struct proxy *curproxy, struct server *newsrv, char **err)
@ -1354,6 +1362,7 @@ static struct srv_kw_list srv_kws = { "ALL", { }, {
{ "no-check-send-proxy", srv_parse_no_check_send_proxy, 0, 1 }, /* disable PROXY protol for health checks */ { "no-check-send-proxy", srv_parse_no_check_send_proxy, 0, 1 }, /* disable PROXY protol for health checks */
{ "no-send-proxy", srv_parse_no_send_proxy, 0, 1 }, /* Disable use of PROXY V1 protocol */ { "no-send-proxy", srv_parse_no_send_proxy, 0, 1 }, /* Disable use of PROXY V1 protocol */
{ "no-send-proxy-v2", srv_parse_no_send_proxy_v2, 0, 1 }, /* Disable use of PROXY V2 protocol */ { "no-send-proxy-v2", srv_parse_no_send_proxy_v2, 0, 1 }, /* Disable use of PROXY V2 protocol */
{ "no-tfo", srv_parse_no_tfo, 0, 1 }, /* Disable use of TCP Fast Open */
{ "non-stick", srv_parse_non_stick, 0, 1 }, /* Disable stick-table persistence */ { "non-stick", srv_parse_non_stick, 0, 1 }, /* Disable stick-table persistence */
{ "observe", srv_parse_observe, 1, 1 }, /* Enables health adjusting based on observing communication with the server */ { "observe", srv_parse_observe, 1, 1 }, /* Enables health adjusting based on observing communication with the server */
{ "pool-max-conn", srv_parse_pool_max_conn, 1, 1 }, /* Set the max number of orphan idle connections, 0 means unlimited */ { "pool-max-conn", srv_parse_pool_max_conn, 1, 1 }, /* Set the max number of orphan idle connections, 0 means unlimited */