diff --git a/src/checks.c b/src/checks.c index fb4c962c2..58bc88dc4 100644 --- a/src/checks.c +++ b/src/checks.c @@ -3364,7 +3364,7 @@ static int tcpcheck_main(struct check *check) struct tcpcheck_var *var; /* First evaluation, create a session */ - check->sess = session_new(&checks_fe, NULL, (check->server ? &check->server->obj_type : NULL)); + check->sess = session_new(&checks_fe, NULL, &check->obj_type); if (!check->sess) { chunk_printf(&trash, "TCPCHK error allocating check session"); set_server_check_status(check, HCHK_STATUS_SOCKERR, trash.area); @@ -4457,13 +4457,13 @@ smp_fetch_chk_payload(const struct arg *arg_p, struct sample *smp, const char *k { unsigned int buf_offset = ((arg_p[0].type == ARGT_SINT) ? arg_p[0].data.sint : 0); unsigned int buf_size = ((arg_p[1].type == ARGT_SINT) ? arg_p[1].data.sint : 0); - struct server *srv = (smp->sess ? objt_server(smp->sess->origin) : NULL); + struct check *check = (smp->sess ? objt_check(smp->sess->origin) : NULL); struct buffer *buf; - if (!srv || !srv->do_check) + if (!check) return 0; - buf = &srv->check.bi; + buf = &check->bi; if (buf_offset > b_data(buf)) goto no_match; if (buf_offset + buf_size > b_data(buf)) diff --git a/src/vars.c b/src/vars.c index 0fa3397c7..a6807facd 100644 --- a/src/vars.c +++ b/src/vars.c @@ -49,9 +49,9 @@ static inline struct vars *get_vars(struct session *sess, struct stream *strm, e case SCOPE_SESS: return &sess->vars; case SCOPE_CHECK: { - struct server *srv = objt_server(sess->origin); + struct check *check = objt_check(sess->origin); - return srv ? &srv->check.vars : NULL; + return check ? &check->vars : NULL; } case SCOPE_TXN: return strm ? &strm->vars_txn : NULL; @@ -78,10 +78,10 @@ static void var_accounting_diff(struct vars *vars, struct session *sess, struct _HA_ATOMIC_ADD(&strm->vars_txn.size, size); goto scope_sess; case SCOPE_CHECK: { - struct server *srv = objt_server(sess->origin); + struct check *check = objt_check(sess->origin); - if (srv != NULL) - _HA_ATOMIC_ADD(&srv->check.vars.size, size); + if (check) + _HA_ATOMIC_ADD(&check->vars.size, size); } /* fall through */ scope_sess: @@ -114,10 +114,9 @@ static int var_accounting_add(struct vars *vars, struct session *sess, struct st return 0; goto scope_sess; case SCOPE_CHECK: { - struct server *srv = objt_server(sess->origin); + struct check *check = objt_check(sess->origin); - if (var_check_limit && srv && - srv->check.vars.size + size > var_check_limit) + if (var_check_limit && check && check->vars.size + size > var_check_limit) return 0; } /* fall through */