MINOR: checks: Use ist API as far as possible

Instead of accessing directly to the ist fields, the ist API is used instead. To
get its length or its pointer, to release it or to duplicate it. It is more
readable this way.
diff --git a/src/checks.c b/src/checks.c
index d77edef..6f707fb 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -589,10 +589,10 @@
 
 				switch (expect->type) {
 				case TCPCHK_EXPECT_STRING:
-					chunk_appendf(chk, " (expect string '%.*s')", (unsigned int)istlen(expect->data), expect->data.ptr);
+					chunk_appendf(chk, " (expect string '%.*s')", (unsigned int)istlen(expect->data), istptr(expect->data));
 					break;
 				case TCPCHK_EXPECT_BINARY:
-					chunk_appendf(chk, " (expect binary '%.*s')", (unsigned int)istlen(expect->data), expect->data.ptr);
+					chunk_appendf(chk, " (expect binary '%.*s')", (unsigned int)istlen(expect->data), istptr(expect->data));
 					break;
 				case TCPCHK_EXPECT_REGEX:
 					chunk_appendf(chk, " (expect regex)");
@@ -601,13 +601,13 @@
 					chunk_appendf(chk, " (expect binary regex)");
 					break;
 				case TCPCHK_EXPECT_HTTP_STATUS:
-					chunk_appendf(chk, " (expect HTTP status '%.*s')", (unsigned int)istlen(expect->data), expect->data.ptr);
+					chunk_appendf(chk, " (expect HTTP status '%.*s')", (unsigned int)istlen(expect->data), istptr(expect->data));
 					break;
 				case TCPCHK_EXPECT_HTTP_REGEX_STATUS:
 					chunk_appendf(chk, " (expect HTTP status regex)");
 					break;
 				case TCPCHK_EXPECT_HTTP_BODY:
-					chunk_appendf(chk, " (expect HTTP body content '%.*s')", (unsigned int)istlen(expect->data), expect->data.ptr);
+					chunk_appendf(chk, " (expect HTTP body content '%.*s')", (unsigned int)istlen(expect->data), istptr(expect->data));
 					break;
 				case TCPCHK_EXPECT_HTTP_REGEX_BODY:
 					chunk_appendf(chk, " (expect HTTP body regex)");
@@ -721,7 +721,7 @@
 		return;
 
 	free_tcpcheck_fmt(&hdr->value);
-	free(hdr->name.ptr);
+	istfree(&hdr->name);
 	free(hdr);
 }
 
