From: Christopher Faulet Date: Wed, 14 Apr 2021 13:49:41 +0000 (+0200) Subject: BUG/MINOR: ssl-samples: Fix ssl_bc_* samples when called from a health-check X-Git-Tag: v2.4-dev17~102 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4bef8d1d46ba596f1cc1595a63a01b6d9ae0f6cc;p=thirdparty%2Fhaproxy.git BUG/MINOR: ssl-samples: Fix ssl_bc_* samples when called from a health-check For all ssl_bc_* sample fetches, the test on the keyword when called from a health-check is inverted. We must be sure the 5th charater is a 'b' to retrieve a connection. This patch must be backported as far as 2.2. --- diff --git a/src/ssl_sample.c b/src/ssl_sample.c index 4c7d9aa9db..7e4541234c 100644 --- a/src/ssl_sample.c +++ b/src/ssl_sample.c @@ -743,7 +743,7 @@ smp_fetch_ssl_fc(const struct arg *args, struct sample *smp, const char *kw, voi struct connection *conn; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -780,7 +780,7 @@ smp_fetch_ssl_fc_is_resumed(const struct arg *args, struct sample *smp, const ch SSL *ssl; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -803,7 +803,7 @@ smp_fetch_ssl_fc_cipher(const struct arg *args, struct sample *smp, const char * SSL *ssl; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -837,7 +837,7 @@ smp_fetch_ssl_fc_alg_keysize(const struct arg *args, struct sample *smp, const c int sint; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -868,7 +868,7 @@ smp_fetch_ssl_fc_use_keysize(const struct arg *args, struct sample *smp, const c SSL *ssl; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -900,7 +900,7 @@ smp_fetch_ssl_fc_npn(const struct arg *args, struct sample *smp, const char *kw, smp->data.type = SMP_T_STR; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -935,7 +935,7 @@ smp_fetch_ssl_fc_alpn(const struct arg *args, struct sample *smp, const char *kw smp->data.type = SMP_T_STR; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -968,7 +968,7 @@ smp_fetch_ssl_fc_protocol(const struct arg *args, struct sample *smp, const char SSL *ssl; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -1006,7 +1006,7 @@ smp_fetch_ssl_fc_session_id(const struct arg *args, struct sample *smp, const ch smp->data.type = SMP_T_BIN; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -1038,7 +1038,7 @@ smp_fetch_ssl_fc_random(const struct arg *args, struct sample *smp, const char * SSL *ssl; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -1075,7 +1075,7 @@ smp_fetch_ssl_fc_session_key(const struct arg *args, struct sample *smp, const c SSL *ssl; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL; @@ -1293,7 +1293,7 @@ smp_fetch_ssl_fc_unique_id(const struct arg *args, struct sample *smp, const cha SSL *ssl; if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK) - conn = (kw[4] != 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; + conn = (kw[4] == 'b') ? cs_conn(__objt_check(smp->sess->origin)->cs) : NULL; else conn = (kw[4] != 'b') ? objt_conn(smp->sess->origin) : smp->strm ? cs_conn(objt_cs(smp->strm->si[1].end)) : NULL;