]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: ssl-samples: Fix ssl_bc_* samples when called from a health-check
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 14 Apr 2021 13:49:41 +0000 (15:49 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 19 Apr 2021 06:31:05 +0000 (08:31 +0200)
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.

src/ssl_sample.c

index 4c7d9aa9db93fd18ed497c6cfc1951293e33ba0d..7e4541234cd79634ad221fc6ab2f2ff8e30d8d8b 100644 (file)
@@ -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;