@@ -753,7 +753,7 @@
 		switch (rule->send.type) {
 		case TCPCHK_SEND_STRING:
 		case TCPCHK_SEND_BINARY:
-			free(rule->send.data.ptr);
+			istfree(&rule->send.data);
 			break;
 		case TCPCHK_SEND_STRING_LF:
 		case TCPCHK_SEND_BINARY_LF:
@@ -762,13 +762,13 @@
 		case TCPCHK_SEND_HTTP:
 			free(rule->send.http.meth.str.area);
 			if (!(rule->send.http.flags & TCPCHK_SND_HTTP_FL_URI_FMT))
-				free(rule->send.http.uri.ptr);
+				istfree(&rule->send.http.uri);
 			else
 				free_tcpcheck_fmt(&rule->send.http.uri_fmt);
-			free(rule->send.http.vsn.ptr);
+			istfree(&rule->send.http.vsn);
 			free_tcpcheck_http_hdrs(&rule->send.http.hdrs);
 			if (!(rule->send.http.flags & TCPCHK_SND_HTTP_FL_BODY_FMT))
-				free(rule->send.http.body.ptr);
+				istfree(&rule->send.http.body);
 			else
 				free_tcpcheck_fmt(&rule->send.http.body_fmt);
 			break;
@@ -785,7 +785,7 @@
 		case TCPCHK_EXPECT_BINARY:
 		case TCPCHK_EXPECT_HTTP_STATUS:
 		case TCPCHK_EXPECT_HTTP_BODY:
-			free(rule->expect.data.ptr);
+			istfree(&rule->expect.data);
 			break;
 		case TCPCHK_EXPECT_REGEX:
 		case TCPCHK_EXPECT_REGEX_BINARY:
@@ -819,7 +819,7 @@
 /* Creates a tcp-check variable used in preset variables before executing a
  * tcp-check ruleset.
  */
-static struct tcpcheck_var *create_tcpcheck_var(const char *name)
+static struct tcpcheck_var *create_tcpcheck_var(const struct ist name)
 {
 	struct tcpcheck_var *var = NULL;
 
@@ -827,8 +827,8 @@
 	if (var == NULL)
 		return NULL;
 
-	var->name = ist2(strdup(name), strlen(name));
-	if (var->name.ptr == NULL) {
+	var->name = istdup(name);
+	if (!isttest(var->name)) {
 		free(var);
 		return NULL;
 	}
@@ -843,7 +843,7 @@
 	if (!var)
 		return;
 
-	free(var->name.ptr);
+	istfree(&var->name);
 	if (var->data.type == SMP_T_STR || var->data.type == SMP_T_BIN)
 		free(var->data.u.str.area);
 	else if (var->data.type == SMP_T_METH && var->data.u.meth.meth == HTTP_METH_OTHER)
@@ -868,7 +868,7 @@
 	struct tcpcheck_var *var, *new = NULL;
 
 	list_for_each_entry(var, src, list) {
-		new = create_tcpcheck_var(var->name.ptr);
+		new = create_tcpcheck_var(var->name);
 		if (!new)
 			goto error;
 		new->data.type = var->data.type;
@@ -1029,7 +1029,7 @@
 	 *     4. Otherwise produce the generic tcp-check info message
 	 */
 	if (istlen(info)) {
-		chunk_strncat(msg, info.ptr, info.len);
+		chunk_strncat(msg, istptr(info), istlen(info));
 		goto comment;
 	}
 	else if (!LIST_ISEMPTY(&rule->expect.onerror_fmt)) {
@@ -1046,7 +1046,7 @@
 	case TCPCHK_EXPECT_STRING:
 	case TCPCHK_EXPECT_HTTP_STATUS:
 	case TCPCHK_EXPECT_HTTP_BODY:
-		chunk_appendf(msg, " '%.*s' at step %d", (unsigned int)istlen(rule->expect.data), rule->expect.data.ptr,
+		chunk_appendf(msg, " '%.*s' at step %d", (unsigned int)istlen(rule->expect.data), istptr(rule->expect.data),
 			      tcpcheck_get_step_id(check, rule));
 		break;
 	case TCPCHK_EXPECT_BINARY:
@@ -1122,7 +1122,7 @@
 	 *     4. Otherwise produce the generic tcp-check info message
 	 */
 	if (istlen(info))
-		chunk_strncat(msg, info.ptr, info.len);
+		chunk_strncat(msg, istptr(info), istlen(info));
 	if (!LIST_ISEMPTY(&rule->expect.onsuccess_fmt))
 		msg->data += sess_build_logline(check->sess, NULL, b_tail(msg), b_room(msg),
 						&rule->expect.onsuccess_fmt);
@@ -1210,7 +1210,7 @@
 	enum tcpcheck_eval_ret ret = TCPCHK_EVAL_CONTINUE;
 	enum healthcheck_status status;
 	struct buffer *msg = NULL;
-	struct ist desc = ist(NULL);
+	struct ist desc = IST_NULL;
 	unsigned int err = 0, plen = 0;
 
 
@@ -1311,7 +1311,7 @@
 	enum tcpcheck_eval_ret ret = TCPCHK_EVAL_CONTINUE;
 	enum healthcheck_status status;
 	struct buffer *msg = NULL;
-	struct ist desc = ist(NULL);
+	struct ist desc = IST_NULL;
 	unsigned short msglen = 0;
 
 	/* Check if the server speaks LDAP (ASN.1/BER)
@@ -1381,7 +1381,7 @@
 	enum tcpcheck_eval_ret ret = TCPCHK_EVAL_CONTINUE;
 	enum healthcheck_status status;
 	struct buffer *msg = NULL;
-	struct ist desc = ist(NULL);
+	struct ist desc = IST_NULL;
 	unsigned int framesz;
 
 
@@ -2106,7 +2106,7 @@
 	struct tcpcheck_expect *expect = &rule->expect;
 	struct buffer *msg = NULL;
 	enum healthcheck_status status;
-	struct ist desc = ist(NULL);
+	struct ist desc = IST_NULL;
 	int match, inverse;
 
 	last_read |= (!htx_free_space(htx) || (htx_get_tail_type(htx) == HTX_BLK_EOM));
@@ -2185,7 +2185,7 @@
 		}
 
 		if (expect->type ==TCPCHK_EXPECT_HTTP_BODY)
-			match = my_memmem(b_orig(&trash), b_data(&trash), expect->data.ptr, istlen(expect->data)) != NULL;
+			match = my_memmem(b_orig(&trash), b_data(&trash), istptr(expect->data), istlen(expect->data)) != NULL;
 		else
 			match = regex_exec2(expect->regex, b_orig(&trash), b_data(&trash));
 
@@ -2265,7 +2265,7 @@
 	switch (expect->type) {
 	case TCPCHK_EXPECT_STRING:
 	case TCPCHK_EXPECT_BINARY:
-		match = my_memmem(b_head(&check->bi), b_data(&check->bi), expect->data.ptr, istlen(expect->data)) != NULL;
+		match = my_memmem(b_head(&check->bi), b_data(&check->bi), istptr(expect->data), istlen(expect->data)) != NULL;
 		break;
 	case TCPCHK_EXPECT_REGEX:
 		if (expect->flags & TCPCHK_EXPT_FL_CAP)
@@ -2312,7 +2312,7 @@
 	ret = TCPCHK_EVAL_STOP;
 	msg = alloc_trash_chunk();
 	if (msg)
-		tcpcheck_expect_onerror_message(msg, check, rule, match, ist(NULL));
+		tcpcheck_expect_onerror_message(msg, check, rule, match, IST_NULL);
 	set_server_check_status(check, expect->err_status, (msg ? b_head(msg) : NULL));
 	free_trash_chunk(msg);
 	ret = TCPCHK_EVAL_STOP;
@@ -2425,7 +2425,7 @@
 			memset(&smp, 0, sizeof(smp));
 			smp_set_owner(&smp, check->proxy, check->sess, NULL, SMP_OPT_FINAL);
 			smp.data = var->data;
-			vars_set_by_name_ifexist(var->name.ptr, var->name.len, &smp);
+			vars_set_by_name_ifexist(istptr(var->name), istlen(var->name), &smp);
 		}
 	}
 
@@ -2515,7 +2515,7 @@
 
 			msg = alloc_trash_chunk();
 			if (msg)
-				tcpcheck_expect_onsuccess_message(msg, check, rule, ist(NULL));
+				tcpcheck_expect_onsuccess_message(msg, check, rule, IST_NULL);
 			set_server_check_status(check, rule->expect.ok_status,
 						(msg ? b_head(msg) : "(tcp-check)"));
 			free_trash_chunk(msg);
@@ -3847,21 +3847,21 @@
 			goto error;
 		}
 	}
-	for (i = 0; hdrs[i].n.len; i++) {
+	for (i = 0; istlen(hdrs[i].n); i++) {
 		hdr = calloc(1, sizeof(*hdr));
 		if (!hdr) {
 			memprintf(errmsg, "out of memory");
 			goto error;
 		}
 		LIST_INIT(&hdr->value);
-		hdr->name = ist2(strdup(hdrs[i].n.ptr), hdrs[i].n.len);
-		if (!hdr->name.ptr) {
+		hdr->name = istdup(hdrs[i].n);
+		if (!isttest(hdr->name)) {
 			memprintf(errmsg, "out of memory");
 			goto error;
 		}
 
-		hdrs[i].v.ptr[hdrs[i].v.len] = '\0';
-		if (!parse_logformat_string(hdrs[i].v.ptr, px, &hdr->value, 0, SMP_VAL_BE_CHK_RUL, errmsg))
+		ist0(hdrs[i].v);
+		if (!parse_logformat_string(istptr(hdrs[i].v), px, &hdr->value, 0, SMP_VAL_BE_CHK_RUL, errmsg))
 			goto error;
 		LIST_ADDQ(&chk->send.http.hdrs, &hdr->list);
 		hdr = NULL;
@@ -4261,7 +4261,7 @@
 	case TCPCHK_EXPECT_HTTP_STATUS:
 	case TCPCHK_EXPECT_HTTP_BODY:
 		chk->expect.data = ist2(strdup(pattern), strlen(pattern));
-		if (!chk->expect.data.ptr) {
+		if (!isttest(chk->expect.data)) {
 			memprintf(errmsg, "out of memory");
 			goto error;
 		}
@@ -4334,7 +4334,7 @@
 
 	if (!(new->send.http.flags & TCPCHK_SND_HTTP_FL_URI_FMT) && isttest(new->send.http.uri)) {
 		if (!(old->send.http.flags & TCPCHK_SND_HTTP_FL_URI_FMT))
-			free(old->send.http.uri.ptr);
+			istfree(&old->send.http.uri);
 		else
 			free_tcpcheck_fmt(&old->send.http.uri_fmt);
 		old->send.http.flags &= ~TCPCHK_SND_HTTP_FL_URI_FMT;
@@ -4343,7 +4343,7 @@
 	}
 	else if ((new->send.http.flags & TCPCHK_SND_HTTP_FL_URI_FMT) && !LIST_ISEMPTY(&new->send.http.uri_fmt)) {
 		if (!(old->send.http.flags & TCPCHK_SND_HTTP_FL_URI_FMT))
-			free(old->send.http.uri.ptr);
+			istfree(&old->send.http.uri);
 		else
 			free_tcpcheck_fmt(&old->send.http.uri_fmt);
 		old->send.http.flags |= TCPCHK_SND_HTTP_FL_URI_FMT;
@@ -4355,7 +4355,7 @@
 	}
 
 	if (isttest(new->send.http.vsn)) {
-		free(old->send.http.vsn.ptr);
+		istfree(&old->send.http.vsn);
 		old->send.http.vsn = new->send.http.vsn;
 		new->send.http.vsn = IST_NULL;
 	}
@@ -4368,7 +4368,7 @@
 
 	if (!(new->send.http.flags & TCPCHK_SND_HTTP_FL_BODY_FMT) && isttest(new->send.http.body)) {
 		if (!(old->send.http.flags & TCPCHK_SND_HTTP_FL_BODY_FMT))
-			free(old->send.http.body.ptr);
+			istfree(&old->send.http.body);
 		else
 			free_tcpcheck_fmt(&old->send.http.body_fmt);
 		old->send.http.flags &= ~TCPCHK_SND_HTTP_FL_BODY_FMT;
@@ -4377,7 +4377,7 @@
 	}
 	else if ((new->send.http.flags & TCPCHK_SND_HTTP_FL_BODY_FMT) && !LIST_ISEMPTY(&new->send.http.body_fmt)) {
 		if (!(old->send.http.flags & TCPCHK_SND_HTTP_FL_BODY_FMT))
-			free(old->send.http.body.ptr);
+			istfree(&old->send.http.body);
 		else
 			free_tcpcheck_fmt(&old->send.http.body_fmt);
 		old->send.http.flags |= TCPCHK_SND_HTTP_FL_BODY_FMT;
@@ -5223,7 +5223,7 @@
 	expect->err_status = HCHK_STATUS_L7RSP;
 	expect->tout_status = HCHK_STATUS_L7TOUT;
 	expect->data = ist2(strdup(str), strlen(str));
-	if (!expect->data.ptr) {
+	if (!isttest(expect->data)) {
 		pool_free(pool_head_tcpcheck_rule, tcpcheck);
 		return 0;
 	}
@@ -5264,13 +5264,13 @@
 	for (i = 0; strs[i]; i++)
 		send->data.len += strlen(strs[i]);
 
-	send->data.ptr = malloc(send->data.len + 1);
+	send->data.ptr = malloc(istlen(send->data) + 1);
 	if (!isttest(send->data)) {
 		pool_free(pool_head_tcpcheck_rule, tcpcheck);
 		return 0;
 	}
 
-	dst = send->data.ptr;
+	dst = istptr(send->data);
 	for (i = 0; strs[i]; i++)
 		for (in = strs[i]; (*dst = *in++); dst++);
 	*dst = 0;
@@ -5987,7 +5987,7 @@
 		cmd = strdup("HELO localhost");
 	}
 
-	var = create_tcpcheck_var("check.smtp_cmd");
+	var = create_tcpcheck_var(ist("check.smtp_cmd"));
 	if (cmd == NULL || var == NULL) {
 		ha_alert("parsing [%s:%d] : out of memory.\n", file, line);
 		goto error;
@@ -6132,7 +6132,7 @@
 		packetlen = 15 + strlen(args[cur_arg+1]);
 		user = strdup(args[cur_arg+1]);
 
-		var = create_tcpcheck_var("check.username");
+		var = create_tcpcheck_var(ist("check.username"));
 		if (user == NULL || var == NULL) {
 			ha_alert("parsing [%s:%d] : out of memory.\n", file, line);
 			goto error;
@@ -6145,7 +6145,7 @@
 		user = NULL;
 		var = NULL;
 
-		var = create_tcpcheck_var("check.plen");
+		var = create_tcpcheck_var(ist("check.plen"));
 		if (var == NULL) {
 			ha_alert("parsing [%s:%d] : out of memory.\n", file, line);
 			goto error;
@@ -6364,7 +6364,7 @@
 		hdr[2] = (unsigned char)((packetlen >> 16) & 0xff);
 		hdr[3] = 1;
 
-		var = create_tcpcheck_var("check.header");
+		var = create_tcpcheck_var(ist("check.header"));
 		if (var == NULL) {
 			ha_alert("parsing [%s:%d] : out of memory.\n", file, line);
 			goto error;
@@ -6377,7 +6377,7 @@
 		hdr = NULL;
 		var = NULL;
 
-		var = create_tcpcheck_var("check.username");
+		var = create_tcpcheck_var(ist("check.username"));
 		if (var == NULL) {
 			ha_alert("parsing [%s:%d] : out of memory.\n", file, line);
 			goto error;
@@ -6681,14 +6681,14 @@
 	}
 	if (uri) {
 		chk->send.http.uri = ist2(strdup(uri), strlen(uri));
-		if (!chk->send.http.uri.ptr) {
+		if (!isttest(chk->send.http.uri)) {
 			memprintf(errmsg, "out of memory");
 			goto error;
 		}
 	}
 	if (vsn) {
 		chk->send.http.vsn = ist2(strdup(vsn), strlen(vsn));
-		if (!chk->send.http.vsn.ptr) {
+		if (!isttest(chk->send.http.vsn)) {
 			memprintf(errmsg, "out of memory");
 			goto error;
 		}
@@ -6712,21 +6712,21 @@
 			goto error;
 		}
 
-		for (i = 0; tmp_hdrs[i].n.len; i++) {
+		for (i = 0; istlen(tmp_hdrs[i].n); i++) {
 			hdr = calloc(1, sizeof(*hdr));
 			if (!hdr) {
 				memprintf(errmsg, "out of memory");
 				goto error;
 			}
 			LIST_INIT(&hdr->value);
-			hdr->name = ist2(strdup(tmp_hdrs[i].n.ptr), tmp_hdrs[i].n.len);
+			hdr->name = istdup(tmp_hdrs[i].n);
 			if (!hdr->name.ptr) {
 				memprintf(errmsg, "out of memory");
 				goto error;
 			}
 
-			tmp_hdrs[i].v.ptr[tmp_hdrs[i].v.len] = '\0';
-			if (!parse_logformat_string(tmp_hdrs[i].v.ptr, px, &hdr->value, 0, SMP_VAL_BE_CHK_RUL, errmsg))
+			ist0(tmp_hdrs[i].v);
+			if (!parse_logformat_string(istptr(tmp_hdrs[i].v), px, &hdr->value, 0, SMP_VAL_BE_CHK_RUL, errmsg))
 				goto error;
 			LIST_ADDQ(&chk->send.http.hdrs, &hdr->list);
 		}
@@ -6735,7 +6735,7 @@
 	/* Copy the body */
 	if (body) {
 		chk->send.http.body = ist2(strdup(body), strlen(body));
-		if (!chk->send.http.body.ptr) {
+		if (!isttest(chk->send.http.body)) {
 			memprintf(errmsg, "out of memory");
 			goto error;
 		}
@@ -7044,7 +7044,7 @@
 	char *str;
 
 	str = strdup(send);
-	var = create_tcpcheck_var("check.agent_string");
+	var = create_tcpcheck_var(ist("check.agent_string"));
 	if (str == NULL || var == NULL)
 		goto error;