CLEANUP: log: Rename Alert/Warning in ha_alert/ha_warning
diff --git a/src/51d.c b/src/51d.c
index baeb2c2..a36333e 100644
--- a/src/51d.c
+++ b/src/51d.c
@@ -548,7 +548,7 @@
 		return 0;
 
 	if (global.nbthread > 1) {
-		Alert("51Degrees: multithreading is not supported for now.\n");
+		ha_alert("51Degrees: multithreading is not supported for now.\n");
 		return (ERR_FATAL | ERR_ALERT);
 	}
 
@@ -616,9 +616,9 @@
 	}
 	if (_51d_dataset_status != DATA_SET_INIT_STATUS_SUCCESS) {
 		if (temp->len)
-			Alert("51Degrees Setup - Error reading 51Degrees data file. %s\n", temp->str);
+			ha_alert("51Degrees Setup - Error reading 51Degrees data file. %s\n", temp->str);
 		else
-			Alert("51Degrees Setup - Error reading 51Degrees data file.\n");
+			ha_alert("51Degrees Setup - Error reading 51Degrees data file.\n");
 		return ERR_ALERT | ERR_FATAL;
 	}
 	free(_51d_property_list);
diff --git a/src/acl.c b/src/acl.c
index bc1f2e2..f19b2d2 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -422,13 +422,13 @@
 
 	/* Additional check to protect against common mistakes */
 	if (expr->pat.parse && cur_type != SMP_T_BOOL && !*args[1]) {
-		Warning("parsing acl keyword '%s' :\n"
-		        "  no pattern to match against were provided, so this ACL will never match.\n"
-		        "  If this is what you intended, please add '--' to get rid of this warning.\n"
-		        "  If you intended to match only for existence, please use '-m found'.\n"
-		        "  If you wanted to force an int to match as a bool, please use '-m bool'.\n"
-		        "\n",
-		        args[0]);
+		ha_warning("parsing acl keyword '%s' :\n"
+			   "  no pattern to match against were provided, so this ACL will never match.\n"
+			   "  If this is what you intended, please add '--' to get rid of this warning.\n"
+			   "  If you intended to match only for existence, please use '-m found'.\n"
+			   "  If you wanted to force an int to match as a bool, please use '-m bool'.\n"
+			   "\n",
+			   args[0]);
 	}
 
 	args++;
@@ -733,12 +733,12 @@
 	 * emit a warning, so let's do so.
 	 */
 	if (!strchr(args[1], '(') && *args[2] == '(')
-		Warning("parsing acl '%s' :\n"
-			"  matching '%s' for pattern '%s' is likely a mistake and probably\n"
-			"  not what you want. Maybe you need to remove the extraneous space before '('.\n"
-			"  If you are really sure this is not an error, please insert '--' between the\n"
-			"  match and the pattern to make this warning message disappear.\n",
-			args[0], args[1], args[2]);
+		ha_warning("parsing acl '%s' :\n"
+			   "  matching '%s' for pattern '%s' is likely a mistake and probably\n"
+			   "  not what you want. Maybe you need to remove the extraneous space before '('.\n"
+			   "  If you are really sure this is not an error, please insert '--' between the\n"
+			   "  match and the pattern to make this warning message disappear.\n",
+			   args[0], args[1], args[2]);
 
 	if (*args[0])
 		cur_acl = find_acl_by_name(args[0], known_acl);
@@ -1271,15 +1271,15 @@
 				 * by smp_resolve_args().
 				 */
 				if (expr->smp->arg_p->unresolved) {
-					Alert("Internal bug in proxy %s: %sacl %s %s() makes use of unresolved userlist '%s'. Please report this.\n",
-					      p->id, *acl->name ? "" : "anonymous ", acl->name, expr->kw, expr->smp->arg_p->data.str.str);
+					ha_alert("Internal bug in proxy %s: %sacl %s %s() makes use of unresolved userlist '%s'. Please report this.\n",
+						 p->id, *acl->name ? "" : "anonymous ", acl->name, expr->kw, expr->smp->arg_p->data.str.str);
 					cfgerr++;
 					continue;
 				}
 
 				if (LIST_ISEMPTY(&expr->pat.head)) {
-					Alert("proxy %s: acl %s %s(): no groups specified.\n",
-						p->id, acl->name, expr->kw);
+					ha_alert("proxy %s: acl %s %s(): no groups specified.\n",
+						 p->id, acl->name, expr->kw);
 					cfgerr++;
 					continue;
 				}
@@ -1287,8 +1287,8 @@
 				/* For each pattern, check if the group exists. */
 				list_for_each_entry(pexp, &expr->pat.head, list) {
 					if (LIST_ISEMPTY(&pexp->expr->patterns)) {
-						Alert("proxy %s: acl %s %s(): no groups specified.\n",
-							p->id, acl->name, expr->kw);
+						ha_alert("proxy %s: acl %s %s(): no groups specified.\n",
+							 p->id, acl->name, expr->kw);
 						cfgerr++;
 						continue;
 					}
@@ -1296,8 +1296,8 @@
 					list_for_each_entry(pattern, &pexp->expr->patterns, list) {
 						/* this keyword only has one argument */
 						if (!check_group(expr->smp->arg_p->data.usr, pattern->pat.ptr.str)) {
-							Alert("proxy %s: acl %s %s(): invalid group '%s'.\n",
-							      p->id, acl->name, expr->kw, pattern->pat.ptr.str);
+							ha_alert("proxy %s: acl %s %s(): invalid group '%s'.\n",
+								 p->id, acl->name, expr->kw, pattern->pat.ptr.str);
 							cfgerr++;
 						}
 					}
@@ -1328,8 +1328,8 @@
 
 			smp = find_sample_fetch(name, strlen(name));
 			if (!smp) {
-				Alert("Critical internal error: ACL keyword '%s' relies on sample fetch '%s' which was not registered!\n",
-				      kwl->kw[index].kw, name);
+				ha_alert("Critical internal error: ACL keyword '%s' relies on sample fetch '%s' which was not registered!\n",
+					 kwl->kw[index].kw, name);
 				err++;
 				continue;
 			}
diff --git a/src/auth.c b/src/auth.c
index b041889..a2c689f 100644
--- a/src/auth.c
+++ b/src/auth.c
@@ -133,8 +133,8 @@
 				}
 
 				if (!ag) {
-					Alert("userlist '%s': no such group '%s' specified in user '%s'\n",
-					      curuserlist->name, group, curuser->user);
+					ha_alert("userlist '%s': no such group '%s' specified in user '%s'\n",
+						 curuserlist->name, group, curuser->user);
 					free(groups);
 					return ERR_ALERT | ERR_FATAL;
 				}
@@ -142,8 +142,8 @@
 				/* Add this group at the group userlist. */
 				grl = calloc(1, sizeof(*grl));
 				if (!grl) {
-					Alert("userlist '%s': no more memory when trying to allocate the user groups.\n",
-					      curuserlist->name);
+					ha_alert("userlist '%s': no more memory when trying to allocate the user groups.\n",
+						 curuserlist->name);
 					free(groups);
 					return ERR_ALERT | ERR_FATAL;
 				}
@@ -170,16 +170,16 @@
 				}
 
 				if (!curuser) {
-					Alert("userlist '%s': no such user '%s' specified in group '%s'\n",
-					      curuserlist->name, user, ag->name);
+					ha_alert("userlist '%s': no such user '%s' specified in group '%s'\n",
+						 curuserlist->name, user, ag->name);
 					return ERR_ALERT | ERR_FATAL;
 				}
 
 				/* Add this group at the group userlist. */
 				grl = calloc(1, sizeof(*grl));
 				if (!grl) {
-					Alert("userlist '%s': no more memory when trying to allocate the user groups.\n",
-					      curuserlist->name);
+					ha_alert("userlist '%s': no more memory when trying to allocate the user groups.\n",
+						 curuserlist->name);
 					return  ERR_ALERT | ERR_FATAL;
 				}
 
diff --git a/src/backend.c b/src/backend.c
index 4231c34..2b6167d 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1359,7 +1359,7 @@
 	HA_ATOMIC_ADD(&be->down_trans, 1);
 
 	if (!(global.mode & MODE_STARTING)) {
-		Alert("%s '%s' has no server available!\n", proxy_type_str(be), be->id);
+		ha_alert("%s '%s' has no server available!\n", proxy_type_str(be), be->id);
 		send_log(be, LOG_EMERG, "%s %s has no server available!\n", proxy_type_str(be), be->id);
 	}
 }
diff --git a/src/cache.c b/src/cache.c
index 7ae3267..97861d7 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -609,15 +609,15 @@
 
 	rule->arg.act.p[0] = strdup(args[cur_arg]);
 	if (!rule->arg.act.p[0]) {
-		Alert("config: %s '%s': out of memory\n", proxy_type_str(proxy), proxy->id);
+		ha_alert("config: %s '%s': out of memory\n", proxy_type_str(proxy), proxy->id);
 		err++;
 		goto err;
 	}
 	/* register a filter to fill the cache buffer */
 	fconf = calloc(1, sizeof(*fconf));
 	if (!fconf) {
-		Alert("config: %s '%s': out of memory\n",
-		      proxy_type_str(proxy), proxy->id);
+		ha_alert("config: %s '%s': out of memory\n",
+			 proxy_type_str(proxy), proxy->id);
 		err++;
 		goto err;
 	}
@@ -718,7 +718,7 @@
 
 	rule->arg.act.p[0] = strdup(args[cur_arg]);
 	if (!rule->arg.act.p[0]) {
-		Alert("config: %s '%s': out of memory\n", proxy_type_str(proxy), proxy->id);
+		ha_alert("config: %s '%s': out of memory\n", proxy_type_str(proxy), proxy->id);
 		err++;
 		goto err;
 	}
@@ -738,8 +738,8 @@
 	if (strcmp(args[0], "cache") == 0) { /* new cache section */
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects an <id> argument\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an <id> argument\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -752,15 +752,15 @@
 		if (tmp_cache_config == NULL) {
 			tmp_cache_config = calloc(1, sizeof(*tmp_cache_config));
 			if (!tmp_cache_config) {
-				Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
 
 			strlcpy2(tmp_cache_config->id, args[1], 33);
 			if (strlen(args[1]) > 32) {
-				Warning("parsing [%s:%d]: cache id is limited to 32 characters, truncate to '%s'.\n",
-				        file, linenum, tmp_cache_config->id);
+				ha_warning("parsing [%s:%d]: cache id is limited to 32 characters, truncate to '%s'.\n",
+					   file, linenum, tmp_cache_config->id);
 				err_code |= ERR_WARN;
 			}
 
@@ -779,7 +779,7 @@
 		tmp_cache_config->maxblocks = maxsize;
 
 	} else if (*args[0] != 0) {
-		Alert("parsing [%s:%d] : unknown keyword '%s' in 'cache' section\n", file, linenum, args[0]);
+		ha_alert("parsing [%s:%d] : unknown keyword '%s' in 'cache' section\n", file, linenum, args[0]);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -799,7 +799,7 @@
 		struct cache *cache;
 
 		if (tmp_cache_config->maxblocks <= 0) {
-			Alert("Size not specified for cache '%s'\n", tmp_cache_config->id);
+			ha_alert("Size not specified for cache '%s'\n", tmp_cache_config->id);
 			err_code |= ERR_FATAL | ERR_ALERT;
 			goto out;
 		}
@@ -808,9 +808,9 @@
 
 		if (ret_shctx < 0) {
 			if (ret_shctx == SHCTX_E_INIT_LOCK)
-				Alert("Unable to initialize the lock for the cache.\n");
+				ha_alert("Unable to initialize the lock for the cache.\n");
 			else
-				Alert("Unable to allocate cache.\n");
+				ha_alert("Unable to allocate cache.\n");
 
 			err_code |= ERR_FATAL | ERR_ALERT;
 			goto out;
@@ -859,8 +859,8 @@
 			}
 
 			if (cache_ptr == hresrule->arg.act.p[0]) {
-				Alert("Proxy '%s': unable to find the cache '%s' referenced by http-response cache-store rule.\n",
-				      curproxy->id, (char *)hresrule->arg.act.p[0]);
+				ha_alert("Proxy '%s': unable to find the cache '%s' referenced by http-response cache-store rule.\n",
+					 curproxy->id, (char *)hresrule->arg.act.p[0]);
 				err++;
 			}
 
@@ -884,8 +884,8 @@
 			}
 
 			if (cache_ptr == hrqrule->arg.act.p[0]) {
-				Alert("Proxy '%s': unable to find the cache '%s' referenced by http-request cache-use rule.\n",
-				      curproxy->id, (char *)hrqrule->arg.act.p[0]);
+				ha_alert("Proxy '%s': unable to find the cache '%s' referenced by http-request cache-use rule.\n",
+					 curproxy->id, (char *)hrqrule->arg.act.p[0]);
 				err++;
 			}
 
@@ -910,8 +910,8 @@
 			}
 
 			if (cache_ptr == fconf->conf) {
-				Alert("Proxy '%s': unable to find the cache '%s' referenced by the filter 'cache'.\n",
-				      curproxy->id, (char *)fconf->conf);
+				ha_alert("Proxy '%s': unable to find the cache '%s' referenced by the filter 'cache'.\n",
+					 curproxy->id, (char *)fconf->conf);
 				err++;
 			}
 			fconf->conf = cache_ptr;
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 1a75686..685fbe9 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -366,7 +366,7 @@
 		memprintf(&kw, "%s %s", kw, args[i]);
 	}
 
-	Alert("parsing [%s:%d] : '%s' cannot handle unexpected argument '%s'.\n", file, linenum, kw, args[index + maxarg + 1]);
+	ha_alert("parsing [%s:%d] : '%s' cannot handle unexpected argument '%s'.\n", file, linenum, kw, args[index + maxarg + 1]);
 	free(kw);
 	*err_code |= ERR_ALERT | ERR_FATAL;
 	return 1;
@@ -386,8 +386,8 @@
 int warnif_rule_after_tcp_sess(struct proxy *proxy, const char *file, int line, const char *arg)
 {
 	if (!LIST_ISEMPTY(&proxy->tcp_req.l5_rules)) {
-		Warning("parsing [%s:%d] : a '%s' rule placed after a 'tcp-request session' rule will still be processed before.\n",
-			file, line, arg);
+		ha_warning("parsing [%s:%d] : a '%s' rule placed after a 'tcp-request session' rule will still be processed before.\n",
+			   file, line, arg);
 		return 1;
 	}
 	return 0;
@@ -399,8 +399,8 @@
 int warnif_rule_after_tcp_cont(struct proxy *proxy, const char *file, int line, const char *arg)
 {
 	if (!LIST_ISEMPTY(&proxy->tcp_req.inspect_rules)) {
-		Warning("parsing [%s:%d] : a '%s' rule placed after a 'tcp-request content' rule will still be processed before.\n",
-			file, line, arg);
+		ha_warning("parsing [%s:%d] : a '%s' rule placed after a 'tcp-request content' rule will still be processed before.\n",
+			   file, line, arg);
 		return 1;
 	}
 	return 0;
@@ -412,8 +412,8 @@
 int warnif_rule_after_block(struct proxy *proxy, const char *file, int line, const char *arg)
 {
 	if (!LIST_ISEMPTY(&proxy->block_rules)) {
-		Warning("parsing [%s:%d] : a '%s' rule placed after a 'block' rule will still be processed before.\n",
-			file, line, arg);
+		ha_warning("parsing [%s:%d] : a '%s' rule placed after a 'block' rule will still be processed before.\n",
+			   file, line, arg);
 		return 1;
 	}
 	return 0;
@@ -425,8 +425,8 @@
 int warnif_rule_after_http_req(struct proxy *proxy, const char *file, int line, const char *arg)
 {
 	if (!LIST_ISEMPTY(&proxy->http_req_rules)) {
-		Warning("parsing [%s:%d] : a '%s' rule placed after an 'http-request' rule will still be processed before.\n",
-			file, line, arg);
+		ha_warning("parsing [%s:%d] : a '%s' rule placed after an 'http-request' rule will still be processed before.\n",
+			   file, line, arg);
 		return 1;
 	}
 	return 0;
@@ -438,8 +438,8 @@
 int warnif_rule_after_reqxxx(struct proxy *proxy, const char *file, int line, const char *arg)
 {
 	if (proxy->req_exp) {
-		Warning("parsing [%s:%d] : a '%s' rule placed after a 'reqxxx' rule will still be processed before.\n",
-			file, line, arg);
+		ha_warning("parsing [%s:%d] : a '%s' rule placed after a 'reqxxx' rule will still be processed before.\n",
+			   file, line, arg);
 		return 1;
 	}
 	return 0;
@@ -451,8 +451,8 @@
 int warnif_rule_after_reqadd(struct proxy *proxy, const char *file, int line, const char *arg)
 {
 	if (!LIST_ISEMPTY(&proxy->req_add)) {
-		Warning("parsing [%s:%d] : a '%s' rule placed after a 'reqadd' rule will still be processed before.\n",
-			file, line, arg);
+		ha_warning("parsing [%s:%d] : a '%s' rule placed after a 'reqadd' rule will still be processed before.\n",
+			   file, line, arg);
 		return 1;
 	}
 	return 0;
@@ -464,8 +464,8 @@
 int warnif_rule_after_redirect(struct proxy *proxy, const char *file, int line, const char *arg)
 {
 	if (!LIST_ISEMPTY(&proxy->redirect_rules)) {
-		Warning("parsing [%s:%d] : a '%s' rule placed after a 'redirect' rule will still be processed before.\n",
-			file, line, arg);
+		ha_warning("parsing [%s:%d] : a '%s' rule placed after a 'redirect' rule will still be processed before.\n",
+			   file, line, arg);
 		return 1;
 	}
 	return 0;
@@ -477,8 +477,8 @@
 int warnif_rule_after_use_backend(struct proxy *proxy, const char *file, int line, const char *arg)
 {
 	if (!LIST_ISEMPTY(&proxy->switching_rules)) {
-		Warning("parsing [%s:%d] : a '%s' rule placed after a 'use_backend' rule will still be processed before.\n",
-			file, line, arg);
+		ha_warning("parsing [%s:%d] : a '%s' rule placed after a 'use_backend' rule will still be processed before.\n",
+			   file, line, arg);
 		return 1;
 	}
 	return 0;
@@ -490,8 +490,8 @@
 int warnif_rule_after_use_server(struct proxy *proxy, const char *file, int line, const char *arg)
 {
 	if (!LIST_ISEMPTY(&proxy->server_rules)) {
-		Warning("parsing [%s:%d] : a '%s' rule placed after a 'use-server' rule will still be processed before.\n",
-			file, line, arg);
+		ha_warning("parsing [%s:%d] : a '%s' rule placed after a 'use-server' rule will still be processed before.\n",
+			   file, line, arg);
 		return 1;
 	}
 	return 0;
@@ -569,22 +569,22 @@
 	acl = acl_cond_conflicts(cond, where);
 	if (acl) {
 		if (acl->name && *acl->name)
-			Warning("parsing [%s:%d] : acl '%s' will never match because it only involves keywords that are incompatible with '%s'\n",
-			        file, line, acl->name, sample_ckp_names(where));
+			ha_warning("parsing [%s:%d] : acl '%s' will never match because it only involves keywords that are incompatible with '%s'\n",
+				   file, line, acl->name, sample_ckp_names(where));
 		else
-			Warning("parsing [%s:%d] : anonymous acl will never match because it uses keyword '%s' which is incompatible with '%s'\n",
-			        file, line, LIST_ELEM(acl->expr.n, struct acl_expr *, list)->kw, sample_ckp_names(where));
+			ha_warning("parsing [%s:%d] : anonymous acl will never match because it uses keyword '%s' which is incompatible with '%s'\n",
+				   file, line, LIST_ELEM(acl->expr.n, struct acl_expr *, list)->kw, sample_ckp_names(where));
 		return ERR_WARN;
 	}
 	if (!acl_cond_kw_conflicts(cond, where, &acl, &kw))
 		return 0;
 
 	if (acl->name && *acl->name)
-		Warning("parsing [%s:%d] : acl '%s' involves keywords '%s' which is incompatible with '%s'\n",
-		        file, line, acl->name, kw, sample_ckp_names(where));
+		ha_warning("parsing [%s:%d] : acl '%s' involves keywords '%s' which is incompatible with '%s'\n",
+			   file, line, acl->name, kw, sample_ckp_names(where));
 	else
-		Warning("parsing [%s:%d] : anonymous acl involves keyword '%s' which is incompatible with '%s'\n",
-		        file, line, kw, sample_ckp_names(where));
+		ha_warning("parsing [%s:%d] : anonymous acl involves keyword '%s' which is incompatible with '%s'\n",
+			   file, line, kw, sample_ckp_names(where));
 	return ERR_WARN;
 }
 
@@ -719,7 +719,7 @@
 			if (!strcmp(args[1], "exit-on-failure")) {
 				global.tune.options |= GTUNE_EXIT_ONFAILURE;
 			} else {
-				Alert("parsing [%s:%d] : '%s' only supports 'exit-on-failure' option.\n", file, linenum, args[0]);
+				ha_alert("parsing [%s:%d] : '%s' only supports 'exit-on-failure' option.\n", file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -770,12 +770,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.tune.maxpollevents != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -785,12 +785,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.tune.maxaccept != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -800,7 +800,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -810,7 +810,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -820,7 +820,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -836,7 +836,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -850,13 +850,13 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		global.tune.bufsize = atol(args[1]);
 		if (global.tune.bufsize <= 0) {
-			Alert("parsing [%s:%d] : '%s' expects a positive integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a positive integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -865,13 +865,13 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		global.tune.maxrewrite = atol(args[1]);
 		if (global.tune.maxrewrite < 0) {
-			Alert("parsing [%s:%d] : '%s' expects a positive integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a positive integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -883,21 +883,21 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a timer value between 0 and 65535 ms.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a timer value between 0 and 65535 ms.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		res = parse_time_err(args[1], &idle, TIME_UNIT_MS);
 		if (res) {
-			Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
+			ha_alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
 			      file, linenum, *res, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (idle > 65535) {
-			Alert("parsing [%s:%d] : '%s' expects a timer value between 0 and 65535 ms.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a timer value between 0 and 65535 ms.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -907,12 +907,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.tune.client_rcvbuf != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -922,12 +922,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.tune.server_rcvbuf != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -937,12 +937,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.tune.client_sndbuf != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -952,12 +952,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.tune.server_sndbuf != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -967,7 +967,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -977,7 +977,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -987,7 +987,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -997,14 +997,14 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		global.tune.max_http_hdr = atoi(args[1]);
 		if (global.tune.max_http_hdr < 1 || global.tune.max_http_hdr > 32767) {
-			Alert("parsing [%s:%d] : '%s' expects a numeric value between 1 and 32767\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a numeric value between 1 and 32767\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1015,14 +1015,14 @@
 		if (*args[1]) {
 			global.tune.comp_maxlevel = atoi(args[1]);
 			if (global.tune.comp_maxlevel < 1 || global.tune.comp_maxlevel > 9) {
-				Alert("parsing [%s:%d] : '%s' expects a numeric value between 1 and 9\n",
-				      file, linenum, args[0]);
+				ha_alert("parsing [%s:%d] : '%s' expects a numeric value between 1 and 9\n",
+					 file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		} else {
-			Alert("parsing [%s:%d] : '%s' expects a numeric value between 1 and 9\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a numeric value between 1 and 9\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1031,14 +1031,14 @@
 		if (*args[1]) {
 			global.tune.pattern_cache = atoi(args[1]);
 			if (global.tune.pattern_cache < 0) {
-				Alert("parsing [%s:%d] : '%s' expects a positive numeric value\n",
-				      file, linenum, args[0]);
+				ha_alert("parsing [%s:%d] : '%s' expects a positive numeric value\n",
+					 file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		} else {
-			Alert("parsing [%s:%d] : '%s' expects a positive numeric value\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a positive numeric value\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1047,17 +1047,17 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.uid != 0) {
-			Alert("parsing [%s:%d] : user/uid already specified. Continuing.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : user/uid already specified. Continuing.\n", file, linenum);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		if (strl2irc(args[1], strlen(args[1]), &global.uid) != 0) {
-			Warning("parsing [%s:%d] :  uid: string '%s' is not a number.\n   | You might want to use the 'user' parameter to use a system user name.\n", file, linenum, args[1]);
+			ha_warning("parsing [%s:%d] :  uid: string '%s' is not a number.\n   | You might want to use the 'user' parameter to use a system user name.\n", file, linenum, args[1]);
 			err_code |= ERR_WARN;
 			goto out;
 		}
@@ -1067,17 +1067,17 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.gid != 0) {
-			Alert("parsing [%s:%d] : group/gid already specified. Continuing.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : group/gid already specified. Continuing.\n", file, linenum);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		if (strl2irc(args[1], strlen(args[1]), &global.gid) != 0) {
-			Warning("parsing [%s:%d] :  gid: string '%s' is not a number.\n   | You might want to use the 'group' parameter to use a system group name.\n", file, linenum, args[1]);
+			ha_warning("parsing [%s:%d] :  gid: string '%s' is not a number.\n   | You might want to use the 'group' parameter to use a system group name.\n", file, linenum, args[1]);
 			err_code |= ERR_WARN;
 			goto out;
 		}
@@ -1093,7 +1093,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.uid != 0) {
-			Alert("parsing [%s:%d] : user/uid already specified. Continuing.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : user/uid already specified. Continuing.\n", file, linenum);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
@@ -1103,7 +1103,7 @@
 			global.uid = (int)ha_user->pw_uid;
 		}
 		else {
-			Alert("parsing [%s:%d] : cannot find user id for '%s' (%d:%s)\n", file, linenum, args[1], errno, strerror(errno));
+			ha_alert("parsing [%s:%d] : cannot find user id for '%s' (%d:%s)\n", file, linenum, args[1], errno, strerror(errno));
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 	}
@@ -1112,7 +1112,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.gid != 0) {
-			Alert("parsing [%s:%d] : gid/group was already specified. Continuing.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : gid/group was already specified. Continuing.\n", file, linenum);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
@@ -1122,7 +1122,7 @@
 			global.gid = (int)ha_group->gr_gid;
 		}
 		else {
-			Alert("parsing [%s:%d] : cannot find group id for '%s' (%d:%s)\n", file, linenum, args[1], errno, strerror(errno));
+			ha_alert("parsing [%s:%d] : cannot find group id for '%s' (%d:%s)\n", file, linenum, args[1], errno, strerror(errno));
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 	}
@@ -1131,14 +1131,14 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		global.nbproc = atol(args[1]);
 		if (global.nbproc < 1 || global.nbproc > LONGBITS) {
-			Alert("parsing [%s:%d] : '%s' must be between 1 and %d (was %d).\n",
-			      file, linenum, args[0], LONGBITS, global.nbproc);
+			ha_alert("parsing [%s:%d] : '%s' must be between 1 and %d (was %d).\n",
+				 file, linenum, args[0], LONGBITS, global.nbproc);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1147,20 +1147,20 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		global.nbthread = atol(args[1]);
 		if (global.nbthread < 1 || global.nbthread > LONGBITS) {
-			Alert("parsing [%s:%d] : '%s' must be between 1 and %d (was %d).\n",
-			      file, linenum, args[0], LONGBITS, global.nbthread);
+			ha_alert("parsing [%s:%d] : '%s' must be between 1 and %d (was %d).\n",
+				 file, linenum, args[0], LONGBITS, global.nbthread);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 #ifndef USE_THREAD
 		if (global.nbthread > 1) {
-			Alert("HAProxy is not compiled with threads support, please check build options for USE_THREAD.\n");
+			ha_alert("HAProxy is not compiled with threads support, please check build options for USE_THREAD.\n");
 			global.nbthread = 1;
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
@@ -1171,19 +1171,19 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.maxconn != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		global.maxconn = atol(args[1]);
 #ifdef SYSTEM_MAXCONN
 		if (global.maxconn > DEFAULT_MAXCONN && cfg_maxconn <= DEFAULT_MAXCONN) {
-			Alert("parsing [%s:%d] : maxconn value %d too high for this system.\nLimiting to %d. Please use '-n' to force the value.\n", file, linenum, global.maxconn, DEFAULT_MAXCONN);
+			ha_alert("parsing [%s:%d] : maxconn value %d too high for this system.\nLimiting to %d. Please use '-n' to force the value.\n", file, linenum, global.maxconn, DEFAULT_MAXCONN);
 			global.maxconn = DEFAULT_MAXCONN;
 			err_code |= ERR_ALERT;
 		}
@@ -1193,7 +1193,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1202,7 +1202,7 @@
 		else if (strcmp(args[1],"required") == 0)
 			global.ssl_server_verify = SSL_SERVER_VERIFY_REQUIRED;
 		else {
-			Alert("parsing [%s:%d] : '%s' expects 'none' or 'required' as argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects 'none' or 'required' as argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 	                goto out;
 		}
@@ -1211,12 +1211,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.cps_lim != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1226,12 +1226,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.sps_lim != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1241,12 +1241,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.ssl_lim != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1256,7 +1256,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument in kb/s.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument in kb/s.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1266,12 +1266,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.maxpipes != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1281,7 +1281,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1291,13 +1291,13 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument between 0 and 100.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument between 0 and 100.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		compress_min_idle = 100 - atoi(args[1]);
 		if (compress_min_idle > 100) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument between 0 and 100.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument between 0 and 100.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1307,12 +1307,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.rlimit_nofile != 0) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1322,12 +1322,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.chroot != NULL) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a directory as an argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a directory as an argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1338,8 +1338,8 @@
 		char *d;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d]: '%s' expects a string argument.\n",
-				file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects a string argument.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1371,9 +1371,9 @@
 		}
 
 		if (!i || args[1][i]) {
-			Alert("parsing [%s:%d]: '%s' requires valid node name - non-empty string"
-				" with digits(0-9), letters(A-Z, a-z), dot(.), hyphen(-) or underscode(_).\n",
-				file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' requires valid node name - non-empty string"
+				 " with digits(0-9), letters(A-Z, a-z), dot(.), hyphen(-) or underscode(_).\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1387,12 +1387,12 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.pidfile != NULL) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a file name as an argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a file name as an argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1403,14 +1403,14 @@
 		while (*(args[cur_arg])) {
 			if (!strcmp(args[cur_arg], "prefix")) {
 				if (global.unix_bind.prefix != NULL) {
-					Alert("parsing [%s:%d] : unix-bind '%s' already specified. Continuing.\n", file, linenum, args[cur_arg]);
+					ha_alert("parsing [%s:%d] : unix-bind '%s' already specified. Continuing.\n", file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT;
 					cur_arg += 2;
 					continue;
 				}
 
 				if (*(args[cur_arg+1]) == 0) {
-		                        Alert("parsing [%s:%d] : unix_bind '%s' expects a path as an argument.\n", file, linenum, args[cur_arg]);
+		                        ha_alert("parsing [%s:%d] : unix_bind '%s' expects a path as an argument.\n", file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -1445,8 +1445,8 @@
 
 				user = getpwnam(args[cur_arg + 1]);
 				if (!user) {
-					Alert("parsing [%s:%d] : '%s' : '%s' unknown user.\n",
-						file, linenum, args[0], args[cur_arg + 1 ]);
+					ha_alert("parsing [%s:%d] : '%s' : '%s' unknown user.\n",
+						 file, linenum, args[0], args[cur_arg + 1 ]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -1461,8 +1461,8 @@
 
 				group = getgrnam(args[cur_arg + 1]);
 				if (!group) {
-					Alert("parsing [%s:%d] : '%s' : '%s' unknown group.\n",
-						file, linenum, args[0], args[cur_arg + 1 ]);
+					ha_alert("parsing [%s:%d] : '%s' : '%s' unknown group.\n",
+						 file, linenum, args[0], args[cur_arg + 1 ]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -1472,8 +1472,8 @@
 				continue;
 			}
 
-			Alert("parsing [%s:%d] : '%s' only supports the 'prefix', 'mode', 'uid', 'gid', 'user' and 'group' options.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' only supports the 'prefix', 'mode', 'uid', 'gid', 'user' and 'group' options.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
                 }
@@ -1484,7 +1484,7 @@
 		struct logsrv *tmp;
 
 		if (*(args[1]) != 0) {
-			Alert("parsing [%s:%d]:%s : 'no log' does not expect arguments.\n", file, linenum, args[1]);
+			ha_alert("parsing [%s:%d]:%s : 'no log' does not expect arguments.\n", file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1505,7 +1505,7 @@
 			goto out;
 
 		if (*(args[1]) == 0 || *(args[2]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects <address> and <facility> as arguments.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <address> and <facility> as arguments.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1516,8 +1516,8 @@
 		if (strcmp(args[arg+2], "len") == 0) {
 			len = atoi(args[arg+3]);
 			if (len < 80 || len > 65535) {
-				Alert("parsing [%s:%d] : invalid log length '%s', must be between 80 and 65535.\n",
-				      file, linenum, args[arg+3]);
+				ha_alert("parsing [%s:%d] : invalid log length '%s', must be between 80 and 65535.\n",
+					 file, linenum, args[arg+3]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -1536,7 +1536,7 @@
 		if (strcmp(args[arg+2], "format") == 0) {
 			logsrv->format = get_log_format(args[arg+3]);
 			if (logsrv->format < 0) {
-				Alert("parsing [%s:%d] : unknown log format '%s'\n", file, linenum, args[arg+3]);
+				ha_alert("parsing [%s:%d] : unknown log format '%s'\n", file, linenum, args[arg+3]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				free(logsrv);
 				goto out;
@@ -1553,7 +1553,7 @@
 
 		logsrv->facility = get_log_facility(args[arg+2]);
 		if (logsrv->facility < 0) {
-			Alert("parsing [%s:%d] : unknown log facility '%s'\n", file, linenum, args[arg+2]);
+			ha_alert("parsing [%s:%d] : unknown log facility '%s'\n", file, linenum, args[arg+2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			logsrv->facility = 0;
 		}
@@ -1562,7 +1562,7 @@
 		if (*(args[arg+3])) {
 			logsrv->level = get_log_level(args[arg+3]);
 			if (logsrv->level < 0) {
-				Alert("parsing [%s:%d] : unknown optional log level '%s'\n", file, linenum, args[arg+3]);
+				ha_alert("parsing [%s:%d] : unknown optional log level '%s'\n", file, linenum, args[arg+3]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				logsrv->level = 0;
 			}
@@ -1572,7 +1572,7 @@
 		if (*(args[arg+4])) {
 			logsrv->minlvl = get_log_level(args[arg+4]);
 			if (logsrv->minlvl < 0) {
-				Alert("parsing [%s:%d] : unknown optional minimum log level '%s'\n", file, linenum, args[arg+4]);
+				ha_alert("parsing [%s:%d] : unknown optional minimum log level '%s'\n", file, linenum, args[arg+4]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				logsrv->minlvl = 0;
 			}
@@ -1580,7 +1580,7 @@
 
 		sk = str2sa_range(args[1], NULL, &port1, &port2, &errmsg, NULL, NULL, 1);
 		if (!sk) {
-			Alert("parsing [%s:%d] : '%s': %s\n", file, linenum, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : '%s': %s\n", file, linenum, args[0], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			free(logsrv);
 			goto out;
@@ -1589,8 +1589,8 @@
 
 		if (sk->ss_family == AF_INET || sk->ss_family == AF_INET6) {
 			if (port1 != port2) {
-				Alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'\n",
-				      file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				free(logsrv);
 				goto out;
@@ -1607,7 +1607,7 @@
 		char *name;
 
 		if (global.log_send_hostname != NULL) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
@@ -1622,13 +1622,13 @@
 	}
 	else if (!strcmp(args[0], "server-state-base")) { /* path base where HAProxy can find server state files */
 		if (global.server_state_base != NULL) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 
 		if (!*(args[1])) {
-			Alert("parsing [%s:%d] : '%s' expects one argument: a directory path.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects one argument: a directory path.\n", file, linenum, args[0]);
 			err_code |= ERR_FATAL;
 			goto out;
 		}
@@ -1637,13 +1637,13 @@
 	}
 	else if (!strcmp(args[0], "server-state-file")) { /* path to the file where HAProxy can load the server states */
 		if (global.server_state_file != NULL) {
-			Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 
 		if (!*(args[1])) {
-			Alert("parsing [%s:%d] : '%s' expect one argument: a file path.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expect one argument: a file path.\n", file, linenum, args[0]);
 			err_code |= ERR_FATAL;
 			goto out;
 		}
@@ -1654,7 +1654,7 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a tag for use in syslog.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a tag for use in syslog.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1665,18 +1665,18 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (global.spread_checks != 0) {
-			Alert("parsing [%s:%d]: spread-checks already specified. Continuing.\n", file, linenum);
+			ha_alert("parsing [%s:%d]: spread-checks already specified. Continuing.\n", file, linenum);
 			err_code |= ERR_ALERT;
 			goto out;
 		}
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d]: '%s' expects an integer argument (0..50).\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects an integer argument (0..50).\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		global.spread_checks = atol(args[1]);
 		if (global.spread_checks < 0 || global.spread_checks > 50) {
-			Alert("parsing [%s:%d]: 'spread-checks' needs a positive value in range 0..50.\n", file, linenum);
+			ha_alert("parsing [%s:%d]: 'spread-checks' needs a positive value in range 0..50.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 	}
@@ -1687,19 +1687,19 @@
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d]: '%s' expects an integer argument (0..50).\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects an integer argument (0..50).\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		err = parse_time_err(args[1], &val, TIME_UNIT_MS);
 		if (err) {
-			Alert("parsing [%s:%d]: unsupported character '%c' in '%s' (wants an integer delay).\n", file, linenum, *err, args[0]);
+			ha_alert("parsing [%s:%d]: unsupported character '%c' in '%s' (wants an integer delay).\n", file, linenum, *err, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 		global.max_spread_checks = val;
 		if (global.max_spread_checks < 0) {
-			Alert("parsing [%s:%d]: '%s' needs a positive delay in milliseconds.\n",file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' needs a positive delay in milliseconds.\n",file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 	}
@@ -1711,10 +1711,10 @@
 		int i, j, n, autoinc;
 
 		if (!*args[1] || !*args[2]) {
-			Alert("parsing [%s:%d] : %s expects a process number "
-			      " ('all', 'odd', 'even', a number from 1 to %d or a range), "
-			      " followed by a list of CPU ranges with numbers from 0 to %d.\n",
-			      file, linenum, args[0], LONGBITS, LONGBITS - 1);
+			ha_alert("parsing [%s:%d] : %s expects a process number "
+				 " ('all', 'odd', 'even', a number from 1 to %d or a range), "
+				 " followed by a list of CPU ranges with numbers from 0 to %d.\n",
+				 file, linenum, args[0], LONGBITS, LONGBITS - 1);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1723,30 +1723,30 @@
 			*slash = 0;
 
 		if (parse_process_number(args[1], &proc, &autoinc, &errmsg)) {
-			Alert("parsing [%s:%d] : %s : %s\n", file, linenum, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : %s : %s\n", file, linenum, args[0], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (slash) {
 			if (parse_process_number(slash+1, &thread, NULL, &errmsg)) {
-				Alert("parsing [%s:%d] : %s : %s\n", file, linenum, args[0], errmsg);
+				ha_alert("parsing [%s:%d] : %s : %s\n", file, linenum, args[0], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			*slash = '/';
 
 			if (autoinc && my_popcountl(proc) != 1 && my_popcountl(thread) != 1) {
-				Alert("parsing [%s:%d] : %s : '%s' : unable to automatically bind "
-				      "a process range _AND_ a thread range\n",
-				      file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : %s : '%s' : unable to automatically bind "
+					 "a process range _AND_ a thread range\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		}
 
 		if (parse_cpu_set((const char **)args+2, &cpus, &errmsg)) {
-			Alert("parsing [%s:%d] : %s : %s\n", file, linenum, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : %s : %s\n", file, linenum, args[0], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1754,9 +1754,9 @@
 		if (autoinc &&
 		    my_popcountl(proc)  != my_popcountl(cpus) &&
 		    my_popcountl(thread) != my_popcountl(cpus)) {
-			Alert("parsing [%s:%d] : %s : PROC/THREAD range and CPU sets "
-			      "must have the same size to be automatically bound\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : %s : PROC/THREAD range and CPU sets "
+				 "must have the same size to be automatically bound\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1792,8 +1792,8 @@
 			}
 		}
 #else
-		Alert("parsing [%s:%d] : '%s' is not enabled, please check build options for USE_CPU_AFFINITY.\n",
-		      file, linenum, args[0]);
+		ha_alert("parsing [%s:%d] : '%s' is not enabled, please check build options for USE_CPU_AFFINITY.\n",
+			 file, linenum, args[0]);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 #endif /* ! USE_CPU_AFFINITY */
@@ -1803,14 +1803,14 @@
 			goto out;
 
 		if (*(args[2]) == 0) {
-			Alert("parsing [%s:%d]: '%s' expects a name and a value.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects a name and a value.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		/* "setenv" overwrites, "presetenv" only sets if not yet set */
 		if (setenv(args[1], args[2], (args[0][0] == 's')) != 0) {
-			Alert("parsing [%s:%d]: '%s' failed on variable '%s' : %s.\n", file, linenum, args[0], args[1], strerror(errno));
+			ha_alert("parsing [%s:%d]: '%s' failed on variable '%s' : %s.\n", file, linenum, args[0], args[1], strerror(errno));
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1819,14 +1819,14 @@
 		int arg;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d]: '%s' expects at least one variable name.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects at least one variable name.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		for (arg = 1; *args[arg]; arg++) {
 			if (unsetenv(args[arg]) != 0) {
-				Alert("parsing [%s:%d]: '%s' failed on variable '%s' : %s.\n", file, linenum, args[0], args[arg], strerror(errno));
+				ha_alert("parsing [%s:%d]: '%s' failed on variable '%s' : %s.\n", file, linenum, args[0], args[arg], strerror(errno));
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -1852,7 +1852,7 @@
 				char *delim = strchr(*env, '=');
 
 				if (!delim || delim - *env >= trash.size) {
-					Alert("parsing [%s:%d]: '%s' failed to unset invalid variable '%s'.\n", file, linenum, args[0], *env);
+					ha_alert("parsing [%s:%d]: '%s' failed to unset invalid variable '%s'.\n", file, linenum, args[0], *env);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -1861,7 +1861,7 @@
 				trash.str[delim - *env] = 0;
 
 				if (unsetenv(trash.str) != 0) {
-					Alert("parsing [%s:%d]: '%s' failed to unset variable '%s' : %s.\n", file, linenum, args[0], *env, strerror(errno));
+					ha_alert("parsing [%s:%d]: '%s' failed to unset variable '%s' : %s.\n", file, linenum, args[0], *env, strerror(errno));
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -1882,11 +1882,11 @@
 				if (strcmp(kwl->kw[index].kw, args[0]) == 0) {
 					rc = kwl->kw[index].parse(args, CFG_GLOBAL, NULL, NULL, file, linenum, &errmsg);
 					if (rc < 0) {
-						Alert("parsing [%s:%d] : %s\n", file, linenum, errmsg);
+						ha_alert("parsing [%s:%d] : %s\n", file, linenum, errmsg);
 						err_code |= ERR_ALERT | ERR_FATAL;
 					}
 					else if (rc > 0) {
-						Warning("parsing [%s:%d] : %s\n", file, linenum, errmsg);
+						ha_warning("parsing [%s:%d] : %s\n", file, linenum, errmsg);
 						err_code |= ERR_WARN;
 						goto out;
 					}
@@ -1895,7 +1895,7 @@
 			}
 		}
 		
-		Alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], "global");
+		ha_alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], "global");
 		err_code |= ERR_ALERT | ERR_FATAL;
 	}
 
@@ -1958,13 +1958,13 @@
 	int cap;
 
 	if (px == &defproxy) {
-		Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, line, cmd);
+		ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, line, cmd);
 		ret_code |= ERR_ALERT | ERR_FATAL;
 		goto err;
 	}
 
 	if (*reg == 0) {
-		Alert("parsing [%s:%d] : '%s' expects <regex> as an argument.\n", file, line, cmd);
+		ha_alert("parsing [%s:%d] : '%s' expects <regex> as an argument.\n", file, line, cmd);
 		ret_code |= ERR_ALERT | ERR_FATAL;
 		goto err;
 	}
@@ -1975,15 +1975,15 @@
 	if (cond_start &&
 	    (strcmp(*cond_start, "if") == 0 || strcmp(*cond_start, "unless") == 0)) {
 		if ((cond = build_acl_cond(file, line, &px->acl, px, cond_start, &errmsg)) == NULL) {
-			Alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
-			      file, line, cmd, errmsg);
+			ha_alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
+				 file, line, cmd, errmsg);
 			ret_code |= ERR_ALERT | ERR_FATAL;
 			goto err;
 		}
 	}
 	else if (cond_start && **cond_start) {
-		Alert("parsing [%s:%d] : '%s' : Expecting nothing, 'if', or 'unless', got '%s'.\n",
-		      file, line, cmd, *cond_start);
+		ha_alert("parsing [%s:%d] : '%s' : Expecting nothing, 'if', or 'unless', got '%s'.\n",
+			 file, line, cmd, *cond_start);
 		ret_code |= ERR_ALERT | ERR_FATAL;
 		goto err;
 	}
@@ -1996,7 +1996,7 @@
 
 	preg = calloc(1, sizeof(*preg));
 	if (!preg) {
-		Alert("parsing [%s:%d] : '%s' : not enough memory to build regex.\n", file, line, cmd);
+		ha_alert("parsing [%s:%d] : '%s' : not enough memory to build regex.\n", file, line, cmd);
 		ret_code = ERR_ALERT | ERR_FATAL;
 		goto err;
 	}
@@ -2005,7 +2005,7 @@
 	cap = !(flags & REG_NOSUB);
 	error = NULL;
 	if (!regex_comp(reg, preg, cs, cap, &error)) {
-		Alert("parsing [%s:%d] : '%s' : regular expression '%s' : %s\n", file, line, cmd, reg, error);
+		ha_alert("parsing [%s:%d] : '%s' : regular expression '%s' : %s\n", file, line, cmd, reg, error);
 		free(error);
 		ret_code = ERR_ALERT | ERR_FATAL;
 		goto err;
@@ -2014,8 +2014,8 @@
 	err = chain_regex((dir == SMP_OPT_DIR_REQ) ? &px->req_exp : &px->rsp_exp,
 			  preg, action, repl ? strdup(repl) : NULL, cond);
 	if (repl && err) {
-		Alert("parsing [%s:%d] : '%s' : invalid character or unterminated sequence in replacement string near '%c'.\n",
-		      file, line, cmd, *err);
+		ha_alert("parsing [%s:%d] : '%s' : invalid character or unterminated sequence in replacement string near '%c'.\n",
+			 file, line, cmd, *err);
 		ret_code |= ERR_ALERT | ERR_FATAL;
 		goto err_free;
 	}
@@ -2055,7 +2055,7 @@
 
 	if (strcmp(args[0], "peers") == 0) { /* new peers section */
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : missing name for peers section.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : missing name for peers section.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2065,8 +2065,8 @@
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
-			      file, linenum, *err, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
+				 file, linenum, *err, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2077,14 +2077,14 @@
 			 * combinations are allowed:
 			 */
 			if (strcmp(curpeers->id, args[1]) == 0) {
-				Alert("Parsing [%s:%d]: peers section '%s' has the same name as another peers section declared at %s:%d.\n",
-					file, linenum, args[1], curpeers->conf.file, curpeers->conf.line);
+				ha_alert("Parsing [%s:%d]: peers section '%s' has the same name as another peers section declared at %s:%d.\n",
+					 file, linenum, args[1], curpeers->conf.file, curpeers->conf.line);
 				err_code |= ERR_ALERT | ERR_FATAL;
 			}
 		}
 
 		if ((curpeers = calloc(1, sizeof(*curpeers))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2103,22 +2103,22 @@
 		struct protocol *proto;
 
 		if (!*args[2]) {
-			Alert("parsing [%s:%d] : '%s' expects <name> and <addr>[:<port>] as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <name> and <addr>[:<port>] as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in server name '%s'.\n",
-			      file, linenum, *err, args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in server name '%s'.\n",
+				 file, linenum, *err, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if ((newpeer = calloc(1, sizeof(*newpeer))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2135,29 +2135,29 @@
 
 		sk = str2sa_range(args[2], NULL, &port1, &port2, &errmsg, NULL, NULL, 1);
 		if (!sk) {
-			Alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
+			ha_alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		proto = protocol_by_family(sk->ss_family);
 		if (!proto || !proto->connect) {
-			Alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
-			      file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (port1 != port2) {
-			Alert("parsing [%s:%d] : '%s %s' : port ranges and offsets are not allowed in '%s'\n",
-			      file, linenum, args[0], args[1], args[2]);
+			ha_alert("parsing [%s:%d] : '%s %s' : port ranges and offsets are not allowed in '%s'\n",
+				 file, linenum, args[0], args[1], args[2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (!port1) {
-			Alert("parsing [%s:%d] : '%s %s' : missing or invalid port in '%s'\n",
-			      file, linenum, args[0], args[1], args[2]);
+			ha_alert("parsing [%s:%d] : '%s %s' : missing or invalid port in '%s'\n",
+				 file, linenum, args[0], args[1], args[2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2175,7 +2175,7 @@
 
 			if (!curpeers->peers_fe) {
 				if ((curpeers->peers_fe  = calloc(1, sizeof(struct proxy))) == NULL) {
-					Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+					ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 					err_code |= ERR_ALERT | ERR_ABORT;
 					goto out;
 				}
@@ -2192,11 +2192,11 @@
 				if (!str2listener(args[2], curpeers->peers_fe, bind_conf, file, linenum, &errmsg)) {
 					if (errmsg && *errmsg) {
 						indent_msg(&errmsg, 2);
-						Alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
+						ha_alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
 					}
 					else
-						Alert("parsing [%s:%d] : '%s %s' : error encountered while parsing listening address %s.\n",
-						      file, linenum, args[0], args[1], args[2]);
+						ha_alert("parsing [%s:%d] : '%s %s' : error encountered while parsing listening address %s.\n",
+							 file, linenum, args[0], args[1], args[2]);
 					err_code |= ERR_FATAL;
 					goto out;
 				}
@@ -2213,9 +2213,9 @@
 				}
 			}
 			else {
-				Alert("parsing [%s:%d] : '%s %s' : local peer name already referenced at %s:%d.\n",
-				      file, linenum, args[0], args[1],
-				      curpeers->peers_fe->conf.file, curpeers->peers_fe->conf.line);
+				ha_alert("parsing [%s:%d] : '%s %s' : local peer name already referenced at %s:%d.\n",
+					 file, linenum, args[0], args[1],
+					 curpeers->peers_fe->conf.file, curpeers->peers_fe->conf.line);
 				err_code |= ERR_FATAL;
 				goto out;
 			}
@@ -2228,7 +2228,7 @@
 		curpeers->state = PR_STNEW;
 	}
 	else if (*args[0] != 0) {
-		Alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
+		ha_alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -2258,15 +2258,15 @@
 
 	if (strcmp(args[0], "resolvers") == 0) { /* new resolvers section */
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : missing name for resolvers section.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : missing name for resolvers section.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
-				file, linenum, *err, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
+				 file, linenum, *err, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2274,14 +2274,14 @@
 		list_for_each_entry(curr_resolvers, &dns_resolvers, list) {
 			/* Error if two resolvers owns the same name */
 			if (strcmp(curr_resolvers->id, args[1]) == 0) {
-				Alert("Parsing [%s:%d]: resolvers '%s' has same name as another resolvers (declared at %s:%d).\n",
-					file, linenum, args[1], curr_resolvers->conf.file, curr_resolvers->conf.line);
+				ha_alert("Parsing [%s:%d]: resolvers '%s' has same name as another resolvers (declared at %s:%d).\n",
+					 file, linenum, args[1], curr_resolvers->conf.file, curr_resolvers->conf.line);
 				err_code |= ERR_ALERT | ERR_ABORT;
 			}
 		}
 
 		if ((curr_resolvers = calloc(1, sizeof(*curr_resolvers))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2317,16 +2317,16 @@
 		struct protocol *proto;
 
 		if (!*args[2]) {
-			Alert("parsing [%s:%d] : '%s' expects <name> and <addr>[:<port>] as arguments.\n",
-				file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <name> and <addr>[:<port>] as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in server name '%s'.\n",
-				file, linenum, *err, args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in server name '%s'.\n",
+				 file, linenum, *err, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2334,14 +2334,14 @@
 		list_for_each_entry(newnameserver, &curr_resolvers->nameservers, list) {
 			/* Error if two resolvers owns the same name */
 			if (strcmp(newnameserver->id, args[1]) == 0) {
-				Alert("Parsing [%s:%d]: nameserver '%s' has same name as another nameserver (declared at %s:%d).\n",
-					file, linenum, args[1], curr_resolvers->conf.file, curr_resolvers->conf.line);
+				ha_alert("Parsing [%s:%d]: nameserver '%s' has same name as another nameserver (declared at %s:%d).\n",
+					 file, linenum, args[1], curr_resolvers->conf.file, curr_resolvers->conf.line);
 				err_code |= ERR_ALERT | ERR_FATAL;
 			}
 		}
 
 		if ((newnameserver = calloc(1, sizeof(*newnameserver))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2355,29 +2355,29 @@
 
 		sk = str2sa_range(args[2], NULL, &port1, &port2, &errmsg, NULL, NULL, 1);
 		if (!sk) {
-			Alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
+			ha_alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		proto = protocol_by_family(sk->ss_family);
 		if (!proto || !proto->connect) {
-			Alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
+			ha_alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
 				file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (port1 != port2) {
-			Alert("parsing [%s:%d] : '%s %s' : port ranges and offsets are not allowed in '%s'\n",
-				file, linenum, args[0], args[1], args[2]);
+			ha_alert("parsing [%s:%d] : '%s %s' : port ranges and offsets are not allowed in '%s'\n",
+				 file, linenum, args[0], args[1], args[2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (!port1 && !port2) {
-			Alert("parsing [%s:%d] : '%s %s' : no UDP port specified\n",
-				file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s %s' : no UDP port specified\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2389,16 +2389,16 @@
 		unsigned int time;
 
 		if (!*args[2]) {
-			Alert("parsing [%s:%d] : '%s' expects an <event> and a <time> as arguments.\n",
-				file, linenum, args[0]);
-			Alert("<event> can be either 'valid', 'nx', 'refused', 'timeout', or 'other'\n");
+			ha_alert("parsing [%s:%d] : '%s' expects an <event> and a <time> as arguments.\n",
+				 file, linenum, args[0]);
+			ha_alert("<event> can be either 'valid', 'nx', 'refused', 'timeout', or 'other'\n");
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		res = parse_time_err(args[2], &time, TIME_UNIT_MS);
 		if (res) {
-			Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
-				file, linenum, *res, args[0]);
+			ha_alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
+				 file, linenum, *res, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2415,8 +2415,8 @@
 		else if (strcmp(args[1], "obsolete") == 0)
 			curr_resolvers->hold.obsolete = time;
 		else {
-			Alert("parsing [%s:%d] : '%s' unknown <event>: '%s', expects either 'nx', 'timeout', 'valid', 'obsolete' or 'other'.\n",
-				file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s' unknown <event>: '%s', expects either 'nx', 'timeout', 'valid', 'obsolete' or 'other'.\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2426,16 +2426,16 @@
 		int i = 0;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects <nb> as argument.\n",
-				file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <nb> as argument.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		i = atoi(args[1]);
 		if (i < DNS_HEADER_SIZE || i > DNS_MAX_UDP_MESSAGE) {
-			Alert("parsing [%s:%d] : '%s' must be between %d and %d inclusive (was %s).\n",
-			      file, linenum, args[0], DNS_HEADER_SIZE, DNS_MAX_UDP_MESSAGE, args[1]);
+			ha_alert("parsing [%s:%d] : '%s' must be between %d and %d inclusive (was %s).\n",
+				 file, linenum, args[0], DNS_HEADER_SIZE, DNS_MAX_UDP_MESSAGE, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2443,15 +2443,15 @@
 		curr_resolvers->accepted_payload_size = i;
 	}
 	else if (strcmp(args[0], "resolution_pool_size") == 0) {
-		Warning("parsing [%s:%d] : '%s' directive is now deprecated and ignored.\n",
-			file, linenum, args[0]);
+		ha_warning("parsing [%s:%d] : '%s' directive is now deprecated and ignored.\n",
+			   file, linenum, args[0]);
 		err_code |= ERR_WARN;
 		goto out;
 	}
 	else if (strcmp(args[0], "resolve_retries") == 0) {
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects <nb> as argument.\n",
-				file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <nb> as argument.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2459,8 +2459,8 @@
 	}
 	else if (strcmp(args[0], "timeout") == 0) {
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects 'retry' or 'resolve' and <time> as arguments.\n",
-				file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects 'retry' or 'resolve' and <time> as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2470,15 +2470,15 @@
 			unsigned int tout;
 
 			if (!*args[2]) {
-				Alert("parsing [%s:%d] : '%s %s' expects <time> as argument.\n",
-					file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' expects <time> as argument.\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			res = parse_time_err(args[2], &tout, TIME_UNIT_MS);
 			if (res) {
-				Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s %s>.\n",
-					file, linenum, *res, args[0], args[1]);
+				ha_alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s %s>.\n",
+					 file, linenum, *res, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -2488,14 +2488,14 @@
 				curr_resolvers->timeout.resolve = tout;
 		}
 		else {
-			Alert("parsing [%s:%d] : '%s' expects 'retry' or 'resolve' and <time> as arguments got '%s'.\n",
-				file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s' expects 'retry' or 'resolve' and <time> as arguments got '%s'.\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	} /* neither "nameserver" nor "resolvers" */
 	else if (*args[0] != 0) {
-		Alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
+		ha_alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -2525,15 +2525,15 @@
 
 	if (strcmp(args[0], "mailers") == 0) { /* new mailers section */
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : missing name for mailers section.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : missing name for mailers section.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
-			      file, linenum, *err, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
+				 file, linenum, *err, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2544,14 +2544,14 @@
 			 * combinations are allowed:
 			 */
 			if (strcmp(curmailers->id, args[1]) == 0) {
-				Alert("Parsing [%s:%d]: mailers section '%s' has the same name as another mailers section declared at %s:%d.\n",
-					file, linenum, args[1], curmailers->conf.file, curmailers->conf.line);
+				ha_alert("Parsing [%s:%d]: mailers section '%s' has the same name as another mailers section declared at %s:%d.\n",
+					 file, linenum, args[1], curmailers->conf.file, curmailers->conf.line);
 				err_code |= ERR_ALERT | ERR_FATAL;
 			}
 		}
 
 		if ((curmailers = calloc(1, sizeof(*curmailers))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2571,22 +2571,22 @@
 		struct protocol *proto;
 
 		if (!*args[2]) {
-			Alert("parsing [%s:%d] : '%s' expects <name> and <addr>[:<port>] as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <name> and <addr>[:<port>] as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in server name '%s'.\n",
-			      file, linenum, *err, args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in server name '%s'.\n",
+				 file, linenum, *err, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if ((newmailer = calloc(1, sizeof(*newmailer))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2603,29 +2603,29 @@
 
 		sk = str2sa_range(args[2], NULL, &port1, &port2, &errmsg, NULL, NULL, 1);
 		if (!sk) {
-			Alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
+			ha_alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		proto = protocol_by_family(sk->ss_family);
 		if (!proto || !proto->connect || proto->sock_prot != IPPROTO_TCP) {
-			Alert("parsing [%s:%d] : '%s %s' : TCP not supported for this address family.\n",
-			      file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s %s' : TCP not supported for this address family.\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (port1 != port2) {
-			Alert("parsing [%s:%d] : '%s %s' : port ranges and offsets are not allowed in '%s'\n",
-			      file, linenum, args[0], args[1], args[2]);
+			ha_alert("parsing [%s:%d] : '%s %s' : port ranges and offsets are not allowed in '%s'\n",
+				 file, linenum, args[0], args[1], args[2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (!port1) {
-			Alert("parsing [%s:%d] : '%s %s' : missing or invalid port in '%s'\n",
-			      file, linenum, args[0], args[1], args[2]);
+			ha_alert("parsing [%s:%d] : '%s %s' : missing or invalid port in '%s'\n",
+				 file, linenum, args[0], args[1], args[2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2637,8 +2637,8 @@
 	}
 	else if (strcmp(args[0], "timeout") == 0) {
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects 'mail' and <time> as arguments.\n",
-				file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects 'mail' and <time> as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -2646,33 +2646,33 @@
 			const char *res;
 			unsigned int timeout_mail;
 			if (!*args[2]) {
-				Alert("parsing [%s:%d] : '%s %s' expects <time> as argument.\n",
-					file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' expects <time> as argument.\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			res = parse_time_err(args[2], &timeout_mail, TIME_UNIT_MS);
 			if (res) {
-				Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
-					file, linenum, *res, args[0]);
+				ha_alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
+					 file, linenum, *res, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			if (timeout_mail <= 0) {
-				Alert("parsing [%s:%d] : '%s %s' expects a positive <time> argument.\n", file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' expects a positive <time> argument.\n", file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			curmailers->timeout.mail = timeout_mail;
 		} else {
-			Alert("parsing [%s:%d] : '%s' expects 'mail' and <time> as arguments got '%s'.\n",
+			ha_alert("parsing [%s:%d] : '%s' expects 'mail' and <time> as arguments got '%s'.\n",
 				file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}
 	else if (*args[0] != 0) {
-		Alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
+		ha_alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -2718,30 +2718,30 @@
 
 	if (rc != PR_CAP_NONE) {  /* new proxy */
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects an <id> argument and\n"
-			      "  optionally supports [addr1]:port1[-end1]{,[addr]:port[-end]}...\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an <id> argument and\n"
+				 "  optionally supports [addr1]:port1[-end1]{,[addr]:port[-end]}...\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
-			      file, linenum, *err, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
+				 file, linenum, *err, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 
 		curproxy = (rc & PR_CAP_FE) ? proxy_fe_by_name(args[1]) : proxy_be_by_name(args[1]);
 		if (curproxy) {
-			Alert("Parsing [%s:%d]: %s '%s' has the same name as %s '%s' declared at %s:%d.\n",
-			      file, linenum, proxy_cap_str(rc), args[1], proxy_type_str(curproxy),
-			      curproxy->id, curproxy->conf.file, curproxy->conf.line);
+			ha_alert("Parsing [%s:%d]: %s '%s' has the same name as %s '%s' declared at %s:%d.\n",
+				 file, linenum, proxy_cap_str(rc), args[1], proxy_type_str(curproxy),
+				 curproxy->id, curproxy->conf.file, curproxy->conf.line);
 				err_code |= ERR_ALERT | ERR_FATAL;
 		}
 
 		if ((curproxy = calloc(1, sizeof(*curproxy))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -2758,7 +2758,7 @@
 
 		if (alertif_too_many_args(1, file, linenum, args, &err_code)) {
 			if (curproxy->cap & PR_CAP_FE)
-				Alert("parsing [%s:%d] : please use the 'bind' keyword for listening addresses.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : please use the 'bind' keyword for listening addresses.\n", file, linenum);
 			goto out;
 		}
 
@@ -3043,7 +3043,7 @@
 		goto out;
 	}
 	else if (curproxy == NULL) {
-		Alert("parsing [%s:%d] : 'listen' or 'defaults' expected.\n", file, linenum);
+		ha_alert("parsing [%s:%d] : 'listen' or 'defaults' expected.\n", file, linenum);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -3065,7 +3065,7 @@
 		int cur_arg;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3073,8 +3073,8 @@
 			err_code |= ERR_WARN;
 
 		if (!*(args[1])) {
-			Alert("parsing [%s:%d] : '%s' expects {<path>|[addr1]:port1[-end1]}{,[addr]:port[-end]}... as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects {<path>|[addr1]:port1[-end1]}{,[addr]:port[-end]}... as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3093,11 +3093,11 @@
 		if (!str2listener(args[1], curproxy, bind_conf, file, linenum, &errmsg)) {
 			if (errmsg && *errmsg) {
 				indent_msg(&errmsg, 2);
-				Alert("parsing [%s:%d] : '%s' : %s\n", file, linenum, args[0], errmsg);
+				ha_alert("parsing [%s:%d] : '%s' : %s\n", file, linenum, args[0], errmsg);
 			}
 			else
-				Alert("parsing [%s:%d] : '%s' : error encountered while parsing listening address '%s'.\n",
-				      file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s' : error encountered while parsing listening address '%s'.\n",
+					 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3119,8 +3119,8 @@
 				int code;
 
 				if (!kw->parse) {
-					Alert("parsing [%s:%d] : '%s %s' : '%s' option is not implemented in this version (check build options).\n",
-					      file, linenum, args[0], args[1], args[cur_arg]);
+					ha_alert("parsing [%s:%d] : '%s %s' : '%s' option is not implemented in this version (check build options).\n",
+						 file, linenum, args[0], args[1], args[cur_arg]);
 					cur_arg += 1 + kw->skip ;
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -3132,11 +3132,11 @@
 				if (code) {
 					if (err && *err) {
 						indent_msg(&err, 2);
-						Alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], err);
+						ha_alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], err);
 					}
 					else
-						Alert("parsing [%s:%d] : '%s %s' : error encountered while processing '%s'.\n",
-						      file, linenum, args[0], args[1], args[cur_arg]);
+						ha_alert("parsing [%s:%d] : '%s %s' : error encountered while processing '%s'.\n",
+							 file, linenum, args[0], args[1], args[cur_arg]);
 					if (code & ERR_FATAL) {
 						free(err);
 						cur_arg += 1 + kw->skip;
@@ -3155,9 +3155,9 @@
 				bind_dumped = 1;
 			}
 
-			Alert("parsing [%s:%d] : '%s %s' unknown keyword '%s'.%s%s\n",
-			      file, linenum, args[0], args[1], args[cur_arg],
-			      err ? " Registered keywords :" : "", err ? err : "");
+			ha_alert("parsing [%s:%d] : '%s %s' unknown keyword '%s'.%s%s\n",
+				 file, linenum, args[0], args[1], args[cur_arg],
+				 err ? " Registered keywords :" : "", err ? err : "");
 			free(err);
 
 			err_code |= ERR_ALERT | ERR_FATAL;
@@ -3167,8 +3167,8 @@
 	}
 	else if (!strcmp(args[0], "monitor-net")) {  /* set the range of IPs to ignore */
 		if (!*args[1] || !str2net(args[1], 1, &curproxy->mon_net, &curproxy->mon_mask)) {
-			Alert("parsing [%s:%d] : '%s' expects address[/mask].\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects address[/mask].\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3187,8 +3187,8 @@
 			goto out;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects an URI.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an URI.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3209,7 +3209,7 @@
 		else if (!strcmp(args[1], "tcp")) curproxy->mode = PR_MODE_TCP;
 		else if (!strcmp(args[1], "health")) curproxy->mode = PR_MODE_HEALTH;
 		else {
-			Alert("parsing [%s:%d] : unknown proxy mode '%s'.\n", file, linenum, args[1]);
+			ha_alert("parsing [%s:%d] : unknown proxy mode '%s'.\n", file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3218,7 +3218,7 @@
 		struct eb32_node *node;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n",
+			ha_alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n",
 				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
@@ -3228,8 +3228,8 @@
 			goto out;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d]: '%s' expects an integer argument.\n",
-				file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects an integer argument.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3239,8 +3239,8 @@
 		curproxy->options |= PR_O_FORCED_ID;
 
 		if (curproxy->uuid <= 0) {
-			Alert("parsing [%s:%d]: custom id has to be > 0.\n",
-				file, linenum);
+			ha_alert("parsing [%s:%d]: custom id has to be > 0.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3248,9 +3248,9 @@
 		node = eb32_lookup(&used_proxy_id, curproxy->uuid);
 		if (node) {
 			struct proxy *target = container_of(node, struct proxy, conf.id);
-			Alert("parsing [%s:%d]: %s %s reuses same custom id as %s %s (declared at %s:%d).\n",
-			      file, linenum, proxy_type_str(curproxy), curproxy->id,
-			      proxy_type_str(target), target->id, target->conf.file, target->conf.line);
+			ha_alert("parsing [%s:%d]: %s %s reuses same custom id as %s %s (declared at %s:%d).\n",
+				 file, linenum, proxy_type_str(curproxy), curproxy->id,
+				 proxy_type_str(target), target->id, target->conf.file, target->conf.line);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3261,15 +3261,15 @@
 		char *d;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n",
+			ha_alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n",
 				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d]: '%s' expects a string argument.\n",
-				file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects a string argument.\n",
+				 file, linenum, args[0]);
 			return -1;
 		}
 
@@ -3304,7 +3304,7 @@
 				break;
 			}
 			if (parse_process_number(args[cur_arg], &set, NULL, &errmsg)) {
-				Alert("parsing [%s:%d] : %s : %s\n", file, linenum, args[0], errmsg);
+				ha_alert("parsing [%s:%d] : %s : %s\n", file, linenum, args[0], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3314,22 +3314,22 @@
 	}
 	else if (!strcmp(args[0], "acl")) {  /* add an ACL */
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in acl name '%s'.\n",
-			      file, linenum, *err, args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in acl name '%s'.\n",
+				 file, linenum, *err, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (parse_acl((const char **)args + 1, &curproxy->acl, &errmsg, &curproxy->conf.args, file, linenum) == NULL) {
-			Alert("parsing [%s:%d] : error detected while parsing ACL '%s' : %s.\n",
-			      file, linenum, args[1], errmsg);
+			ha_alert("parsing [%s:%d] : error detected while parsing ACL '%s' : %s.\n",
+				 file, linenum, args[1], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3340,8 +3340,8 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects <secret_key> as argument.\n",
-					file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <secret_key> as argument.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3355,8 +3355,8 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects <cookie_name> as argument.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <cookie_name> as argument.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3399,25 +3399,25 @@
 			}
 			else if (!strcmp(args[cur_arg], "domain")) {
 				if (!*args[cur_arg + 1]) {
-					Alert("parsing [%s:%d]: '%s' expects <domain> as argument.\n",
-						file, linenum, args[cur_arg]);
+					ha_alert("parsing [%s:%d]: '%s' expects <domain> as argument.\n",
+						 file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 
 				if (*args[cur_arg + 1] != '.' || !strchr(args[cur_arg + 1] + 1, '.')) {
 					/* rfc2109, 4.3.2 Rejecting Cookies */
-					Warning("parsing [%s:%d]: domain '%s' contains no embedded"
-						" dots nor does not start with a dot."
-						" RFC forbids it, this configuration may not work properly.\n",
-						file, linenum, args[cur_arg + 1]);
+					ha_warning("parsing [%s:%d]: domain '%s' contains no embedded"
+						   " dots nor does not start with a dot."
+						   " RFC forbids it, this configuration may not work properly.\n",
+						   file, linenum, args[cur_arg + 1]);
 					err_code |= ERR_WARN;
 				}
 
 				err = invalid_domainchar(args[cur_arg + 1]);
 				if (err) {
-					Alert("parsing [%s:%d]: character '%c' is not permitted in domain name '%s'.\n",
-						file, linenum, *err, args[cur_arg + 1]);
+					ha_alert("parsing [%s:%d]: character '%c' is not permitted in domain name '%s'.\n",
+						 file, linenum, *err, args[cur_arg + 1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -3444,16 +3444,16 @@
 				const char *res;
 
 				if (!*args[cur_arg + 1]) {
-					Alert("parsing [%s:%d]: '%s' expects <idletime> in seconds as argument.\n",
-						file, linenum, args[cur_arg]);
+					ha_alert("parsing [%s:%d]: '%s' expects <idletime> in seconds as argument.\n",
+						 file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 
 				res = parse_time_err(args[cur_arg + 1], &maxidle, TIME_UNIT_S);
 				if (res) {
-					Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
-					      file, linenum, *res, args[cur_arg]);
+					ha_alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
+						 file, linenum, *res, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -3465,16 +3465,16 @@
 				const char *res;
 
 				if (!*args[cur_arg + 1]) {
-					Alert("parsing [%s:%d]: '%s' expects <lifetime> in seconds as argument.\n",
-						file, linenum, args[cur_arg]);
+					ha_alert("parsing [%s:%d]: '%s' expects <lifetime> in seconds as argument.\n",
+						 file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 
 				res = parse_time_err(args[cur_arg + 1], &maxlife, TIME_UNIT_S);
 				if (res) {
-					Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
-					      file, linenum, *res, args[cur_arg]);
+					ha_alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
+						 file, linenum, *res, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -3489,43 +3489,43 @@
 			}
 
 			else {
-				Alert("parsing [%s:%d] : '%s' supports 'rewrite', 'insert', 'prefix', 'indirect', 'nocache', 'postonly', 'domain', 'maxidle', 'dynamic' and 'maxlife' options.\n",
-				      file, linenum, args[0]);
+				ha_alert("parsing [%s:%d] : '%s' supports 'rewrite', 'insert', 'prefix', 'indirect', 'nocache', 'postonly', 'domain', 'maxidle', 'dynamic' and 'maxlife' options.\n",
+					 file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			cur_arg++;
 		}
 		if (!POWEROF2(curproxy->ck_opts & (PR_CK_RW|PR_CK_IND))) {
-			Alert("parsing [%s:%d] : cookie 'rewrite' and 'indirect' modes are incompatible.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : cookie 'rewrite' and 'indirect' modes are incompatible.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 
 		if (!POWEROF2(curproxy->ck_opts & (PR_CK_RW|PR_CK_INS|PR_CK_PFX))) {
-			Alert("parsing [%s:%d] : cookie 'rewrite', 'insert' and 'prefix' modes are incompatible.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : cookie 'rewrite', 'insert' and 'prefix' modes are incompatible.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 
 		if ((curproxy->ck_opts & (PR_CK_PSV | PR_CK_INS | PR_CK_IND)) == PR_CK_PSV) {
-			Alert("parsing [%s:%d] : cookie 'preserve' requires at least 'insert' or 'indirect'.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : cookie 'preserve' requires at least 'insert' or 'indirect'.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 	}/* end else if (!strcmp(args[0], "cookie"))  */
 	else if (!strcmp(args[0], "email-alert")) {
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : missing argument after '%s'.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : missing argument after '%s'.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
                 }
 
 		if (!strcmp(args[1], "from")) {
 			if (*(args[1]) == 0) {
-				Alert("parsing [%s:%d] : missing argument after '%s'.\n",
-				      file, linenum, args[1]);
+				ha_alert("parsing [%s:%d] : missing argument after '%s'.\n",
+					 file, linenum, args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3534,8 +3534,8 @@
 		}
 		else if (!strcmp(args[1], "mailers")) {
 			if (*(args[1]) == 0) {
-				Alert("parsing [%s:%d] : missing argument after '%s'.\n",
-				      file, linenum, args[1]);
+				ha_alert("parsing [%s:%d] : missing argument after '%s'.\n",
+					 file, linenum, args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3544,8 +3544,8 @@
 		}
 		else if (!strcmp(args[1], "myhostname")) {
 			if (*(args[1]) == 0) {
-				Alert("parsing [%s:%d] : missing argument after '%s'.\n",
-				      file, linenum, args[1]);
+				ha_alert("parsing [%s:%d] : missing argument after '%s'.\n",
+					 file, linenum, args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3555,16 +3555,16 @@
 		else if (!strcmp(args[1], "level")) {
 			curproxy->email_alert.level = get_log_level(args[2]);
 			if (curproxy->email_alert.level < 0) {
-				Alert("parsing [%s:%d] : unknown log level '%s' after '%s'\n",
-				      file, linenum, args[1], args[2]);
+				ha_alert("parsing [%s:%d] : unknown log level '%s' after '%s'\n",
+					 file, linenum, args[1], args[2]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		}
 		else if (!strcmp(args[1], "to")) {
 			if (*(args[1]) == 0) {
-				Alert("parsing [%s:%d] : missing argument after '%s'.\n",
-				      file, linenum, args[1]);
+				ha_alert("parsing [%s:%d] : missing argument after '%s'.\n",
+					 file, linenum, args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3572,8 +3572,8 @@
 			curproxy->email_alert.to = strdup(args[2]);
 		}
 		else {
-			Alert("parsing [%s:%d] : email-alert: unknown argument '%s'.\n",
-			      file, linenum, args[1]);
+			ha_alert("parsing [%s:%d] : email-alert: unknown argument '%s'.\n",
+				 file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3582,8 +3582,8 @@
 	}/* end else if (!strcmp(args[0], "email-alert"))  */
 	else if (!strcmp(args[0], "external-check")) {
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : missing argument after '%s'.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : missing argument after '%s'.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
                 }
@@ -3592,8 +3592,8 @@
 			if (alertif_too_many_args(2, file, linenum, args, &err_code))
 				goto out;
 			if (*(args[2]) == 0) {
-				Alert("parsing [%s:%d] : missing argument after '%s'.\n",
-				      file, linenum, args[1]);
+				ha_alert("parsing [%s:%d] : missing argument after '%s'.\n",
+					 file, linenum, args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3604,8 +3604,8 @@
 			if (alertif_too_many_args(2, file, linenum, args, &err_code))
 				goto out;
 			if (*(args[2]) == 0) {
-				Alert("parsing [%s:%d] : missing argument after '%s'.\n",
-				      file, linenum, args[1]);
+				ha_alert("parsing [%s:%d] : missing argument after '%s'.\n",
+					 file, linenum, args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3613,16 +3613,16 @@
 			curproxy->check_path = strdup(args[2]);
 		}
 		else {
-			Alert("parsing [%s:%d] : external-check: unknown argument '%s'.\n",
-			      file, linenum, args[1]);
+			ha_alert("parsing [%s:%d] : external-check: unknown argument '%s'.\n",
+				 file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}/* end else if (!strcmp(args[0], "external-check"))  */
 	else if (!strcmp(args[0], "persist")) {  /* persist */
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : missing persist method.\n",
-				file, linenum);
+			ha_alert("parsing [%s:%d] : missing persist method.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
                 }
@@ -3640,8 +3640,8 @@
 					goto out;
 
 				if (!end || end == beg) {
-					Alert("parsing [%s:%d] : persist rdp-cookie(name)' requires an rdp cookie name.\n",
-					      file, linenum);
+					ha_alert("parsing [%s:%d] : persist rdp-cookie(name)' requires an rdp cookie name.\n",
+						 file, linenum);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -3656,21 +3656,21 @@
 				curproxy->rdp_cookie_len = strlen(curproxy->rdp_cookie_name);
 			}
 			else { /* syntax */
-				Alert("parsing [%s:%d] : persist rdp-cookie(name)' requires an rdp cookie name.\n",
-				      file, linenum);
+				ha_alert("parsing [%s:%d] : persist rdp-cookie(name)' requires an rdp cookie name.\n",
+					 file, linenum);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		}
 		else {
-			Alert("parsing [%s:%d] : unknown persist method.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : unknown persist method.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}
 	else if (!strcmp(args[0], "appsession")) {  /* cookie name */
-		Alert("parsing [%s:%d] : '%s' is not supported anymore, please check the documentation.\n", file, linenum, args[0]);
+		ha_alert("parsing [%s:%d] : '%s' is not supported anymore, please check the documentation.\n", file, linenum, args[0]);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -3687,8 +3687,8 @@
 			curproxy->load_server_state_from_file = PR_SRV_STATE_FILE_NONE;
 		}
 		else {
-			Alert("parsing [%s:%d] : '%s' expects 'global', 'local' or 'none'. Got '%s'\n",
-			      file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s' expects 'global', 'local' or 'none'. Got '%s'\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3697,8 +3697,8 @@
 		if (warnifnotcap(curproxy, PR_CAP_BE, file, linenum, args[0], NULL))
 			err_code |= ERR_WARN;
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects 'use-backend-name' or a string. Got no argument\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects 'use-backend-name' or a string. Got no argument\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3713,7 +3713,7 @@
 
 		if (!strcmp(args[1], "cookie")) {  /* name of a cookie to capture */
 			if (curproxy == &defproxy) {
-				Alert("parsing [%s:%d] : '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3722,8 +3722,8 @@
 				goto out;
 
 			if (*(args[4]) == 0) {
-				Alert("parsing [%s:%d] : '%s' expects 'cookie' <cookie_name> 'len' <len>.\n",
-				      file, linenum, args[0]);
+				ha_alert("parsing [%s:%d] : '%s' expects 'cookie' <cookie_name> 'len' <len>.\n",
+					 file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3737,7 +3737,7 @@
 			struct cap_hdr *hdr;
 
 			if (curproxy == &defproxy) {
-				Alert("parsing [%s:%d] : '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3746,8 +3746,8 @@
 				goto out;
 
 			if (*(args[3]) == 0 || strcmp(args[4], "len") != 0 || *(args[5]) == 0) {
-				Alert("parsing [%s:%d] : '%s %s' expects 'header' <header_name> 'len' <len>.\n",
-				      file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' expects 'header' <header_name> 'len' <len>.\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3766,7 +3766,7 @@
 			struct cap_hdr *hdr;
 
 			if (curproxy == &defproxy) {
-				Alert("parsing [%s:%d] : '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3775,8 +3775,8 @@
 				goto out;
 
 			if (*(args[3]) == 0 || strcmp(args[4], "len") != 0 || *(args[5]) == 0) {
-				Alert("parsing [%s:%d] : '%s %s' expects 'header' <header_name> 'len' <len>.\n",
-				      file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' expects 'header' <header_name> 'len' <len>.\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3791,8 +3791,8 @@
 			curproxy->to_log |= LW_RSPHDR;
 		}
 		else {
-			Alert("parsing [%s:%d] : '%s' expects 'cookie' or 'request header' or 'response header'.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects 'cookie' or 'request header' or 'response header'.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3805,8 +3805,8 @@
 			goto out;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument (dispatch counts for one).\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument (dispatch counts for one).\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3816,7 +3816,7 @@
 		struct act_rule *rule;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3827,8 +3827,8 @@
 		     LIST_PREV(&curproxy->http_req_rules, struct act_rule *, list)->action == ACT_ACTION_DENY ||
 		     LIST_PREV(&curproxy->http_req_rules, struct act_rule *, list)->action == ACT_HTTP_REDIR ||
 		     LIST_PREV(&curproxy->http_req_rules, struct act_rule *, list)->action == ACT_HTTP_REQ_AUTH)) {
-			Warning("parsing [%s:%d]: previous '%s' action is final and has no condition attached, further entries are NOOP.\n",
-			        file, linenum, args[0]);
+			ha_warning("parsing [%s:%d]: previous '%s' action is final and has no condition attached, further entries are NOOP.\n",
+				   file, linenum, args[0]);
 			err_code |= ERR_WARN;
 		}
 
@@ -3850,7 +3850,7 @@
 		struct act_rule *rule;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3859,8 +3859,8 @@
 		    !LIST_PREV(&curproxy->http_res_rules, struct act_rule *, list)->cond &&
 		    (LIST_PREV(&curproxy->http_res_rules, struct act_rule *, list)->action == ACT_ACTION_ALLOW ||
 		     LIST_PREV(&curproxy->http_res_rules, struct act_rule *, list)->action == ACT_ACTION_DENY)) {
-			Warning("parsing [%s:%d]: previous '%s' action is final and has no condition attached, further entries are NOOP.\n",
-			        file, linenum, args[0]);
+			ha_warning("parsing [%s:%d]: previous '%s' action is final and has no condition attached, further entries are NOOP.\n",
+				   file, linenum, args[0]);
 			err_code |= ERR_WARN;
 		}
 
@@ -3883,8 +3883,8 @@
 			err_code |= ERR_WARN;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' requires a header string.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' requires a header string.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3898,7 +3898,7 @@
 		struct act_rule *rule;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3919,21 +3919,21 @@
 		LIST_ADDQ(&curproxy->block_rules, &rule->list);
 
 		if (!already_warned(WARN_BLOCK_DEPRECATED))
-			Warning("parsing [%s:%d] : The '%s' directive is now deprecated in favor of 'http-request deny' which uses the exact same syntax. The rules are translated but support might disappear in a future version.\n", file, linenum, args[0]);
+			ha_warning("parsing [%s:%d] : The '%s' directive is now deprecated in favor of 'http-request deny' which uses the exact same syntax. The rules are translated but support might disappear in a future version.\n", file, linenum, args[0]);
 
 	}
 	else if (!strcmp(args[0], "redirect")) {
 		struct redirect_rule *rule;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if ((rule = http_parse_redirect_rule(file, linenum, curproxy, (const char **)args + 1, &errmsg, 0, 0)) == NULL) {
-			Alert("parsing [%s:%d] : error detected in %s '%s' while parsing redirect rule : %s.\n",
-			      file, linenum, proxy_type_str(curproxy), curproxy->id, errmsg);
+			ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing redirect rule : %s.\n",
+				 file, linenum, proxy_type_str(curproxy), curproxy->id, errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3948,7 +3948,7 @@
 		struct switching_rule *rule;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3957,15 +3957,15 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a backend name.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a backend name.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (strcmp(args[2], "if") == 0 || strcmp(args[2], "unless") == 0) {
 			if ((cond = build_acl_cond(file, linenum, &curproxy->acl, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
-				Alert("parsing [%s:%d] : error detected while parsing switching rule : %s.\n",
-				      file, linenum, errmsg);
+				ha_alert("parsing [%s:%d] : error detected while parsing switching rule : %s.\n",
+					 file, linenum, errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3973,15 +3973,15 @@
 			err_code |= warnif_cond_conflicts(cond, SMP_VAL_FE_SET_BCK, file, linenum);
 		}
 		else if (*args[2]) {
-			Alert("parsing [%s:%d] : unexpected keyword '%s' after switching rule, only 'if' and 'unless' are allowed.\n",
-			      file, linenum, args[2]);
+			ha_alert("parsing [%s:%d] : unexpected keyword '%s' after switching rule, only 'if' and 'unless' are allowed.\n",
+				 file, linenum, args[2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		rule = calloc(1, sizeof(*rule));
 		if (!rule) {
-			Alert("Out of memory error.\n");
+			ha_alert("Out of memory error.\n");
 			goto out;
 		}
 		rule->cond = cond;
@@ -3989,7 +3989,7 @@
 		rule->line = linenum;
 		rule->file = strdup(file);
 		if (!rule->file) {
-			Alert("Out of memory error.\n");
+			ha_alert("Out of memory error.\n");
 			goto out;
 		}
 		LIST_INIT(&rule->list);
@@ -3999,7 +3999,7 @@
 		struct server_rule *rule;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4008,21 +4008,21 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a server name.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a server name.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (strcmp(args[2], "if") != 0 && strcmp(args[2], "unless") != 0) {
-			Alert("parsing [%s:%d] : '%s' requires either 'if' or 'unless' followed by a condition.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' requires either 'if' or 'unless' followed by a condition.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if ((cond = build_acl_cond(file, linenum, &curproxy->acl, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
-			Alert("parsing [%s:%d] : error detected while parsing switching rule : %s.\n",
-			      file, linenum, errmsg);
+			ha_alert("parsing [%s:%d] : error detected while parsing switching rule : %s.\n",
+				 file, linenum, errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4041,7 +4041,7 @@
 		struct persist_rule *rule;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4050,15 +4050,15 @@
 			err_code |= ERR_WARN;
 
 		if (strcmp(args[1], "if") != 0 && strcmp(args[1], "unless") != 0) {
-			Alert("parsing [%s:%d] : '%s' requires either 'if' or 'unless' followed by a condition.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' requires either 'if' or 'unless' followed by a condition.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if ((cond = build_acl_cond(file, linenum, &curproxy->acl, curproxy, (const char **)args + 1, &errmsg)) == NULL) {
-			Alert("parsing [%s:%d] : error detected while parsing a '%s' rule : %s.\n",
-			      file, linenum, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : error detected while parsing a '%s' rule : %s.\n",
+				 file, linenum, args[0], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4084,8 +4084,8 @@
 
 		other = proxy_tbl_by_name(curproxy->id);
 		if (other) {
-			Alert("parsing [%s:%d] : stick-table name '%s' conflicts with table declared in %s '%s' at %s:%d.\n",
-			      file, linenum, curproxy->id, proxy_type_str(other), other->id, other->conf.file, other->conf.line);
+			ha_alert("parsing [%s:%d] : stick-table name '%s' conflicts with table declared in %s '%s' at %s:%d.\n",
+				 file, linenum, curproxy->id, proxy_type_str(other), other->id, other->conf.file, other->conf.line);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4098,14 +4098,14 @@
 			if (strcmp(args[myidx], "size") == 0) {
 				myidx++;
 				if (!*(args[myidx])) {
-					Alert("parsing [%s:%d] : stick-table: missing argument after '%s'.\n",
-					      file, linenum, args[myidx-1]);
+					ha_alert("parsing [%s:%d] : stick-table: missing argument after '%s'.\n",
+						 file, linenum, args[myidx-1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 				if ((err = parse_size_err(args[myidx], &curproxy->table.size))) {
-					Alert("parsing [%s:%d] : stick-table: unexpected character '%c' in argument of '%s'.\n",
-					      file, linenum, *err, args[myidx-1]);
+					ha_alert("parsing [%s:%d] : stick-table: unexpected character '%c' in argument of '%s'.\n",
+						 file, linenum, *err, args[myidx-1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -4114,8 +4114,8 @@
 			else if (strcmp(args[myidx], "peers") == 0) {
 				myidx++;
 				if (!*(args[myidx])) {
-					Alert("parsing [%s:%d] : stick-table: missing argument after '%s'.\n",
-					      file, linenum, args[myidx-1]);
+					ha_alert("parsing [%s:%d] : stick-table: missing argument after '%s'.\n",
+						 file, linenum, args[myidx-1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -4124,21 +4124,21 @@
 			else if (strcmp(args[myidx], "expire") == 0) {
 				myidx++;
 				if (!*(args[myidx])) {
-					Alert("parsing [%s:%d] : stick-table: missing argument after '%s'.\n",
-					      file, linenum, args[myidx-1]);
+					ha_alert("parsing [%s:%d] : stick-table: missing argument after '%s'.\n",
+						 file, linenum, args[myidx-1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 				err = parse_time_err(args[myidx], &val, TIME_UNIT_MS);
 				if (err) {
-					Alert("parsing [%s:%d] : stick-table: unexpected character '%c' in argument of '%s'.\n",
-					      file, linenum, *err, args[myidx-1]);
+					ha_alert("parsing [%s:%d] : stick-table: unexpected character '%c' in argument of '%s'.\n",
+						 file, linenum, *err, args[myidx-1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 				if (val > INT_MAX) {
-					Alert("parsing [%s:%d] : Expire value [%u]ms exceeds maxmimum value of 24.85 days.\n",
-					      file, linenum, val);
+					ha_alert("parsing [%s:%d] : Expire value [%u]ms exceeds maxmimum value of 24.85 days.\n",
+						 file, linenum, val);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -4152,8 +4152,8 @@
 			else if (strcmp(args[myidx], "type") == 0) {
 				myidx++;
 				if (stktable_parse_type(args, &myidx, &curproxy->table.type, &curproxy->table.key_size) != 0) {
-					Alert("parsing [%s:%d] : stick-table: unknown type '%s'.\n",
-					      file, linenum, args[myidx]);
+					ha_alert("parsing [%s:%d] : stick-table: unknown type '%s'.\n",
+						 file, linenum, args[myidx]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -4175,8 +4175,8 @@
 							sa = ++nw;
 							while (*nw != ')') {
 								if (!*nw) {
-									Alert("parsing [%s:%d] : %s: missing closing parenthesis after store option '%s'.\n",
-									      file, linenum, args[0], cw);
+									ha_alert("parsing [%s:%d] : %s: missing closing parenthesis after store option '%s'.\n",
+										 file, linenum, args[0], cw);
 									err_code |= ERR_ALERT | ERR_FATAL;
 									goto out;
 								}
@@ -4190,8 +4190,8 @@
 						*nw++ = '\0';
 					type = stktable_get_data_type(cw);
 					if (type < 0) {
-						Alert("parsing [%s:%d] : %s: unknown store option '%s'.\n",
-						      file, linenum, args[0], cw);
+						ha_alert("parsing [%s:%d] : %s: unknown store option '%s'.\n",
+							 file, linenum, args[0], cw);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -4200,26 +4200,26 @@
 					switch (err) {
 					case PE_NONE: break;
 					case PE_EXIST:
-						Warning("parsing [%s:%d]: %s: store option '%s' already enabled, ignored.\n",
-							file, linenum, args[0], cw);
+						ha_warning("parsing [%s:%d]: %s: store option '%s' already enabled, ignored.\n",
+							   file, linenum, args[0], cw);
 						err_code |= ERR_WARN;
 						break;
 
 					case PE_ARG_MISSING:
-						Alert("parsing [%s:%d] : %s: missing argument to store option '%s'.\n",
-						      file, linenum, args[0], cw);
+						ha_alert("parsing [%s:%d] : %s: missing argument to store option '%s'.\n",
+							 file, linenum, args[0], cw);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 
 					case PE_ARG_NOT_USED:
-						Alert("parsing [%s:%d] : %s: unexpected argument to store option '%s'.\n",
-						      file, linenum, args[0], cw);
+						ha_alert("parsing [%s:%d] : %s: unexpected argument to store option '%s'.\n",
+							 file, linenum, args[0], cw);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 
 					default:
-						Alert("parsing [%s:%d] : %s: error when processing store option '%s'.\n",
-						      file, linenum, args[0], cw);
+						ha_alert("parsing [%s:%d] : %s: error when processing store option '%s'.\n",
+							 file, linenum, args[0], cw);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -4227,23 +4227,23 @@
 				myidx++;
 			}
 			else {
-				Alert("parsing [%s:%d] : stick-table: unknown argument '%s'.\n",
-				      file, linenum, args[myidx]);
+				ha_alert("parsing [%s:%d] : stick-table: unknown argument '%s'.\n",
+					 file, linenum, args[myidx]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		}
 
 		if (!curproxy->table.size) {
-			Alert("parsing [%s:%d] : stick-table: missing size.\n",
-			       file, linenum);
+			ha_alert("parsing [%s:%d] : stick-table: missing size.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (curproxy->table.type == (unsigned int)-1) {
-			Alert("parsing [%s:%d] : stick-table: missing type.\n",
-			       file, linenum);
+			ha_alert("parsing [%s:%d] : stick-table: missing type.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4256,7 +4256,7 @@
 		int flags;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4285,13 +4285,13 @@
 			flags = STK_IS_MATCH | STK_IS_STORE;
 		}
 		else {
-			Alert("parsing [%s:%d] : '%s' expects 'on', 'match', or 'store'.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects 'on', 'match', or 'store'.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (*(args[myidx]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a fetch method.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a fetch method.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4299,23 +4299,23 @@
 		curproxy->conf.args.ctx = ARGC_STK;
 		expr = sample_parse_expr(args, &myidx, file, linenum, &errmsg, &curproxy->conf.args);
 		if (!expr) {
-			Alert("parsing [%s:%d] : '%s': %s\n", file, linenum, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : '%s': %s\n", file, linenum, args[0], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (flags & STK_ON_RSP) {
 			if (!(expr->fetch->val & SMP_VAL_BE_STO_RUL)) {
-				Alert("parsing [%s:%d] : '%s': fetch method '%s' extracts information from '%s', none of which is available for 'store-response'.\n",
-				      file, linenum, args[0], expr->fetch->kw, sample_src_names(expr->fetch->use));
+				ha_alert("parsing [%s:%d] : '%s': fetch method '%s' extracts information from '%s', none of which is available for 'store-response'.\n",
+					 file, linenum, args[0], expr->fetch->kw, sample_src_names(expr->fetch->use));
 		                err_code |= ERR_ALERT | ERR_FATAL;
 				free(expr);
 			        goto out;
 			}
 		} else {
 			if (!(expr->fetch->val & SMP_VAL_BE_SET_SRV)) {
-				Alert("parsing [%s:%d] : '%s': fetch method '%s' extracts information from '%s', none of which is available during request.\n",
-				      file, linenum, args[0], expr->fetch->kw, sample_src_names(expr->fetch->use));
+				ha_alert("parsing [%s:%d] : '%s': fetch method '%s' extracts information from '%s', none of which is available during request.\n",
+					 file, linenum, args[0], expr->fetch->kw, sample_src_names(expr->fetch->use));
 				err_code |= ERR_ALERT | ERR_FATAL;
 				free(expr);
 				goto out;
@@ -4332,16 +4332,16 @@
 
 		if (strcmp(args[myidx], "if") == 0 || strcmp(args[myidx], "unless") == 0) {
 			if ((cond = build_acl_cond(file, linenum, &curproxy->acl, curproxy, (const char **)args + myidx, &errmsg)) == NULL) {
-				Alert("parsing [%s:%d] : '%s': error detected while parsing sticking condition : %s.\n",
-				      file, linenum, args[0], errmsg);
+				ha_alert("parsing [%s:%d] : '%s': error detected while parsing sticking condition : %s.\n",
+					 file, linenum, args[0], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				free(expr);
 				goto out;
 			}
 		}
 		else if (*(args[myidx])) {
-			Alert("parsing [%s:%d] : '%s': unknown keyword '%s'.\n",
-			      file, linenum, args[0], args[myidx]);
+			ha_alert("parsing [%s:%d] : '%s': unknown keyword '%s'.\n",
+				 file, linenum, args[0], args[myidx]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			free(expr);
 			goto out;
@@ -4372,26 +4372,26 @@
 			struct stats_admin_rule *rule;
 
 			if (curproxy == &defproxy) {
-				Alert("parsing [%s:%d]: '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d]: '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 
 			if (!stats_check_init_uri_auth(&curproxy->uri_auth)) {
-				Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
 
 			if (strcmp(args[2], "if") != 0 && strcmp(args[2], "unless") != 0) {
-				Alert("parsing [%s:%d] : '%s %s' requires either 'if' or 'unless' followed by a condition.\n",
-				file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' requires either 'if' or 'unless' followed by a condition.\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			if ((cond = build_acl_cond(file, linenum, &curproxy->acl, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
-				Alert("parsing [%s:%d] : error detected while parsing a '%s %s' rule : %s.\n",
-				      file, linenum, args[0], args[1], errmsg);
+				ha_alert("parsing [%s:%d] : error detected while parsing a '%s %s' rule : %s.\n",
+					 file, linenum, args[0], args[1], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -4406,21 +4406,21 @@
 			LIST_ADDQ(&curproxy->uri_auth->admin_rules, &rule->list);
 		} else if (!strcmp(args[1], "uri")) {
 			if (*(args[2]) == 0) {
-				Alert("parsing [%s:%d] : 'uri' needs an URI prefix.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : 'uri' needs an URI prefix.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			} else if (!stats_set_uri(&curproxy->uri_auth, args[2])) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
 		} else if (!strcmp(args[1], "realm")) {
 			if (*(args[2]) == 0) {
-				Alert("parsing [%s:%d] : 'realm' needs an realm name.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : 'realm' needs an realm name.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			} else if (!stats_set_realm(&curproxy->uri_auth, args[2])) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
@@ -4429,12 +4429,12 @@
 
 			err = parse_time_err(args[2], &interval, TIME_UNIT_S);
 			if (err) {
-				Alert("parsing [%s:%d] : unexpected character '%c' in stats refresh interval.\n",
-				      file, linenum, *err);
+				ha_alert("parsing [%s:%d] : unexpected character '%c' in stats refresh interval.\n",
+					 file, linenum, *err);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			} else if (!stats_set_refresh(&curproxy->uri_auth, interval)) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
@@ -4442,21 +4442,21 @@
 			struct act_rule *rule;
 
 			if (curproxy == &defproxy) {
-				Alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+				ha_alert("parsing [%s:%d]: '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 
 			if (!stats_check_init_uri_auth(&curproxy->uri_auth)) {
-				Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
 
 			if (!LIST_ISEMPTY(&curproxy->uri_auth->http_req_rules) &&
 			    !LIST_PREV(&curproxy->uri_auth->http_req_rules, struct act_rule *, list)->cond) {
-				Warning("parsing [%s:%d]: previous '%s' action has no condition attached, further entries are NOOP.\n",
-					file, linenum, args[0]);
+				ha_warning("parsing [%s:%d]: previous '%s' action has no condition attached, further entries are NOOP.\n",
+					   file, linenum, args[0]);
 				err_code |= ERR_WARN;
 			}
 
@@ -4474,39 +4474,39 @@
 
 		} else if (!strcmp(args[1], "auth")) {
 			if (*(args[2]) == 0) {
-				Alert("parsing [%s:%d] : 'auth' needs a user:password account.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : 'auth' needs a user:password account.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			} else if (!stats_add_auth(&curproxy->uri_auth, args[2])) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
 		} else if (!strcmp(args[1], "scope")) {
 			if (*(args[2]) == 0) {
-				Alert("parsing [%s:%d] : 'scope' needs a proxy name.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : 'scope' needs a proxy name.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			} else if (!stats_add_scope(&curproxy->uri_auth, args[2])) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
 		} else if (!strcmp(args[1], "enable")) {
 			if (!stats_check_init_uri_auth(&curproxy->uri_auth)) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
 		} else if (!strcmp(args[1], "hide-version")) {
 			if (!stats_set_flag(&curproxy->uri_auth, ST_HIDEVER)) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
 		} else if (!strcmp(args[1], "show-legends")) {
 			if (!stats_set_flag(&curproxy->uri_auth, ST_SHLGNDS)) {
-				Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
@@ -4524,16 +4524,16 @@
 				}
 
 				if (!i || args[2][i]) {
-					Alert("parsing [%s:%d]: '%s %s' invalid node name - should be a string"
-						"with digits(0-9), letters(A-Z, a-z), hyphen(-) or underscode(_).\n",
-						file, linenum, args[0], args[1]);
+					ha_alert("parsing [%s:%d]: '%s %s' invalid node name - should be a string"
+						 "with digits(0-9), letters(A-Z, a-z), hyphen(-) or underscode(_).\n",
+						 file, linenum, args[0], args[1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 			}
 
 			if (!stats_set_node(&curproxy->uri_auth, args[2])) {
-				Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
@@ -4555,12 +4555,12 @@
 			}
 
 			if (!*args[2] && !global.desc)
-				Warning("parsing [%s:%d]: '%s' requires a parameter or 'desc' to be set in the global section.\n",
-					file, linenum, args[1]);
+				ha_warning("parsing [%s:%d]: '%s' requires a parameter or 'desc' to be set in the global section.\n",
+					   file, linenum, args[1]);
 			else {
 				if (!stats_set_desc(&curproxy->uri_auth, desc)) {
 					free(desc);
-					Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+					ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 					err_code |= ERR_ALERT | ERR_ABORT;
 					goto out;
 				}
@@ -4568,8 +4568,8 @@
 			}
 		} else {
 stats_error_parsing:
-			Alert("parsing [%s:%d]: %s '%s', expects 'admin', 'uri', 'realm', 'auth', 'scope', 'enable', 'hide-version', 'show-node', 'show-desc' or 'show-legends'.\n",
-			      file, linenum, *args[1]?"unknown stats parameter":"missing keyword in", args[*args[1]?1:0]);
+			ha_alert("parsing [%s:%d]: %s '%s', expects 'admin', 'uri', 'realm', 'auth', 'scope', 'enable', 'hide-version', 'show-node', 'show-desc' or 'show-legends'.\n",
+				 file, linenum, *args[1]?"unknown stats parameter":"missing keyword in", args[*args[1]?1:0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4578,8 +4578,8 @@
 		int optnum;
 
 		if (*(args[1]) == '\0') {
-			Alert("parsing [%s:%d]: '%s' expects an option name.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects an option name.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4587,8 +4587,8 @@
 		for (optnum = 0; cfg_opts[optnum].name; optnum++) {
 			if (!strcmp(args[1], cfg_opts[optnum].name)) {
 				if (cfg_opts[optnum].cap == PR_CAP_NONE) {
-					Alert("parsing [%s:%d]: option '%s' is not supported due to build options.\n",
-						file, linenum, cfg_opts[optnum].name);
+					ha_alert("parsing [%s:%d]: option '%s' is not supported due to build options.\n",
+						 file, linenum, cfg_opts[optnum].name);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -4621,8 +4621,8 @@
 		for (optnum = 0; cfg_opts2[optnum].name; optnum++) {
 			if (!strcmp(args[1], cfg_opts2[optnum].name)) {
 				if (cfg_opts2[optnum].cap == PR_CAP_NONE) {
-					Alert("parsing [%s:%d]: option '%s' is not supported due to build options.\n",
-						file, linenum, cfg_opts2[optnum].name);
+					ha_alert("parsing [%s:%d]: option '%s' is not supported due to build options.\n",
+						 file, linenum, cfg_opts2[optnum].name);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -4758,8 +4758,8 @@
 		}
 
 		if (kwm != KWM_STD) {
-			Alert("parsing [%s:%d]: negation/default is not supported for option '%s'.\n",
-				file, linenum, args[1]);
+			ha_alert("parsing [%s:%d]: negation/default is not supported for option '%s'.\n",
+				 file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -4773,7 +4773,7 @@
 					curproxy->options2 |= PR_O2_CLFLOG;
 					logformat = clf_http_log_format;
 				} else {
-					Alert("parsing [%s:%d] : keyword '%s' only supports option 'clf'.\n", file, linenum, args[1]);
+					ha_alert("parsing [%s:%d] : keyword '%s' only supports option 'clf'.\n", file, linenum, args[1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -4792,8 +4792,8 @@
 					oldlogformat = "option httplog clf";
 				if (logformat == clf_http_log_format)
 					clflogformat = " clf";
-				Warning("parsing [%s:%d]: 'option httplog%s' overrides previous '%s' in 'defaults' section.\n",
-				        file, linenum, clflogformat, oldlogformat);
+				ha_warning("parsing [%s:%d]: 'option httplog%s' overrides previous '%s' in 'defaults' section.\n",
+					   file, linenum, clflogformat, oldlogformat);
 			}
 			if (curproxy->conf.logformat_string != default_http_log_format &&
 			    curproxy->conf.logformat_string != default_tcp_log_format &&
@@ -4815,8 +4815,8 @@
 					oldlogformat = "option tcplog";
 				else if (curproxy->conf.logformat_string == clf_http_log_format)
 					oldlogformat = "option httplog clf";
-				Warning("parsing [%s:%d]: 'option tcplog' overrides previous '%s' in 'defaults' section.\n",
-				        file, linenum, oldlogformat);
+				ha_warning("parsing [%s:%d]: 'option tcplog' overrides previous '%s' in 'defaults' section.\n",
+					   file, linenum, oldlogformat);
 			}
 			/* generate a detailed TCP log */
 			if (curproxy->conf.logformat_string != default_http_log_format &&
@@ -4936,8 +4936,8 @@
 
 						/* suboption header - needs additional argument for it */
 						if (*(args[cur_arg+1]) == 0) {
-							Alert("parsing [%s:%d] : '%s %s %s' expects <username> as argument.\n",
-							      file, linenum, args[0], args[1], args[cur_arg]);
+							ha_alert("parsing [%s:%d] : '%s %s %s' expects <username> as argument.\n",
+								 file, linenum, args[0], args[1], args[cur_arg]);
 							err_code |= ERR_ALERT | ERR_FATAL;
 							goto out;
 						}
@@ -4965,8 +4965,8 @@
 						cur_arg += 2;
 					} else {
 						/* unknown suboption - catchall */
-						Alert("parsing [%s:%d] : '%s %s' only supports optional values: 'user'.\n",
-						      file, linenum, args[0], args[1]);
+						ha_alert("parsing [%s:%d] : '%s %s' only supports optional values: 'user'.\n",
+							 file, linenum, args[0], args[1]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5045,8 +5045,8 @@
 
 						/* suboption header - needs additional argument for it */
 						if (*(args[cur_arg+1]) == 0) {
-							Alert("parsing [%s:%d] : '%s %s %s' expects <username> as argument.\n",
-							      file, linenum, args[0], args[1], args[cur_arg]);
+							ha_alert("parsing [%s:%d] : '%s %s %s' expects <username> as argument.\n",
+								 file, linenum, args[0], args[1], args[cur_arg]);
 							err_code |= ERR_ALERT | ERR_FATAL;
 							goto out;
 						}
@@ -5076,7 +5076,7 @@
 								curproxy->check_req[36 + userlen + 1 + 1 + 4] = 1;
 								cur_arg += 3;
 							} else {
-								Alert("parsing [%s:%d] : keyword '%s' only supports option 'post-41'.\n", file, linenum, args[cur_arg+2]);
+								ha_alert("parsing [%s:%d] : keyword '%s' only supports option 'post-41'.\n", file, linenum, args[cur_arg+2]);
 								err_code |= ERR_ALERT | ERR_FATAL;
 								goto out;
 							}
@@ -5103,8 +5103,8 @@
 						}
 					} else {
 						/* unknown suboption - catchall */
-						Alert("parsing [%s:%d] : '%s %s' only supports optional values: 'user'.\n",
-						      file, linenum, args[0], args[1]);
+						ha_alert("parsing [%s:%d] : '%s %s' only supports optional values: 'user'.\n",
+							 file, linenum, args[0], args[1]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5126,14 +5126,14 @@
 		}
 		else if (!strcmp(args[1], "spop-check")) {
 			if (curproxy == &defproxy) {
-				Alert("parsing [%s:%d] : '%s %s' not allowed in 'defaults' section.\n",
-				      file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' not allowed in 'defaults' section.\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			if (curproxy->cap & PR_CAP_FE) {
-				Alert("parsing [%s:%d] : '%s %s' not allowed in 'frontend' and 'listen' sections.\n",
-				      file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' not allowed in 'frontend' and 'listen' sections.\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -5145,7 +5145,7 @@
 			curproxy->options2 |= PR_O2_SPOP_CHK;
 
 			if (spoe_prepare_healthcheck_request(&curproxy->check_req, &curproxy->check_len)) {
-				Alert("parsing [%s:%d] : failed to prepare SPOP healthcheck request.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : failed to prepare SPOP healthcheck request.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -5192,8 +5192,8 @@
 				if (!strcmp(args[cur_arg], "except")) {
 					/* suboption except - needs additional argument for it */
 					if (!*(args[cur_arg+1]) || !str2net(args[cur_arg+1], 1, &curproxy->except_net, &curproxy->except_mask)) {
-						Alert("parsing [%s:%d] : '%s %s %s' expects <address>[/mask] as argument.\n",
-						      file, linenum, args[0], args[1], args[cur_arg]);
+						ha_alert("parsing [%s:%d] : '%s %s %s' expects <address>[/mask] as argument.\n",
+							 file, linenum, args[0], args[1], args[cur_arg]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5203,8 +5203,8 @@
 				} else if (!strcmp(args[cur_arg], "header")) {
 					/* suboption header - needs additional argument for it */
 					if (*(args[cur_arg+1]) == 0) {
-						Alert("parsing [%s:%d] : '%s %s %s' expects <header_name> as argument.\n",
-						      file, linenum, args[0], args[1], args[cur_arg]);
+						ha_alert("parsing [%s:%d] : '%s %s %s' expects <header_name> as argument.\n",
+							 file, linenum, args[0], args[1], args[cur_arg]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5217,8 +5217,8 @@
 					cur_arg += 1;
 				} else {
 					/* unknown suboption - catchall */
-					Alert("parsing [%s:%d] : '%s %s' only supports optional values: 'except', 'header' and 'if-none'.\n",
-					      file, linenum, args[0], args[1]);
+					ha_alert("parsing [%s:%d] : '%s %s' only supports optional values: 'except', 'header' and 'if-none'.\n",
+						 file, linenum, args[0], args[1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5243,8 +5243,8 @@
 				if (!strcmp(args[cur_arg], "except")) {
 					/* suboption except - needs additional argument for it */
 					if (!*(args[cur_arg+1]) || !str2net(args[cur_arg+1], 1, &curproxy->except_to, &curproxy->except_mask_to)) {
-						Alert("parsing [%s:%d] : '%s %s %s' expects <address>[/mask] as argument.\n",
-						      file, linenum, args[0], args[1], args[cur_arg]);
+						ha_alert("parsing [%s:%d] : '%s %s %s' expects <address>[/mask] as argument.\n",
+							 file, linenum, args[0], args[1], args[cur_arg]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5254,8 +5254,8 @@
 				} else if (!strcmp(args[cur_arg], "header")) {
 					/* suboption header - needs additional argument for it */
 					if (*(args[cur_arg+1]) == 0) {
-						Alert("parsing [%s:%d] : '%s %s %s' expects <header_name> as argument.\n",
-						      file, linenum, args[0], args[1], args[cur_arg]);
+						ha_alert("parsing [%s:%d] : '%s %s %s' expects <header_name> as argument.\n",
+							 file, linenum, args[0], args[1], args[cur_arg]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5265,15 +5265,15 @@
 					cur_arg += 2;
 				} else {
 					/* unknown suboption - catchall */
-					Alert("parsing [%s:%d] : '%s %s' only supports optional values: 'except' and 'header'.\n",
-					      file, linenum, args[0], args[1]);
+					ha_alert("parsing [%s:%d] : '%s %s' only supports optional values: 'except' and 'header'.\n",
+						 file, linenum, args[0], args[1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 			} /* end while loop */
 		}
 		else {
-			Alert("parsing [%s:%d] : unknown option '%s'.\n", file, linenum, args[1]);
+			ha_alert("parsing [%s:%d] : unknown option '%s'.\n", file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5284,7 +5284,7 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a backend name.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a backend name.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5299,8 +5299,8 @@
 			err_code |= ERR_WARN;
 
 		if (!already_warned(WARN_REDISPATCH_DEPRECATED))
-			Warning("parsing [%s:%d]: keyword '%s' is deprecated in favor of 'option redispatch', and will not be supported by future versions.\n",
-				file, linenum, args[0]);
+			ha_warning("parsing [%s:%d]: keyword '%s' is deprecated in favor of 'option redispatch', and will not be supported by future versions.\n",
+				   file, linenum, args[0]);
 		err_code |= ERR_WARN;
 		/* enable reconnections to dispatch */
 		curproxy->options |= PR_O_REDISP;
@@ -5340,7 +5340,7 @@
 				goto out;
 		}
 		else {
-			Alert("parsing [%s:%d] : '%s' only supports 'never', 'safe', 'aggressive', 'always'.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' only supports 'never', 'safe', 'aggressive', 'always'.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5366,7 +5366,7 @@
 			int cur_arg;
 
 			if (curproxy->options2 & PR_O2_EXP_TYPE) {
-				Alert("parsing [%s:%d] : '%s %s' already specified.\n", file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' already specified.\n", file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -5387,8 +5387,8 @@
 			 */
 			if (strcmp(ptr_arg, "status") == 0) {
 				if (!*(args[cur_arg + 1])) {
-					Alert("parsing [%s:%d] : '%s %s %s' expects <string> as an argument.\n",
-					      file, linenum, args[0], args[1], ptr_arg);
+					ha_alert("parsing [%s:%d] : '%s %s %s' expects <string> as an argument.\n",
+						 file, linenum, args[0], args[1], ptr_arg);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5398,8 +5398,8 @@
 			}
 			else if (strcmp(ptr_arg, "string") == 0) {
 				if (!*(args[cur_arg + 1])) {
-					Alert("parsing [%s:%d] : '%s %s %s' expects <string> as an argument.\n",
-					      file, linenum, args[0], args[1], ptr_arg);
+					ha_alert("parsing [%s:%d] : '%s %s %s' expects <string> as an argument.\n",
+						 file, linenum, args[0], args[1], ptr_arg);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5409,8 +5409,8 @@
 			}
 			else if (strcmp(ptr_arg, "rstatus") == 0) {
 				if (!*(args[cur_arg + 1])) {
-					Alert("parsing [%s:%d] : '%s %s %s' expects <regex> as an argument.\n",
-					      file, linenum, args[0], args[1], ptr_arg);
+					ha_alert("parsing [%s:%d] : '%s %s %s' expects <regex> as an argument.\n",
+						 file, linenum, args[0], args[1], ptr_arg);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5425,8 +5425,8 @@
 				curproxy->expect_regex = calloc(1, sizeof(*curproxy->expect_regex));
 				error = NULL;
 				if (!regex_comp(args[cur_arg + 1], curproxy->expect_regex, 1, 1, &error)) {
-					Alert("parsing [%s:%d] : '%s %s %s' : bad regular expression '%s': %s.\n",
-					      file, linenum, args[0], args[1], ptr_arg, args[cur_arg + 1], error);
+					ha_alert("parsing [%s:%d] : '%s %s %s' : bad regular expression '%s': %s.\n",
+						 file, linenum, args[0], args[1], ptr_arg, args[cur_arg + 1], error);
 					free(error);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -5434,8 +5434,8 @@
 			}
 			else if (strcmp(ptr_arg, "rstring") == 0) {
 				if (!*(args[cur_arg + 1])) {
-					Alert("parsing [%s:%d] : '%s %s %s' expects <regex> as an argument.\n",
-					      file, linenum, args[0], args[1], ptr_arg);
+					ha_alert("parsing [%s:%d] : '%s %s %s' expects <regex> as an argument.\n",
+						 file, linenum, args[0], args[1], ptr_arg);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5450,22 +5450,22 @@
 				curproxy->expect_regex = calloc(1, sizeof(*curproxy->expect_regex));
 				error = NULL;
 				if (!regex_comp(args[cur_arg + 1], curproxy->expect_regex, 1, 1, &error)) {
-					Alert("parsing [%s:%d] : '%s %s %s' : bad regular expression '%s': %s.\n",
-					      file, linenum, args[0], args[1], ptr_arg, args[cur_arg + 1], error);
+					ha_alert("parsing [%s:%d] : '%s %s %s' : bad regular expression '%s': %s.\n",
+						 file, linenum, args[0], args[1], ptr_arg, args[cur_arg + 1], error);
 					free(error);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 			}
 			else {
-				Alert("parsing [%s:%d] : '%s %s' only supports [!] 'status', 'string', 'rstatus', 'rstring', found '%s'.\n",
-				      file, linenum, args[0], args[1], ptr_arg);
+				ha_alert("parsing [%s:%d] : '%s %s' only supports [!] 'status', 'string', 'rstatus', 'rstring', found '%s'.\n",
+					 file, linenum, args[0], args[1], ptr_arg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		}
 		else {
-			Alert("parsing [%s:%d] : '%s' only supports 'disable-on-404', 'send-state', 'expect'.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' only supports 'disable-on-404', 'send-state', 'expect'.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5483,8 +5483,8 @@
 			tcpcheck->action = TCPCHK_ACT_COMMENT;
 
 			if (!*args[cur_arg + 1]) {
-				Alert("parsing [%s:%d] : '%s' expects a comment string.\n",
-					file, linenum, args[cur_arg]);
+				ha_alert("parsing [%s:%d] : '%s' expects a comment string.\n",
+					 file, linenum, args[cur_arg]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -5509,8 +5509,8 @@
 
 			if (&tcpcheck->list != &curproxy->tcpcheck_rules
 			    && tcpcheck->action != TCPCHK_ACT_CONNECT) {
-				Alert("parsing [%s:%d] : first step MUST also be a 'connect' when there is a 'connect' step in the tcp-check ruleset.\n",
-				      file, linenum);
+				ha_alert("parsing [%s:%d] : first step MUST also be a 'connect' when there is a 'connect' step in the tcp-check ruleset.\n",
+					 file, linenum);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -5525,8 +5525,8 @@
 				if (strcmp(args[cur_arg], "port") == 0) {
 					if ( (atol(args[cur_arg + 1]) > 65535) ||
 							(atol(args[cur_arg + 1]) < 1) ){
-						Alert("parsing [%s:%d] : '%s %s %s' expects a valid TCP port (from range 1 to 65535), got %s.\n",
-						      file, linenum, args[0], args[1], "port", args[cur_arg + 1]);
+						ha_alert("parsing [%s:%d] : '%s %s %s' expects a valid TCP port (from range 1 to 65535), got %s.\n",
+							 file, linenum, args[0], args[1], "port", args[cur_arg + 1]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5548,8 +5548,8 @@
 				/* comment for this tcpcheck line */
 				else if (strcmp(args[cur_arg], "comment") == 0) {
 					if (!*args[cur_arg + 1]) {
-						Alert("parsing [%s:%d] : '%s' expects a comment string.\n",
-							file, linenum, args[cur_arg]);
+						ha_alert("parsing [%s:%d] : '%s' expects a comment string.\n",
+							 file, linenum, args[cur_arg]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5558,11 +5558,11 @@
 				}
 				else {
 #ifdef USE_OPENSSL
-					Alert("parsing [%s:%d] : '%s %s' expects 'comment', 'port', 'send-proxy' or 'ssl' but got '%s' as argument.\n",
+					ha_alert("parsing [%s:%d] : '%s %s' expects 'comment', 'port', 'send-proxy' or 'ssl' but got '%s' as argument.\n",
 #else /* USE_OPENSSL */
-					Alert("parsing [%s:%d] : '%s %s' expects 'comment', 'port', 'send-proxy' or but got '%s' as argument.\n",
+					ha_alert("parsing [%s:%d] : '%s %s' expects 'comment', 'port', 'send-proxy' or but got '%s' as argument.\n",
 #endif /* USE_OPENSSL */
-					      file, linenum, args[0], args[1], args[cur_arg]);
+						 file, linenum, args[0], args[1], args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5574,8 +5574,8 @@
 		else if (strcmp(args[1], "send") == 0) {
 			if (! *(args[2]) ) {
 				/* SEND string expected */
-				Alert("parsing [%s:%d] : '%s %s %s' expects <STRING> as argument.\n",
-				      file, linenum, args[0], args[1], args[2]);
+				ha_alert("parsing [%s:%d] : '%s %s %s' expects <STRING> as argument.\n",
+					 file, linenum, args[0], args[1], args[2]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			} else {
@@ -5591,8 +5591,8 @@
 				/* comment for this tcpcheck line */
 				if (strcmp(args[3], "comment") == 0) {
 					if (!*args[4]) {
-						Alert("parsing [%s:%d] : '%s' expects a comment string.\n",
-							file, linenum, args[3]);
+						ha_alert("parsing [%s:%d] : '%s' expects a comment string.\n",
+							 file, linenum, args[3]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5605,8 +5605,8 @@
 		else if (strcmp(args[1], "send-binary") == 0) {
 			if (! *(args[2]) ) {
 				/* SEND binary string expected */
-				Alert("parsing [%s:%d] : '%s %s %s' expects <BINARY STRING> as argument.\n",
-				      file, linenum, args[0], args[1], args[2]);
+				ha_alert("parsing [%s:%d] : '%s %s %s' expects <BINARY STRING> as argument.\n",
+					 file, linenum, args[0], args[1], args[2]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			} else {
@@ -5617,8 +5617,8 @@
 
 				tcpcheck->action = TCPCHK_ACT_SEND;
 				if (parse_binary(args[2], &tcpcheck->string, &tcpcheck->string_len, &err) == 0) {
-					Alert("parsing [%s:%d] : '%s %s %s' expects <BINARY STRING> as argument, but %s\n",
-					      file, linenum, args[0], args[1], args[2], err);
+					ha_alert("parsing [%s:%d] : '%s %s %s' expects <BINARY STRING> as argument, but %s\n",
+						 file, linenum, args[0], args[1], args[2], err);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5627,8 +5627,8 @@
 				/* comment for this tcpcheck line */
 				if (strcmp(args[3], "comment") == 0) {
 					if (!*args[4]) {
-						Alert("parsing [%s:%d] : '%s' expects a comment string.\n",
-							file, linenum, args[3]);
+						ha_alert("parsing [%s:%d] : '%s' expects a comment string.\n",
+							 file, linenum, args[3]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5644,7 +5644,7 @@
 			int inverse = 0;
 
 			if (curproxy->options2 & PR_O2_EXP_TYPE) {
-				Alert("parsing [%s:%d] : '%s %s' already specified.\n", file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' already specified.\n", file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -5668,8 +5668,8 @@
 				char *err = NULL;
 
 				if (!*(args[cur_arg + 1])) {
-					Alert("parsing [%s:%d] : '%s %s %s' expects <binary string> as an argument.\n",
-					      file, linenum, args[0], args[1], ptr_arg);
+					ha_alert("parsing [%s:%d] : '%s %s %s' expects <binary string> as an argument.\n",
+						 file, linenum, args[0], args[1], ptr_arg);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5678,8 +5678,8 @@
 
 				tcpcheck->action = TCPCHK_ACT_EXPECT;
 				if (parse_binary(args[cur_arg + 1], &tcpcheck->string, &tcpcheck->string_len, &err) == 0) {
-					Alert("parsing [%s:%d] : '%s %s %s' expects <BINARY STRING> as argument, but %s\n",
-					      file, linenum, args[0], args[1], args[2], err);
+					ha_alert("parsing [%s:%d] : '%s %s %s' expects <BINARY STRING> as argument, but %s\n",
+						 file, linenum, args[0], args[1], args[2], err);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5690,8 +5690,8 @@
 				cur_arg += 2;
 				if (strcmp(args[cur_arg], "comment") == 0) {
 					if (!*args[cur_arg + 1]) {
-						Alert("parsing [%s:%d] : '%s' expects a comment string.\n",
-							file, linenum, args[cur_arg + 1]);
+						ha_alert("parsing [%s:%d] : '%s' expects a comment string.\n",
+							 file, linenum, args[cur_arg + 1]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5704,8 +5704,8 @@
 				struct tcpcheck_rule *tcpcheck;
 
 				if (!*(args[cur_arg + 1])) {
-					Alert("parsing [%s:%d] : '%s %s %s' expects <string> as an argument.\n",
-					      file, linenum, args[0], args[1], ptr_arg);
+					ha_alert("parsing [%s:%d] : '%s %s %s' expects <string> as an argument.\n",
+						 file, linenum, args[0], args[1], ptr_arg);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5722,8 +5722,8 @@
 				cur_arg += 2;
 				if (strcmp(args[cur_arg], "comment") == 0) {
 					if (!*args[cur_arg + 1]) {
-						Alert("parsing [%s:%d] : '%s' expects a comment string.\n",
-							file, linenum, args[cur_arg + 1]);
+						ha_alert("parsing [%s:%d] : '%s' expects a comment string.\n",
+							 file, linenum, args[cur_arg + 1]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5736,8 +5736,8 @@
 				struct tcpcheck_rule *tcpcheck;
 
 				if (!*(args[cur_arg + 1])) {
-					Alert("parsing [%s:%d] : '%s %s %s' expects <regex> as an argument.\n",
-					      file, linenum, args[0], args[1], ptr_arg);
+					ha_alert("parsing [%s:%d] : '%s %s %s' expects <regex> as an argument.\n",
+						 file, linenum, args[0], args[1], ptr_arg);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -5750,8 +5750,8 @@
 				tcpcheck->expect_regex = calloc(1, sizeof(*tcpcheck->expect_regex));
 				error = NULL;
 				if (!regex_comp(args[cur_arg + 1], tcpcheck->expect_regex, 1, 1, &error)) {
-					Alert("parsing [%s:%d] : '%s %s %s' : bad regular expression '%s': %s.\n",
-					      file, linenum, args[0], args[1], ptr_arg, args[cur_arg + 1], error);
+					ha_alert("parsing [%s:%d] : '%s %s %s' : bad regular expression '%s': %s.\n",
+						 file, linenum, args[0], args[1], ptr_arg, args[cur_arg + 1], error);
 					free(error);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -5762,8 +5762,8 @@
 				cur_arg += 2;
 				if (strcmp(args[cur_arg], "comment") == 0) {
 					if (!*args[cur_arg + 1]) {
-						Alert("parsing [%s:%d] : '%s' expects a comment string.\n",
-							file, linenum, args[cur_arg + 1]);
+						ha_alert("parsing [%s:%d] : '%s' expects a comment string.\n",
+							 file, linenum, args[cur_arg + 1]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -5773,21 +5773,21 @@
 				LIST_ADDQ(&curproxy->tcpcheck_rules, &tcpcheck->list);
 			}
 			else {
-				Alert("parsing [%s:%d] : '%s %s' only supports [!] 'binary', 'string', 'rstring', found '%s'.\n",
-				      file, linenum, args[0], args[1], ptr_arg);
+				ha_alert("parsing [%s:%d] : '%s %s' only supports [!] 'binary', 'string', 'rstring', found '%s'.\n",
+					 file, linenum, args[0], args[1], ptr_arg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		}
 		else {
-			Alert("parsing [%s:%d] : '%s' only supports 'comment', 'connect', 'send' or 'expect'.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' only supports 'comment', 'connect', 'send' or 'expect'.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}
 	else if (!strcmp(args[0], "monitor")) {
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5798,22 +5798,22 @@
 		if (strcmp(args[1], "fail") == 0) {
 			/* add a condition to fail monitor requests */
 			if (strcmp(args[2], "if") != 0 && strcmp(args[2], "unless") != 0) {
-				Alert("parsing [%s:%d] : '%s %s' requires either 'if' or 'unless' followed by a condition.\n",
-				      file, linenum, args[0], args[1]);
+				ha_alert("parsing [%s:%d] : '%s %s' requires either 'if' or 'unless' followed by a condition.\n",
+					 file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 
 			if ((cond = build_acl_cond(file, linenum, &curproxy->acl, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
-				Alert("parsing [%s:%d] : error detected while parsing a '%s %s' condition : %s.\n",
-				      file, linenum, args[0], args[1], errmsg);
+				ha_alert("parsing [%s:%d] : error detected while parsing a '%s %s' condition : %s.\n",
+					 file, linenum, args[0], args[1], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			LIST_ADDQ(&curproxy->mon_fail_cond, &cond->list);
 		}
 		else {
-			Alert("parsing [%s:%d] : '%s' only supports 'fail'.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' only supports 'fail'.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5831,7 +5831,7 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5844,7 +5844,7 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5857,7 +5857,7 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5867,14 +5867,14 @@
 	}
 	else if (!strcmp(args[0], "grace")) {  /* grace time (ms) */
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a time in milliseconds.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a time in milliseconds.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		err = parse_time_err(args[1], &val, TIME_UNIT_MS);
 		if (err) {
-			Alert("parsing [%s:%d] : unexpected character '%c' in grace time.\n",
-			      file, linenum, *err);
+			ha_alert("parsing [%s:%d] : unexpected character '%c' in grace time.\n",
+				 file, linenum, *err);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5888,7 +5888,7 @@
 		struct protocol *proto;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5897,29 +5897,29 @@
 
 		sk = str2sa_range(args[1], NULL, &port1, &port2, &errmsg, NULL, NULL, 1);
 		if (!sk) {
-			Alert("parsing [%s:%d] : '%s' : %s\n", file, linenum, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : '%s' : %s\n", file, linenum, args[0], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		proto = protocol_by_family(sk->ss_family);
 		if (!proto || !proto->connect) {
-			Alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
-			      file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (port1 != port2) {
-			Alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'.\n",
-			      file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'.\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (!port1) {
-			Alert("parsing [%s:%d] : '%s' : missing port number in '%s', <addr:port> expected.\n",
-			      file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s' : missing port number in '%s', <addr:port> expected.\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5935,7 +5935,7 @@
 			err_code |= ERR_WARN;
 
 		if (backend_parse_balance((const char **)args + 1, &errmsg, curproxy) < 0) {
-			Alert("parsing [%s:%d] : %s %s\n", file, linenum, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : %s %s\n", file, linenum, args[0], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5959,12 +5959,12 @@
 			curproxy->lbprm.algo |= BE_LB_HASH_MAP;
 		}
 		else if (strcmp(args[1], "avalanche") == 0) {
-			Alert("parsing [%s:%d] : experimental feature '%s %s' is not supported anymore, please use '%s map-based sdbm avalanche' instead.\n", file, linenum, args[0], args[1], args[0]);
+			ha_alert("parsing [%s:%d] : experimental feature '%s %s' is not supported anymore, please use '%s map-based sdbm avalanche' instead.\n", file, linenum, args[0], args[1], args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		else {
-			Alert("parsing [%s:%d] : '%s' only supports 'consistent' and 'map-based'.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' only supports 'consistent' and 'map-based'.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -5992,7 +5992,7 @@
 				curproxy->lbprm.algo |= BE_LB_HFCN_CRC32;
 			}
 			else {
-				Alert("parsing [%s:%d] : '%s' only supports 'sdbm', 'djb2', 'crc32', or 'wt6' hash functions.\n", file, linenum, args[0]);
+				ha_alert("parsing [%s:%d] : '%s' only supports 'sdbm', 'djb2', 'crc32', or 'wt6' hash functions.\n", file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -6002,7 +6002,7 @@
 				curproxy->lbprm.algo |= BE_LB_HMOD_AVAL;
 			}
 			else if (*args[3]) {
-				Alert("parsing [%s:%d] : '%s' only supports 'avalanche' as a modifier for hash functions.\n", file, linenum, args[0]);
+				ha_alert("parsing [%s:%d] : '%s' only supports 'avalanche' as a modifier for hash functions.\n", file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -6010,25 +6010,25 @@
 	}
 	else if (strcmp(args[0], "hash-balance-factor") == 0) {
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		curproxy->lbprm.chash.balance_factor = atol(args[1]);
 		if (curproxy->lbprm.chash.balance_factor != 0 && curproxy->lbprm.chash.balance_factor <= 100) {
-			Alert("parsing [%s:%d] : '%s' must be 0 or greater than 100.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' must be 0 or greater than 100.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}
 	else if (strcmp(args[0], "unique-id-format") == 0) {
 		if (!*(args[1])) {
-			Alert("parsing [%s:%d] : %s expects an argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : %s expects an argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		if (*(args[2])) {
-			Alert("parsing [%s:%d] : %s expects only one argument, don't forget to escape spaces!\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : %s expects only one argument, don't forget to escape spaces!\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6042,7 +6042,7 @@
 
 	else if (strcmp(args[0], "unique-id-header") == 0) {
 		if (!*(args[1])) {
-			Alert("parsing [%s:%d] : %s expects an argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : %s expects an argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6052,12 +6052,12 @@
 
 	else if (strcmp(args[0], "log-format") == 0) {
 		if (!*(args[1])) {
-			Alert("parsing [%s:%d] : %s expects an argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : %s expects an argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		if (*(args[2])) {
-			Alert("parsing [%s:%d] : %s expects only one argument, don't forget to escape spaces!\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : %s expects only one argument, don't forget to escape spaces!\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6070,8 +6070,8 @@
 				oldlogformat = "option tcplog";
 			else if (curproxy->conf.logformat_string == clf_http_log_format)
 				oldlogformat = "option httplog clf";
-			Warning("parsing [%s:%d]: 'log-format' overrides previous '%s' in 'defaults' section.\n",
-			        file, linenum, oldlogformat);
+			ha_warning("parsing [%s:%d]: 'log-format' overrides previous '%s' in 'defaults' section.\n",
+				   file, linenum, oldlogformat);
 		}
 		if (curproxy->conf.logformat_string != default_http_log_format &&
 		    curproxy->conf.logformat_string != default_tcp_log_format &&
@@ -6087,19 +6087,19 @@
 		 * reporting the correct line-number when possible.
 		 */
 		if (curproxy != &defproxy && !(curproxy->cap & PR_CAP_FE)) {
-			Warning("parsing [%s:%d] : backend '%s' : 'log-format' directive is ignored in backends.\n",
-				file, linenum, curproxy->id);
+			ha_warning("parsing [%s:%d] : backend '%s' : 'log-format' directive is ignored in backends.\n",
+				   file, linenum, curproxy->id);
 			err_code |= ERR_WARN;
 		}
 	}
 	else if (!strcmp(args[0], "log-format-sd")) {
 		if (!*(args[1])) {
-			Alert("parsing [%s:%d] : %s expects an argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : %s expects an argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		if (*(args[2])) {
-			Alert("parsing [%s:%d] : %s expects only one argument, don't forget to escape spaces!\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : %s expects only one argument, don't forget to escape spaces!\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6116,14 +6116,14 @@
 		 * reporting the correct line-number when possible.
 		 */
 		if (curproxy != &defproxy && !(curproxy->cap & PR_CAP_FE)) {
-			Warning("parsing [%s:%d] : backend '%s' : 'log-format-sd' directive is ignored in backends.\n",
-				file, linenum, curproxy->id);
+			ha_warning("parsing [%s:%d] : backend '%s' : 'log-format-sd' directive is ignored in backends.\n",
+				   file, linenum, curproxy->id);
 			err_code |= ERR_WARN;
 		}
 	}
 	else if (!strcmp(args[0], "log-tag")) {  /* tag to report to syslog */
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects a tag for use in syslog.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a tag for use in syslog.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6135,7 +6135,7 @@
 		struct logsrv *back;
 
 		if (*(args[1]) != 0) {
-			Alert("parsing [%s:%d]:%s : 'no log' does not expect arguments.\n", file, linenum, args[1]);
+			ha_alert("parsing [%s:%d]:%s : 'no log' does not expect arguments.\n", file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6169,8 +6169,8 @@
 			if (strcmp(args[arg+2], "len") == 0) {
 				len = atoi(args[arg+3]);
 				if (len < 80 || len > 65535) {
-					Alert("parsing [%s:%d] : invalid log length '%s', must be between 80 and 65535.\n",
-					      file, linenum, args[arg+3]);
+					ha_alert("parsing [%s:%d] : invalid log length '%s', must be between 80 and 65535.\n",
+						 file, linenum, args[arg+3]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -6189,7 +6189,7 @@
 			if (strcmp(args[arg+2], "format") == 0) {
 				logsrv->format = get_log_format(args[arg+3]);
 				if (logsrv->format < 0) {
-					Alert("parsing [%s:%d] : unknown log format '%s'\n", file, linenum, args[arg+3]);
+					ha_alert("parsing [%s:%d] : unknown log format '%s'\n", file, linenum, args[arg+3]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -6203,7 +6203,7 @@
 
 			logsrv->facility = get_log_facility(args[arg+2]);
 			if (logsrv->facility < 0) {
-				Alert("parsing [%s:%d] : unknown log facility '%s'\n", file, linenum, args[arg+2]);
+				ha_alert("parsing [%s:%d] : unknown log facility '%s'\n", file, linenum, args[arg+2]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 
@@ -6213,7 +6213,7 @@
 			if (*(args[arg+3])) {
 				logsrv->level = get_log_level(args[arg+3]);
 				if (logsrv->level < 0) {
-					Alert("parsing [%s:%d] : unknown optional log level '%s'\n", file, linenum, args[arg+3]);
+					ha_alert("parsing [%s:%d] : unknown optional log level '%s'\n", file, linenum, args[arg+3]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 
@@ -6224,7 +6224,7 @@
 			if (*(args[arg+4])) {
 				logsrv->minlvl = get_log_level(args[arg+4]);
 				if (logsrv->minlvl < 0) {
-					Alert("parsing [%s:%d] : unknown optional minimum log level '%s'\n", file, linenum, args[arg+4]);
+					ha_alert("parsing [%s:%d] : unknown optional minimum log level '%s'\n", file, linenum, args[arg+4]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 
@@ -6233,7 +6233,7 @@
 
 			sk = str2sa_range(args[1], NULL, &port1, &port2, &errmsg, NULL, NULL, 1);
 			if (!sk) {
-				Alert("parsing [%s:%d] : '%s': %s\n", file, linenum, args[0], errmsg);
+				ha_alert("parsing [%s:%d] : '%s': %s\n", file, linenum, args[0], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -6242,8 +6242,8 @@
 
 			if (sk->ss_family == AF_INET || sk->ss_family == AF_INET6) {
 				if (port1 != port2) {
-					Alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'\n",
-					      file, linenum, args[0], args[1]);
+					ha_alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'\n",
+						 file, linenum, args[0], args[1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -6255,8 +6255,8 @@
 			LIST_ADDQ(&curproxy->logsrvs, &logsrv->list);
 		}
 		else {
-			Alert("parsing [%s:%d] : 'log' expects either <address[:port]> and <facility> or 'global' as arguments.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : 'log' expects either <address[:port]> and <facility> or 'global' as arguments.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6271,8 +6271,8 @@
 			err_code |= ERR_WARN;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects <addr>[:<port>], and optionally '%s' <addr>, and '%s' <name>.\n",
-			      file, linenum, "source", "usesrc", "interface");
+			ha_alert("parsing [%s:%d] : '%s' expects <addr>[:<port>], and optionally '%s' <addr>, and '%s' <name>.\n",
+				 file, linenum, "source", "usesrc", "interface");
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6285,23 +6285,23 @@
 
 		sk = str2sa_range(args[1], NULL, &port1, &port2, &errmsg, NULL, NULL, 1);
 		if (!sk) {
-			Alert("parsing [%s:%d] : '%s %s' : %s\n",
-			      file, linenum, args[0], args[1], errmsg);
+			ha_alert("parsing [%s:%d] : '%s %s' : %s\n",
+				 file, linenum, args[0], args[1], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		proto = protocol_by_family(sk->ss_family);
 		if (!proto || !proto->connect) {
-			Alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
-			      file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if (port1 != port2) {
-			Alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'\n",
-			      file, linenum, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'\n",
+				 file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6314,8 +6314,8 @@
 			if (!strcmp(args[cur_arg], "usesrc")) {  /* address to use outside */
 #if defined(CONFIG_HAP_TRANSPARENT)
 				if (!*args[cur_arg + 1]) {
-					Alert("parsing [%s:%d] : '%s' expects <addr>[:<port>], 'client', or 'clientip' as argument.\n",
-					      file, linenum, "usesrc");
+					ha_alert("parsing [%s:%d] : '%s' expects <addr>[:<port>], 'client', or 'clientip' as argument.\n",
+						 file, linenum, "usesrc");
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -6359,9 +6359,9 @@
 					}
 
 					if (curproxy->conn_src.bind_hdr_occ < -MAX_HDR_HISTORY) {
-						Alert("parsing [%s:%d] : usesrc hdr_ip(name,num) does not support negative"
-						      " occurrences values smaller than %d.\n",
-						      file, linenum, MAX_HDR_HISTORY);
+						ha_alert("parsing [%s:%d] : usesrc hdr_ip(name,num) does not support negative"
+							 " occurrences values smaller than %d.\n",
+							 file, linenum, MAX_HDR_HISTORY);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -6370,23 +6370,23 @@
 
 					sk = str2sa_range(args[cur_arg + 1], NULL, &port1, &port2, &errmsg, NULL, NULL, 1);
 					if (!sk) {
-						Alert("parsing [%s:%d] : '%s %s' : %s\n",
-						      file, linenum, args[cur_arg], args[cur_arg+1], errmsg);
+						ha_alert("parsing [%s:%d] : '%s %s' : %s\n",
+							 file, linenum, args[cur_arg], args[cur_arg+1], errmsg);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
 
 					proto = protocol_by_family(sk->ss_family);
 					if (!proto || !proto->connect) {
-						Alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
-						      file, linenum, args[cur_arg], args[cur_arg+1]);
+						ha_alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
+							 file, linenum, args[cur_arg], args[cur_arg+1]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
 
 					if (port1 != port2) {
-						Alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'\n",
-						      file, linenum, args[cur_arg], args[cur_arg + 1]);
+						ha_alert("parsing [%s:%d] : '%s' : port ranges and offsets are not allowed in '%s'\n",
+							 file, linenum, args[cur_arg], args[cur_arg + 1]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
@@ -6395,8 +6395,8 @@
 				}
 				global.last_checks |= LSTCHK_NETADM;
 #else	/* no TPROXY support */
-				Alert("parsing [%s:%d] : '%s' not allowed here because support for TPROXY was not compiled in.\n",
-				      file, linenum, "usesrc");
+				ha_alert("parsing [%s:%d] : '%s' not allowed here because support for TPROXY was not compiled in.\n",
+					 file, linenum, "usesrc");
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 #endif
@@ -6407,8 +6407,8 @@
 			if (!strcmp(args[cur_arg], "interface")) { /* specifically bind to this interface */
 #ifdef SO_BINDTODEVICE
 				if (!*args[cur_arg + 1]) {
-					Alert("parsing [%s:%d] : '%s' : missing interface name.\n",
-					      file, linenum, args[0]);
+					ha_alert("parsing [%s:%d] : '%s' : missing interface name.\n",
+						 file, linenum, args[0]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -6417,30 +6417,30 @@
 				curproxy->conn_src.iface_len  = strlen(curproxy->conn_src.iface_name);
 				global.last_checks |= LSTCHK_NETADM;
 #else
-				Alert("parsing [%s:%d] : '%s' : '%s' option not implemented.\n",
-				      file, linenum, args[0], args[cur_arg]);
+				ha_alert("parsing [%s:%d] : '%s' : '%s' option not implemented.\n",
+					 file, linenum, args[0], args[cur_arg]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 #endif
 				cur_arg += 2;
 				continue;
 			}
-			Alert("parsing [%s:%d] : '%s' only supports optional keywords '%s' and '%s'.\n",
-			      file, linenum, args[0], "interface", "usesrc");
+			ha_alert("parsing [%s:%d] : '%s' only supports optional keywords '%s' and '%s'.\n",
+				 file, linenum, args[0], "interface", "usesrc");
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}
 	else if (!strcmp(args[0], "usesrc")) {  /* address to use outside: needs "source" first */
-		Alert("parsing [%s:%d] : '%s' only allowed after a '%s' statement.\n",
-		      file, linenum, "usesrc", "source");
+		ha_alert("parsing [%s:%d] : '%s' only allowed after a '%s' statement.\n",
+			 file, linenum, "usesrc", "source");
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
 	else if (!strcmp(args[0], "cliexp") || !strcmp(args[0], "reqrep")) {  /* replace request header from a regex */
 		if (*(args[2]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6488,8 +6488,8 @@
 	}
 	else if (!strcmp(args[0], "reqirep")) {  /* replace request header from a regex, ignoring case */
 		if (*(args[2]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6539,7 +6539,7 @@
 		struct cond_wordlist *wl;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6547,15 +6547,15 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects <header> as an argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <header> as an argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		if ((strcmp(args[2], "if") == 0 || strcmp(args[2], "unless") == 0)) {
 			if ((cond = build_acl_cond(file, linenum, &curproxy->acl, curproxy, (const char **)args+2, &errmsg)) == NULL) {
-				Alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
-				      file, linenum, args[0], errmsg);
+				ha_alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
+					 file, linenum, args[0], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -6564,8 +6564,8 @@
 			                                  file, linenum);
 		}
 		else if (*args[2]) {
-			Alert("parsing [%s:%d] : '%s' : Expecting nothing, 'if', or 'unless', got '%s'.\n",
-			      file, linenum, args[0], args[2]);
+			ha_alert("parsing [%s:%d] : '%s' : Expecting nothing, 'if', or 'unless', got '%s'.\n",
+				 file, linenum, args[0], args[2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6578,8 +6578,8 @@
 	}
 	else if (!strcmp(args[0], "srvexp") || !strcmp(args[0], "rsprep")) {  /* replace response header from a regex */
 		if (*(args[2]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6606,8 +6606,8 @@
 	}
 	else if (!strcmp(args[0], "rspirep")) {  /* replace response header from a regex ignoring case */
 		if (*(args[2]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6636,7 +6636,7 @@
 		struct cond_wordlist *wl;
 
 		if (curproxy == &defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6644,15 +6644,15 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[1]) == 0) {
-			Alert("parsing [%s:%d] : '%s' expects <header> as an argument.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects <header> as an argument.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	
 		if ((strcmp(args[2], "if") == 0 || strcmp(args[2], "unless") == 0)) {
 			if ((cond = build_acl_cond(file, linenum, &curproxy->acl, curproxy, (const char **)args+2, &errmsg)) == NULL) {
-				Alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
-				      file, linenum, args[0], errmsg);
+				ha_alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
+					 file, linenum, args[0], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -6661,8 +6661,8 @@
 			                                  file, linenum);
 		}
 		else if (*args[2]) {
-			Alert("parsing [%s:%d] : '%s' : Expecting nothing, 'if', or 'unless', got '%s'.\n",
-			      file, linenum, args[0], args[2]);
+			ha_alert("parsing [%s:%d] : '%s' : Expecting nothing, 'if', or 'unless', got '%s'.\n",
+				 file, linenum, args[0], args[2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6682,7 +6682,7 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[2]) == 0) {
-			Alert("parsing [%s:%d] : <%s> expects <status_code> and <url> as arguments.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : <%s> expects <status_code> and <url> as arguments.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6707,8 +6707,8 @@
 		}
 
 		if (rc >= HTTP_ERR_SIZE) {
-			Warning("parsing [%s:%d] : status code %d not handled by '%s', error relocation will be ignored.\n",
-				file, linenum, errnum, args[0]);
+			ha_warning("parsing [%s:%d] : status code %d not handled by '%s', error relocation will be ignored.\n",
+				   file, linenum, errnum, args[0]);
 			free(err);
 		}
 	}
@@ -6721,15 +6721,15 @@
 			err_code |= ERR_WARN;
 
 		if (*(args[2]) == 0) {
-			Alert("parsing [%s:%d] : <%s> expects <status_code> and <file> as arguments.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : <%s> expects <status_code> and <file> as arguments.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		fd = open(args[2], O_RDONLY);
 		if ((fd < 0) || (fstat(fd, &stat) < 0)) {
-			Alert("parsing [%s:%d] : error opening file <%s> for custom error message <%s>.\n",
-			      file, linenum, args[2], args[1]);
+			ha_alert("parsing [%s:%d] : error opening file <%s> for custom error message <%s>.\n",
+				 file, linenum, args[2], args[1]);
 			if (fd >= 0)
 				close(fd);
 			err_code |= ERR_ALERT | ERR_FATAL;
@@ -6739,8 +6739,8 @@
 		if (stat.st_size <= global.tune.bufsize) {
 			errlen = stat.st_size;
 		} else {
-			Warning("parsing [%s:%d] : custom error message file <%s> larger than %d bytes. Truncating.\n",
-				file, linenum, args[2], global.tune.bufsize);
+			ha_warning("parsing [%s:%d] : custom error message file <%s> larger than %d bytes. Truncating.\n",
+				   file, linenum, args[2], global.tune.bufsize);
 			err_code |= ERR_WARN;
 			errlen = global.tune.bufsize;
 		}
@@ -6748,8 +6748,8 @@
 		err = malloc(errlen); /* malloc() must succeed during parsing */
 		errnum = read(fd, err, errlen);
 		if (errnum != errlen) {
-			Alert("parsing [%s:%d] : error reading file <%s> for custom error message <%s>.\n",
-			      file, linenum, args[2], args[1]);
+			ha_alert("parsing [%s:%d] : error reading file <%s> for custom error message <%s>.\n",
+				 file, linenum, args[2], args[1]);
 			close(fd);
 			free(err);
 			err_code |= ERR_ALERT | ERR_FATAL;
@@ -6767,8 +6767,8 @@
 		}
 
 		if (rc >= HTTP_ERR_SIZE) {
-			Warning("parsing [%s:%d] : status code %d not handled by '%s', error customization will be ignored.\n",
-				file, linenum, errnum, args[0]);
+			ha_warning("parsing [%s:%d] : status code %d not handled by '%s', error customization will be ignored.\n",
+				   file, linenum, errnum, args[0]);
 			err_code |= ERR_WARN;
 			free(err);
 		}
@@ -6785,12 +6785,12 @@
 					/* prepare error message just in case */
 					rc = kwl->kw[index].parse(args, CFG_LISTEN, curproxy, &defproxy, file, linenum, &errmsg);
 					if (rc < 0) {
-						Alert("parsing [%s:%d] : %s\n", file, linenum, errmsg);
+						ha_alert("parsing [%s:%d] : %s\n", file, linenum, errmsg);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
 					else if (rc > 0) {
-						Warning("parsing [%s:%d] : %s\n", file, linenum, errmsg);
+						ha_warning("parsing [%s:%d] : %s\n", file, linenum, errmsg);
 						err_code |= ERR_WARN;
 						goto out;
 					}
@@ -6799,7 +6799,7 @@
 			}
 		}
 
-		Alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
+		ha_alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -6824,19 +6824,19 @@
 		while (*(current = args[idx++])) {
 			err = invalid_char(current);
 			if (err) {
-				Alert("parsing [%s:%d]: character '%c' is not permitted in '%s' name '%s'.\n",
-				      file, linenum, *err, item, current);
+				ha_alert("parsing [%s:%d]: character '%c' is not permitted in '%s' name '%s'.\n",
+					 file, linenum, *err, item, current);
 				return ERR_ALERT | ERR_FATAL;
 			}
 
 			if (netns_store_lookup(current, strlen(current))) {
-				Alert("parsing [%s:%d]: Namespace '%s' is already added.\n",
-				      file, linenum, current);
+				ha_alert("parsing [%s:%d]: Namespace '%s' is already added.\n",
+					 file, linenum, current);
 				return ERR_ALERT | ERR_FATAL;
 			}
 			if (!netns_store_insert(current)) {
-				Alert("parsing [%s:%d]: Cannot open namespace '%s'.\n",
-				      file, linenum, current);
+				ha_alert("parsing [%s:%d]: Cannot open namespace '%s'.\n",
+					 file, linenum, current);
 				return ERR_ALERT | ERR_FATAL;
 			}
 		}
@@ -6844,8 +6844,8 @@
 
 	return 0;
 #else
-	Alert("parsing [%s:%d]: namespace support is not compiled in.",
-			file, linenum);
+	ha_alert("parsing [%s:%d]: namespace support is not compiled in.",
+		 file, linenum);
 	return ERR_ALERT | ERR_FATAL;
 #endif
 }
@@ -6861,8 +6861,8 @@
 		struct userlist *newul;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d]: '%s' expects <name> as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects <name> as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6871,30 +6871,30 @@
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d]: character '%c' is not permitted in '%s' name '%s'.\n",
-			      file, linenum, *err, args[0], args[1]);
+			ha_alert("parsing [%s:%d]: character '%c' is not permitted in '%s' name '%s'.\n",
+				 file, linenum, *err, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		for (newul = userlist; newul; newul = newul->next)
 			if (!strcmp(newul->name, args[1])) {
-				Warning("parsing [%s:%d]: ignoring duplicated userlist '%s'.\n",
-					file, linenum, args[1]);
+				ha_warning("parsing [%s:%d]: ignoring duplicated userlist '%s'.\n",
+					   file, linenum, args[1]);
 				err_code |= ERR_WARN;
 				goto out;
 			}
 
 		newul = calloc(1, sizeof(*newul));
 		if (!newul) {
-			Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
 
 		newul->name = strdup(args[1]);
 		if (!newul->name) {
-			Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			free(newul);
 			goto out;
@@ -6909,16 +6909,16 @@
 		struct auth_groups *ag;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d]: '%s' expects <name> as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects <name> as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d]: character '%c' is not permitted in '%s' name '%s'.\n",
-			      file, linenum, *err, args[0], args[1]);
+			ha_alert("parsing [%s:%d]: character '%c' is not permitted in '%s' name '%s'.\n",
+				 file, linenum, *err, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6928,22 +6928,22 @@
 
 		for (ag = userlist->groups; ag; ag = ag->next)
 			if (!strcmp(ag->name, args[1])) {
-				Warning("parsing [%s:%d]: ignoring duplicated group '%s' in userlist '%s'.\n",
-				      file, linenum, args[1], userlist->name);
+				ha_warning("parsing [%s:%d]: ignoring duplicated group '%s' in userlist '%s'.\n",
+					   file, linenum, args[1], userlist->name);
 				err_code |= ERR_ALERT;
 				goto out;
 			}
 
 		ag = calloc(1, sizeof(*ag));
 		if (!ag) {
-			Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
 
 		ag->name = strdup(args[1]);
 		if (!ag->name) {
-			Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			free(ag);
 			goto out;
@@ -6957,8 +6957,8 @@
 				cur_arg += 2;
 				continue;
 			} else {
-				Alert("parsing [%s:%d]: '%s' only supports 'users' option.\n",
-				      file, linenum, args[0]);
+				ha_alert("parsing [%s:%d]: '%s' only supports 'users' option.\n",
+					 file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				free(ag->groupusers);
 				free(ag->name);
@@ -6975,8 +6975,8 @@
 		int cur_arg;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d]: '%s' expects <name> as arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: '%s' expects <name> as arguments.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -6985,15 +6985,15 @@
 
 		for (newuser = userlist->users; newuser; newuser = newuser->next)
 			if (!strcmp(newuser->user, args[1])) {
-				Warning("parsing [%s:%d]: ignoring duplicated user '%s' in userlist '%s'.\n",
-				      file, linenum, args[1], userlist->name);
+				ha_warning("parsing [%s:%d]: ignoring duplicated user '%s' in userlist '%s'.\n",
+					   file, linenum, args[1], userlist->name);
 				err_code |= ERR_ALERT;
 				goto out;
 			}
 
 		newuser = calloc(1, sizeof(*newuser));
 		if (!newuser) {
-			Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -7009,14 +7009,14 @@
 			if (!strcmp(args[cur_arg], "password")) {
 #ifdef CONFIG_HAP_CRYPT
 				if (!crypt("", args[cur_arg + 1])) {
-					Alert("parsing [%s:%d]: the encrypted password used for user '%s' is not supported by crypt(3).\n",
-						file, linenum, newuser->user);
+					ha_alert("parsing [%s:%d]: the encrypted password used for user '%s' is not supported by crypt(3).\n",
+						 file, linenum, newuser->user);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 #else
-				Warning("parsing [%s:%d]: no crypt(3) support compiled, encrypted passwords will not work.\n",
-					file, linenum);
+				ha_warning("parsing [%s:%d]: no crypt(3) support compiled, encrypted passwords will not work.\n",
+					   file, linenum);
 				err_code |= ERR_ALERT;
 #endif
 				newuser->pass = strdup(args[cur_arg + 1]);
@@ -7032,14 +7032,14 @@
 				cur_arg += 2;
 				continue;
 			} else {
-				Alert("parsing [%s:%d]: '%s' only supports 'password', 'insecure-password' and 'groups' options.\n",
-				      file, linenum, args[0]);
+				ha_alert("parsing [%s:%d]: '%s' only supports 'password', 'insecure-password' and 'groups' options.\n",
+					 file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		}
 	} else {
-		Alert("parsing [%s:%d]: unknown keyword '%s' in '%s' section\n", file, linenum, args[0], "users");
+		ha_alert("parsing [%s:%d]: unknown keyword '%s' in '%s' section\n", file, linenum, args[0], "users");
 		err_code |= ERR_ALERT | ERR_FATAL;
 	}
 
@@ -7059,8 +7059,8 @@
 
 	/* Detect end of scope declaration */
 	if (!end || end == beg) {
-		Alert("parsing [%s:%d] : empty scope name is forbidden.\n",
-		      file, linenum);
+		ha_alert("parsing [%s:%d] : empty scope name is forbidden.\n",
+			 file, linenum);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -7069,8 +7069,8 @@
 	scope = my_strndup(beg, end-beg);
 	err = invalid_char(scope);
 	if (err) {
-		Alert("parsing [%s:%d] : character '%c' is not permitted in a scope name.\n",
-		      file, linenum, *err);
+		ha_alert("parsing [%s:%d] : character '%c' is not permitted in a scope name.\n",
+			 file, linenum, *err);
 		err_code |= ERR_ALERT | ERR_ABORT;
 		goto out;
 	}
@@ -7080,8 +7080,8 @@
 	while (isspace((unsigned char)*line))
 		line++;
 	if (*line && *line != '#' && *line != '\n' && *line != '\r') {
-		Alert("parsing [%s:%d] : character '%c' is not permitted after scope declaration.\n",
-		      file, linenum, *line);
+		ha_alert("parsing [%s:%d] : character '%c' is not permitted after scope declaration.\n",
+			 file, linenum, *line);
 		err_code |= ERR_ALERT | ERR_ABORT;
 		goto out;
 	}
@@ -7118,7 +7118,7 @@
 	int readbytes = 0;
 
 	if ((thisline = malloc(sizeof(*thisline) * linesize)) == NULL) {
-		Alert("parsing [%s] : out of memory.\n", file);
+		ha_alert("parsing [%s] : out of memory.\n", file);
 		return -1;
 	}
 
@@ -7149,8 +7149,8 @@
 
 			newline = realloc(thisline, sizeof(*thisline) * newlinesize);
 			if (newline == NULL) {
-				Alert("parsing [%s:%d]: line too long, cannot allocate memory.\n",
-				      file, linenum);
+				ha_alert("parsing [%s:%d]: line too long, cannot allocate memory.\n",
+					 file, linenum);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				continue;
 			}
@@ -7225,7 +7225,7 @@
 						skip = 3;
 					}
 					else {
-						Alert("parsing [%s:%d] : invalid or incomplete '\\x' sequence in '%s'.\n", file, linenum, args[0]);
+						ha_alert("parsing [%s:%d] : invalid or incomplete '\\x' sequence in '%s'.\n", file, linenum, args[0]);
 						err_code |= ERR_ALERT | ERR_FATAL;
 					}
 				} else if (line[1] == '"') {
@@ -7276,7 +7276,7 @@
 				}
 
 				if (!isalpha((int)(unsigned char)*var_beg) && *var_beg != '_') {
-					Alert("parsing [%s:%d] : Variable expansion: Unrecognized character '%c' in variable name.\n", file, linenum, *var_beg);
+					ha_alert("parsing [%s:%d] : Variable expansion: Unrecognized character '%c' in variable name.\n", file, linenum, *var_beg);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto next_line; /* skip current line */
 				}
@@ -7295,7 +7295,7 @@
 						var_end++;
 						braces = 0;
 					} else {
-						Alert("parsing [%s:%d] : Variable expansion: Mismatched braces.\n", file, linenum);
+						ha_alert("parsing [%s:%d] : Variable expansion: Mismatched braces.\n", file, linenum);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto next_line; /* skip current line */
 					}
@@ -7309,7 +7309,7 @@
 
 					newline = realloc(thisline, newlinesize * sizeof(*thisline));
 					if (newline == NULL) {
-						Alert("parsing [%s:%d] : Variable expansion: Not enough memory.\n", file, linenum);
+						ha_alert("parsing [%s:%d] : Variable expansion: Not enough memory.\n", file, linenum);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto next_line; /* slip current line */
 					}
@@ -7346,12 +7346,12 @@
 		}
 
 		if (dquote) {
-			Alert("parsing [%s:%d] : Mismatched double quotes.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : Mismatched double quotes.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 
 		if (squote) {
-			Alert("parsing [%s:%d] : Mismatched simple quotes.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : Mismatched simple quotes.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 
@@ -7368,8 +7368,8 @@
 				line++;
 			*line = '\0';
 
-			Alert("parsing [%s:%d]: line too long, truncating at word %d, position %ld: <%s>.\n",
-			      file, linenum, arg + 1, (long)(args[arg] - thisline + 1), args[arg]);
+			ha_alert("parsing [%s:%d]: line too long, truncating at word %d, position %ld: <%s>.\n",
+				 file, linenum, arg + 1, (long)(args[arg] - thisline + 1), args[arg]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			args[arg] = line;
 		}
@@ -7400,7 +7400,7 @@
 
 		if (kwm != KWM_STD && strcmp(args[0], "option") != 0 && 	\
 		     strcmp(args[0], "log") != 0) {
-			Alert("parsing [%s:%d]: negation/default currently supported only for options and log.\n", file, linenum);
+			ha_alert("parsing [%s:%d]: negation/default currently supported only for options and log.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 
@@ -7414,7 +7414,7 @@
 		}
 
 		if (!cs) {
-			Alert("parsing [%s:%d]: unknown keyword '%s' out of section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: unknown keyword '%s' out of section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 		} else {
 			/* else it's a section keyword */
@@ -7595,11 +7595,11 @@
 
 			curproxy->bind_proc &= nbits(global.nbproc);
 			if (!curproxy->bind_proc && nbproc == 1) {
-				Warning("Proxy '%s': the process specified on the 'bind-process' directive refers to a process number that is higher than global.nbproc. The proxy has been forced to run on process 1 only.\n", curproxy->id);
+				ha_warning("Proxy '%s': the process specified on the 'bind-process' directive refers to a process number that is higher than global.nbproc. The proxy has been forced to run on process 1 only.\n", curproxy->id);
 				curproxy->bind_proc = 1;
 			}
 			else if (!curproxy->bind_proc && nbproc > 1) {
-				Warning("Proxy '%s': all processes specified on the 'bind-process' directive refer to numbers that are all higher than global.nbproc. The directive was ignored and the proxy will run on all processes.\n", curproxy->id);
+				ha_warning("Proxy '%s': all processes specified on the 'bind-process' directive refer to numbers that are all higher than global.nbproc. The directive was ignored and the proxy will run on all processes.\n", curproxy->id);
 				curproxy->bind_proc = 0;
 			}
 		}
@@ -7616,16 +7616,16 @@
 #ifdef OPENSSL_NPN_NEGOTIATED
 				/* check NPN */
 				if (bind_conf->ssl_conf.npn_str && strcmp(bind_conf->ssl_conf.npn_str, "\002h2") == 0) {
-					Alert("config : HTTP frontend '%s' enables HTTP/2 via NPN at [%s:%d], so global.tune.bufsize must be at least 16384 bytes (%d now).\n",
-					      curproxy->id, bind_conf->file, bind_conf->line, global.tune.bufsize);
+					ha_alert("config : HTTP frontend '%s' enables HTTP/2 via NPN at [%s:%d], so global.tune.bufsize must be at least 16384 bytes (%d now).\n",
+						 curproxy->id, bind_conf->file, bind_conf->line, global.tune.bufsize);
 					cfgerr++;
 				}
 #endif
 #ifdef TLSEXT_TYPE_application_layer_protocol_negotiation
 				/* check ALPN */
 				if (bind_conf->ssl_conf.alpn_str && strcmp(bind_conf->ssl_conf.alpn_str, "\002h2") == 0) {
-					Alert("config : HTTP frontend '%s' enables HTTP/2 via ALPN at [%s:%d], so global.tune.bufsize must be at least 16384 bytes (%d now).\n",
-					      curproxy->id, bind_conf->file, bind_conf->line, global.tune.bufsize);
+					ha_alert("config : HTTP frontend '%s' enables HTTP/2 via ALPN at [%s:%d], so global.tune.bufsize must be at least 16384 bytes (%d now).\n",
+						 curproxy->id, bind_conf->file, bind_conf->line, global.tune.bufsize);
 					cfgerr++;
 				}
 #endif
@@ -7644,13 +7644,13 @@
 			bind_conf->bind_proc &= mask;
 
 			if (!bind_conf->bind_proc && nbproc == 1) {
-				Warning("Proxy '%s': the process number specified on the 'process' directive of 'bind %s' at [%s:%d] refers to a process not covered by the proxy. This has been fixed by forcing it to run on the proxy's first process only.\n",
-					curproxy->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+				ha_warning("Proxy '%s': the process number specified on the 'process' directive of 'bind %s' at [%s:%d] refers to a process not covered by the proxy. This has been fixed by forcing it to run on the proxy's first process only.\n",
+					   curproxy->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 				bind_conf->bind_proc = mask & ~(mask - 1);
 			}
 			else if (!bind_conf->bind_proc && nbproc > 1) {
-				Warning("Proxy '%s': the process range specified on the 'process' directive of 'bind %s' at [%s:%d] only refers to processes not covered by the proxy. The directive was ignored so that all of the proxy's processes are used.\n",
-					curproxy->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+				ha_warning("Proxy '%s': the process range specified on the 'process' directive of 'bind %s' at [%s:%d] only refers to processes not covered by the proxy. The directive was ignored so that all of the proxy's processes are used.\n",
+					   curproxy->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 				bind_conf->bind_proc = 0;
 			}
 		}
@@ -7659,14 +7659,14 @@
 		case PR_MODE_HEALTH:
 			cfgerr += proxy_cfg_ensure_no_http(curproxy);
 			if (!(curproxy->cap & PR_CAP_FE)) {
-				Alert("config : %s '%s' cannot be in health mode as it has no frontend capability.\n",
-				      proxy_type_str(curproxy), curproxy->id);
+				ha_alert("config : %s '%s' cannot be in health mode as it has no frontend capability.\n",
+					 proxy_type_str(curproxy), curproxy->id);
 				cfgerr++;
 			}
 
 			if (curproxy->srv != NULL)
-				Warning("config : servers will be ignored for %s '%s'.\n",
-					proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : servers will be ignored for %s '%s'.\n",
+					   proxy_type_str(curproxy), curproxy->id);
 			break;
 
 		case PR_MODE_TCP:
@@ -7679,28 +7679,28 @@
 		}
 
 		if ((curproxy->cap & PR_CAP_FE) && LIST_ISEMPTY(&curproxy->conf.listeners)) {
-			Warning("config : %s '%s' has no 'bind' directive. Please declare it as a backend if this was intended.\n",
-			        proxy_type_str(curproxy), curproxy->id);
+			ha_warning("config : %s '%s' has no 'bind' directive. Please declare it as a backend if this was intended.\n",
+				   proxy_type_str(curproxy), curproxy->id);
 			err_code |= ERR_WARN;
 		}
 
 		if ((curproxy->cap & PR_CAP_BE) && (curproxy->mode != PR_MODE_HEALTH)) {
 			if (curproxy->lbprm.algo & BE_LB_KIND) {
 				if (curproxy->options & PR_O_TRANSP) {
-					Alert("config : %s '%s' cannot use both transparent and balance mode.\n",
-					      proxy_type_str(curproxy), curproxy->id);
+					ha_alert("config : %s '%s' cannot use both transparent and balance mode.\n",
+						 proxy_type_str(curproxy), curproxy->id);
 					cfgerr++;
 				}
 #ifdef WE_DONT_SUPPORT_SERVERLESS_LISTENERS
 				else if (curproxy->srv == NULL) {
-					Alert("config : %s '%s' needs at least 1 server in balance mode.\n",
-					      proxy_type_str(curproxy), curproxy->id);
+					ha_alert("config : %s '%s' needs at least 1 server in balance mode.\n",
+						 proxy_type_str(curproxy), curproxy->id);
 					cfgerr++;
 				}
 #endif
 				else if (curproxy->options & PR_O_DISPATCH) {
-					Warning("config : dispatch address of %s '%s' will be ignored in balance mode.\n",
-						proxy_type_str(curproxy), curproxy->id);
+					ha_warning("config : dispatch address of %s '%s' will be ignored in balance mode.\n",
+						   proxy_type_str(curproxy), curproxy->id);
 					err_code |= ERR_WARN;
 				}
 			}
@@ -7723,14 +7723,14 @@
 
 		if ((curproxy->options2 & PR_O2_CHK_ANY) != PR_O2_HTTP_CHK) {
 			if (curproxy->options & PR_O_DISABLE404) {
-				Warning("config : '%s' will be ignored for %s '%s' (requires 'option httpchk').\n",
-					"disable-on-404", proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : '%s' will be ignored for %s '%s' (requires 'option httpchk').\n",
+					   "disable-on-404", proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 				curproxy->options &= ~PR_O_DISABLE404;
 			}
 			if (curproxy->options2 & PR_O2_CHK_SNDST) {
-				Warning("config : '%s' will be ignored for %s '%s' (requires 'option httpchk').\n",
-					"send-state", proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : '%s' will be ignored for %s '%s' (requires 'option httpchk').\n",
+					   "send-state", proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 				curproxy->options &= ~PR_O2_CHK_SNDST;
 			}
@@ -7738,25 +7738,25 @@
 
 		if ((curproxy->options2 & PR_O2_CHK_ANY) == PR_O2_EXT_CHK) {
 			if (!global.external_check) {
-				Alert("Proxy '%s' : '%s' unable to find required 'global.external-check'.\n",
-				      curproxy->id, "option external-check");
+				ha_alert("Proxy '%s' : '%s' unable to find required 'global.external-check'.\n",
+					 curproxy->id, "option external-check");
 				cfgerr++;
 			}
 			if (!curproxy->check_command) {
-				Alert("Proxy '%s' : '%s' unable to find required 'external-check command'.\n",
-				      curproxy->id, "option external-check");
+				ha_alert("Proxy '%s' : '%s' unable to find required 'external-check command'.\n",
+					 curproxy->id, "option external-check");
 				cfgerr++;
 			}
 		}
 
 		if (curproxy->email_alert.set) {
 		    if (!(curproxy->email_alert.mailers.name && curproxy->email_alert.from && curproxy->email_alert.to)) {
-			    Warning("config : 'email-alert' will be ignored for %s '%s' (the presence any of "
-				    "'email-alert from', 'email-alert level' 'email-alert mailers', "
-				    "'email-alert myhostname', or 'email-alert to' "
-				    "requires each of 'email-alert from', 'email-alert mailers' and 'email-alert to' "
-				    "to be present).\n",
-				    proxy_type_str(curproxy), curproxy->id);
+			    ha_warning("config : 'email-alert' will be ignored for %s '%s' (the presence any of "
+				       "'email-alert from', 'email-alert level' 'email-alert mailers', "
+				       "'email-alert myhostname', or 'email-alert to' "
+				       "requires each of 'email-alert from', 'email-alert mailers' and 'email-alert to' "
+				       "to be present).\n",
+				       proxy_type_str(curproxy), curproxy->id);
 			    err_code |= ERR_WARN;
 			    free_email_alert(curproxy);
 		    }
@@ -7767,14 +7767,14 @@
 		if (curproxy->check_command) {
 			int clear = 0;
 			if ((curproxy->options2 & PR_O2_CHK_ANY) != PR_O2_EXT_CHK) {
-				Warning("config : '%s' will be ignored for %s '%s' (requires 'option external-check').\n",
-					"external-check command", proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : '%s' will be ignored for %s '%s' (requires 'option external-check').\n",
+					   "external-check command", proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 				clear = 1;
 			}
 			if (curproxy->check_command[0] != '/' && !curproxy->check_path) {
-				Alert("Proxy '%s': '%s' does not have a leading '/' and 'external-check path' is not set.\n",
-				      curproxy->id, "external-check command");
+				ha_alert("Proxy '%s': '%s' does not have a leading '/' and 'external-check path' is not set.\n",
+					 curproxy->id, "external-check command");
 				cfgerr++;
 			}
 			if (clear) {
@@ -7785,8 +7785,8 @@
 
 		if (curproxy->check_path) {
 			if ((curproxy->options2 & PR_O2_CHK_ANY) != PR_O2_EXT_CHK) {
-				Warning("config : '%s' will be ignored for %s '%s' (requires 'option external-check').\n",
-					"external-check path", proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : '%s' will be ignored for %s '%s' (requires 'option external-check').\n",
+					   "external-check path", proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 				free(curproxy->check_path);
 				curproxy->check_path = NULL;
@@ -7799,21 +7799,21 @@
 
 			target = proxy_be_by_name(curproxy->defbe.name);
 			if (!target) {
-				Alert("Proxy '%s': unable to find required default_backend: '%s'.\n",
-					curproxy->id, curproxy->defbe.name);
+				ha_alert("Proxy '%s': unable to find required default_backend: '%s'.\n",
+					 curproxy->id, curproxy->defbe.name);
 				cfgerr++;
 			} else if (target == curproxy) {
-				Alert("Proxy '%s': loop detected for default_backend: '%s'.\n",
-					curproxy->id, curproxy->defbe.name);
+				ha_alert("Proxy '%s': loop detected for default_backend: '%s'.\n",
+					 curproxy->id, curproxy->defbe.name);
 				cfgerr++;
 			} else if (target->mode != curproxy->mode &&
 				   !(curproxy->mode == PR_MODE_TCP && target->mode == PR_MODE_HTTP)) {
 
-				Alert("%s %s '%s' (%s:%d) tries to use incompatible %s %s '%s' (%s:%d) as its default backend (see 'mode').\n",
-				      proxy_mode_str(curproxy->mode), proxy_type_str(curproxy), curproxy->id,
-				      curproxy->conf.file, curproxy->conf.line,
-				      proxy_mode_str(target->mode), proxy_type_str(target), target->id,
-				      target->conf.file, target->conf.line);
+				ha_alert("%s %s '%s' (%s:%d) tries to use incompatible %s %s '%s' (%s:%d) as its default backend (see 'mode').\n",
+					 proxy_mode_str(curproxy->mode), proxy_type_str(curproxy), curproxy->id,
+					 curproxy->conf.file, curproxy->conf.line,
+					 proxy_mode_str(target->mode), proxy_type_str(target), target->id,
+					 target->conf.file, target->conf.line);
 				cfgerr++;
 			} else {
 				free(curproxy->defbe.name);
@@ -7822,8 +7822,8 @@
 				target->tot_fe_maxconn += curproxy->maxconn;
 				/* Emit a warning if this proxy also has some servers */
 				if (curproxy->srv) {
-					Warning("In proxy '%s', the 'default_backend' rule always has precedence over the servers, which will never be used.\n",
-						curproxy->id);
+					ha_warning("In proxy '%s', the 'default_backend' rule always has precedence over the servers, which will never be used.\n",
+						   curproxy->id);
 					err_code |= ERR_WARN;
 				}
 			}
@@ -7855,8 +7855,8 @@
 			curproxy->conf.args.line = rule->line;
 			err = NULL;
 			if (!parse_logformat_string(pxname, curproxy, &rule->be.expr, 0, SMP_VAL_FE_HRQ_HDR, &err)) {
-				Alert("Parsing [%s:%d]: failed to parse use_backend rule '%s' : %s.\n",
-				      rule->file, rule->line, pxname, err);
+				ha_alert("Parsing [%s:%d]: failed to parse use_backend rule '%s' : %s.\n",
+					 rule->file, rule->line, pxname, err);
 				free(err);
 				cfgerr++;
 				continue;
@@ -7879,21 +7879,21 @@
 
 			target = proxy_be_by_name(rule->be.name);
 			if (!target) {
-				Alert("Proxy '%s': unable to find required use_backend: '%s'.\n",
-					curproxy->id, rule->be.name);
+				ha_alert("Proxy '%s': unable to find required use_backend: '%s'.\n",
+					 curproxy->id, rule->be.name);
 				cfgerr++;
 			} else if (target == curproxy) {
-				Alert("Proxy '%s': loop detected for use_backend: '%s'.\n",
-					curproxy->id, rule->be.name);
+				ha_alert("Proxy '%s': loop detected for use_backend: '%s'.\n",
+					 curproxy->id, rule->be.name);
 				cfgerr++;
 			} else if (target->mode != curproxy->mode &&
 				   !(curproxy->mode == PR_MODE_TCP && target->mode == PR_MODE_HTTP)) {
 
-				Alert("%s %s '%s' (%s:%d) tries to use incompatible %s %s '%s' (%s:%d) in a 'use_backend' rule (see 'mode').\n",
-				      proxy_mode_str(curproxy->mode), proxy_type_str(curproxy), curproxy->id,
-				      curproxy->conf.file, curproxy->conf.line,
-				      proxy_mode_str(target->mode), proxy_type_str(target), target->id,
-				      target->conf.file, target->conf.line);
+				ha_alert("%s %s '%s' (%s:%d) tries to use incompatible %s %s '%s' (%s:%d) in a 'use_backend' rule (see 'mode').\n",
+					 proxy_mode_str(curproxy->mode), proxy_type_str(curproxy), curproxy->id,
+					 curproxy->conf.file, curproxy->conf.line,
+					 proxy_mode_str(target->mode), proxy_type_str(target), target->id,
+					 target->conf.file, target->conf.line);
 				cfgerr++;
 			} else {
 				free((void *)rule->be.name);
@@ -7923,8 +7923,8 @@
 			struct server *target = findserver(curproxy, srule->srv.name);
 
 			if (!target) {
-				Alert("config : %s '%s' : unable to find server '%s' referenced in a 'use-server' rule.\n",
-				      proxy_type_str(curproxy), curproxy->id, srule->srv.name);
+				ha_alert("config : %s '%s' : unable to find server '%s' referenced in a 'use-server' rule.\n",
+					 proxy_type_str(curproxy), curproxy->id, srule->srv.name);
 				cfgerr++;
 				continue;
 			}
@@ -7946,18 +7946,18 @@
 				target = curproxy;
 
 			if (!target) {
-				Alert("Proxy '%s': unable to find stick-table '%s'.\n",
-				      curproxy->id, mrule->table.name);
+				ha_alert("Proxy '%s': unable to find stick-table '%s'.\n",
+					 curproxy->id, mrule->table.name);
 				cfgerr++;
 			}
 			else if (target->table.size == 0) {
-				Alert("Proxy '%s': stick-table '%s' used but not configured.\n",
-				      curproxy->id, mrule->table.name ? mrule->table.name : curproxy->id);
+				ha_alert("Proxy '%s': stick-table '%s' used but not configured.\n",
+					 curproxy->id, mrule->table.name ? mrule->table.name : curproxy->id);
 				cfgerr++;
 			}
 			else if (!stktable_compatible_sample(mrule->expr,  target->table.type)) {
-				Alert("Proxy '%s': type of fetch not usable with type of stick-table '%s'.\n",
-				      curproxy->id, mrule->table.name ? mrule->table.name : curproxy->id);
+				ha_alert("Proxy '%s': type of fetch not usable with type of stick-table '%s'.\n",
+					 curproxy->id, mrule->table.name ? mrule->table.name : curproxy->id);
 				cfgerr++;
 			}
 			else {
@@ -7979,18 +7979,18 @@
 				target = curproxy;
 
 			if (!target) {
-				Alert("Proxy '%s': unable to find store table '%s'.\n",
-				      curproxy->id, mrule->table.name);
+				ha_alert("Proxy '%s': unable to find store table '%s'.\n",
+					 curproxy->id, mrule->table.name);
 				cfgerr++;
 			}
 			else if (target->table.size == 0) {
-				Alert("Proxy '%s': stick-table '%s' used but not configured.\n",
-				      curproxy->id, mrule->table.name ? mrule->table.name : curproxy->id);
+				ha_alert("Proxy '%s': stick-table '%s' used but not configured.\n",
+					 curproxy->id, mrule->table.name ? mrule->table.name : curproxy->id);
 				cfgerr++;
 			}
 			else if (!stktable_compatible_sample(mrule->expr, target->table.type)) {
-				Alert("Proxy '%s': type of fetch not usable with type of stick-table '%s'.\n",
-				      curproxy->id, mrule->table.name ? mrule->table.name : curproxy->id);
+				ha_alert("Proxy '%s': type of fetch not usable with type of stick-table '%s'.\n",
+					 curproxy->id, mrule->table.name ? mrule->table.name : curproxy->id);
 				cfgerr++;
 			}
 			else {
@@ -8004,7 +8004,7 @@
 		list_for_each_entry(arule, &curproxy->tcp_req.l4_rules, list) {
 			err = NULL;
 			if (arule->check_ptr && !arule->check_ptr(arule, curproxy, &err)) {
-				Alert("Proxy '%s': %s.\n", curproxy->id, err);
+				ha_alert("Proxy '%s': %s.\n", curproxy->id, err);
 				free(err);
 				cfgerr++;
 			}
@@ -8014,7 +8014,7 @@
 		list_for_each_entry(arule, &curproxy->tcp_req.l5_rules, list) {
 			err = NULL;
 			if (arule->check_ptr && !arule->check_ptr(arule, curproxy, &err)) {
-				Alert("Proxy '%s': %s.\n", curproxy->id, err);
+				ha_alert("Proxy '%s': %s.\n", curproxy->id, err);
 				free(err);
 				cfgerr++;
 			}
@@ -8024,7 +8024,7 @@
 		list_for_each_entry(arule, &curproxy->tcp_req.inspect_rules, list) {
 			err = NULL;
 			if (arule->check_ptr && !arule->check_ptr(arule, curproxy, &err)) {
-				Alert("Proxy '%s': %s.\n", curproxy->id, err);
+				ha_alert("Proxy '%s': %s.\n", curproxy->id, err);
 				free(err);
 				cfgerr++;
 			}
@@ -8034,7 +8034,7 @@
 		list_for_each_entry(arule, &curproxy->http_req_rules, list) {
 			err = NULL;
 			if (arule->check_ptr && !arule->check_ptr(arule, curproxy, &err)) {
-				Alert("Proxy '%s': %s.\n", curproxy->id, err);
+				ha_alert("Proxy '%s': %s.\n", curproxy->id, err);
 				free(err);
 				cfgerr++;
 			}
@@ -8044,7 +8044,7 @@
 		list_for_each_entry(arule, &curproxy->http_res_rules, list) {
 			err = NULL;
 			if (arule->check_ptr && !arule->check_ptr(arule, curproxy, &err)) {
-				Alert("Proxy '%s': %s.\n", curproxy->id, err);
+				ha_alert("Proxy '%s': %s.\n", curproxy->id, err);
 				free(err);
 				cfgerr++;
 			}
@@ -8072,8 +8072,8 @@
 			}
 
 			if (!curpeers) {
-				Alert("Proxy '%s': unable to find sync peers '%s'.\n",
-				      curproxy->id, curproxy->table.peers.name);
+				ha_alert("Proxy '%s': unable to find sync peers '%s'.\n",
+					 curproxy->id, curproxy->table.peers.name);
 				free((void *)curproxy->table.peers.name);
 				curproxy->table.peers.p = NULL;
 				cfgerr++;
@@ -8083,8 +8083,8 @@
 				curproxy->table.peers.p = NULL;
 			}
 			else if (!curpeers->peers_fe) {
-				Alert("Proxy '%s': unable to find local peer '%s' in peers section '%s'.\n",
-				      curproxy->id, localpeer, curpeers->id);
+				ha_alert("Proxy '%s': unable to find local peer '%s' in peers section '%s'.\n",
+					 curproxy->id, localpeer, curpeers->id);
 				curproxy->table.peers.p = NULL;
 				cfgerr++;
 			}
@@ -8099,15 +8099,15 @@
 					break;
 			}
 			if (!curmailers) {
-				Alert("Proxy '%s': unable to find mailers '%s'.\n",
-				      curproxy->id, curproxy->email_alert.mailers.name);
+				ha_alert("Proxy '%s': unable to find mailers '%s'.\n",
+					 curproxy->id, curproxy->email_alert.mailers.name);
 				free_email_alert(curproxy);
 				cfgerr++;
 			}
 			else {
 				err = NULL;
 				if (init_email_alert(curmailers, curproxy, &err)) {
-					Alert("Proxy '%s': %s.\n", curproxy->id, err);
+					ha_alert("Proxy '%s': %s.\n", curproxy->id, err);
 					free(err);
 					cfgerr++;
 				}
@@ -8117,8 +8117,8 @@
 		if (curproxy->uri_auth && !(curproxy->uri_auth->flags & ST_CONVDONE) &&
 		    !LIST_ISEMPTY(&curproxy->uri_auth->http_req_rules) &&
 		    (curproxy->uri_auth->userlist || curproxy->uri_auth->auth_realm )) {
-			Alert("%s '%s': stats 'auth'/'realm' and 'http-request' can't be used at the same time.\n",
-			      "proxy", curproxy->id);
+			ha_alert("%s '%s': stats 'auth'/'realm' and 'http-request' can't be used at the same time.\n",
+				 "proxy", curproxy->id);
 			cfgerr++;
 			goto out_uri_auth_compat;
 		}
@@ -8196,8 +8196,8 @@
 			err = NULL;
 			if (!parse_logformat_string(curproxy->conf.logformat_string, curproxy, &curproxy->logformat, LOG_OPT_MANDATORY,
 			                            SMP_VAL_FE_LOG_END, &err)) {
-				Alert("Parsing [%s:%d]: failed to parse log-format : %s.\n",
-				      curproxy->conf.lfs_file, curproxy->conf.lfs_line, err);
+				ha_alert("Parsing [%s:%d]: failed to parse log-format : %s.\n",
+					 curproxy->conf.lfs_file, curproxy->conf.lfs_line, err);
 				free(err);
 				cfgerr++;
 			}
@@ -8212,13 +8212,13 @@
 			err = NULL;
 			if (!parse_logformat_string(curproxy->conf.logformat_sd_string, curproxy, &curproxy->logformat_sd, LOG_OPT_MANDATORY,
 			                            SMP_VAL_FE_LOG_END, &err)) {
-				Alert("Parsing [%s:%d]: failed to parse log-format-sd : %s.\n",
-				      curproxy->conf.lfs_file, curproxy->conf.lfs_line, err);
+				ha_alert("Parsing [%s:%d]: failed to parse log-format-sd : %s.\n",
+					 curproxy->conf.lfs_file, curproxy->conf.lfs_line, err);
 				free(err);
 				cfgerr++;
 			} else if (!add_to_logformat_list(NULL, NULL, LF_SEPARATOR, &curproxy->logformat_sd, &err)) {
-				Alert("Parsing [%s:%d]: failed to parse log-format-sd : %s.\n",
-				      curproxy->conf.lfs_file, curproxy->conf.lfs_line, err);
+				ha_alert("Parsing [%s:%d]: failed to parse log-format-sd : %s.\n",
+					 curproxy->conf.lfs_file, curproxy->conf.lfs_line, err);
 				free(err);
 				cfgerr++;
 			}
@@ -8233,8 +8233,8 @@
 			err = NULL;
 			if (!parse_logformat_string(curproxy->conf.uniqueid_format_string, curproxy, &curproxy->format_unique_id, LOG_OPT_HTTP,
 			                            (curproxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR, &err)) {
-				Alert("Parsing [%s:%d]: failed to parse unique-id : %s.\n",
-				      curproxy->conf.uif_file, curproxy->conf.uif_line, err);
+				ha_alert("Parsing [%s:%d]: failed to parse unique-id : %s.\n",
+					 curproxy->conf.uif_file, curproxy->conf.uif_line, err);
 				free(err);
 				cfgerr++;
 			}
@@ -8254,11 +8254,11 @@
 		     ((curproxy->cap & PR_CAP_BE) && (curproxy->srv) &&
 		      (!curproxy->timeout.connect ||
 		       (!curproxy->timeout.server && (curproxy->mode == PR_MODE_HTTP || !curproxy->timeout.tunnel)))))) {
-			Warning("config : missing timeouts for %s '%s'.\n"
-				"   | While not properly invalid, you will certainly encounter various problems\n"
-				"   | with such a configuration. To fix this, please ensure that all following\n"
-				"   | timeouts are set to a non-zero value: 'client', 'connect', 'server'.\n",
-				proxy_type_str(curproxy), curproxy->id);
+			ha_warning("config : missing timeouts for %s '%s'.\n"
+				   "   | While not properly invalid, you will certainly encounter various problems\n"
+				   "   | with such a configuration. To fix this, please ensure that all following\n"
+				   "   | timeouts are set to a non-zero value: 'client', 'connect', 'server'.\n",
+				   proxy_type_str(curproxy), curproxy->id);
 			err_code |= ERR_WARN;
 		}
 
@@ -8302,15 +8302,15 @@
 
 		if (!LIST_ISEMPTY(&curproxy->tcpcheck_rules) &&
 		    (curproxy->options2 & PR_O2_CHK_ANY) != PR_O2_TCPCHK_CHK) {
-			Warning("config : %s '%s' uses tcp-check rules without 'option tcp-check', so the rules are ignored.\n",
-				proxy_type_str(curproxy), curproxy->id);
+			ha_warning("config : %s '%s' uses tcp-check rules without 'option tcp-check', so the rules are ignored.\n",
+				   proxy_type_str(curproxy), curproxy->id);
 			err_code |= ERR_WARN;
 		}
 
 		/* ensure that cookie capture length is not too large */
 		if (curproxy->capture_len >= global.tune.cookie_len) {
-			Warning("config : truncating capture length to %d bytes for %s '%s'.\n",
-				global.tune.cookie_len - 1, proxy_type_str(curproxy), curproxy->id);
+			ha_warning("config : truncating capture length to %d bytes for %s '%s'.\n",
+				   global.tune.cookie_len - 1, proxy_type_str(curproxy), curproxy->id);
 			err_code |= ERR_WARN;
 			curproxy->capture_len = global.tune.cookie_len - 1;
 		}
@@ -8334,8 +8334,8 @@
 				break;
 			case PR_SRV_STATE_FILE_GLOBAL:
 				if (!global.server_state_file) {
-					Warning("config : backend '%s' configured to load server state file from global section 'server-state-file' directive. Unfortunately, 'server-state-file' is not set!\n",
-						curproxy->id);
+					ha_warning("config : backend '%s' configured to load server state file from global section 'server-state-file' directive. Unfortunately, 'server-state-file' is not set!\n",
+						   curproxy->id);
 					err_code |= ERR_WARN;
 				}
 				break;
@@ -8369,10 +8369,10 @@
 
 			for (other_srv = curproxy->srv; other_srv && other_srv != newsrv; other_srv = other_srv->next) {
 				if (!other_srv->puid && strcmp(other_srv->id, newsrv->id) == 0) {
-					Warning("parsing [%s:%d] : %s '%s', another server named '%s' was defined without an explicit ID at line %d, this is not recommended.\n",
-						newsrv->conf.file, newsrv->conf.line,
-						proxy_type_str(curproxy), curproxy->id,
-						newsrv->id, other_srv->conf.line);
+					ha_warning("parsing [%s:%d] : %s '%s', another server named '%s' was defined without an explicit ID at line %d, this is not recommended.\n",
+						   newsrv->conf.file, newsrv->conf.line,
+						   proxy_type_str(curproxy), curproxy->id,
+						   newsrv->id, other_srv->conf.line);
 					break;
 				}
 			}
@@ -8442,9 +8442,9 @@
 				if (pname) {
 					px = proxy_be_by_name(pname);
 					if (!px) {
-						Alert("config : %s '%s', server '%s': unable to find required proxy '%s' for tracking.\n",
-							proxy_type_str(curproxy), curproxy->id,
-							newsrv->id, pname);
+						ha_alert("config : %s '%s', server '%s': unable to find required proxy '%s' for tracking.\n",
+							 proxy_type_str(curproxy), curproxy->id,
+							 newsrv->id, pname);
 						cfgerr++;
 						goto next_srv;
 					}
@@ -8453,9 +8453,9 @@
 
 				srv = findserver(px, sname);
 				if (!srv) {
-					Alert("config : %s '%s', server '%s': unable to find required server '%s' for tracking.\n",
-						proxy_type_str(curproxy), curproxy->id,
-						newsrv->id, sname);
+					ha_alert("config : %s '%s', server '%s': unable to find required server '%s' for tracking.\n",
+						 proxy_type_str(curproxy), curproxy->id,
+						 newsrv->id, sname);
 					cfgerr++;
 					goto next_srv;
 				}
@@ -8463,10 +8463,10 @@
 				if (!(srv->check.state & CHK_ST_CONFIGURED) &&
 				    !(srv->agent.state & CHK_ST_CONFIGURED) &&
 				    !srv->track && !srv->trackit) {
-					Alert("config : %s '%s', server '%s': unable to use %s/%s for "
-					      "tracking as it does not have any check nor agent enabled.\n",
-					      proxy_type_str(curproxy), curproxy->id,
-					      newsrv->id, px->id, srv->id);
+					ha_alert("config : %s '%s', server '%s': unable to use %s/%s for "
+						 "tracking as it does not have any check nor agent enabled.\n",
+						 proxy_type_str(curproxy), curproxy->id,
+						 newsrv->id, px->id, srv->id);
 					cfgerr++;
 					goto next_srv;
 				}
@@ -8474,21 +8474,21 @@
 				for (loop = srv->track; loop && loop != newsrv; loop = loop->track);
 
 				if (newsrv == srv || loop) {
-					Alert("config : %s '%s', server '%s': unable to track %s/%s as it "
-					      "belongs to a tracking chain looping back to %s/%s.\n",
-					      proxy_type_str(curproxy), curproxy->id,
-					      newsrv->id, px->id, srv->id, px->id,
-					      newsrv == srv ? srv->id : loop->id);
+					ha_alert("config : %s '%s', server '%s': unable to track %s/%s as it "
+						 "belongs to a tracking chain looping back to %s/%s.\n",
+						 proxy_type_str(curproxy), curproxy->id,
+						 newsrv->id, px->id, srv->id, px->id,
+						 newsrv == srv ? srv->id : loop->id);
 					cfgerr++;
 					goto next_srv;
 				}
 
 				if (curproxy != px &&
 					(curproxy->options & PR_O_DISABLE404) != (px->options & PR_O_DISABLE404)) {
-					Alert("config : %s '%s', server '%s': unable to use %s/%s for"
-						"tracking: disable-on-404 option inconsistency.\n",
-						proxy_type_str(curproxy), curproxy->id,
-						newsrv->id, px->id, srv->id);
+					ha_alert("config : %s '%s', server '%s': unable to use %s/%s for"
+						 "tracking: disable-on-404 option inconsistency.\n",
+						 proxy_type_str(curproxy), curproxy->id,
+						 newsrv->id, px->id, srv->id);
 					cfgerr++;
 					goto next_srv;
 				}
@@ -8564,8 +8564,8 @@
 		if ((curproxy->mode == PR_MODE_TCP || curproxy->mode == PR_MODE_HTTP) &&
 		    (curproxy->cap & PR_CAP_FE) && LIST_ISEMPTY(&curproxy->logsrvs) &&
 		    (!LIST_ISEMPTY(&curproxy->logformat) || !LIST_ISEMPTY(&curproxy->logformat_sd))) {
-			Warning("config : log format ignored for %s '%s' since it has no log address.\n",
-				proxy_type_str(curproxy), curproxy->id);
+			ha_warning("config : log format ignored for %s '%s' since it has no log address.\n",
+				   proxy_type_str(curproxy), curproxy->id);
 			err_code |= ERR_WARN;
 		}
 
@@ -8573,52 +8573,52 @@
 			int optnum;
 
 			if (curproxy->uri_auth) {
-				Warning("config : 'stats' statement ignored for %s '%s' as it requires HTTP mode.\n",
-					proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : 'stats' statement ignored for %s '%s' as it requires HTTP mode.\n",
+					   proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 				curproxy->uri_auth = NULL;
 			}
 
 			if (curproxy->capture_name) {
-				Warning("config : 'capture' statement ignored for %s '%s' as it requires HTTP mode.\n",
-					proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : 'capture' statement ignored for %s '%s' as it requires HTTP mode.\n",
+					   proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 			}
 
 			if (!LIST_ISEMPTY(&curproxy->http_req_rules)) {
-				Warning("config : 'http-request' rules ignored for %s '%s' as they require HTTP mode.\n",
-					proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : 'http-request' rules ignored for %s '%s' as they require HTTP mode.\n",
+					   proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 			}
 
 			if (!LIST_ISEMPTY(&curproxy->http_res_rules)) {
-				Warning("config : 'http-response' rules ignored for %s '%s' as they require HTTP mode.\n",
-					proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : 'http-response' rules ignored for %s '%s' as they require HTTP mode.\n",
+					   proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 			}
 
 			if (!LIST_ISEMPTY(&curproxy->block_rules)) {
-				Warning("config : 'block' rules ignored for %s '%s' as they require HTTP mode.\n",
-					proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : 'block' rules ignored for %s '%s' as they require HTTP mode.\n",
+					   proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 			}
 
 			if (!LIST_ISEMPTY(&curproxy->redirect_rules)) {
-				Warning("config : 'redirect' rules ignored for %s '%s' as they require HTTP mode.\n",
-					proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : 'redirect' rules ignored for %s '%s' as they require HTTP mode.\n",
+					   proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 			}
 
 			if (curproxy->options & (PR_O_FWDFOR | PR_O_FF_ALWAYS)) {
-				Warning("config : 'option %s' ignored for %s '%s' as it requires HTTP mode.\n",
-					"forwardfor", proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : 'option %s' ignored for %s '%s' as it requires HTTP mode.\n",
+					   "forwardfor", proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 				curproxy->options &= ~(PR_O_FWDFOR | PR_O_FF_ALWAYS);
 			}
 
 			if (curproxy->options & PR_O_ORGTO) {
-				Warning("config : 'option %s' ignored for %s '%s' as it requires HTTP mode.\n",
-					"originalto", proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : 'option %s' ignored for %s '%s' as it requires HTTP mode.\n",
+					   "originalto", proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 				curproxy->options &= ~PR_O_ORGTO;
 			}
@@ -8627,8 +8627,8 @@
 				if (cfg_opts[optnum].mode == PR_MODE_HTTP &&
 				    (curproxy->cap & cfg_opts[optnum].cap) &&
 				    (curproxy->options & cfg_opts[optnum].val)) {
-					Warning("config : 'option %s' ignored for %s '%s' as it requires HTTP mode.\n",
-						cfg_opts[optnum].name, proxy_type_str(curproxy), curproxy->id);
+					ha_warning("config : 'option %s' ignored for %s '%s' as it requires HTTP mode.\n",
+						   cfg_opts[optnum].name, proxy_type_str(curproxy), curproxy->id);
 					err_code |= ERR_WARN;
 					curproxy->options &= ~cfg_opts[optnum].val;
 				}
@@ -8638,8 +8638,8 @@
 				if (cfg_opts2[optnum].mode == PR_MODE_HTTP &&
 				    (curproxy->cap & cfg_opts2[optnum].cap) &&
 				    (curproxy->options2 & cfg_opts2[optnum].val)) {
-					Warning("config : 'option %s' ignored for %s '%s' as it requires HTTP mode.\n",
-						cfg_opts2[optnum].name, proxy_type_str(curproxy), curproxy->id);
+					ha_warning("config : 'option %s' ignored for %s '%s' as it requires HTTP mode.\n",
+						   cfg_opts2[optnum].name, proxy_type_str(curproxy), curproxy->id);
 					err_code |= ERR_WARN;
 					curproxy->options2 &= ~cfg_opts2[optnum].val;
 				}
@@ -8648,8 +8648,8 @@
 #if defined(CONFIG_HAP_TRANSPARENT)
 			if (curproxy->conn_src.bind_hdr_occ) {
 				curproxy->conn_src.bind_hdr_occ = 0;
-				Warning("config : %s '%s' : ignoring use of header %s as source IP in non-HTTP mode.\n",
-					proxy_type_str(curproxy), curproxy->id, curproxy->conn_src.bind_hdr_name);
+				ha_warning("config : %s '%s' : ignoring use of header %s as source IP in non-HTTP mode.\n",
+					   proxy_type_str(curproxy), curproxy->id, curproxy->conn_src.bind_hdr_name);
 				err_code |= ERR_WARN;
 			}
 #endif
@@ -8661,28 +8661,28 @@
 		newsrv = curproxy->srv;
 		while (newsrv != NULL) {
 			if ((curproxy->mode != PR_MODE_HTTP) && newsrv->rdr_len) {
-				Alert("config : %s '%s' : server cannot have cookie or redirect prefix in non-HTTP mode.\n",
-				      proxy_type_str(curproxy), curproxy->id);
+				ha_alert("config : %s '%s' : server cannot have cookie or redirect prefix in non-HTTP mode.\n",
+					 proxy_type_str(curproxy), curproxy->id);
 				cfgerr++;
 			}
 
 			if ((curproxy->mode != PR_MODE_HTTP) && newsrv->cklen) {
-				Warning("config : %s '%s' : ignoring cookie for server '%s' as HTTP mode is disabled.\n",
-				        proxy_type_str(curproxy), curproxy->id, newsrv->id);
+				ha_warning("config : %s '%s' : ignoring cookie for server '%s' as HTTP mode is disabled.\n",
+					   proxy_type_str(curproxy), curproxy->id, newsrv->id);
 				err_code |= ERR_WARN;
 			}
 
 			if ((newsrv->flags & SRV_F_MAPPORTS) && (curproxy->options2 & PR_O2_RDPC_PRST)) {
-				Warning("config : %s '%s' : RDP cookie persistence will not work for server '%s' because it lacks an explicit port number.\n",
-				        proxy_type_str(curproxy), curproxy->id, newsrv->id);
+				ha_warning("config : %s '%s' : RDP cookie persistence will not work for server '%s' because it lacks an explicit port number.\n",
+					   proxy_type_str(curproxy), curproxy->id, newsrv->id);
 				err_code |= ERR_WARN;
 			}
 
 #if defined(CONFIG_HAP_TRANSPARENT)
 			if (curproxy->mode != PR_MODE_HTTP && newsrv->conn_src.bind_hdr_occ) {
 				newsrv->conn_src.bind_hdr_occ = 0;
-				Warning("config : %s '%s' : server %s cannot use header %s as source IP in non-HTTP mode.\n",
-					proxy_type_str(curproxy), curproxy->id, newsrv->id, newsrv->conn_src.bind_hdr_name);
+				ha_warning("config : %s '%s' : server %s cannot use header %s as source IP in non-HTTP mode.\n",
+					   proxy_type_str(curproxy), curproxy->id, newsrv->id, newsrv->conn_src.bind_hdr_name);
 				err_code |= ERR_WARN;
 			}
 #endif
@@ -8692,15 +8692,15 @@
 				    (curproxy->conn_src.opts & CO_SRC_TPROXY_MASK) == CO_SRC_TPROXY_CIP ||
 				    (newsrv->conn_src.opts & CO_SRC_TPROXY_MASK) == CO_SRC_TPROXY_CLI ||
 				    (newsrv->conn_src.opts & CO_SRC_TPROXY_MASK) == CO_SRC_TPROXY_CIP) {
-					Warning("config : %s '%s' : connections to server '%s' use the client's IP address as the source while http-reuse is enabled and allows the same connection to be shared between multiple clients. It is strongly advised to disable 'usesrc' and to use the 'forwardfor' option instead.\n",
-						proxy_type_str(curproxy), curproxy->id, newsrv->id);
+					ha_warning("config : %s '%s' : connections to server '%s' use the client's IP address as the source while http-reuse is enabled and allows the same connection to be shared between multiple clients. It is strongly advised to disable 'usesrc' and to use the 'forwardfor' option instead.\n",
+						   proxy_type_str(curproxy), curproxy->id, newsrv->id);
 					err_code |= ERR_WARN;
 				}
 
 
 				if (newsrv->pp_opts & (SRV_PP_V1|SRV_PP_V2)) {
-					Warning("config : %s '%s' : connections to server '%s' will have a PROXY protocol header announcing the first client's IP address while http-reuse is enabled and allows the same connection to be shared between multiple clients. It is strongly advised to disable 'send-proxy' and to use the 'forwardfor' option instead.\n",
-						proxy_type_str(curproxy), curproxy->id, newsrv->id);
+					ha_warning("config : %s '%s' : connections to server '%s' will have a PROXY protocol header announcing the first client's IP address while http-reuse is enabled and allows the same connection to be shared between multiple clients. It is strongly advised to disable 'send-proxy' and to use the 'forwardfor' option instead.\n",
+						   proxy_type_str(curproxy), curproxy->id, newsrv->id);
 					err_code |= ERR_WARN;
 				}
 			}
@@ -8722,11 +8722,11 @@
 			}
 
 			if (&arule->list != &curproxy->tcp_req.inspect_rules) {
-				Warning("config : %s '%s' : some 'tcp-request content' rules explicitly depending on request"
-				        " contents were found in a frontend without any 'tcp-request inspect-delay' setting."
-				        " This means that these rules will randomly find their contents. This can be fixed by"
-					" setting the tcp-request inspect-delay.\n",
-				        proxy_type_str(curproxy), curproxy->id);
+				ha_warning("config : %s '%s' : some 'tcp-request content' rules explicitly depending on request"
+					   " contents were found in a frontend without any 'tcp-request inspect-delay' setting."
+					   " This means that these rules will randomly find their contents. This can be fixed by"
+					   " setting the tcp-request inspect-delay.\n",
+					   proxy_type_str(curproxy), curproxy->id);
 				err_code |= ERR_WARN;
 			}
 		}
@@ -8814,7 +8814,7 @@
 				break;
 		}
 		if (&bind_conf->by_fe != &global.stats_fe->conf.bind) {
-			Warning("stats socket will not work as expected in multi-process mode (nbproc > 1), you should force process binding globally using 'stats bind-process' or per socket using the 'process' attribute.\n");
+			ha_warning("stats socket will not work as expected in multi-process mode (nbproc > 1), you should force process binding globally using 'stats bind-process' or per socket using the 'process' attribute.\n");
 		}
 	}
 
@@ -8970,18 +8970,18 @@
 				}
 				/* backends have 0, frontends have 1 or more */
 				if (maxproc != 1)
-					Warning("Proxy '%s': in multi-process mode, stats will be"
-					        " limited to process assigned to the current request.\n",
-					        curproxy->id);
+					ha_warning("Proxy '%s': in multi-process mode, stats will be"
+						   " limited to process assigned to the current request.\n",
+						   curproxy->id);
 
 				if (!LIST_ISEMPTY(&curproxy->uri_auth->admin_rules)) {
-					Warning("Proxy '%s': stats admin will not work correctly in multi-process mode.\n",
-					        curproxy->id);
+					ha_warning("Proxy '%s': stats admin will not work correctly in multi-process mode.\n",
+						   curproxy->id);
 				}
 			}
 			if (!LIST_ISEMPTY(&curproxy->sticking_rules)) {
-				Warning("Proxy '%s': sticking rules will not work correctly in multi-process mode.\n",
-				        curproxy->id);
+				ha_warning("Proxy '%s': sticking rules will not work correctly in multi-process mode.\n",
+					   curproxy->id);
 			}
 		}
 
@@ -8991,8 +8991,8 @@
 			curproxy->task->context = curproxy;
 			curproxy->task->process = manage_proxy;
 		} else {
-			Alert("Proxy '%s': no more memory when trying to allocate the management task\n",
-			      curproxy->id);
+			ha_alert("Proxy '%s': no more memory when trying to allocate the management task\n",
+				 curproxy->id);
 			cfgerr++;
 		}
 	}
@@ -9055,16 +9055,16 @@
 				curpeers->peers_fe = NULL;
 			}
 			else if (!curpeers->peers_fe) {
-				Warning("Removing incomplete section 'peers %s' (no peer named '%s').\n",
-					curpeers->id, localpeer);
+				ha_warning("Removing incomplete section 'peers %s' (no peer named '%s').\n",
+					   curpeers->id, localpeer);
 			}
 			else if (my_popcountl(curpeers->peers_fe->bind_proc) != 1) {
 				/* either it's totally stopped or too much used */
 				if (curpeers->peers_fe->bind_proc) {
-					Alert("Peers section '%s': peers referenced by sections "
-					      "running in different processes (%d different ones). "
-					      "Check global.nbproc and all tables' bind-process "
-					      "settings.\n", curpeers->id, my_popcountl(curpeers->peers_fe->bind_proc));
+					ha_alert("Peers section '%s': peers referenced by sections "
+						 "running in different processes (%d different ones). "
+						 "Check global.nbproc and all tables' bind-process "
+						 "settings.\n", curpeers->id, my_popcountl(curpeers->peers_fe->bind_proc));
 					cfgerr++;
 				}
 				stop_proxy(curpeers->peers_fe);
@@ -9104,7 +9104,7 @@
 			continue;
 
 		if (!stktable_init(&curproxy->table)) {
-			Alert("Proxy '%s': failed to initialize stick-table.\n", curproxy->id);
+			ha_alert("Proxy '%s': failed to initialize stick-table.\n", curproxy->id);
 			cfgerr++;
 		}
 	}
@@ -9124,8 +9124,8 @@
 				continue;
 			}
 
-			Warning("Removing incomplete section 'mailers %s'.\n",
-				curmailers->id);
+			ha_warning("Removing incomplete section 'mailers %s'.\n",
+				   curmailers->id);
 
 			m = curmailers->mailer_list;
 			while (m) {
@@ -9199,14 +9199,14 @@
 
 	list_for_each_entry(cs, &sections, list) {
 		if (strcmp(cs->section_name, section_name) == 0) {
-			Alert("register section '%s': already registered.\n", section_name);
+			ha_alert("register section '%s': already registered.\n", section_name);
 			return 0;
 		}
 	}
 
 	cs = calloc(1, sizeof(*cs));
 	if (!cs) {
-		Alert("register section '%s': out of memory.\n", section_name);
+		ha_alert("register section '%s': out of memory.\n", section_name);
 		return 0;
 	}
 
@@ -9229,7 +9229,7 @@
 
 	cp = calloc(1, sizeof(*cp));
 	if (!cp) {
-		Alert("register postparser '%s': out of memory.\n", name);
+		ha_alert("register postparser '%s': out of memory.\n", name);
 		return 0;
 	}
 	cp->name = name;
diff --git a/src/checks.c b/src/checks.c
index 4b47cf3..dc970e0 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -289,7 +289,7 @@
 		             (check->health >= check->rise) ? check->fall : check->rise,
 			     (check->health >= check->rise) ? (s->uweight ? "UP" : "DRAIN") : "DOWN");
 
-		Warning("%s.\n", trash.str);
+		ha_warning("%s.\n", trash.str);
 		send_log(s->proxy, LOG_NOTICE, "%s.\n", trash.str);
 		send_email_alert(s, LOG_INFO, "%s", trash.str);
 	}
@@ -1209,7 +1209,7 @@
 					* an error message is attached, so we can display it
 					*/
 					desc = &check->bi->data[7];
-					//Warning("onlyoneERR: %s\n", desc);
+					//ha_warning("onlyoneERR: %s\n", desc);
 					set_server_check_status(check, HCHK_STATUS_L7STS, desc);
 				}
 			} else if (check->bi->i > first_packet_len + 4) {
@@ -1224,7 +1224,7 @@
 						/* No error packet */
 						/* We set the MySQL Version in description for information purpose */
 						desc = &check->bi->data[5];
-						//Warning("2packetOK: %s\n", desc);
+						//ha_warning("2packetOK: %s\n", desc);
 						set_server_check_status(check, HCHK_STATUS_L7OKD, desc);
 					}
 					else {
@@ -1232,7 +1232,7 @@
 						* so we can display it ! :)
 						*/
 						desc = &check->bi->data[first_packet_len+11];
-						//Warning("2packetERR: %s\n", desc);
+						//ha_warning("2packetERR: %s\n", desc);
 						set_server_check_status(check, HCHK_STATUS_L7STS, desc);
 					}
 				}
@@ -1245,7 +1245,7 @@
 				 * it must be a protocol error
 				 */
 				desc = &check->bi->data[5];
-				//Warning("protoerr: %s\n", desc);
+				//ha_warning("protoerr: %s\n", desc);
 				set_server_check_status(check, HCHK_STATUS_L7RSP, desc);
 			}
 		}
@@ -1705,15 +1705,15 @@
 		return 0;
 
 	if (!signal_register_fct(SIGCHLD, sigchld_handler, SIGCHLD)) {
-		Alert("Failed to set signal handler for external health checks: %s. Aborting.\n",
-		      strerror(errno));
+		ha_alert("Failed to set signal handler for external health checks: %s. Aborting.\n",
+			 strerror(errno));
 		return 1;
 	}
 
 	pool2_pid_list = create_pool("pid_list", sizeof(struct pid_list), MEM_F_SHARED);
 	if (pool2_pid_list == NULL) {
-		Alert("Failed to allocate memory pool for external health checks: %s. Aborting.\n",
-		      strerror(errno));
+		ha_alert("Failed to allocate memory pool for external health checks: %s. Aborting.\n",
+			 strerror(errno));
 		return 1;
 	}
 
@@ -1737,7 +1737,7 @@
 	int vmaxlen;
 
 	if (idx < 0 || idx >= EXTCHK_SIZE) {
-		Alert("Illegal environment variable index %d. Aborting.\n", idx);
+		ha_alert("Illegal environment variable index %d. Aborting.\n", idx);
 		return 1;
 	}
 
@@ -1764,16 +1764,16 @@
 		check->envp[idx] = malloc(len + 1);
 
 	if (!check->envp[idx]) {
-		Alert("Failed to allocate memory for the environment variable '%s'. Aborting.\n", envname);
+		ha_alert("Failed to allocate memory for the environment variable '%s'. Aborting.\n", envname);
 		return 1;
 	}
 	ret = snprintf(check->envp[idx], len + 1, "%s=%s", envname, value);
 	if (ret < 0) {
-		Alert("Failed to store the environment variable '%s'. Reason : %s. Aborting.\n", envname, strerror(errno));
+		ha_alert("Failed to store the environment variable '%s'. Reason : %s. Aborting.\n", envname, strerror(errno));
 		return 1;
 	}
 	else if (ret > len) {
-		Alert("Environment variable '%s' was truncated. Aborting.\n", envname);
+		ha_alert("Environment variable '%s' was truncated. Aborting.\n", envname);
 		return 1;
 	}
 	return 0;
@@ -1800,13 +1800,13 @@
 	check->curpid = NULL;
 	check->envp = calloc((EXTCHK_SIZE + 1), sizeof(char *));
 	if (!check->envp) {
-		Alert("Failed to allocate memory for environment variables. Aborting\n");
+		ha_alert("Failed to allocate memory for environment variables. Aborting\n");
 		goto err;
 	}
 
 	check->argv = calloc(6, sizeof(char *));
 	if (!check->argv) {
-		Alert("Starting [%s:%s] check: out of memory.\n", px->id, s->id);
+		ha_alert("Starting [%s:%s] check: out of memory.\n", px->id, s->id);
 		goto err;
 	}
 
@@ -1831,7 +1831,7 @@
 		check->argv[2] = strdup("NOT_USED");
 	}
 	else {
-		Alert("Starting [%s:%s] check: unsupported address family.\n", px->id, s->id);
+		ha_alert("Starting [%s:%s] check: unsupported address family.\n", px->id, s->id);
 		goto err;
 	}
 
@@ -1846,7 +1846,7 @@
 
 	for (i = 0; i < 5; i++) {
 		if (!check->argv[i]) {
-			Alert("Starting [%s:%s] check: out of memory.\n", px->id, s->id);
+			ha_alert("Starting [%s:%s] check: out of memory.\n", px->id, s->id);
 			goto err;
 		}
 	}
@@ -1913,8 +1913,8 @@
 
 	pid = fork();
 	if (pid < 0) {
-		Alert("Failed to fork process for external health check: %s. Aborting.\n",
-		      strerror(errno));
+		ha_alert("Failed to fork process for external health check: %s. Aborting.\n",
+			 strerror(errno));
 		set_server_check_status(check, HCHK_STATUS_SOCKERR, strerror(errno));
 		goto out;
 	}
@@ -1932,8 +1932,8 @@
 		environ = check->envp;
 		extchk_setenv(check, EXTCHK_HAPROXY_SERVER_CURCONN, ultoa_r(s->cur_sess, buf, sizeof(buf)));
 		execvp(px->check_command, check->argv);
-		Alert("Failed to exec process for external health check: %s. Aborting.\n",
-		      strerror(errno));
+		ha_alert("Failed to exec process for external health check: %s. Aborting.\n",
+			 strerror(errno));
 		exit(-1);
 	}
 
@@ -2054,7 +2054,7 @@
 					status = HCHK_STATUS_PROCOK;
 			} else if (expired) {
 				status = HCHK_STATUS_PROCTOUT;
-				Warning("kill %d\n", (int)elem->pid);
+				ha_warning("kill %d\n", (int)elem->pid);
 				kill(elem->pid, SIGTERM);
 			}
 			set_server_check_status(check, status, NULL);
@@ -2290,8 +2290,8 @@
 	struct task *t;
 	/* task for the check */
 	if ((t = task_new(MAX_THREADS_MASK)) == NULL) {
-		Alert("Starting [%s:%s] check: out of memory.\n",
-		      check->server->proxy->id, check->server->id);
+		ha_alert("Starting [%s:%s] check: out of memory.\n",
+			 check->server->proxy->id, check->server->id);
 		return 0;
 	}
 
@@ -2336,7 +2336,7 @@
 		for (s = px->srv; s; s = s->next) {
 			if (s->slowstart) {
 				if ((t = task_new(MAX_THREADS_MASK)) == NULL) {
-					Alert("Starting [%s:%s] check: out of memory.\n", px->id, s->id);
+					ha_alert("Starting [%s:%s] check: out of memory.\n", px->id, s->id);
 					return ERR_ALERT | ERR_FATAL;
 				}
 				/* We need a warmup task that will be called when the server
@@ -2379,7 +2379,7 @@
 	for (px = proxy; px; px = px->next) {
 		if ((px->options2 & PR_O2_CHK_ANY) == PR_O2_EXT_CHK) {
 			if (init_pid_list()) {
-				Alert("Starting [%s] check: out of memory.\n", px->id);
+				ha_alert("Starting [%s] check: out of memory.\n", px->id);
 				return ERR_ALERT | ERR_FATAL;
 			}
 		}
@@ -3415,7 +3415,7 @@
 	for (i = 0, mailer = p->email_alert.mailers.m->mailer_list;
 	     i < p->email_alert.mailers.m->count; i++, mailer = mailer->next) {
 		if (!enqueue_one_email_alert(p, s, &p->email_alert.queues[i], msg)) {
-			Alert("Email alert [%s] could not be enqueued: out of memory\n", p->id);
+			ha_alert("Email alert [%s] could not be enqueued: out of memory\n", p->id);
 			return;
 		}
 	}
@@ -3441,7 +3441,7 @@
 	va_end(argp);
 
 	if (len < 0 || len >= sizeof(buf)) {
-		Alert("Email alert [%s] could not format message\n", p->id);
+		ha_alert("Email alert [%s] could not format message\n", p->id);
 		return;
 	}
 
diff --git a/src/cli.c b/src/cli.c
index 038bdd3..3d88780 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -460,7 +460,7 @@
 	chunk_reset(tmp);
 
 	if (severity < 0 || severity > 7) {
-		Warning("socket command feedback with invalid severity %d", severity);
+		ha_warning("socket command feedback with invalid severity %d", severity);
 		chunk_printf(tmp, "[%d]: ", severity);
 	}
 	else {
@@ -472,7 +472,7 @@
 				chunk_printf(tmp, "[%s]: ", log_levels[severity]);
 				break;
 			default:
-				Warning("Unrecognized severity output %d", severity_output);
+				ha_warning("Unrecognized severity output %d", severity_output);
 		}
 	}
 	chunk_appendf(tmp, "%s", msg);
@@ -1254,16 +1254,16 @@
 	/* Temporary set the FD in blocking mode, that will make our life easier */
 	old_fcntl = fcntl(fd, F_GETFL);
 	if (old_fcntl < 0) {
-		Warning("Couldn't get the flags for the unix socket\n");
+		ha_warning("Couldn't get the flags for the unix socket\n");
 		goto out;
 	}
 	cmsgbuf = malloc(CMSG_SPACE(sizeof(int) * MAX_SEND_FD));
 	if (!cmsgbuf) {
-		Warning("Failed to allocate memory to send sockets\n");
+		ha_warning("Failed to allocate memory to send sockets\n");
 		goto out;
 	}
 	if (fcntl(fd, F_SETFL, old_fcntl &~ O_NONBLOCK) == -1) {
-		Warning("Cannot make the unix socket blocking\n");
+		ha_warning("Cannot make the unix socket blocking\n");
 		goto out;
 	}
 	setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, (void *)&tv, sizeof(tv));
@@ -1300,7 +1300,7 @@
 	msghdr.msg_iovlen = 1;
 	ret = sendmsg(fd, &msghdr, 0);
 	if (ret != sizeof(tot_fd_nb)) {
-		Warning("Failed to send the number of sockets to send\n");
+		ha_warning("Failed to send the number of sockets to send\n");
 		goto out;
 	}
 
@@ -1326,7 +1326,7 @@
 	 */
 	tmpbuf = malloc(MAX_SEND_FD * (1 + MAXPATHLEN + 1 + IFNAMSIZ + sizeof(int)));
 	if (tmpbuf == NULL) {
-		Warning("Failed to allocate memory to transfer socket informations\n");
+		ha_warning("Failed to allocate memory to transfer socket informations\n");
 		goto out;
 	}
 	iov.iov_base = tmpbuf;
@@ -1370,7 +1370,7 @@
 			if ((!(i % MAX_SEND_FD))) {
 				iov.iov_len = curoff;
 				if (sendmsg(fd, &msghdr, 0) != curoff) {
-					Warning("Failed to transfer sockets\n");
+					ha_warning("Failed to transfer sockets\n");
 					printf("errno %d\n", errno);
 					goto out;
 				}
@@ -1380,7 +1380,7 @@
 					    sizeof(tot_fd_nb), 0);
 				} while (ret == -1 && errno == EINTR);
 				if (ret <= 0) {
-					Warning("Unexpected error while transferring sockets\n");
+					ha_warning("Unexpected error while transferring sockets\n");
 					goto out;
 				}
 				curoff = 0;
@@ -1394,14 +1394,14 @@
 		cmsg->cmsg_len = CMSG_LEN((i % MAX_SEND_FD) * sizeof(int));
 		msghdr.msg_controllen = CMSG_SPACE(sizeof(int) *  (i % MAX_SEND_FD));
 		if (sendmsg(fd, &msghdr, 0) != curoff) {
-			Warning("Failed to transfer sockets\n");
+			ha_warning("Failed to transfer sockets\n");
 			goto out;
 		}
 	}
 
 out:
 	if (old_fcntl >= 0 && fcntl(fd, F_SETFL, old_fcntl) == -1) {
-		Warning("Cannot make the unix socket non-blocking\n");
+		ha_warning("Cannot make the unix socket non-blocking\n");
 		goto out;
 	}
 	appctx->st0 = CLI_ST_END;
diff --git a/src/da.c b/src/da.c
index 09b0e3e..0669cba 100644
--- a/src/da.c
+++ b/src/da.c
@@ -102,7 +102,7 @@
 	if (global_deviceatlas.loglevel && severity <= global_deviceatlas.loglevel) {
 		char logbuf[256];
 		vsnprintf(logbuf, sizeof(logbuf), fmt, args);
-		Warning("deviceatlas : %s.\n", logbuf);
+		ha_warning("deviceatlas : %s.\n", logbuf);
 	}
 }
 
@@ -122,15 +122,15 @@
 		da_status_t status;
 
 		if (global.nbthread > 1) {
-			Alert("deviceatlas: multithreading is not supported for now.\n");
+			ha_alert("deviceatlas: multithreading is not supported for now.\n");
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 
 		jsonp = fopen(global_deviceatlas.jsonpath, "r");
 		if (jsonp == 0) {
-			Alert("deviceatlas : '%s' json file has invalid path or is not readable.\n",
-				global_deviceatlas.jsonpath);
+			ha_alert("deviceatlas : '%s' json file has invalid path or is not readable.\n",
+				 global_deviceatlas.jsonpath);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -141,8 +141,8 @@
 			&global_deviceatlas.atlasimgptr, &atlasimglen);
 		fclose(jsonp);
 		if (status != DA_OK) {
-			Alert("deviceatlas : '%s' json file is invalid.\n",
-				global_deviceatlas.jsonpath);
+			ha_alert("deviceatlas : '%s' json file is invalid.\n",
+				 global_deviceatlas.jsonpath);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -151,7 +151,7 @@
 			global_deviceatlas.atlasimgptr, atlasimglen);
 
 		if (status != DA_OK) {
-			Alert("deviceatlas : data could not be compiled.\n");
+			ha_alert("deviceatlas : data could not be compiled.\n");
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
diff --git a/src/dns.c b/src/dns.c
index 8f01f05..a83c8aa 100644
--- a/src/dns.c
+++ b/src/dns.c
@@ -89,14 +89,14 @@
 	fqdn_len = strlen(fqdn);
 	hostname_dn_len = dns_str_to_dn_label(fqdn, fqdn_len + 1, trash.str, trash.size);
 	if (hostname_dn_len == -1) {
-		Alert("config : %s '%s', server '%s': failed to parse FQDN '%s'\n",
-		      proxy_type_str(px), px->id, srv->id, fqdn);
+		ha_alert("config : %s '%s', server '%s': failed to parse FQDN '%s'\n",
+			 proxy_type_str(px), px->id, srv->id, fqdn);
 		goto err;
 	}
 
 	if ((srvrq = calloc(1, sizeof(*srvrq))) == NULL) {
-		Alert("config : %s '%s', server '%s': out of memory\n",
-		      proxy_type_str(px), px->id, srv->id);
+		ha_alert("config : %s '%s', server '%s': out of memory\n",
+			 proxy_type_str(px), px->id, srv->id);
 		goto err;
 	}
 	srvrq->obj_type        = OBJ_TYPE_SRVRQ;
@@ -105,8 +105,8 @@
 	srvrq->hostname_dn     = strdup(trash.str);
 	srvrq->hostname_dn_len = hostname_dn_len;
 	if (!srvrq->name || !srvrq->hostname_dn) {
-		Alert("config : %s '%s', server '%s': out of memory\n",
-		      proxy_type_str(px), px->id, srv->id);
+		ha_alert("config : %s '%s', server '%s': out of memory\n",
+			 proxy_type_str(px), px->id, srv->id);
 		goto err;
 	}
 	LIST_ADDQ(&dns_srvrq_list, &srvrq->list);
@@ -1852,14 +1852,14 @@
 
 			/* Check nameserver info */
 			if ((fd = socket(ns->addr.ss_family, SOCK_DGRAM, IPPROTO_UDP)) == -1) {
-				Alert("config : resolvers '%s': can't create socket for nameserver '%s'.\n",
-				      resolvers->id, ns->id);
+				ha_alert("config : resolvers '%s': can't create socket for nameserver '%s'.\n",
+					 resolvers->id, ns->id);
 				err_code |= (ERR_ALERT|ERR_ABORT);
 				continue;
 			}
 			if (connect(fd, (struct sockaddr*)&ns->addr, get_addr_len(&ns->addr)) == -1) {
-				Alert("config : resolvers '%s': can't connect socket for nameserver '%s'.\n",
-				      resolvers->id, ns->id);
+				ha_alert("config : resolvers '%s': can't connect socket for nameserver '%s'.\n",
+					 resolvers->id, ns->id);
 				close(fd);
 				err_code |= (ERR_ALERT|ERR_ABORT);
 				continue;
@@ -1869,8 +1869,8 @@
 			/* Create dgram structure that will hold the UPD socket
 			 * and attach it on the current nameserver */
 			if ((dgram = calloc(1, sizeof(*dgram))) == NULL) {
-				Alert("config: resolvers '%s' : out of memory.\n",
-				      resolvers->id);
+				ha_alert("config: resolvers '%s' : out of memory.\n",
+					 resolvers->id);
 				err_code |= (ERR_ALERT|ERR_ABORT);
 				goto err;
 			}
@@ -1885,7 +1885,7 @@
 
 		/* Create the task associated to the resolvers section */
 		if ((t = task_new(MAX_THREADS_MASK)) == NULL) {
-			Alert("config : resolvers '%s' : out of memory.\n", resolvers->id);
+			ha_alert("config : resolvers '%s' : out of memory.\n", resolvers->id);
 			err_code |= (ERR_ALERT|ERR_ABORT);
 			goto err;
 		}
@@ -1907,8 +1907,8 @@
 				continue;
 
 			if ((resolvers = find_resolvers_by_id(srv->resolvers_id)) == NULL) {
-				Alert("config : %s '%s', server '%s': unable to find required resolvers '%s'\n",
-				      proxy_type_str(px), px->id, srv->id, srv->resolvers_id);
+				ha_alert("config : %s '%s', server '%s': unable to find required resolvers '%s'\n",
+					 proxy_type_str(px), px->id, srv->id, srv->resolvers_id);
 				err_code |= (ERR_ALERT|ERR_ABORT);
 				continue;
 			}
@@ -1917,15 +1917,15 @@
 			if (srv->srvrq && !srv->srvrq->resolvers) {
 				srv->srvrq->resolvers = srv->resolvers;
 				if (dns_link_resolution(srv->srvrq, OBJ_TYPE_SRVRQ, 0) == -1) {
-					Alert("config : %s '%s' : unable to set DNS resolution for server '%s'.\n",
-					      proxy_type_str(px), px->id, srv->id);
+					ha_alert("config : %s '%s' : unable to set DNS resolution for server '%s'.\n",
+						 proxy_type_str(px), px->id, srv->id);
 					err_code |= (ERR_ALERT|ERR_ABORT);
 					continue;
 				}
 			}
 			if (dns_link_resolution(srv, OBJ_TYPE_SERVER, 0) == -1) {
-				Alert("config : %s '%s', unable to set DNS resolution for server '%s'.\n",
-				      proxy_type_str(px), px->id, srv->id);
+				ha_alert("config : %s '%s', unable to set DNS resolution for server '%s'.\n",
+					 proxy_type_str(px), px->id, srv->id);
 				err_code |= (ERR_ALERT|ERR_ABORT);
 				continue;
 			}
diff --git a/src/filters.c b/src/filters.c
index c1d3f87..bf188b5 100644
--- a/src/filters.c
+++ b/src/filters.c
@@ -291,8 +291,8 @@
 	for (px = proxy; px; px = px->next) {
 		err_code |= flt_init(px);
 		if (err_code & (ERR_ABORT|ERR_FATAL)) {
-			Alert("Failed to initialize filters for proxy '%s'.\n",
-			      px->id);
+			ha_alert("Failed to initialize filters for proxy '%s'.\n",
+				 px->id);
 			return err_code;
 		}
 	}
@@ -310,8 +310,8 @@
 	for (px = proxy; px; px = px->next) {
 		err_code = flt_init_per_thread(px);
 		if (err_code & (ERR_ABORT|ERR_FATAL)) {
-			Alert("Failed to initialize filters for proxy '%s' for thread %u.\n",
-			      px->id, tid);
+			ha_alert("Failed to initialize filters for proxy '%s' for thread %u.\n",
+				 px->id, tid);
 			return 0;
 		}
 	}
diff --git a/src/flt_http_comp.c b/src/flt_http_comp.c
index 7cbd3a7..b3b0fbd 100644
--- a/src/flt_http_comp.c
+++ b/src/flt_http_comp.c
@@ -261,7 +261,7 @@
 
 	/* To work, previous filters MUST forward all data */
 	if (flt_rsp_fwd(filter) + len != flt_rsp_nxt(filter)) {
-		Warning("HTTP compression failed: unexpected behavior of previous filters\n");
+		ha_warning("HTTP compression failed: unexpected behavior of previous filters\n");
 		return -1;
 	}
 
@@ -298,8 +298,8 @@
 	if (msg->flags & HTTP_MSGF_TE_CHNK) {
 		ret = http_compression_buffer_add_data(st, tmpbuf, zbuf, tmpbuf->i);
 		if (ret != tmpbuf->i) {
-			Warning("HTTP compression failed: Must consume %d bytes but only %d bytes consumed\n",
-				tmpbuf->i, ret);
+			ha_warning("HTTP compression failed: Must consume %d bytes but only %d bytes consumed\n",
+				   tmpbuf->i, ret);
 			return -1;
 		}
 	}
@@ -903,16 +903,16 @@
 			if (fconf->id == http_comp_flt_id)
 				goto end;
 		}
-		Alert("config: %s '%s': require an explicit filter declaration to use HTTP compression\n",
-		      proxy_type_str(proxy), proxy->id);
+		ha_alert("config: %s '%s': require an explicit filter declaration to use HTTP compression\n",
+			 proxy_type_str(proxy), proxy->id);
 		err++;
 		goto end;
 	}
 
 	fconf = calloc(1, sizeof(*fconf));
 	if (!fconf) {
-		Alert("config: %s '%s': out of memory\n",
-		      proxy_type_str(proxy), proxy->id);
+		ha_alert("config: %s '%s': out of memory\n",
+			 proxy_type_str(proxy), proxy->id);
 		err++;
 		goto end;
 	}
diff --git a/src/flt_spoe.c b/src/flt_spoe.c
index ea4675c..717715a 100644
--- a/src/flt_spoe.c
+++ b/src/flt_spoe.c
@@ -2893,25 +2893,25 @@
 
 		/* Check engine Id. It should be uniq */
 		if (!strcmp(conf->id, c->id)) {
-			Alert("Proxy %s : duplicated name for SPOE engine '%s'.\n",
-			      px->id, conf->id);
+			ha_alert("Proxy %s : duplicated name for SPOE engine '%s'.\n",
+				 px->id, conf->id);
 			return 1;
 		}
 	}
 
 	target = proxy_be_by_name(conf->agent->b.name);
 	if (target == NULL) {
-		Alert("Proxy %s : unknown backend '%s' used by SPOE agent '%s'"
-		      " declared at %s:%d.\n",
-		      px->id, conf->agent->b.name, conf->agent->id,
-		      conf->agent->conf.file, conf->agent->conf.line);
+		ha_alert("Proxy %s : unknown backend '%s' used by SPOE agent '%s'"
+			 " declared at %s:%d.\n",
+			 px->id, conf->agent->b.name, conf->agent->id,
+			 conf->agent->conf.file, conf->agent->conf.line);
 		return 1;
 	}
 	if (target->mode != PR_MODE_TCP) {
-		Alert("Proxy %s : backend '%s' used by SPOE agent '%s' declared"
-		      " at %s:%d does not support HTTP mode.\n",
-		      px->id, target->id, conf->agent->id,
-		      conf->agent->conf.file, conf->agent->conf.line);
+		ha_alert("Proxy %s : backend '%s' used by SPOE agent '%s' declared"
+			 " at %s:%d does not support HTTP mode.\n",
+			 px->id, target->id, conf->agent->id,
+			 conf->agent->conf.file, conf->agent->conf.line);
 		return 1;
 	}
 
@@ -3152,8 +3152,8 @@
 
 	if (!strcmp(args[0], "spoe-agent")) { /* new spoe-agent section */
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : missing name for spoe-agent section.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : missing name for spoe-agent section.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -3164,20 +3164,20 @@
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
-			      file, linenum, *err, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
+				 file, linenum, *err, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
 
 		if (curagent != NULL) {
-			Alert("parsing [%s:%d] : another spoe-agent section previously defined.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : another spoe-agent section previously defined.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
 		if ((curagent = calloc(1, sizeof(*curagent))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -3209,7 +3209,7 @@
 		LIST_INIT(&curagent->messages);
 
 		if ((curagent->rt = calloc(global.nbthread, sizeof(*curagent->rt))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -3226,8 +3226,8 @@
 	}
 	else if (!strcmp(args[0], "use-backend")) {
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects a backend name.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects a backend name.\n",
+				 file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3243,15 +3243,15 @@
 
 			list_for_each_entry(ph, &curmphs, list) {
 				if (!strcmp(ph->id, args[cur_arg])) {
-					Alert("parsing [%s:%d]: spoe-message '%s' already used.\n",
-					      file, linenum, args[cur_arg]);
+					ha_alert("parsing [%s:%d]: spoe-message '%s' already used.\n",
+						 file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 			}
 
 			if ((ph = calloc(1, sizeof(*ph))) == NULL) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
@@ -3267,15 +3267,15 @@
 
 			list_for_each_entry(ph, &curgphs, list) {
 				if (!strcmp(ph->id, args[cur_arg])) {
-					Alert("parsing [%s:%d]: spoe-group '%s' already used.\n",
-					      file, linenum, args[cur_arg]);
+					ha_alert("parsing [%s:%d]: spoe-group '%s' already used.\n",
+						 file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 			}
 
 			if ((ph = calloc(1, sizeof(*ph))) == NULL) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
@@ -3290,8 +3290,8 @@
 		unsigned      timeout;
 
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : 'timeout' expects 'hello', 'idle' and 'processing'.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : 'timeout' expects 'hello', 'idle' and 'processing'.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3304,21 +3304,21 @@
 		else if (!strcmp(args[1], "processing"))
 			tv = &curagent->timeout.processing;
 		else {
-			Alert("parsing [%s:%d] : 'timeout' supports 'hello', 'idle' or 'processing' (got %s).\n",
-			      file, linenum, args[1]);
+			ha_alert("parsing [%s:%d] : 'timeout' supports 'hello', 'idle' or 'processing' (got %s).\n",
+				 file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		if (!*args[2]) {
-			Alert("parsing [%s:%d] : 'timeout %s' expects an integer value (in milliseconds).\n",
-			      file, linenum, args[1]);
+			ha_alert("parsing [%s:%d] : 'timeout %s' expects an integer value (in milliseconds).\n",
+				 file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		res = parse_time_err(args[2], &timeout, TIME_UNIT_MS);
 		if (res) {
-			Alert("parsing [%s:%d] : unexpected character '%c' in 'timeout %s'.\n",
-			      file, linenum, *res, args[1]);
+			ha_alert("parsing [%s:%d] : unexpected character '%c' in 'timeout %s'.\n",
+				 file, linenum, *res, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3326,8 +3326,8 @@
 	}
 	else if (!strcmp(args[0], "option")) {
 		if (!*args[1]) {
-                        Alert("parsing [%s:%d]: '%s' expects an option name.\n",
-                              file, linenum, args[0]);
+                        ha_alert("parsing [%s:%d]: '%s' expects an option name.\n",
+				 file, linenum, args[0]);
                         err_code |= ERR_ALERT | ERR_FATAL;
                         goto out;
                 }
@@ -3350,8 +3350,8 @@
 				if (global.nbthread == 1)
 					curagent->flags |= SPOE_FL_ASYNC;
 				else {
-					Warning("parsing [%s:%d] Async option is not supported with threads.\n",
-						file, linenum);
+					ha_warning("parsing [%s:%d] Async option is not supported with threads.\n",
+						   file, linenum);
 					err_code |= ERR_WARN;
 				}
 			}
@@ -3369,8 +3369,8 @@
 
 		/* Following options does not support negation */
 		if (kwm == 1) {
-			Alert("parsing [%s:%d]: negation is not supported for option '%s'.\n",
-			      file, linenum, args[1]);
+			ha_alert("parsing [%s:%d]: negation is not supported for option '%s'.\n",
+				 file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3379,9 +3379,9 @@
 			char *tmp;
 
 			if (!*args[2]) {
-				Alert("parsing [%s:%d]: '%s %s' expects a value.\n",
-				      file, linenum, args[0],
-				      args[1]);
+				ha_alert("parsing [%s:%d]: '%s %s' expects a value.\n",
+					 file, linenum, args[0],
+					 args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3390,8 +3390,8 @@
 			tmp = args[2];
 			while (*tmp) {
 				if (!isalnum(*tmp) && *tmp != '_' && *tmp != '.') {
-					Alert("parsing [%s:%d]: '%s %s' only supports [a-zA-Z_-.] chars.\n",
-					      file, linenum, args[0], args[1]);
+					ha_alert("parsing [%s:%d]: '%s %s' only supports [a-zA-Z_-.] chars.\n",
+						 file, linenum, args[0], args[1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -3408,9 +3408,9 @@
 			char *tmp;
 
 			if (!*args[2]) {
-				Alert("parsing [%s:%d]: '%s %s' expects a value.\n",
-				      file, linenum, args[0],
-				      args[1]);
+				ha_alert("parsing [%s:%d]: '%s %s' expects a value.\n",
+					 file, linenum, args[0],
+					 args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
@@ -3419,8 +3419,8 @@
 			tmp = args[2];
 			while (*tmp) {
 				if (!isalnum(*tmp) && *tmp != '_' && *tmp != '.') {
-					Alert("parsing [%s:%d]: '%s %s' only supports [a-zA-Z_-.] chars.\n",
-					      file, linenum, args[0], args[1]);
+					ha_alert("parsing [%s:%d]: '%s %s' only supports [a-zA-Z_-.] chars.\n",
+						 file, linenum, args[0], args[1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
@@ -3429,16 +3429,16 @@
 			curagent->var_on_error = strdup(args[2]);
 		}
 		else {
-			Alert("parsing [%s:%d]: option '%s' is not supported.\n",
-			      file, linenum, args[1]);
+			ha_alert("parsing [%s:%d]: option '%s' is not supported.\n",
+				 file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}
 	else if (!strcmp(args[0], "maxconnrate")) {
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n",
-                              file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n",
+				 file, linenum, args[0]);
                         err_code |= ERR_ALERT | ERR_FATAL;
                         goto out;
                 }
@@ -3448,8 +3448,8 @@
 	}
 	else if (!strcmp(args[0], "maxerrrate")) {
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n",
-                              file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n",
+				 file, linenum, args[0]);
                         err_code |= ERR_ALERT | ERR_FATAL;
                         goto out;
                 }
@@ -3459,8 +3459,8 @@
 	}
 	else if (!strcmp(args[0], "max-frame-size")) {
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n",
-                              file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' expects an integer argument.\n",
+				 file, linenum, args[0]);
                         err_code |= ERR_ALERT | ERR_FATAL;
                         goto out;
                 }
@@ -3469,15 +3469,15 @@
 		curagent->max_frame_size = atol(args[1]);
 		if (curagent->max_frame_size < MIN_FRAME_SIZE ||
 		    curagent->max_frame_size > MAX_FRAME_SIZE) {
-			Alert("parsing [%s:%d] : '%s' expects a positive integer argument in the range [%d, %d].\n",
-			      file, linenum, args[0], MIN_FRAME_SIZE, MAX_FRAME_SIZE);
+			ha_alert("parsing [%s:%d] : '%s' expects a positive integer argument in the range [%d, %d].\n",
+				 file, linenum, args[0], MIN_FRAME_SIZE, MAX_FRAME_SIZE);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}
 	else if (*args[0]) {
-		Alert("parsing [%s:%d] : unknown keyword '%s' in spoe-agent section.\n",
-		      file, linenum, args[0]);
+		ha_alert("parsing [%s:%d] : unknown keyword '%s' in spoe-agent section.\n",
+			 file, linenum, args[0]);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -3498,8 +3498,8 @@
 
 	if (!strcmp(args[0], "spoe-group")) { /* new spoe-group section */
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : missing name for spoe-group section.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : missing name for spoe-group section.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -3510,24 +3510,24 @@
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
-			      file, linenum, *err, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
+				 file, linenum, *err, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
 
 		list_for_each_entry(grp, &curgrps, list) {
 			if (!strcmp(grp->id, args[1])) {
-				Alert("parsing [%s:%d]: spoe-group section '%s' has the same"
-				      " name as another one declared at %s:%d.\n",
-				      file, linenum, args[1], grp->conf.file, grp->conf.line);
+				ha_alert("parsing [%s:%d]: spoe-group section '%s' has the same"
+					 " name as another one declared at %s:%d.\n",
+					 file, linenum, args[1], grp->conf.file, grp->conf.line);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		}
 
 		if ((curgrp = calloc(1, sizeof(*curgrp))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -3546,15 +3546,15 @@
 
 			list_for_each_entry(ph, &curgrp->phs, list) {
 				if (!strcmp(ph->id, args[cur_arg])) {
-					Alert("parsing [%s:%d]: spoe-message '%s' already used.\n",
-					      file, linenum, args[cur_arg]);
+					ha_alert("parsing [%s:%d]: spoe-message '%s' already used.\n",
+						 file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 			}
 
 			if ((ph = calloc(1, sizeof(*ph))) == NULL) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
@@ -3564,8 +3564,8 @@
 		}
 	}
 	else if (*args[0]) {
-		Alert("parsing [%s:%d] : unknown keyword '%s' in spoe-group section.\n",
-		      file, linenum, args[0]);
+		ha_alert("parsing [%s:%d] : unknown keyword '%s' in spoe-group section.\n",
+			 file, linenum, args[0]);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -3589,8 +3589,8 @@
 
 	if (!strcmp(args[0], "spoe-message")) { /* new spoe-message section */
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : missing name for spoe-message section.\n",
-			      file, linenum);
+			ha_alert("parsing [%s:%d] : missing name for spoe-message section.\n",
+				 file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -3601,24 +3601,24 @@
 
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
-			      file, linenum, *err, args[0], args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in '%s' name '%s'.\n",
+				 file, linenum, *err, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
 
 		list_for_each_entry(msg, &curmsgs, list) {
 			if (!strcmp(msg->id, args[1])) {
-				Alert("parsing [%s:%d]: spoe-message section '%s' has the same"
-				      " name as another one declared at %s:%d.\n",
-				      file, linenum, args[1], msg->conf.file, msg->conf.line);
+				ha_alert("parsing [%s:%d]: spoe-message section '%s' has the same"
+					 " name as another one declared at %s:%d.\n",
+					 file, linenum, args[1], msg->conf.file, msg->conf.line);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 		}
 
 		if ((curmsg = calloc(1, sizeof(*curmsg))) == NULL) {
-			Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_ABORT;
 			goto out;
 		}
@@ -3646,7 +3646,7 @@
 			int   idx = 0;
 
 			if ((arg = calloc(1, sizeof(*arg))) == NULL) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
@@ -3665,7 +3665,7 @@
 						      &idx, file, linenum, &errmsg,
 						      &curproxy->conf.args);
 			if (arg->expr == NULL) {
-				Alert("parsing [%s:%d] : '%s': %s.\n", file, linenum, args[0], errmsg);
+				ha_alert("parsing [%s:%d] : '%s': %s.\n", file, linenum, args[0], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				free(arg->name);
 				free(arg);
@@ -3681,21 +3681,21 @@
 	else if (!strcmp(args[0], "acl")) {
 		err = invalid_char(args[1]);
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in acl name '%s'.\n",
-			      file, linenum, *err, args[1]);
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in acl name '%s'.\n",
+				 file, linenum, *err, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		if (parse_acl((const char **)args + 1, &curmsg->acls, &errmsg, &curproxy->conf.args, file, linenum) == NULL) {
-			Alert("parsing [%s:%d] : error detected while parsing ACL '%s' : %s.\n",
-			      file, linenum, args[1], errmsg);
+			ha_alert("parsing [%s:%d] : error detected while parsing ACL '%s' : %s.\n",
+				 file, linenum, args[1], errmsg);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}
 	else if (!strcmp(args[0], "event")) {
 		if (!*args[1]) {
-			Alert("parsing [%s:%d] : missing event name.\n", file, linenum);
+			ha_alert("parsing [%s:%d] : missing event name.\n", file, linenum);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3721,8 +3721,8 @@
 		else if (!strcmp(args[1], spoe_event_str[SPOE_EV_ON_HTTP_RSP]))
 			curmsg->event = SPOE_EV_ON_HTTP_RSP;
 		else {
-			Alert("parsing [%s:%d] : unkown event '%s'.\n",
-			      file, linenum, args[1]);
+			ha_alert("parsing [%s:%d] : unkown event '%s'.\n",
+				 file, linenum, args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -3734,25 +3734,25 @@
 					      curproxy, (const char **)args+2,
 					      &errmsg);
 			if (cond == NULL) {
-				Alert("parsing [%s:%d] : error detected while "
-				      "parsing an 'event %s' condition : %s.\n",
-				      file, linenum, args[1], errmsg);
+				ha_alert("parsing [%s:%d] : error detected while "
+					 "parsing an 'event %s' condition : %s.\n",
+					 file, linenum, args[1], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 			curmsg->cond = cond;
 		}
 		else if (*args[2]) {
-			Alert("parsing [%s:%d]: 'event %s' expects either 'if' "
-			      "or 'unless' followed by a condition but found '%s'.\n",
-			      file, linenum, args[1], args[2]);
+			ha_alert("parsing [%s:%d]: 'event %s' expects either 'if' "
+				 "or 'unless' followed by a condition but found '%s'.\n",
+				 file, linenum, args[1], args[2]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 	}
 	else if (!*args[0]) {
-		Alert("parsing [%s:%d] : unknown keyword '%s' in spoe-message section.\n",
-		      file, linenum, args[0]);
+		ha_alert("parsing [%s:%d] : unknown keyword '%s' in spoe-message section.\n",
+			 file, linenum, args[0]);
 		err_code |= ERR_ALERT | ERR_FATAL;
 		goto out;
 	}
@@ -3856,11 +3856,11 @@
 	if (curagent->timeout.hello      == TICK_ETERNITY ||
 	    curagent->timeout.idle       == TICK_ETERNITY ||
 	    curagent->timeout.processing == TICK_ETERNITY) {
-		Warning("Proxy '%s': missing timeouts for SPOE agent '%s' declare at %s:%d.\n"
-			"   | While not properly invalid, you will certainly encounter various problems\n"
-			"   | with such a configuration. To fix this, please ensure that all following\n"
-			"   | timeouts are set to a non-zero value: 'hello', 'idle', 'processing'.\n",
-			px->id, curagent->id, curagent->conf.file, curagent->conf.line);
+		ha_warning("Proxy '%s': missing timeouts for SPOE agent '%s' declare at %s:%d.\n"
+			   "   | While not properly invalid, you will certainly encounter various problems\n"
+			   "   | with such a configuration. To fix this, please ensure that all following\n"
+			   "   | timeouts are set to a non-zero value: 'hello', 'idle', 'processing'.\n",
+			   px->id, curagent->id, curagent->conf.file, curagent->conf.line);
 	}
 	if (curagent->var_pfx == NULL) {
 		char *tmp = curagent->id;
@@ -3880,8 +3880,8 @@
 		curagent->engine_id = generate_pseudo_uuid();
 
 	if (LIST_ISEMPTY(&curmphs) && LIST_ISEMPTY(&curgphs)) {
-		Warning("Proxy '%s': No message/group used by SPOE agent '%s' declared at %s:%d.\n",
-			px->id, curagent->id, curagent->conf.file, curagent->conf.line);
+		ha_warning("Proxy '%s': No message/group used by SPOE agent '%s' declared at %s:%d.\n",
+			   px->id, curagent->id, curagent->conf.file, curagent->conf.line);
 		goto finish;
 	}
 
@@ -3902,13 +3902,13 @@
 				if (!(px->cap & PR_CAP_FE) && (msg->event == SPOE_EV_ON_CLIENT_SESS ||
 							       msg->event == SPOE_EV_ON_TCP_REQ_FE ||
 							       msg->event == SPOE_EV_ON_HTTP_REQ_FE)) {
-					Warning("Proxy '%s': frontend event used on a backend proxy at %s:%d.\n",
-						px->id, msg->conf.file, msg->conf.line);
+					ha_warning("Proxy '%s': frontend event used on a backend proxy at %s:%d.\n",
+						   px->id, msg->conf.file, msg->conf.line);
 					goto next_mph;
 				}
 				if (msg->event == SPOE_EV_NONE) {
-					Warning("Proxy '%s': Ignore SPOE message '%s' without event at %s:%d.\n",
-						px->id, msg->id, msg->conf.file, msg->conf.line);
+					ha_warning("Proxy '%s': Ignore SPOE message '%s' without event at %s:%d.\n",
+						   px->id, msg->id, msg->conf.file, msg->conf.line);
 					goto next_mph;
 				}
 
diff --git a/src/haproxy.c b/src/haproxy.c
index 381d5a9..18d2cbf 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -685,14 +685,14 @@
 		next_argv[next_argc++] = NULL;
 	}
 
-	Warning("Reexecuting Master process\n");
+	ha_warning("Reexecuting Master process\n");
 	execvp(next_argv[0], next_argv);
 
-	Warning("Failed to reexecute the master process [%d]: %s\n", pid, strerror(errno));
+	ha_warning("Failed to reexecute the master process [%d]: %s\n", pid, strerror(errno));
 	return;
 
 alloc_error:
-	Warning("Failed to reexecute the master processs [%d]: Cannot allocate memory\n", pid);
+	ha_warning("Failed to reexecute the master processs [%d]: Cannot allocate memory\n", pid);
 	return;
 }
 
@@ -730,7 +730,7 @@
 					sd_notify(0, "STOPPING=1");
 				}
 #endif
-				Warning("Exiting Master process...\n");
+				ha_warning("Exiting Master process...\n");
 				mworker_kill(sig);
 				mworker_unregister_signals();
 			}
@@ -738,7 +738,7 @@
 		}
 
 		if (exitpid == -1 && errno == ECHILD) {
-			Warning("All workers are left. Leaving... (%d)\n", status);
+			ha_warning("All workers are left. Leaving... (%d)\n", status);
 			atexit_flag = 0;
 			exit(status); /* parent must leave using the latest status code known */
 		}
@@ -753,18 +753,18 @@
 			status = 255;
 
 		if (!children) {
-			Warning("Worker %d left with exit code %d\n", exitpid, status);
+			ha_warning("Worker %d left with exit code %d\n", exitpid, status);
 		} else {
 			/* check if exited child was in the current children list */
 			if (current_child(exitpid)) {
-				Alert("Current worker %d left with exit code %d\n", exitpid, status);
+				ha_alert("Current worker %d left with exit code %d\n", exitpid, status);
 				if (status != 0 && status != 130 && status != 143
 				    && global.tune.options & GTUNE_EXIT_ONFAILURE) {
-					Alert("exit-on-failure: killing every workers with SIGTERM\n");
+					ha_alert("exit-on-failure: killing every workers with SIGTERM\n");
 					mworker_kill(SIGTERM);
 				}
 			} else {
-				Warning("Former worker %d left with exit code %d\n", exitpid, status);
+				ha_warning("Former worker %d left with exit code %d\n", exitpid, status);
 				delete_oldpid(exitpid);
 			}
 		}
@@ -782,7 +782,7 @@
 
 	setenv("HAPROXY_MWORKER_WAIT_ONLY", "1", 1);
 
-	Warning("Reexecuting Master process in waitpid mode\n");
+	ha_warning("Reexecuting Master process in waitpid mode\n");
 	mworker_reload();
 }
 
@@ -823,7 +823,7 @@
 {
 	struct proxy *p = proxy;
 
-	Warning("SIGHUP received, dumping servers states.\n");
+	ha_warning("SIGHUP received, dumping servers states.\n");
 	while (p) {
 		struct server *s = p->srv;
 
@@ -834,7 +834,7 @@
 			             p->id, s->id,
 			             (s->cur_state != SRV_ST_STOPPED) ? "UP" : "DOWN",
 			             s->cur_sess, s->nbpend, s->counters.cum_sess);
-			Warning("%s\n", trash.str);
+			ha_warning("%s\n", trash.str);
 			send_log(p, LOG_NOTICE, "%s\n", trash.str);
 			s = s->next;
 		}
@@ -858,7 +858,7 @@
 			             p->id, p->srv_act, p->srv_bck,
 			             p->feconn, p->beconn, p->totpend, p->nbpend, p->fe_counters.cum_conn, p->be_counters.cum_conn);
 		}
-		Warning("%s\n", trash.str);
+		ha_warning("%s\n", trash.str);
 		send_log(p, LOG_NOTICE, "%s\n", trash.str);
 
 		p = p->next;
@@ -891,9 +891,9 @@
 		int dir_entries_it;
 
 		if (stat(wl->s, &file_stat)) {
-			Alert("Cannot open configuration file/directory %s : %s\n",
-			      wl->s,
-			      strerror(errno));
+			ha_alert("Cannot open configuration file/directory %s : %s\n",
+				 wl->s,
+				 strerror(errno));
 			exit(1);
 		}
 
@@ -904,9 +904,9 @@
 
 		dir_entries_nb = scandir(wl->s, &dir_entries, NULL, alphasort);
 		if (dir_entries_nb < 0) {
-			Alert("Cannot open configuration directory %s : %s\n",
-			      wl->s,
-			      strerror(errno));
+			ha_alert("Cannot open configuration directory %s : %s\n",
+				 wl->s,
+				 strerror(errno));
 			exit(1);
 		}
 
@@ -924,15 +924,15 @@
 				goto next_dir_entry;
 
 			if (!memprintf(&filename, "%s/%s", wl->s, dir_entry->d_name)) {
-				Alert("Cannot load configuration files %s : out of memory.\n",
-				      filename);
+				ha_alert("Cannot load configuration files %s : out of memory.\n",
+					 filename);
 				exit(1);
 			}
 
 			if (stat(filename, &file_stat)) {
-				Alert("Cannot open configuration file %s : %s\n",
-				      wl->s,
-				      strerror(errno));
+				ha_alert("Cannot open configuration file %s : %s\n",
+					 wl->s,
+					 strerror(errno));
 				exit(1);
 			}
 
@@ -943,9 +943,9 @@
 				goto next_dir_entry;
 
 			if (!list_append_word(&wl->list, filename, &err)) {
-				Alert("Cannot load configuration files %s : %s\n",
-				      filename,
-				      err);
+				ha_alert("Cannot load configuration files %s : %s\n",
+					 filename,
+					 err);
 				exit(1);
 			}
 
@@ -986,13 +986,13 @@
 	memset(&msghdr, 0, sizeof(msghdr));
 	cmsgbuf = malloc(CMSG_SPACE(sizeof(int)) * MAX_SEND_FD);
 	if (!cmsgbuf) {
-		Warning("Failed to allocate memory to send sockets\n");
+		ha_warning("Failed to allocate memory to send sockets\n");
 		goto out;
 	}
 	sock = socket(PF_UNIX, SOCK_STREAM, 0);
 	if (sock < 0) {
-		Warning("Failed to connect to the old process socket '%s'\n",
-		    unixsocket);
+		ha_warning("Failed to connect to the old process socket '%s'\n",
+			   unixsocket);
 		goto out;
 	}
 	strncpy(addr.sun_path, unixsocket, sizeof(addr.sun_path));
@@ -1000,8 +1000,8 @@
 	addr.sun_family = PF_UNIX;
 	ret = connect(sock, (struct sockaddr *)&addr, sizeof(addr));
 	if (ret < 0) {
-		Warning("Failed to connect to the old process socket '%s'\n",
-		    unixsocket);
+		ha_warning("Failed to connect to the old process socket '%s'\n",
+			   unixsocket);
 		goto out;
 	}
 	setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (void *)&tv, sizeof(tv));
@@ -1012,7 +1012,7 @@
 	send(sock, "_getsocks\n", strlen("_getsocks\n"), 0);
 	/* First, get the number of file descriptors to be received */
 	if (recvmsg(sock, &msghdr, MSG_WAITALL) != sizeof(fd_nb)) {
-		Warning("Failed to get the number of sockets to be transferred !\n");
+		ha_warning("Failed to get the number of sockets to be transferred !\n");
 		goto out;
 	}
 	if (fd_nb == 0) {
@@ -1021,12 +1021,12 @@
 	}
 	tmpbuf = malloc(fd_nb * (1 + MAXPATHLEN + 1 + IFNAMSIZ + sizeof(int)));
 	if (tmpbuf == NULL) {
-		Warning("Failed to allocate memory while receiving sockets\n");
+		ha_warning("Failed to allocate memory while receiving sockets\n");
 		goto out;
 	}
 	tmpfd = malloc(fd_nb * sizeof(int));
 	if (tmpfd == NULL) {
-		Warning("Failed to allocate memory while receiving sockets\n");
+		ha_warning("Failed to allocate memory while receiving sockets\n");
 		goto out;
 	}
 	msghdr.msg_control = cmsgbuf;
@@ -1054,7 +1054,7 @@
 				size_t totlen = cmsg->cmsg_len -
 				    CMSG_LEN(0);
 				if (totlen / sizeof(int) + got_fd > fd_nb) {
-					Warning("Got to many sockets !\n");
+					ha_warning("Got to many sockets !\n");
 					goto out;
 				}
 				/*
@@ -1069,8 +1069,8 @@
 	} while (got_fd < fd_nb);
 
 	if (got_fd != fd_nb) {
-		Warning("We didn't get the expected number of sockets (expecting %d got %d)\n",
-		    fd_nb, got_fd);
+		ha_warning("We didn't get the expected number of sockets (expecting %d got %d)\n",
+			   fd_nb, got_fd);
 		goto out;
 	}
 	maxoff = curoff;
@@ -1082,32 +1082,32 @@
 
 		xfer_sock = calloc(1, sizeof(*xfer_sock));
 		if (!xfer_sock) {
-			Warning("Failed to allocate memory in get_old_sockets() !\n");
+			ha_warning("Failed to allocate memory in get_old_sockets() !\n");
 			break;
 		}
 		xfer_sock->fd = -1;
 
 		socklen = sizeof(xfer_sock->addr);
 		if (getsockname(fd, (struct sockaddr *)&xfer_sock->addr, &socklen) != 0) {
-			Warning("Failed to get socket address\n");
+			ha_warning("Failed to get socket address\n");
 			free(xfer_sock);
 			xfer_sock = NULL;
 			continue;
 		}
 		if (curoff >= maxoff) {
-			Warning("Inconsistency while transferring sockets\n");
+			ha_warning("Inconsistency while transferring sockets\n");
 			goto out;
 		}
 		len = tmpbuf[curoff++];
 		if (len > 0) {
 			/* We have a namespace */
 			if (curoff + len > maxoff) {
-				Warning("Inconsistency while transferring sockets\n");
+				ha_warning("Inconsistency while transferring sockets\n");
 				goto out;
 			}
 			xfer_sock->namespace = malloc(len + 1);
 			if (!xfer_sock->namespace) {
-				Warning("Failed to allocate memory while transferring sockets\n");
+				ha_warning("Failed to allocate memory while transferring sockets\n");
 				goto out;
 			}
 			memcpy(xfer_sock->namespace, &tmpbuf[curoff], len);
@@ -1115,19 +1115,19 @@
 			curoff += len;
 		}
 		if (curoff >= maxoff) {
-			Warning("Inconsistency while transferring sockets\n");
+			ha_warning("Inconsistency while transferring sockets\n");
 			goto out;
 		}
 		len = tmpbuf[curoff++];
 		if (len > 0) {
 			/* We have an interface */
 			if (curoff + len > maxoff) {
-				Warning("Inconsistency while transferring sockets\n");
+				ha_warning("Inconsistency while transferring sockets\n");
 				goto out;
 			}
 			xfer_sock->iface = malloc(len + 1);
 			if (!xfer_sock->iface) {
-				Warning("Failed to allocate memory while transferring sockets\n");
+				ha_warning("Failed to allocate memory while transferring sockets\n");
 				goto out;
 			}
 			memcpy(xfer_sock->iface, &tmpbuf[curoff], len);
@@ -1135,7 +1135,7 @@
 			curoff += len;
 		}
 		if (curoff + sizeof(int) > maxoff) {
-			Warning("Inconsistency while transferring sockets\n");
+			ha_warning("Inconsistency while transferring sockets\n");
 			goto out;
 		}
 		memcpy(&xfer_sock->options, &tmpbuf[curoff],
@@ -1189,7 +1189,7 @@
 
 	newargv = calloc(argc + 2, sizeof(char *));
 	if (newargv == NULL) {
-		Warning("Cannot allocate memory\n");
+		ha_warning("Cannot allocate memory\n");
 		return NULL;
 	}
 
@@ -1231,7 +1231,7 @@
 	next_argv = copy_argv(argc, argv);
 
 	if (!init_trash_buffers(1)) {
-		Alert("failed to initialize trash buffers.\n");
+		ha_alert("failed to initialize trash buffers.\n");
 		exit(1);
 	}
 
@@ -1367,7 +1367,7 @@
 #if defined(USE_SYSTEMD)
 				global.tune.options |= GTUNE_USE_SYSTEMD;
 #else
-				Alert("master-worker mode with systemd support (-Ws) requested, but not compiled. Use master-worker mode (-W) if you are not using Type=notify in your unit file or recompile with USE_SYSTEMD=1.\n\n");
+				ha_alert("master-worker mode with systemd support (-Ws) requested, but not compiled. Use master-worker mode (-W) if you are not using Type=notify in your unit file or recompile with USE_SYSTEMD=1.\n\n");
 				usage(progname);
 #endif
 			}
@@ -1377,11 +1377,11 @@
 				arg_mode |= MODE_QUIET;
 			else if (*flag == 'x') {
 				if (argc <= 1 || argv[1][0] == '-') {
-					Alert("Unix socket path expected with the -x flag\n\n");
+					ha_alert("Unix socket path expected with the -x flag\n\n");
 					usage(progname);
 				}
 				if (old_unixsocket)
-					Warning("-x option already set, overwriting the value\n");
+					ha_warning("-x option already set, overwriting the value\n");
 				old_unixsocket = argv[1];
 
 				argv++;
@@ -1397,7 +1397,7 @@
 				while (argc > 1 && argv[1][0] != '-') {
 					oldpids = realloc(oldpids, (nb_oldpids + 1) * sizeof(int));
 					if (!oldpids) {
-						Alert("Cannot allocate old pid : out of memory.\n");
+						ha_alert("Cannot allocate old pid : out of memory.\n");
 						exit(1);
 					}
 					argc--; argv++;
@@ -1412,9 +1412,9 @@
 				argv++; argc--;
 				while (argc > 0) {
 					if (!list_append_word(&cfg_cfgfiles, *argv, &err_msg)) {
-						Alert("Cannot load configuration file/directory %s : %s\n",
-						      *argv,
-						      err_msg);
+						ha_alert("Cannot load configuration file/directory %s : %s\n",
+							 *argv,
+							 err_msg);
 						exit(1);
 					}
 					argv++; argc--;
@@ -1434,9 +1434,9 @@
 				case 'L' : strncpy(localpeer, *argv, sizeof(localpeer) - 1); break;
 				case 'f' :
 					if (!list_append_word(&cfg_cfgfiles, *argv, &err_msg)) {
-						Alert("Cannot load configuration file/directory %s : %s\n",
-						      *argv,
-						      err_msg);
+						ha_alert("Cannot load configuration file/directory %s : %s\n",
+							 *argv,
+							 err_msg);
 						exit(1);
 					}
 					break;
@@ -1466,7 +1466,7 @@
 	}
 
 	if (change_dir && chdir(change_dir) < 0) {
-		Alert("Could not change to directory %s : %s\n", change_dir, strerror(errno));
+		ha_alert("Could not change to directory %s : %s\n", change_dir, strerror(errno));
 		exit(1);
 	}
 
@@ -1485,12 +1485,12 @@
 
 		ret = readcfgfile(wl->s);
 		if (ret == -1) {
-			Alert("Could not open configuration file %s : %s\n",
-			      wl->s, strerror(errno));
+			ha_alert("Could not open configuration file %s : %s\n",
+				 wl->s, strerror(errno));
 			exit(1);
 		}
 		if (ret & (ERR_ABORT|ERR_FATAL))
-			Alert("Error(s) found in configuration file : %s\n", wl->s);
+			ha_alert("Error(s) found in configuration file : %s\n", wl->s);
 		err_code |= ret;
 		if (err_code & ERR_ABORT)
 			exit(1);
@@ -1501,7 +1501,7 @@
 	 * or failed memory allocations.
 	 */
 	if (err_code & (ERR_ABORT|ERR_FATAL)) {
-		Alert("Fatal errors found in configuration.\n");
+		ha_alert("Fatal errors found in configuration.\n");
 		exit(1);
 	}
 
@@ -1509,7 +1509,7 @@
 
 	err_code |= check_config_validity();
 	if (err_code & (ERR_ABORT|ERR_FATAL)) {
-		Alert("Fatal errors found in configuration.\n");
+		ha_alert("Fatal errors found in configuration.\n");
 		exit(1);
 	}
 
@@ -1532,7 +1532,7 @@
 #ifdef CONFIG_HAP_NS
         err_code |= netns_init();
         if (err_code & (ERR_ABORT|ERR_FATAL)) {
-                Alert("Failed to initialize namespace support.\n");
+                ha_alert("Failed to initialize namespace support.\n");
                 exit(1);
         }
 #endif
@@ -1546,7 +1546,7 @@
 	/* Apply servers' configured address */
 	err_code |= srv_init_addr();
 	if (err_code & (ERR_ABORT|ERR_FATAL)) {
-		Alert("Failed to initialize server(s) addr.\n");
+		ha_alert("Failed to initialize server(s) addr.\n");
 		exit(1);
 	}
 
@@ -1573,7 +1573,7 @@
 
 	global_listener_queue_task = task_new(MAX_THREADS_MASK);
 	if (!global_listener_queue_task) {
-		Alert("Out of memory when initializing global task\n");
+		ha_alert("Out of memory when initializing global task\n");
 		exit(1);
 	}
 	/* very simple initialization, users will queue the task if needed */
@@ -1679,12 +1679,12 @@
 		global.maxsslconn = round_2dig(global.maxsslconn);
 
 		if (sslmem <= 0 || global.maxsslconn < sides) {
-			Alert("Cannot compute the automatic maxsslconn because global.maxconn is already too "
-			      "high for the global.memmax value (%d MB). The absolute maximum possible value "
-			      "without SSL is %d, but %d was found and SSL is in use.\n",
-			      global.rlimit_memmax,
-			      (int)(mem / (STREAM_MAX_COST + 2 * global.tune.bufsize)),
-			      global.maxconn);
+			ha_alert("Cannot compute the automatic maxsslconn because global.maxconn is already too "
+				 "high for the global.memmax value (%d MB). The absolute maximum possible value "
+				 "without SSL is %d, but %d was found and SSL is in use.\n",
+				 global.rlimit_memmax,
+				 (int)(mem / (STREAM_MAX_COST + 2 * global.tune.bufsize)),
+				 global.maxconn);
 			exit(1);
 		}
 
@@ -1719,12 +1719,12 @@
 #endif /* SYSTEM_MAXCONN */
 
 		if (clearmem <= 0 || !global.maxconn) {
-			Alert("Cannot compute the automatic maxconn because global.maxsslconn is already too "
-			      "high for the global.memmax value (%d MB). The absolute maximum possible value "
-			      "is %d, but %d was found.\n",
-			      global.rlimit_memmax,
-			      (int)(mem / (global.ssl_session_max_cost + global.ssl_handshake_max_cost)),
-			      global.maxsslconn);
+			ha_alert("Cannot compute the automatic maxconn because global.maxsslconn is already too "
+				 "high for the global.memmax value (%d MB). The absolute maximum possible value "
+				 "is %d, but %d was found.\n",
+				 global.rlimit_memmax,
+				 (int)(mem / (global.ssl_session_max_cost + global.ssl_handshake_max_cost)),
+				 global.maxsslconn);
 			exit(1);
 		}
 
@@ -1803,13 +1803,13 @@
 	global.mode |= (arg_mode & (MODE_QUIET | MODE_VERBOSE));
 
 	if ((global.mode & MODE_DEBUG) && (global.mode & (MODE_DAEMON | MODE_QUIET))) {
-		Warning("<debug> mode incompatible with <quiet> and <daemon>. Keeping <debug> only.\n");
+		ha_warning("<debug> mode incompatible with <quiet> and <daemon>. Keeping <debug> only.\n");
 		global.mode &= ~(MODE_DAEMON | MODE_QUIET);
 	}
 
 	if ((global.nbproc > 1) && !(global.mode & (MODE_DAEMON | MODE_MWORKER))) {
 		if (!(global.mode & (MODE_FOREGROUND | MODE_DEBUG)))
-			Warning("<nbproc> is only meaningful in daemon mode or master-worker mode. Setting limit to 1 process.\n");
+			ha_warning("<nbproc> is only meaningful in daemon mode or master-worker mode. Setting limit to 1 process.\n");
 		global.nbproc = 1;
 	}
 
@@ -1821,12 +1821,12 @@
 
 	/* Realloc trash buffers because global.tune.bufsize may have changed */
 	if (!init_trash_buffers(0)) {
-		Alert("failed to initialize trash buffers.\n");
+		ha_alert("failed to initialize trash buffers.\n");
 		exit(1);
 	}
 
 	if (!init_log_buffers()) {
-		Alert("failed to initialize log buffers.\n");
+		ha_alert("failed to initialize log buffers.\n");
 		exit(1);
 	}
 
@@ -1856,16 +1856,16 @@
 	}
 
 	if (!init_pollers()) {
-		Alert("No polling mechanism available.\n"
-		      "  It is likely that haproxy was built with TARGET=generic and that FD_SETSIZE\n"
-		      "  is too low on this platform to support maxconn and the number of listeners\n"
-		      "  and servers. You should rebuild haproxy specifying your system using TARGET=\n"
-		      "  in order to support other polling systems (poll, epoll, kqueue) or reduce the\n"
-		      "  global maxconn setting to accommodate the system's limitation. For reference,\n"
-		      "  FD_SETSIZE=%d on this system, global.maxconn=%d resulting in a maximum of\n"
-		      "  %d file descriptors. You should thus reduce global.maxconn by %d. Also,\n"
-		      "  check build settings using 'haproxy -vv'.\n\n",
-		      FD_SETSIZE, global.maxconn, global.maxsock, (global.maxsock + 1 - FD_SETSIZE) / 2);
+		ha_alert("No polling mechanism available.\n"
+			 "  It is likely that haproxy was built with TARGET=generic and that FD_SETSIZE\n"
+			 "  is too low on this platform to support maxconn and the number of listeners\n"
+			 "  and servers. You should rebuild haproxy specifying your system using TARGET=\n"
+			 "  in order to support other polling systems (poll, epoll, kqueue) or reduce the\n"
+			 "  global maxconn setting to accommodate the system's limitation. For reference,\n"
+			 "  FD_SETSIZE=%d on this system, global.maxconn=%d resulting in a maximum of\n"
+			 "  %d file descriptors. You should thus reduce global.maxconn by %d. Also,\n"
+			 "  check build settings using 'haproxy -vv'.\n\n",
+			 FD_SETSIZE, global.maxconn, global.maxsock, (global.maxsock + 1 - FD_SETSIZE) / 2);
 		exit(1);
 	}
 	if (global.mode & (MODE_VERBOSE|MODE_DEBUG)) {
@@ -2362,7 +2362,7 @@
 
 	list_for_each_entry(ptif, &per_thread_init_list, list) {
 		if (!ptif->fct()) {
-			Alert("failed to initialize thread %u.\n", tid);
+			ha_alert("failed to initialize thread %u.\n", tid);
 			exit(1);
 		}
 	}
@@ -2448,7 +2448,7 @@
 			if (setrlimit(RLIMIT_NOFILE, &limit) != -1)
 				getrlimit(RLIMIT_NOFILE, &limit);
 
-			Warning("[%s.main()] Cannot raise FD limit to %d, limit is %d.\n", argv[0], global.rlimit_nofile, (int)limit.rlim_cur);
+			ha_warning("[%s.main()] Cannot raise FD limit to %d, limit is %d.\n", argv[0], global.rlimit_nofile, (int)limit.rlim_cur);
 			global.rlimit_nofile = limit.rlim_cur;
 		}
 	}
@@ -2458,13 +2458,13 @@
 			global.rlimit_memmax * 1048576ULL;
 #ifdef RLIMIT_AS
 		if (setrlimit(RLIMIT_AS, &limit) == -1) {
-			Warning("[%s.main()] Cannot fix MEM limit to %d megs.\n",
-				argv[0], global.rlimit_memmax);
+			ha_warning("[%s.main()] Cannot fix MEM limit to %d megs.\n",
+				   argv[0], global.rlimit_memmax);
 		}
 #else
 		if (setrlimit(RLIMIT_DATA, &limit) == -1) {
-			Warning("[%s.main()] Cannot fix MEM limit to %d megs.\n",
-				argv[0], global.rlimit_memmax);
+			ha_warning("[%s.main()] Cannot fix MEM limit to %d megs.\n",
+				   argv[0], global.rlimit_memmax);
 		}
 #endif
 	}
@@ -2472,7 +2472,7 @@
 	if (old_unixsocket) {
 		if (strcmp("/dev/null", old_unixsocket) != 0) {
 			if (get_old_sockets(old_unixsocket) != 0) {
-				Alert("Failed to get the sockets from the old process!\n");
+				ha_alert("Failed to get the sockets from the old process!\n");
 				if (!(global.mode & MODE_MWORKER))
 					exit(1);
 			}
@@ -2521,7 +2521,7 @@
 	}
 
 	if (listeners == 0) {
-		Alert("[%s.main()] No enabled listener found (check for 'bind' directives) ! Exiting.\n", argv[0]);
+		ha_alert("[%s.main()] No enabled listener found (check for 'bind' directives) ! Exiting.\n", argv[0]);
 		/* Note: we don't have to send anything to the old pids because we
 		 * never stopped them. */
 		exit(1);
@@ -2530,15 +2530,15 @@
 	err = protocol_bind_all(errmsg, sizeof(errmsg));
 	if ((err & ~ERR_WARN) != ERR_NONE) {
 		if ((err & ERR_ALERT) || (err & ERR_WARN))
-			Alert("[%s.main()] %s.\n", argv[0], errmsg);
+			ha_alert("[%s.main()] %s.\n", argv[0], errmsg);
 
-		Alert("[%s.main()] Some protocols failed to start their listeners! Exiting.\n", argv[0]);
+		ha_alert("[%s.main()] Some protocols failed to start their listeners! Exiting.\n", argv[0]);
 		protocol_unbind_all(); /* cleanup everything we can */
 		if (nb_oldpids)
 			tell_old_pids(SIGTTIN);
 		exit(1);
 	} else if (err & ERR_WARN) {
-		Alert("[%s.main()] %s.\n", argv[0], errmsg);
+		ha_alert("[%s.main()] %s.\n", argv[0], errmsg);
 	}
 	/* Ok, all listener should now be bound, close any leftover sockets
 	 * the previous process gave us, we don't need them anymore
@@ -2568,7 +2568,7 @@
 		unlink(global.pidfile);
 		pidfd = open(global.pidfile, O_CREAT | O_WRONLY | O_TRUNC, 0644);
 		if (pidfd < 0) {
-			Alert("[%s.main()] Cannot create pidfile %s\n", argv[0], global.pidfile);
+			ha_alert("[%s.main()] Cannot create pidfile %s\n", argv[0], global.pidfile);
 			if (nb_oldpids)
 				tell_old_pids(SIGTTIN);
 			protocol_unbind_all();
@@ -2577,8 +2577,8 @@
 	}
 
 	if ((global.last_checks & LSTCHK_NETADM) && global.uid) {
-		Alert("[%s.main()] Some configuration options require full privileges, so global.uid cannot be changed.\n"
-		      "", argv[0]);
+		ha_alert("[%s.main()] Some configuration options require full privileges, so global.uid cannot be changed.\n"
+			 "", argv[0]);
 		protocol_unbind_all();
 		exit(1);
 	}
@@ -2587,16 +2587,16 @@
 	 * but we inform him that unexpected behaviour may occur.
 	 */
 	if ((global.last_checks & LSTCHK_NETADM) && getuid())
-		Warning("[%s.main()] Some options which require full privileges"
-			" might not work well.\n"
-			"", argv[0]);
+		ha_warning("[%s.main()] Some options which require full privileges"
+			   " might not work well.\n"
+			   "", argv[0]);
 
 	if ((global.mode & (MODE_MWORKER|MODE_DAEMON)) == 0) {
 
 		/* chroot if needed */
 		if (global.chroot != NULL) {
 			if (chroot(global.chroot) == -1 || chdir("/") == -1) {
-				Alert("[%s.main()] Cannot chroot(%s).\n", argv[0], global.chroot);
+				ha_alert("[%s.main()] Cannot chroot(%s).\n", argv[0], global.chroot);
 				if (nb_oldpids)
 					tell_old_pids(SIGTTIN);
 				protocol_unbind_all();
@@ -2623,18 +2623,18 @@
 		/* setgid / setuid */
 		if (global.gid) {
 			if (getgroups(0, NULL) > 0 && setgroups(0, NULL) == -1)
-				Warning("[%s.main()] Failed to drop supplementary groups. Using 'gid'/'group'"
-					" without 'uid'/'user' is generally useless.\n", argv[0]);
+				ha_warning("[%s.main()] Failed to drop supplementary groups. Using 'gid'/'group'"
+					   " without 'uid'/'user' is generally useless.\n", argv[0]);
 
 			if (setgid(global.gid) == -1) {
-				Alert("[%s.main()] Cannot set gid %d.\n", argv[0], global.gid);
+				ha_alert("[%s.main()] Cannot set gid %d.\n", argv[0], global.gid);
 				protocol_unbind_all();
 				exit(1);
 			}
 		}
 
 		if (global.uid && setuid(global.uid) == -1) {
-			Alert("[%s.main()] Cannot set uid %d.\n", argv[0], global.uid);
+			ha_alert("[%s.main()] Cannot set uid %d.\n", argv[0], global.uid);
 			protocol_unbind_all();
 			exit(1);
 		}
@@ -2643,8 +2643,8 @@
 	limit.rlim_cur = limit.rlim_max = 0;
 	getrlimit(RLIMIT_NOFILE, &limit);
 	if (limit.rlim_cur < global.maxsock) {
-		Warning("[%s.main()] FD limit (%d) too low for maxconn=%d/maxsock=%d. Please raise 'ulimit-n' to %d or more to avoid any trouble.\n",
-			argv[0], (int)limit.rlim_cur, global.maxconn, global.maxsock, global.maxsock);
+		ha_warning("[%s.main()] FD limit (%d) too low for maxconn=%d/maxsock=%d. Please raise 'ulimit-n' to %d or more to avoid any trouble.\n",
+			   argv[0], (int)limit.rlim_cur, global.maxconn, global.maxsock, global.maxsock);
 	}
 
 	if (global.mode & (MODE_DAEMON | MODE_MWORKER)) {
@@ -2664,7 +2664,7 @@
 		    && (global.mode & MODE_DAEMON)) {
 			ret = fork();
 			if (ret < 0) {
-				Alert("[%s.main()] Cannot fork.\n", argv[0]);
+				ha_alert("[%s.main()] Cannot fork.\n", argv[0]);
 				protocol_unbind_all();
 				exit(1); /* there has been an error */
 			}
@@ -2679,7 +2679,7 @@
 				/* master pipe to ensure the master is still alive  */
 				ret = pipe(mworker_pipe);
 				if (ret < 0) {
-					Warning("[%s.main()] Cannot create master pipe.\n", argv[0]);
+					ha_warning("[%s.main()] Cannot create master pipe.\n", argv[0]);
 				} else {
 					memprintf(&msg, "%d", mworker_pipe[0]);
 					setenv("HAPROXY_MWORKER_PIPE_RD", msg, 1);
@@ -2691,7 +2691,7 @@
 				mworker_pipe[0] = atol(getenv("HAPROXY_MWORKER_PIPE_RD"));
 				mworker_pipe[1] = atol(getenv("HAPROXY_MWORKER_PIPE_WR"));
 				if (mworker_pipe[0] <= 0 || mworker_pipe[1] <= 0) {
-					Warning("[%s.main()] Cannot get master pipe FDs.\n", argv[0]);
+					ha_warning("[%s.main()] Cannot get master pipe FDs.\n", argv[0]);
 				}
 			}
 		}
@@ -2707,7 +2707,7 @@
 		for (proc = 0; proc < global.nbproc; proc++) {
 			ret = fork();
 			if (ret < 0) {
-				Alert("[%s.main()] Cannot fork.\n", argv[0]);
+				ha_alert("[%s.main()] Cannot fork.\n", argv[0]);
 				protocol_unbind_all();
 				exit(1); /* there has been an error */
 			}
@@ -2774,7 +2774,7 @@
 		/* chroot if needed */
 		if (global.chroot != NULL) {
 			if (chroot(global.chroot) == -1 || chdir("/") == -1) {
-				Alert("[%s.main()] Cannot chroot1(%s).\n", argv[0], global.chroot);
+				ha_alert("[%s.main()] Cannot chroot1(%s).\n", argv[0], global.chroot);
 				if (nb_oldpids)
 					tell_old_pids(SIGTTIN);
 				protocol_unbind_all();
@@ -2788,18 +2788,18 @@
 		/* setgid / setuid */
 		if (global.gid) {
 			if (getgroups(0, NULL) > 0 && setgroups(0, NULL) == -1)
-				Warning("[%s.main()] Failed to drop supplementary groups. Using 'gid'/'group'"
-					" without 'uid'/'user' is generally useless.\n", argv[0]);
+				ha_warning("[%s.main()] Failed to drop supplementary groups. Using 'gid'/'group'"
+					   " without 'uid'/'user' is generally useless.\n", argv[0]);
 
 			if (setgid(global.gid) == -1) {
-				Alert("[%s.main()] Cannot set gid %d.\n", argv[0], global.gid);
+				ha_alert("[%s.main()] Cannot set gid %d.\n", argv[0], global.gid);
 				protocol_unbind_all();
 				exit(1);
 			}
 		}
 
 		if (global.uid && setuid(global.uid) == -1) {
-			Alert("[%s.main()] Cannot set uid %d.\n", argv[0], global.uid);
+			ha_alert("[%s.main()] Cannot set uid %d.\n", argv[0], global.uid);
 			protocol_unbind_all();
 			exit(1);
 		}
diff --git a/src/hlua.c b/src/hlua.c
index dbdc975..082d950 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -259,7 +259,7 @@
 	do { \
 		send_log(__be, LOG_ERR, __fmt, ## __args); \
 		if (!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)) \
-			Alert(__fmt, ## __args); \
+			ha_alert(__fmt, ## __args); \
 	} while (0)
 
 /* Used to check an Lua function type in the stack. It creates and
@@ -7291,15 +7291,15 @@
 			lua_pop(gL.T, -1);
 			return 1;
 		case HLUA_E_AGAIN:
-			Alert("lua init: yield not allowed.\n");
+			ha_alert("lua init: yield not allowed.\n");
 			return 0;
 		case HLUA_E_ERRMSG:
 			msg = lua_tostring(gL.T, -1);
-			Alert("lua init: %s.\n", msg);
+			ha_alert("lua init: %s.\n", msg);
 			return 0;
 		case HLUA_E_ERR:
 		default:
-			Alert("lua init: unknown runtime error.\n");
+			ha_alert("lua init: unknown runtime error.\n");
 			return 0;
 		}
 	}
diff --git a/src/listener.c b/src/listener.c
index 09d38ac..dfd36cc 100644
--- a/src/listener.c
+++ b/src/listener.c
@@ -176,9 +176,9 @@
 
 		err = l->proto->bind(l, msg, sizeof(msg));
 		if (err & ERR_ALERT)
-			Alert("Resuming listener: %s\n", msg);
+			ha_alert("Resuming listener: %s\n", msg);
 		else if (err & ERR_WARN)
-			Warning("Resuming listener: %s\n", msg);
+			ha_warning("Resuming listener: %s\n", msg);
 
 		if (err & (ERR_FATAL | ERR_ABORT)) {
 			ret = 0;
diff --git a/src/log.c b/src/log.c
index 88e0d07..dcd175e 100644
--- a/src/log.c
+++ b/src/log.c
@@ -388,9 +388,9 @@
 					LIST_ADDQ(list_format, &node->list);
 				}
 				if (logformat_keywords[j].replace_by)
-					Warning("parsing [%s:%d] : deprecated variable '%s' in '%s', please replace it with '%s'.\n",
-					        curproxy->conf.args.file, curproxy->conf.args.line,
-					        logformat_keywords[j].name, fmt_directive(curproxy), logformat_keywords[j].replace_by);
+					ha_warning("parsing [%s:%d] : deprecated variable '%s' in '%s', please replace it with '%s'.\n",
+						   curproxy->conf.args.file, curproxy->conf.args.line,
+						   logformat_keywords[j].name, fmt_directive(curproxy), logformat_keywords[j].replace_by);
 				return 1;
 			} else {
 				memprintf(err, "format variable '%s' is reserved for HTTP mode",
@@ -698,7 +698,7 @@
  * Displays the message on stderr with the date and pid. Overrides the quiet
  * mode during startup.
  */
-void Alert(const char *fmt, ...)
+void ha_alert(const char *fmt, ...)
 {
 	va_list argp;
 
@@ -713,7 +713,7 @@
 /*
  * Displays the message on stderr with the date and pid.
  */
-void Warning(const char *fmt, ...)
+void ha_warning(const char *fmt, ...)
 {
 	va_list argp;
 
@@ -1168,8 +1168,8 @@
 			int proto = logsrv->addr.ss_family == AF_UNIX ? 0 : IPPROTO_UDP;
 
 			if ((*plogfd = socket(logsrv->addr.ss_family, SOCK_DGRAM, proto)) < 0) {
-				Alert("socket for logger #%d failed: %s (errno=%d)\n",
-				      nblogger, strerror(errno), errno);
+				ha_alert("socket for logger #%d failed: %s (errno=%d)\n",
+					 nblogger, strerror(errno), errno);
 				continue;
 			}
 			/* we don't want to receive anything on this socket */
@@ -1296,8 +1296,8 @@
 		sent = sendmsg(*plogfd, &msghdr, MSG_DONTWAIT | MSG_NOSIGNAL);
 
 		if (sent < 0) {
-			Alert("sendmsg logger #%d failed: %s (errno=%d)\n",
-				nblogger, strerror(errno), errno);
+			ha_alert("sendmsg logger #%d failed: %s (errno=%d)\n",
+				 nblogger, strerror(errno), errno);
 		}
 	}
 }
diff --git a/src/namespace.c b/src/namespace.c
index a8f14c8..c8cec16 100644
--- a/src/namespace.c
+++ b/src/namespace.c
@@ -52,7 +52,7 @@
 	 * is not needed either */
 	if (!eb_is_empty(&namespace_tree_root)) {
 		if (init_default_namespace() < 0) {
-			Alert("Failed to open the default namespace.\n");
+			ha_alert("Failed to open the default namespace.\n");
 			err_code |= ERR_ALERT | ERR_FATAL;
 		}
 	}
diff --git a/src/peers.c b/src/peers.c
index 94a4852..cac0c8a 100644
--- a/src/peers.c
+++ b/src/peers.c
@@ -1891,12 +1891,12 @@
 
 	sess = session_new(p, NULL, &appctx->obj_type);
 	if (!sess) {
-		Alert("out of memory in peer_session_create().\n");
+		ha_alert("out of memory in peer_session_create().\n");
 		goto out_free_appctx;
 	}
 
 	if ((s = stream_new(sess, &appctx->obj_type)) == NULL) {
-		Alert("Failed to initialize stream in peer_session_create().\n");
+		ha_alert("Failed to initialize stream in peer_session_create().\n");
 		goto out_free_sess;
 	}
 
diff --git a/src/proto_http.c b/src/proto_http.c
index 277efb8..21e30cc 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -406,7 +406,7 @@
 
 	for (msg = 0; msg < HTTP_ERR_SIZE; msg++) {
 		if (!http_err_msgs[msg]) {
-			Alert("Internal error: no message defined for HTTP return code %d. Aborting.\n", msg);
+			ha_alert("Internal error: no message defined for HTTP return code %d. Aborting.\n", msg);
 			abort();
 		}
 
@@ -1227,7 +1227,7 @@
 						pool_alloc2(h->pool);
 
 				if (cap[h->index] == NULL) {
-					Alert("HTTP capture : out of memory.\n");
+					ha_alert("HTTP capture : out of memory.\n");
 					continue;
 				}
 							
@@ -1969,7 +1969,7 @@
 			if (!(s->logs.logwait &= ~(LW_REQ|LW_INIT)))
 				s->do_log(s);
 		} else {
-			Alert("HTTP logging : out of memory.\n");
+			ha_alert("HTTP logging : out of memory.\n");
 		}
 	}
 
@@ -5897,8 +5897,8 @@
 		if (sess->listener->counters)
 			HA_ATOMIC_ADD(&sess->listener->counters->denied_resp, 1);
 
-		Alert("Blocking cacheable cookie in response from instance %s, server %s.\n",
-		      s->be->id, objt_server(s->target) ? objt_server(s->target)->id : "<dispatch>");
+		ha_alert("Blocking cacheable cookie in response from instance %s, server %s.\n",
+			 s->be->id, objt_server(s->target) ? objt_server(s->target)->id : "<dispatch>");
 		send_log(s->be, LOG_ALERT,
 			 "Blocking cacheable cookie in response from instance %s, server %s.\n",
 			 s->be->id, objt_server(s->target) ? objt_server(s->target)->id : "<dispatch>");
@@ -6891,7 +6891,7 @@
 				int log_len = val_end - att_beg;
 
 				if ((txn->cli_cookie = pool_alloc2(pool2_capture)) == NULL) {
-					Alert("HTTP logging : out of memory.\n");
+					ha_alert("HTTP logging : out of memory.\n");
 				} else {
 					if (log_len > sess->fe->capture_len)
 						log_len = sess->fe->capture_len;
@@ -7543,7 +7543,7 @@
 			    memcmp(att_beg, sess->fe->capture_name, sess->fe->capture_namelen) == 0) {
 				int log_len = val_end - att_beg;
 				if ((txn->srv_cookie = pool_alloc2(pool2_capture)) == NULL) {
-					Alert("HTTP logging : out of memory.\n");
+					ha_alert("HTTP logging : out of memory.\n");
 				}
 				else {
 					if (log_len > sess->fe->capture_len)
@@ -8185,7 +8185,7 @@
 
 	rule = calloc(1, sizeof(*rule));
 	if (!rule) {
-		Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+		ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 		goto out_err;
 	}
 
@@ -8208,8 +8208,8 @@
                 if (strcmp(args[cur_arg], "deny_status") == 0) {
                         cur_arg++;
                         if (!args[cur_arg]) {
-                                Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : missing status code.\n",
-                                      file, linenum, proxy_type_str(proxy), proxy->id, args[0]);
+                                ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : missing status code.\n",
+					 file, linenum, proxy_type_str(proxy), proxy->id, args[0]);
                                 goto out_err;
                         }
 
@@ -8223,8 +8223,8 @@
                         }
 
                         if (hc >= HTTP_ERR_SIZE) {
-                                Warning("parsing [%s:%d] : status code %d not handled, using default code %d.\n",
-                                        file, linenum, code, http_err_codes[rule->deny_status]);
+                                ha_warning("parsing [%s:%d] : status code %d not handled, using default code %d.\n",
+					   file, linenum, code, http_err_codes[rule->deny_status]);
                         }
                 }
 	} else if (!strcmp(args[0], "auth")) {
@@ -8245,8 +8245,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg + 1] && strcmp(args[cur_arg + 1], "if") != 0 && strcmp(args[cur_arg + 1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument (integer value).\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument (integer value).\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 		rule->arg.nice = atoi(args[cur_arg]);
@@ -8263,20 +8263,20 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg + 1] && strcmp(args[cur_arg + 1], "if") != 0 && strcmp(args[cur_arg + 1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument (integer/hex value).\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument (integer/hex value).\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
 		rule->arg.tos = strtol(args[cur_arg], &err, 0);
 		if (err && *err != '\0') {
-			Alert("parsing [%s:%d]: invalid character starting at '%s' in 'http-request %s' (integer/hex value expected).\n",
-			      file, linenum, err, args[0]);
+			ha_alert("parsing [%s:%d]: invalid character starting at '%s' in 'http-request %s' (integer/hex value expected).\n",
+				 file, linenum, err, args[0]);
 			goto out_err;
 		}
 		cur_arg++;
 #else
-		Alert("parsing [%s:%d]: 'http-request %s' is not supported on this platform (IP_TOS undefined).\n", file, linenum, args[0]);
+		ha_alert("parsing [%s:%d]: 'http-request %s' is not supported on this platform (IP_TOS undefined).\n", file, linenum, args[0]);
 		goto out_err;
 #endif
 	} else if (!strcmp(args[0], "set-mark")) {
@@ -8287,21 +8287,21 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg + 1] && strcmp(args[cur_arg + 1], "if") != 0 && strcmp(args[cur_arg + 1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument (integer/hex value).\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument (integer/hex value).\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
 		rule->arg.mark = strtoul(args[cur_arg], &err, 0);
 		if (err && *err != '\0') {
-			Alert("parsing [%s:%d]: invalid character starting at '%s' in 'http-request %s' (integer/hex value expected).\n",
-			      file, linenum, err, args[0]);
+			ha_alert("parsing [%s:%d]: invalid character starting at '%s' in 'http-request %s' (integer/hex value expected).\n",
+				 file, linenum, err, args[0]);
 			goto out_err;
 		}
 		cur_arg++;
 		global.last_checks |= LSTCHK_NETADM;
 #else
-		Alert("parsing [%s:%d]: 'http-request %s' is not supported on this platform (SO_MARK undefined).\n", file, linenum, args[0]);
+		ha_alert("parsing [%s:%d]: 'http-request %s' is not supported on this platform (SO_MARK undefined).\n", file, linenum, args[0]);
 		goto out_err;
 #endif
 	} else if (!strcmp(args[0], "set-log-level")) {
@@ -8311,8 +8311,8 @@
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg + 1] && strcmp(args[cur_arg + 1], "if") != 0 && strcmp(args[cur_arg + 1], "unless") != 0)) {
 		bad_log_level:
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument (log level name or 'silent').\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument (log level name or 'silent').\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 		if (strcmp(args[cur_arg], "silent") == 0)
@@ -8326,8 +8326,8 @@
 
 		if (!*args[cur_arg] || !*args[cur_arg+1] ||
 		    (*args[cur_arg+2] && strcmp(args[cur_arg+2], "if") != 0 && strcmp(args[cur_arg+2], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 2 arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 2 arguments.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8339,8 +8339,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg + 1], proxy, &rule->arg.hdr_add.fmt, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-request %s': %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-request %s': %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8354,8 +8354,8 @@
 
 		if (!*args[cur_arg] || !*args[cur_arg+1] || !*args[cur_arg+2] ||
 		    (*args[cur_arg+3] && strcmp(args[cur_arg+3], "if") != 0 && strcmp(args[cur_arg+3], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 3 arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 3 arguments.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8365,8 +8365,8 @@
 
 		error = NULL;
 		if (!regex_comp(args[cur_arg + 1], &rule->arg.hdr_add.re, 1, 1, &error)) {
-			Alert("parsing [%s:%d] : '%s' : %s.\n", file, linenum,
-			      args[cur_arg + 1], error);
+			ha_alert("parsing [%s:%d] : '%s' : %s.\n", file, linenum,
+				 args[cur_arg + 1], error);
 			free(error);
 			goto out_err;
 		}
@@ -8375,8 +8375,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg + 2], proxy, &rule->arg.hdr_add.fmt, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-request %s': %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-request %s': %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8391,8 +8391,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg+1] && strcmp(args[cur_arg+1], "if") != 0 && strcmp(args[cur_arg+1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8416,8 +8416,8 @@
 
 		expr = sample_parse_expr((char **)args, &cur_arg, file, linenum, &err, &proxy->conf.args);
 		if (!expr) {
-			Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : %s.\n",
-			      file, linenum, proxy_type_str(proxy), proxy->id, args[0], err);
+			ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : %s.\n",
+				 file, linenum, proxy_type_str(proxy), proxy->id, args[0], err);
 			free(err);
 			goto out_err;
 		}
@@ -8429,10 +8429,10 @@
 			where |= SMP_VAL_BE_HRQ_HDR;
 
 		if (!(expr->fetch->val & where)) {
-			Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule :"
-			      " fetch method '%s' extracts information from '%s', none of which is available here.\n",
-			      file, linenum, proxy_type_str(proxy), proxy->id, args[0],
-			      args[cur_arg-1], sample_src_names(expr->fetch->use));
+			ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule :"
+				 " fetch method '%s' extracts information from '%s', none of which is available here.\n",
+				 file, linenum, proxy_type_str(proxy), proxy->id, args[0],
+				 args[cur_arg-1], sample_src_names(expr->fetch->use));
 			free(expr);
 			goto out_err;
 		}
@@ -8440,8 +8440,8 @@
 		if (strcmp(args[cur_arg], "table") == 0) {
 			cur_arg++;
 			if (!args[cur_arg]) {
-				Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : missing table name.\n",
-				      file, linenum, proxy_type_str(proxy), proxy->id, args[0]);
+				ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : missing table name.\n",
+					 file, linenum, proxy_type_str(proxy), proxy->id, args[0]);
 				free(expr);
 				goto out_err;
 			}
@@ -8457,8 +8457,8 @@
 		char *errmsg = NULL;
 
 		if ((redir = http_parse_redirect_rule(file, linenum, proxy, (const char **)args + 1, &errmsg, 1, 0)) == NULL) {
-			Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : %s.\n",
-			      file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : %s.\n",
+				 file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
 			goto out_err;
 		}
 
@@ -8484,8 +8484,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg+1] && strcmp(args[cur_arg+1], "if") != 0 && strcmp(args[cur_arg+1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8494,8 +8494,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg], proxy, &rule->arg.map.key, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-request %s': %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-request %s': %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8516,8 +8516,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg+1] && strcmp(args[cur_arg+1], "if") != 0 && strcmp(args[cur_arg+1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8526,8 +8526,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg], proxy, &rule->arg.map.key, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-request %s': %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-request %s': %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8548,8 +8548,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg+1] && strcmp(args[cur_arg+1], "if") != 0 && strcmp(args[cur_arg+1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 1 argument.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8558,8 +8558,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg], proxy, &rule->arg.map.key, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-request %s': %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-request %s': %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8580,8 +8580,8 @@
 
 		if (!*args[cur_arg] || !*args[cur_arg+1] ||
 		    (*args[cur_arg+2] && strcmp(args[cur_arg+2], "if") != 0 && strcmp(args[cur_arg+2], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-request %s' expects exactly 2 arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-request %s' expects exactly 2 arguments.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8593,8 +8593,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg], proxy, &rule->arg.map.key, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-request %s' key: %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-request %s' key: %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8603,8 +8603,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg + 1], proxy, &rule->arg.map.value, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-request %s' pattern: %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-request %s' pattern: %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8620,18 +8620,18 @@
 		rule->from = ACT_F_HTTP_REQ;
 		rule->kw = custom;
 		if (custom->parse(args, &cur_arg, proxy, rule, &errmsg) == ACT_RET_PRS_ERR) {
-			Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : %s.\n",
-			      file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : %s.\n",
+				 file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
 			free(errmsg);
 			goto out_err;
 		}
 	} else {
 		action_build_list(&http_req_keywords.list, &trash);
-		Alert("parsing [%s:%d]: 'http-request' expects 'allow', 'deny', 'auth', 'redirect', "
-		      "'tarpit', 'add-header', 'set-header', 'replace-header', 'replace-value', 'set-nice', "
-		      "'set-tos', 'set-mark', 'set-log-level', 'add-acl', 'del-acl', 'del-map', 'set-map', 'track-sc*'"
-		      "%s%s, but got '%s'%s.\n",
-		      file, linenum, *trash.str ? ", " : "", trash.str, args[0], *args[0] ? "" : " (missing argument)");
+		ha_alert("parsing [%s:%d]: 'http-request' expects 'allow', 'deny', 'auth', 'redirect', "
+			 "'tarpit', 'add-header', 'set-header', 'replace-header', 'replace-value', 'set-nice', "
+			 "'set-tos', 'set-mark', 'set-log-level', 'add-acl', 'del-acl', 'del-map', 'set-map', 'track-sc*'"
+			 "%s%s, but got '%s'%s.\n",
+			 file, linenum, *trash.str ? ", " : "", trash.str, args[0], *args[0] ? "" : " (missing argument)");
 		goto out_err;
 	}
 
@@ -8640,17 +8640,17 @@
 		char *errmsg = NULL;
 
 		if ((cond = build_acl_cond(file, linenum, &proxy->acl, proxy, args+cur_arg, &errmsg)) == NULL) {
-			Alert("parsing [%s:%d] : error detected while parsing an 'http-request %s' condition : %s.\n",
-			      file, linenum, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : error detected while parsing an 'http-request %s' condition : %s.\n",
+				 file, linenum, args[0], errmsg);
 			free(errmsg);
 			goto out_err;
 		}
 		rule->cond = cond;
 	}
 	else if (*args[cur_arg]) {
-		Alert("parsing [%s:%d]: 'http-request %s' expects 'realm' for 'auth' or"
-		      " either 'if' or 'unless' followed by a condition but found '%s'.\n",
-		      file, linenum, args[0], args[cur_arg]);
+		ha_alert("parsing [%s:%d]: 'http-request %s' expects 'realm' for 'auth' or"
+			 " either 'if' or 'unless' followed by a condition but found '%s'.\n",
+			 file, linenum, args[0], args[cur_arg]);
 		goto out_err;
 	}
 
@@ -8670,7 +8670,7 @@
 
 	rule = calloc(1, sizeof(*rule));
 	if (!rule) {
-		Alert("parsing [%s:%d]: out of memory.\n", file, linenum);
+		ha_alert("parsing [%s:%d]: out of memory.\n", file, linenum);
 		goto out_err;
 	}
 
@@ -8686,8 +8686,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg + 1] && strcmp(args[cur_arg + 1], "if") != 0 && strcmp(args[cur_arg + 1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument (integer value).\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument (integer value).\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 		rule->arg.nice = atoi(args[cur_arg]);
@@ -8704,20 +8704,20 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg + 1] && strcmp(args[cur_arg + 1], "if") != 0 && strcmp(args[cur_arg + 1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument (integer/hex value).\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument (integer/hex value).\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
 		rule->arg.tos = strtol(args[cur_arg], &err, 0);
 		if (err && *err != '\0') {
-			Alert("parsing [%s:%d]: invalid character starting at '%s' in 'http-response %s' (integer/hex value expected).\n",
-			      file, linenum, err, args[0]);
+			ha_alert("parsing [%s:%d]: invalid character starting at '%s' in 'http-response %s' (integer/hex value expected).\n",
+				 file, linenum, err, args[0]);
 			goto out_err;
 		}
 		cur_arg++;
 #else
-		Alert("parsing [%s:%d]: 'http-response %s' is not supported on this platform (IP_TOS undefined).\n", file, linenum, args[0]);
+		ha_alert("parsing [%s:%d]: 'http-response %s' is not supported on this platform (IP_TOS undefined).\n", file, linenum, args[0]);
 		goto out_err;
 #endif
 	} else if (!strcmp(args[0], "set-mark")) {
@@ -8728,21 +8728,21 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg + 1] && strcmp(args[cur_arg + 1], "if") != 0 && strcmp(args[cur_arg + 1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument (integer/hex value).\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument (integer/hex value).\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
 		rule->arg.mark = strtoul(args[cur_arg], &err, 0);
 		if (err && *err != '\0') {
-			Alert("parsing [%s:%d]: invalid character starting at '%s' in 'http-response %s' (integer/hex value expected).\n",
-			      file, linenum, err, args[0]);
+			ha_alert("parsing [%s:%d]: invalid character starting at '%s' in 'http-response %s' (integer/hex value expected).\n",
+				 file, linenum, err, args[0]);
 			goto out_err;
 		}
 		cur_arg++;
 		global.last_checks |= LSTCHK_NETADM;
 #else
-		Alert("parsing [%s:%d]: 'http-response %s' is not supported on this platform (SO_MARK undefined).\n", file, linenum, args[0]);
+		ha_alert("parsing [%s:%d]: 'http-response %s' is not supported on this platform (SO_MARK undefined).\n", file, linenum, args[0]);
 		goto out_err;
 #endif
 	} else if (!strcmp(args[0], "set-log-level")) {
@@ -8752,8 +8752,8 @@
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg + 1] && strcmp(args[cur_arg + 1], "if") != 0 && strcmp(args[cur_arg + 1], "unless") != 0)) {
 		bad_log_level:
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument (log level name or 'silent').\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument (log level name or 'silent').\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 		if (strcmp(args[cur_arg], "silent") == 0)
@@ -8767,8 +8767,8 @@
 
 		if (!*args[cur_arg] || !*args[cur_arg+1] ||
 		    (*args[cur_arg+2] && strcmp(args[cur_arg+2], "if") != 0 && strcmp(args[cur_arg+2], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 2 arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 2 arguments.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8780,8 +8780,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg + 1], proxy, &rule->arg.hdr_add.fmt, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_BE) ? SMP_VAL_BE_HRS_HDR : SMP_VAL_FE_HRS_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-response %s': %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-response %s': %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8795,8 +8795,8 @@
 
 		if (!*args[cur_arg] || !*args[cur_arg+1] || !*args[cur_arg+2] ||
 		    (*args[cur_arg+3] && strcmp(args[cur_arg+3], "if") != 0 && strcmp(args[cur_arg+3], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 3 arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 3 arguments.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8806,8 +8806,8 @@
 
 		error = NULL;
 		if (!regex_comp(args[cur_arg + 1], &rule->arg.hdr_add.re, 1, 1, &error)) {
-			Alert("parsing [%s:%d] : '%s' : %s.\n", file, linenum,
-			      args[cur_arg + 1], error);
+			ha_alert("parsing [%s:%d] : '%s' : %s.\n", file, linenum,
+				 args[cur_arg + 1], error);
 			free(error);
 			goto out_err;
 		}
@@ -8816,8 +8816,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg + 2], proxy, &rule->arg.hdr_add.fmt, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_BE) ? SMP_VAL_BE_HRS_HDR : SMP_VAL_FE_HRS_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-response %s': %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-response %s': %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8832,8 +8832,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg+1] && strcmp(args[cur_arg+1], "if") != 0 && strcmp(args[cur_arg+1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8858,8 +8858,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg+1] && strcmp(args[cur_arg+1], "if") != 0 && strcmp(args[cur_arg+1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8868,8 +8868,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg], proxy, &rule->arg.map.key, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_BE) ? SMP_VAL_BE_HRS_HDR : SMP_VAL_FE_HRS_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-response %s': %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-response %s': %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8891,8 +8891,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg+1] && strcmp(args[cur_arg+1], "if") != 0 && strcmp(args[cur_arg+1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8901,8 +8901,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg], proxy, &rule->arg.map.key, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_BE) ? SMP_VAL_BE_HRS_HDR : SMP_VAL_FE_HRS_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-response %s': %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-response %s': %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8923,8 +8923,8 @@
 
 		if (!*args[cur_arg] ||
 		    (*args[cur_arg+1] && strcmp(args[cur_arg+1], "if") != 0 && strcmp(args[cur_arg+1], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 1 argument.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8933,8 +8933,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg], proxy, &rule->arg.map.key, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_BE) ? SMP_VAL_BE_HRS_HDR : SMP_VAL_FE_HRS_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-response %s' %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-response %s' %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8955,8 +8955,8 @@
 
 		if (!*args[cur_arg] || !*args[cur_arg+1] ||
 		    (*args[cur_arg+2] && strcmp(args[cur_arg+2], "if") != 0 && strcmp(args[cur_arg+2], "unless") != 0)) {
-			Alert("parsing [%s:%d]: 'http-response %s' expects exactly 2 arguments.\n",
-			      file, linenum, args[0]);
+			ha_alert("parsing [%s:%d]: 'http-response %s' expects exactly 2 arguments.\n",
+				 file, linenum, args[0]);
 			goto out_err;
 		}
 
@@ -8969,8 +8969,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg], proxy, &rule->arg.map.key, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_BE) ? SMP_VAL_BE_HRS_HDR : SMP_VAL_FE_HRS_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-response %s' name: %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-response %s' name: %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8979,8 +8979,8 @@
 		error = NULL;
 		if (!parse_logformat_string(args[cur_arg + 1], proxy, &rule->arg.map.value, LOG_OPT_HTTP,
 		                            (proxy->cap & PR_CAP_BE) ? SMP_VAL_BE_HRS_HDR : SMP_VAL_FE_HRS_HDR, &error)) {
-			Alert("parsing [%s:%d]: 'http-response %s' value: %s.\n",
-			      file, linenum, args[0], error);
+			ha_alert("parsing [%s:%d]: 'http-response %s' value: %s.\n",
+				 file, linenum, args[0], error);
 			free(error);
 			goto out_err;
 		}
@@ -8995,8 +8995,8 @@
 		char *errmsg = NULL;
 
 		if ((redir = http_parse_redirect_rule(file, linenum, proxy, (const char **)args + 1, &errmsg, 1, 1)) == NULL) {
-			Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule : %s.\n",
-			      file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule : %s.\n",
+				 file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
 			goto out_err;
 		}
 
@@ -9021,8 +9021,8 @@
 
 		expr = sample_parse_expr((char **)args, &cur_arg, file, linenum, &err, &proxy->conf.args);
 		if (!expr) {
-			Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule : %s.\n",
-			      file, linenum, proxy_type_str(proxy), proxy->id, args[0], err);
+			ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule : %s.\n",
+				 file, linenum, proxy_type_str(proxy), proxy->id, args[0], err);
 			free(err);
 			goto out_err;
 		}
@@ -9034,10 +9034,10 @@
 			where |= SMP_VAL_BE_HRS_HDR;
 
 		if (!(expr->fetch->val & where)) {
-			Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule :"
-			      " fetch method '%s' extracts information from '%s', none of which is available here.\n",
-			      file, linenum, proxy_type_str(proxy), proxy->id, args[0],
-			      args[cur_arg-1], sample_src_names(expr->fetch->use));
+			ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule :"
+				 " fetch method '%s' extracts information from '%s', none of which is available here.\n",
+				 file, linenum, proxy_type_str(proxy), proxy->id, args[0],
+				 args[cur_arg-1], sample_src_names(expr->fetch->use));
 			free(expr);
 			goto out_err;
 		}
@@ -9045,8 +9045,8 @@
 		if (strcmp(args[cur_arg], "table") == 0) {
 			cur_arg++;
 			if (!args[cur_arg]) {
-				Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule : missing table name.\n",
-				      file, linenum, proxy_type_str(proxy), proxy->id, args[0]);
+				ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule : missing table name.\n",
+					 file, linenum, proxy_type_str(proxy), proxy->id, args[0]);
 				free(expr);
 				goto out_err;
 			}
@@ -9064,18 +9064,18 @@
 		rule->from = ACT_F_HTTP_RES;
 		rule->kw = custom;
 		if (custom->parse(args, &cur_arg, proxy, rule, &errmsg) == ACT_RET_PRS_ERR) {
-			Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule : %s.\n",
-			      file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-response %s' rule : %s.\n",
+				 file, linenum, proxy_type_str(proxy), proxy->id, args[0], errmsg);
 			free(errmsg);
 			goto out_err;
 		}
 	} else {
 		action_build_list(&http_res_keywords.list, &trash);
-		Alert("parsing [%s:%d]: 'http-response' expects 'allow', 'deny', 'redirect', "
-		      "'add-header', 'del-header', 'set-header', 'replace-header', 'replace-value', 'set-nice', "
-		      "'set-tos', 'set-mark', 'set-log-level', 'add-acl', 'del-acl', 'del-map', 'set-map', 'track-sc*'"
-		      "%s%s, but got '%s'%s.\n",
-		      file, linenum, *trash.str ? ", " : "", trash.str, args[0], *args[0] ? "" : " (missing argument)");
+		ha_alert("parsing [%s:%d]: 'http-response' expects 'allow', 'deny', 'redirect', "
+			 "'add-header', 'del-header', 'set-header', 'replace-header', 'replace-value', 'set-nice', "
+			 "'set-tos', 'set-mark', 'set-log-level', 'add-acl', 'del-acl', 'del-map', 'set-map', 'track-sc*'"
+			 "%s%s, but got '%s'%s.\n",
+			 file, linenum, *trash.str ? ", " : "", trash.str, args[0], *args[0] ? "" : " (missing argument)");
 		goto out_err;
 	}
 
@@ -9084,17 +9084,17 @@
 		char *errmsg = NULL;
 
 		if ((cond = build_acl_cond(file, linenum, &proxy->acl, proxy, args+cur_arg, &errmsg)) == NULL) {
-			Alert("parsing [%s:%d] : error detected while parsing an 'http-response %s' condition : %s.\n",
-			      file, linenum, args[0], errmsg);
+			ha_alert("parsing [%s:%d] : error detected while parsing an 'http-response %s' condition : %s.\n",
+				 file, linenum, args[0], errmsg);
 			free(errmsg);
 			goto out_err;
 		}
 		rule->cond = cond;
 	}
 	else if (*args[cur_arg]) {
-		Alert("parsing [%s:%d]: 'http-response %s' expects"
-		      " either 'if' or 'unless' followed by a condition but found '%s'.\n",
-		      file, linenum, args[0], args[cur_arg]);
+		ha_alert("parsing [%s:%d]: 'http-response %s' expects"
+			 " either 'if' or 'unless' followed by a condition but found '%s'.\n",
+			 file, linenum, args[0], args[cur_arg]);
 		goto out_err;
 	}
 
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 606c3c5..1f9c3f1 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -344,7 +344,7 @@
 		/* do not log anything there, it's a normal condition when this option
 		 * is used to serialize connections to a server !
 		 */
-		Alert("socket(): not enough free sockets. Raise -n argument. Giving up.\n");
+		ha_alert("socket(): not enough free sockets. Raise -n argument. Giving up.\n");
 		close(fd);
 		conn->err_code = CO_ER_CONF_FDLIM;
 		conn->flags |= CO_FL_ERROR;
@@ -447,14 +447,14 @@
 			close(fd);
 
 			if (ret == 1) {
-				Alert("Cannot bind to source address before connect() for backend %s. Aborting.\n",
-				      be->id);
+				ha_alert("Cannot bind to source address before connect() for backend %s. Aborting.\n",
+					 be->id);
 				send_log(be, LOG_EMERG,
 					 "Cannot bind to source address before connect() for backend %s.\n",
 					 be->id);
 			} else {
-				Alert("Cannot bind to tproxy source address before connect() for backend %s. Aborting.\n",
-				      be->id);
+				ha_alert("Cannot bind to tproxy source address before connect() for backend %s. Aborting.\n",
+					 be->id);
 				send_log(be, LOG_EMERG,
 					 "Cannot bind to tproxy source address before connect() for backend %s.\n",
 					 be->id);
@@ -851,11 +851,11 @@
 		default_tcp_maxseg = -2;
 		fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 		if (fd < 0)
-			Warning("Failed to create a temporary socket!\n");
+			ha_warning("Failed to create a temporary socket!\n");
 		else {
 			if (getsockopt(fd, IPPROTO_TCP, TCP_MAXSEG, &default_tcp_maxseg,
 			    &ready_len) == -1)
-				Warning("Failed to get the default value of TCP_MAXSEG\n");
+				ha_warning("Failed to get the default value of TCP_MAXSEG\n");
 		}
 		close(fd);
 	}
@@ -865,7 +865,7 @@
 		if (fd >= 0) {
 			if (getsockopt(fd, IPPROTO_TCP, TCP_MAXSEG, &default_tcp6_maxseg,
 			    &ready_len) == -1)
-				Warning("Failed ot get the default value of TCP_MAXSEG for IPv6\n");
+				ha_warning("Failed ot get the default value of TCP_MAXSEG for IPv6\n");
 			close(fd);
 		}
 	}
@@ -1898,7 +1898,7 @@
 			l->netns = netns_store_insert(namespace);
 
 		if (l->netns == NULL) {
-			Alert("Cannot open namespace '%s'.\n", args[cur_arg + 1]);
+			ha_alert("Cannot open namespace '%s'.\n", args[cur_arg + 1]);
 			return ERR_ALERT | ERR_FATAL;
 		}
 	}
diff --git a/src/proto_uxst.c b/src/proto_uxst.c
index 3b353c6..1579dd0 100644
--- a/src/proto_uxst.c
+++ b/src/proto_uxst.c
@@ -482,7 +482,7 @@
 		/* do not log anything there, it's a normal condition when this option
 		 * is used to serialize connections to a server !
 		 */
-		Alert("socket(): not enough free sockets. Raise -n argument. Giving up.\n");
+		ha_alert("socket(): not enough free sockets. Raise -n argument. Giving up.\n");
 		close(fd);
 		conn->err_code = CO_ER_CONF_FDLIM;
 		conn->flags |= CO_FL_ERROR;
diff --git a/src/proxy.c b/src/proxy.c
index ccbc7b2..1730ba4 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -661,8 +661,8 @@
 			continue;
 		}
 
-		Alert("Refusing to use duplicated server '%s' found in proxy: %s!\n",
-			name, px->id);
+		ha_alert("Refusing to use duplicated server '%s' found in proxy: %s!\n",
+			 name, px->id);
 
 		return NULL;
 	}
@@ -679,40 +679,40 @@
 int proxy_cfg_ensure_no_http(struct proxy *curproxy)
 {
 	if (curproxy->cookie_name != NULL) {
-		Warning("config : cookie will be ignored for %s '%s' (needs 'mode http').\n",
-			proxy_type_str(curproxy), curproxy->id);
+		ha_warning("config : cookie will be ignored for %s '%s' (needs 'mode http').\n",
+			   proxy_type_str(curproxy), curproxy->id);
 	}
 	if (curproxy->rsp_exp != NULL) {
-		Warning("config : server regular expressions will be ignored for %s '%s' (needs 'mode http').\n",
-			proxy_type_str(curproxy), curproxy->id);
+		ha_warning("config : server regular expressions will be ignored for %s '%s' (needs 'mode http').\n",
+			   proxy_type_str(curproxy), curproxy->id);
 	}
 	if (curproxy->req_exp != NULL) {
-		Warning("config : client regular expressions will be ignored for %s '%s' (needs 'mode http').\n",
-			proxy_type_str(curproxy), curproxy->id);
+		ha_warning("config : client regular expressions will be ignored for %s '%s' (needs 'mode http').\n",
+			   proxy_type_str(curproxy), curproxy->id);
 	}
 	if (curproxy->monitor_uri != NULL) {
-		Warning("config : monitor-uri will be ignored for %s '%s' (needs 'mode http').\n",
-			proxy_type_str(curproxy), curproxy->id);
+		ha_warning("config : monitor-uri will be ignored for %s '%s' (needs 'mode http').\n",
+			   proxy_type_str(curproxy), curproxy->id);
 	}
 	if (curproxy->lbprm.algo & BE_LB_NEED_HTTP) {
 		curproxy->lbprm.algo &= ~BE_LB_ALGO;
 		curproxy->lbprm.algo |= BE_LB_ALGO_RR;
-		Warning("config : Layer 7 hash not possible for %s '%s' (needs 'mode http'). Falling back to round robin.\n",
-			proxy_type_str(curproxy), curproxy->id);
+		ha_warning("config : Layer 7 hash not possible for %s '%s' (needs 'mode http'). Falling back to round robin.\n",
+			   proxy_type_str(curproxy), curproxy->id);
 	}
 	if (curproxy->to_log & (LW_REQ | LW_RESP)) {
 		curproxy->to_log &= ~(LW_REQ | LW_RESP);
-		Warning("parsing [%s:%d] : HTTP log/header format not usable with %s '%s' (needs 'mode http').\n",
-			curproxy->conf.lfs_file, curproxy->conf.lfs_line,
-			proxy_type_str(curproxy), curproxy->id);
+		ha_warning("parsing [%s:%d] : HTTP log/header format not usable with %s '%s' (needs 'mode http').\n",
+			   curproxy->conf.lfs_file, curproxy->conf.lfs_line,
+			   proxy_type_str(curproxy), curproxy->id);
 	}
 	if (curproxy->conf.logformat_string == default_http_log_format ||
 	    curproxy->conf.logformat_string == clf_http_log_format) {
 		/* Note: we don't change the directive's file:line number */
 		curproxy->conf.logformat_string = default_tcp_log_format;
-		Warning("parsing [%s:%d] : 'option httplog' not usable with %s '%s' (needs 'mode http'). Falling back to 'option tcplog'.\n",
-			curproxy->conf.lfs_file, curproxy->conf.lfs_line,
-			proxy_type_str(curproxy), curproxy->id);
+		ha_warning("parsing [%s:%d] : 'option httplog' not usable with %s '%s' (needs 'mode http'). Falling back to 'option tcplog'.\n",
+			   curproxy->conf.lfs_file, curproxy->conf.lfs_line,
+			   proxy_type_str(curproxy), curproxy->id);
 	}
 
 	return 0;
@@ -797,11 +797,11 @@
 			/* errors are reported if <verbose> is set or if they are fatal */
 			if (verbose || (lerr & (ERR_FATAL | ERR_ABORT))) {
 				if (lerr & ERR_ALERT)
-					Alert("Starting %s %s: %s\n",
-					      proxy_type_str(curproxy), curproxy->id, msg);
+					ha_alert("Starting %s %s: %s\n",
+						 proxy_type_str(curproxy), curproxy->id, msg);
 				else if (lerr & ERR_WARN)
-					Warning("Starting %s %s: %s\n",
-						proxy_type_str(curproxy), curproxy->id, msg);
+					ha_warning("Starting %s %s: %s\n",
+						   proxy_type_str(curproxy), curproxy->id, msg);
 			}
 
 			err |= lerr;
@@ -849,8 +849,8 @@
 		int t;
 		t = tick_remain(now_ms, p->stop_time);
 		if (t == 0) {
-			Warning("Proxy %s stopped (FE: %lld conns, BE: %lld conns).\n",
-				p->id, p->fe_counters.cum_conn, p->be_counters.cum_conn);
+			ha_warning("Proxy %s stopped (FE: %lld conns, BE: %lld conns).\n",
+				   p->id, p->fe_counters.cum_conn, p->be_counters.cum_conn);
 			send_log(p, LOG_WARNING, "Proxy %s stopped (FE: %lld conns, BE: %lld conns).\n",
 				 p->id, p->fe_counters.cum_conn, p->be_counters.cum_conn);
 			stop_proxy(p);
@@ -940,20 +940,20 @@
 	struct stream *s;
 
 	if (killed) {
-		Warning("Some tasks resisted to hard-stop, exiting now.\n");
+		ha_warning("Some tasks resisted to hard-stop, exiting now.\n");
 		send_log(NULL, LOG_WARNING, "Some tasks resisted to hard-stop, exiting now.\n");
 		/* Do some cleanup and explicitely quit */
 		deinit();
 		exit(0);
 	}
 
-	Warning("soft-stop running for too long, performing a hard-stop.\n");
+	ha_warning("soft-stop running for too long, performing a hard-stop.\n");
 	send_log(NULL, LOG_WARNING, "soft-stop running for too long, performing a hard-stop.\n");
 	p = proxy;
 	while (p) {
 		if ((p->cap & PR_CAP_FE) && (p->feconn > 0)) {
-			Warning("Proxy %s hard-stopped (%d remaining conns will be closed).\n",
-				p->id, p->feconn);
+			ha_warning("Proxy %s hard-stopped (%d remaining conns will be closed).\n",
+				   p->id, p->feconn);
 			send_log(p, LOG_WARNING, "Proxy %s hard-stopped (%d remaining conns will be closed).\n",
 				p->id, p->feconn);
 		}
@@ -987,7 +987,7 @@
 			task_schedule(task, tick_add(now_ms, global.hard_stop_after));
 		}
 		else {
-			Alert("out of memory trying to allocate the hard-stop task.\n");
+			ha_alert("out of memory trying to allocate the hard-stop task.\n");
 		}
 	}
 	p = proxy;
@@ -1007,7 +1007,7 @@
 		}
 
 		if (p->state != PR_STSTOPPED) {
-			Warning("Stopping %s %s in %d ms.\n", proxy_cap_str(p->cap), p->id, p->grace);
+			ha_warning("Stopping %s %s in %d ms.\n", proxy_cap_str(p->cap), p->id, p->grace);
 			send_log(p, LOG_WARNING, "Stopping %s %s in %d ms.\n", proxy_cap_str(p->cap), p->id, p->grace);
 			p->stop_time = tick_add(now_ms, p->grace);
 
@@ -1048,7 +1048,7 @@
 	    p->state == PR_STSTOPPED || p->state == PR_STPAUSED)
 		return 1;
 
-	Warning("Pausing %s %s.\n", proxy_cap_str(p->cap), p->id);
+	ha_warning("Pausing %s %s.\n", proxy_cap_str(p->cap), p->id);
 	send_log(p, LOG_WARNING, "Pausing %s %s.\n", proxy_cap_str(p->cap), p->id);
 
 	list_for_each_entry(l, &p->conf.listeners, by_fe) {
@@ -1057,7 +1057,7 @@
 	}
 
 	if (p->state == PR_STERROR) {
-		Warning("%s %s failed to enter pause mode.\n", proxy_cap_str(p->cap), p->id);
+		ha_warning("%s %s failed to enter pause mode.\n", proxy_cap_str(p->cap), p->id);
 		send_log(p, LOG_WARNING, "%s %s failed to enter pause mode.\n", proxy_cap_str(p->cap), p->id);
 		return 0;
 	}
@@ -1137,7 +1137,7 @@
 	if (p->state != PR_STPAUSED)
 		return 1;
 
-	Warning("Enabling %s %s.\n", proxy_cap_str(p->cap), p->id);
+	ha_warning("Enabling %s %s.\n", proxy_cap_str(p->cap), p->id);
 	send_log(p, LOG_WARNING, "Enabling %s %s.\n", proxy_cap_str(p->cap), p->id);
 
 	fail = 0;
@@ -1147,14 +1147,14 @@
 
 			port = get_host_port(&l->addr);
 			if (port) {
-				Warning("Port %d busy while trying to enable %s %s.\n",
-					port, proxy_cap_str(p->cap), p->id);
+				ha_warning("Port %d busy while trying to enable %s %s.\n",
+					   port, proxy_cap_str(p->cap), p->id);
 				send_log(p, LOG_WARNING, "Port %d busy while trying to enable %s %s.\n",
 					 port, proxy_cap_str(p->cap), p->id);
 			}
 			else {
-				Warning("Bind on socket %d busy while trying to enable %s %s.\n",
-					l->luid, proxy_cap_str(p->cap), p->id);
+				ha_warning("Bind on socket %d busy while trying to enable %s %s.\n",
+					   l->luid, proxy_cap_str(p->cap), p->id);
 				send_log(p, LOG_WARNING, "Bind on socket %d busy while trying to enable %s %s.\n",
 					 l->luid, proxy_cap_str(p->cap), p->id);
 			}
@@ -1201,7 +1201,7 @@
         }
 
 	if (err) {
-		Warning("Some proxies refused to pause, performing soft stop now.\n");
+		ha_warning("Some proxies refused to pause, performing soft stop now.\n");
 		send_log(p, LOG_WARNING, "Some proxies refused to pause, performing soft stop now.\n");
 		soft_stop();
 	}
@@ -1235,7 +1235,7 @@
         }
 
 	if (err) {
-		Warning("Some proxies refused to resume, a restart is probably needed to resume safe operations.\n");
+		ha_warning("Some proxies refused to resume, a restart is probably needed to resume safe operations.\n");
 		send_log(p, LOG_WARNING, "Some proxies refused to resume, a restart is probably needed to resume safe operations.\n");
 	}
 }
@@ -1706,8 +1706,8 @@
 		return 1;
 	}
 
-	Warning("Proxy %s stopped (FE: %lld conns, BE: %lld conns).\n",
-	        px->id, px->fe_counters.cum_conn, px->be_counters.cum_conn);
+	ha_warning("Proxy %s stopped (FE: %lld conns, BE: %lld conns).\n",
+		   px->id, px->fe_counters.cum_conn, px->be_counters.cum_conn);
 	send_log(px, LOG_WARNING, "Proxy %s stopped (FE: %lld conns, BE: %lld conns).\n",
 	         px->id, px->fe_counters.cum_conn, px->be_counters.cum_conn);
 	stop_proxy(px);
diff --git a/src/regex.c b/src/regex.c
index 993a37a..62c8e84 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -114,7 +114,7 @@
 				err = NULL;
 			}
 			else {
-				Warning("'\\%c' : deprecated use of a backslash before something not '\\','x' or a digit.\n", *str);
+				ha_warning("'\\%c' : deprecated use of a backslash before something not '\\','x' or a digit.\n", *str);
 				err = NULL;
 			}
 		}
diff --git a/src/sample.c b/src/sample.c
index 9389766..f9c1ff4 100644
--- a/src/sample.c
+++ b/src/sample.c
@@ -1142,9 +1142,9 @@
 		switch (arg->type) {
 		case ARGT_SRV:
 			if (!arg->data.str.len) {
-				Alert("parsing [%s:%d] : missing server name in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : missing server name in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				continue;
 			}
@@ -1158,9 +1158,9 @@
 
 				px = proxy_be_by_name(pname);
 				if (!px) {
-					Alert("parsing [%s:%d] : unable to find proxy '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-					      cur->file, cur->line, pname,
-					      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+					ha_alert("parsing [%s:%d] : unable to find proxy '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+						 cur->file, cur->line, pname,
+						 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 					cfgerr++;
 					break;
 				}
@@ -1170,9 +1170,9 @@
 
 			srv = findserver(px, sname);
 			if (!srv) {
-				Alert("parsing [%s:%d] : unable to find server '%s' in proxy '%s', referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line, sname, pname,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : unable to find server '%s' in proxy '%s', referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line, sname, pname,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				break;
 			}
@@ -1190,17 +1190,17 @@
 			}
 
 			if (!px) {
-				Alert("parsing [%s:%d] : unable to find frontend '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line, pname,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : unable to find frontend '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line, pname,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				break;
 			}
 
 			if (!(px->cap & PR_CAP_FE)) {
-				Alert("parsing [%s:%d] : proxy '%s', referenced in arg %d of %s%s%s%s '%s' %s proxy '%s', has not frontend capability.\n",
-				      cur->file, cur->line, pname,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : proxy '%s', referenced in arg %d of %s%s%s%s '%s' %s proxy '%s', has not frontend capability.\n",
+					 cur->file, cur->line, pname,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				break;
 			}
@@ -1218,17 +1218,17 @@
 			}
 
 			if (!px) {
-				Alert("parsing [%s:%d] : unable to find backend '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line, pname,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : unable to find backend '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line, pname,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				break;
 			}
 
 			if (!(px->cap & PR_CAP_BE)) {
-				Alert("parsing [%s:%d] : proxy '%s', referenced in arg %d of %s%s%s%s '%s' %s proxy '%s', has not backend capability.\n",
-				      cur->file, cur->line, pname,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : proxy '%s', referenced in arg %d of %s%s%s%s '%s' %s proxy '%s', has not backend capability.\n",
+					 cur->file, cur->line, pname,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				break;
 			}
@@ -1246,17 +1246,17 @@
 			}
 
 			if (!px) {
-				Alert("parsing [%s:%d] : unable to find table '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line, pname,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : unable to find table '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line, pname,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				break;
 			}
 
 			if (!px->table.size) {
-				Alert("parsing [%s:%d] : no table in proxy '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line, pname,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : no table in proxy '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line, pname,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				break;
 			}
@@ -1269,9 +1269,9 @@
 
 		case ARGT_USR:
 			if (!arg->data.str.len) {
-				Alert("parsing [%s:%d] : missing userlist name in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : missing userlist name in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				break;
 			}
@@ -1283,9 +1283,9 @@
 				ul = auth_find_userlist(arg->data.str.str);
 
 			if (!ul) {
-				Alert("parsing [%s:%d] : unable to find userlist '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line, arg->data.str.str,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : unable to find userlist '%s' referenced in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line, arg->data.str.str,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				break;
 			}
@@ -1298,18 +1298,18 @@
 
 		case ARGT_REG:
 			if (!arg->data.str.len) {
-				Alert("parsing [%s:%d] : missing regex in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : missing regex in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				continue;
 			}
 
 			reg = calloc(1, sizeof(*reg));
 			if (!reg) {
-				Alert("parsing [%s:%d] : not enough memory to build regex in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
-				      cur->file, cur->line,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
+				ha_alert("parsing [%s:%d] : not enough memory to build regex in arg %d of %s%s%s%s '%s' %s proxy '%s'.\n",
+					 cur->file, cur->line,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id);
 				cfgerr++;
 				continue;
 			}
@@ -1319,10 +1319,10 @@
 			err = NULL;
 
 			if (!regex_comp(arg->data.str.str, reg, !(rflags & REG_ICASE), 1 /* capture substr */, &err)) {
-				Alert("parsing [%s:%d] : error in regex '%s' in arg %d of %s%s%s%s '%s' %s proxy '%s' : %s.\n",
-				      cur->file, cur->line,
-				      arg->data.str.str,
-				      cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id, err);
+				ha_alert("parsing [%s:%d] : error in regex '%s' in arg %d of %s%s%s%s '%s' %s proxy '%s' : %s.\n",
+					 cur->file, cur->line,
+					 arg->data.str.str,
+					 cur->arg_pos + 1, conv_pre, conv_ctx, conv_pos, ctx, cur->kw, where, p->id, err);
 				cfgerr++;
 				continue;
 			}
diff --git a/src/server.c b/src/server.c
index c712b88..62fc59e 100644
--- a/src/server.c
+++ b/src/server.c
@@ -146,9 +146,9 @@
 			continue;
 		if (tmpserv->cookie &&
 		    strcmp(tmpserv->cookie, s->cookie) == 0) {
-			Warning("We generated two equal cookies for two different servers.\n"
-			    "Please change the secret key for '%s'.\n",
-			    s->proxy->id);
+			ha_warning("We generated two equal cookies for two different servers.\n"
+				   "Please change the secret key for '%s'.\n",
+				   s->proxy->id);
 		}
 	}
 }
@@ -581,8 +581,8 @@
 
 	proto = protocol_by_family(sk->ss_family);
 	if (!proto || !proto->connect) {
-		Alert("'%s %s' : connect() not supported for this address family.\n",
-		      args[*cur_arg], args[*cur_arg + 1]);
+		ha_alert("'%s %s' : connect() not supported for this address family.\n",
+			 args[*cur_arg], args[*cur_arg + 1]);
 		goto err;
 	}
 
@@ -593,15 +593,15 @@
 		int i;
 
 		if (!port_low || !port_high) {
-			Alert("'%s' does not support port offsets (found '%s').\n",
-			      args[*cur_arg], args[*cur_arg + 1]);
+			ha_alert("'%s' does not support port offsets (found '%s').\n",
+				 args[*cur_arg], args[*cur_arg + 1]);
 			goto err;
 		}
 
 		if (port_low  <= 0 || port_low  > 65535 ||
 			port_high <= 0 || port_high > 65535 ||
 			port_low > port_high) {
-			Alert("'%s': invalid source port range %d-%d.\n", args[*cur_arg], port_low, port_high);
+			ha_alert("'%s': invalid source port range %d-%d.\n", args[*cur_arg], port_low, port_high);
 			goto err;
 		}
 		newsrv->conn_src.sport_range = port_range_alloc_range(port_high - port_low + 1);
@@ -614,8 +614,8 @@
 		if (!strcmp(args[*cur_arg], "usesrc")) {  /* address to use outside */
 #if defined(CONFIG_HAP_TRANSPARENT)
 			if (!*args[*cur_arg + 1]) {
-				Alert("'usesrc' expects <addr>[:<port>], 'client', 'clientip', "
-				      "or 'hdr_ip(name,#)' as argument.\n");
+				ha_alert("'usesrc' expects <addr>[:<port>], 'client', 'clientip', "
+					 "or 'hdr_ip(name,#)' as argument.\n");
 				goto err;
 			}
 			if (!strcmp(args[*cur_arg + 1], "client")) {
@@ -660,8 +660,8 @@
 				}
 
 				if (newsrv->conn_src.bind_hdr_occ < -MAX_HDR_HISTORY) {
-					Alert("usesrc hdr_ip(name,num) does not support negative"
-					      " occurrences values smaller than %d.\n", MAX_HDR_HISTORY);
+					ha_alert("usesrc hdr_ip(name,num) does not support negative"
+						 " occurrences values smaller than %d.\n", MAX_HDR_HISTORY);
 					goto err;
 				}
 			}
@@ -672,20 +672,20 @@
 				/* 'sk' is statically allocated (no need to be freed). */
 				sk = str2sa_range(args[*cur_arg + 1], NULL, &port1, &port2, &errmsg, NULL, NULL, 1);
 				if (!sk) {
-					Alert("'%s %s' : %s\n", args[*cur_arg], args[*cur_arg + 1], errmsg);
+					ha_alert("'%s %s' : %s\n", args[*cur_arg], args[*cur_arg + 1], errmsg);
 					goto err;
 				}
 
 				proto = protocol_by_family(sk->ss_family);
 				if (!proto || !proto->connect) {
-					Alert("'%s %s' : connect() not supported for this address family.\n",
-					      args[*cur_arg], args[*cur_arg + 1]);
+					ha_alert("'%s %s' : connect() not supported for this address family.\n",
+						 args[*cur_arg], args[*cur_arg + 1]);
 					goto err;
 				}
 
 				if (port1 != port2) {
-					Alert("'%s' : port ranges and offsets are not allowed in '%s'\n",
-					      args[*cur_arg], args[*cur_arg + 1]);
+					ha_alert("'%s' : port ranges and offsets are not allowed in '%s'\n",
+						 args[*cur_arg], args[*cur_arg + 1]);
 					goto err;
 				}
 				newsrv->conn_src.tproxy_addr = *sk;
@@ -695,7 +695,7 @@
 			*cur_arg += 2;
 			continue;
 #else	/* no TPROXY support */
-			Alert("'usesrc' not allowed here because support for TPROXY was not compiled in.\n");
+			ha_alert("'usesrc' not allowed here because support for TPROXY was not compiled in.\n");
 			goto err;
 #endif /* defined(CONFIG_HAP_TRANSPARENT) */
 		} /* "usesrc" */
@@ -703,7 +703,7 @@
 		if (!strcmp(args[*cur_arg], "interface")) { /* specifically bind to this interface */
 #ifdef SO_BINDTODEVICE
 			if (!*args[*cur_arg + 1]) {
-				Alert("'%s' : missing interface name.\n", args[0]);
+				ha_alert("'%s' : missing interface name.\n", args[0]);
 				goto err;
 			}
 			free(newsrv->conn_src.iface_name);
@@ -711,7 +711,7 @@
 			newsrv->conn_src.iface_len  = strlen(newsrv->conn_src.iface_name);
 			global.last_checks |= LSTCHK_NETADM;
 #else
-			Alert("'%s' : '%s' option not implemented.\n", args[0], args[*cur_arg]);
+			ha_alert("'%s' : '%s' option not implemented.\n", args[0], args[*cur_arg]);
 			goto err;
 #endif
 			*cur_arg += 2;
@@ -1294,11 +1294,11 @@
 {
 	if (err && *err) {
 		indent_msg(err, 2);
-		Alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], *err);
+		ha_alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], *err);
 	}
 	else
-		Alert("parsing [%s:%d] : '%s %s' : error encountered while processing '%s'.\n",
-		      file, linenum, args[0], args[1], args[cur_arg]);
+		ha_alert("parsing [%s:%d] : '%s %s' : error encountered while processing '%s'.\n",
+			 file, linenum, args[0], args[1], args[cur_arg]);
 }
 
 static void srv_conn_src_sport_range_cpy(struct server *srv,
@@ -1579,9 +1579,9 @@
 
 	r = (struct tcpcheck_rule *)srv->proxy->tcpcheck_rules.n;
 	if (!r) {
-		Alert("parsing [%s:%d] : server %s has neither service port nor check port. "
-			  "Check has been disabled.\n",
-			  file, linenum, srv->id);
+		ha_alert("parsing [%s:%d] : server %s has neither service port nor check port. "
+			 "Check has been disabled.\n",
+			 file, linenum, srv->id);
 		return -1;
 	}
 
@@ -1593,9 +1593,9 @@
 	}
 
 	if ((r->action != TCPCHK_ACT_CONNECT) || !r->port) {
-		Alert("parsing [%s:%d] : server %s has neither service port nor check port "
-			  "nor tcp_check rule 'connect' with port information. Check has been disabled.\n",
-			  file, linenum, srv->id);
+		ha_alert("parsing [%s:%d] : server %s has neither service port nor check port "
+			 "nor tcp_check rule 'connect' with port information. Check has been disabled.\n",
+			 file, linenum, srv->id);
 		return -1;
 	}
 
@@ -1603,9 +1603,9 @@
 	l = &srv->proxy->tcpcheck_rules;
 	list_for_each_entry(r, l, list) {
 		if ((r->action == TCPCHK_ACT_CONNECT) && (!r->port)) {
-			Alert("parsing [%s:%d] : server %s has neither service port nor check port, "
-				  "and a tcp_check rule 'connect' with no port information. Check has been disabled.\n",
-				  file, linenum, srv->id);
+			ha_alert("parsing [%s:%d] : server %s has neither service port nor check port, "
+				 "and a tcp_check rule 'connect' with no port information. Check has been disabled.\n",
+				 file, linenum, srv->id);
 			return -1;
 		}
 	}
@@ -1643,8 +1643,8 @@
 		return 0;
 
 	if (srv->trackit) {
-		Alert("parsing [%s:%d]: unable to enable checks and tracking at the same time!\n",
-			file, linenum);
+		ha_alert("parsing [%s:%d]: unable to enable checks and tracking at the same time!\n",
+			 file, linenum);
 		return ERR_ALERT | ERR_FATAL;
 	}
 
@@ -1654,7 +1654,7 @@
 	/* note: check type will be set during the config review phase */
 	ret = do_health_check_init(srv, 0, CHK_ST_CONFIGURED | CHK_ST_ENABLED);
 	if (ret) {
-		Alert("parsing [%s:%d] : %s.\n", file, linenum, ret);
+		ha_alert("parsing [%s:%d] : %s.\n", file, linenum, ret);
 		return ERR_ALERT | ERR_ABORT;
 	}
 
@@ -1694,14 +1694,14 @@
 		return 0;
 
 	if (!srv->agent.port) {
-		Alert("parsing [%s:%d] : server %s does not have agent port. Agent check has been disabled.\n",
+		ha_alert("parsing [%s:%d] : server %s does not have agent port. Agent check has been disabled.\n",
 			  file, linenum, srv->id);
 		return ERR_ALERT | ERR_FATAL;
 	}
 
 	ret = do_server_agent_check_init(srv, CHK_ST_CONFIGURED | CHK_ST_ENABLED | CHK_ST_AGENT);
 	if (ret) {
-		Alert("parsing [%s:%d] : %s.\n", file, linenum, ret);
+		ha_alert("parsing [%s:%d] : %s.\n", file, linenum, ret);
 		return ERR_ALERT | ERR_ABORT;
 	}
 
@@ -1876,7 +1876,7 @@
 		int tmpl_range_low = 0, tmpl_range_high = 0;
 
 		if (!defsrv && curproxy == defproxy) {
-			Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
+			ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1887,7 +1887,7 @@
 		if (srv) {
 			if (!*args[2]) {
 				/* 'server' line number of argument check. */
-				Alert("parsing [%s:%d] : '%s' expects <name> and <addr>[:<port>] as arguments.\n",
+				ha_alert("parsing [%s:%d] : '%s' expects <name> and <addr>[:<port>] as arguments.\n",
 					  file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
@@ -1898,7 +1898,7 @@
 		else if (srv_tmpl) {
 			if (!*args[3]) {
 				/* 'server-template' line number of argument check. */
-				Alert("parsing [%s:%d] : '%s' expects <prefix> <nb | range> <addr>[:<port>] as arguments.\n",
+				ha_alert("parsing [%s:%d] : '%s' expects <prefix> <nb | range> <addr>[:<port>] as arguments.\n",
 					  file, linenum, args[0]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
@@ -1908,7 +1908,7 @@
 		}
 
 		if (err) {
-			Alert("parsing [%s:%d] : character '%c' is not permitted in %s %s '%s'.\n",
+			ha_alert("parsing [%s:%d] : character '%c' is not permitted in %s %s '%s'.\n",
 			      file, linenum, *err, args[0], srv ? "name" : "prefix", args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
@@ -1918,7 +1918,7 @@
 		if (srv_tmpl) {
 			/* Parse server-template <nb | range> arg. */
 			if (srv_tmpl_parse_range(newsrv, args[cur_arg], &tmpl_range_low, &tmpl_range_high) < 0) {
-				Alert("parsing [%s:%d] : Wrong %s number or range arg '%s'.\n",
+				ha_alert("parsing [%s:%d] : Wrong %s number or range arg '%s'.\n",
 					  file, linenum, args[0], args[cur_arg]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
@@ -1933,7 +1933,7 @@
 
 			newsrv = new_server(curproxy);
 			if (!newsrv) {
-				Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+				ha_alert("parsing [%s:%d] : out of memory.\n", file, linenum);
 				err_code |= ERR_ALERT | ERR_ABORT;
 				goto out;
 			}
@@ -1966,14 +1966,14 @@
 			 */
 			sk = str2sa_range(args[cur_arg], &port, &port1, &port2, &errmsg, NULL, &fqdn, 0);
 			if (!sk) {
-				Alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
+				ha_alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
 			}
 
 			proto = protocol_by_family(sk->ss_family);
 			if (!fqdn && (!proto || !proto->connect)) {
-				Alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
+				ha_alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
 				      file, linenum, args[0], args[1]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
@@ -1985,7 +1985,7 @@
 			}
 			else if (port1 != port2) {
 				/* port range */
-				Alert("parsing [%s:%d] : '%s %s' : port ranges are not allowed in '%s'\n",
+				ha_alert("parsing [%s:%d] : '%s %s' : port ranges are not allowed in '%s'\n",
 				      file, linenum, args[0], args[1], args[2]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
@@ -2003,7 +2003,7 @@
 					}
 				}
 				else if (srv_prepare_for_resolution(newsrv, fqdn) == -1) {
-					Alert("parsing [%s:%d] : Can't create DNS resolution for server '%s'\n",
+					ha_alert("parsing [%s:%d] : Can't create DNS resolution for server '%s'\n",
 					      file, linenum, newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2014,7 +2014,7 @@
 			newsrv->svc_port = port;
 
 			if (!newsrv->srvrq && !newsrv->hostname && !protocol_by_family(newsrv->addr.ss_family)) {
-				Alert("parsing [%s:%d] : Unknown protocol family %d '%s'\n",
+				ha_alert("parsing [%s:%d] : Unknown protocol family %d '%s'\n",
 				      file, linenum, newsrv->addr.ss_family, args[cur_arg]);
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
@@ -2034,13 +2034,13 @@
 			if (!strcmp(args[cur_arg], "agent-inter")) {
 				const char *err = parse_time_err(args[cur_arg + 1], &val, TIME_UNIT_MS);
 				if (err) {
-					Alert("parsing [%s:%d] : unexpected character '%c' in 'agent-inter' argument of server %s.\n",
+					ha_alert("parsing [%s:%d] : unexpected character '%c' in 'agent-inter' argument of server %s.\n",
 					      file, linenum, *err, newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 				if (val <= 0) {
-					Alert("parsing [%s:%d]: invalid value %d for argument '%s' of server %s.\n",
+					ha_alert("parsing [%s:%d]: invalid value %d for argument '%s' of server %s.\n",
 					      file, linenum, val, args[cur_arg], newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2050,7 +2050,7 @@
 			}
 			else if (!strcmp(args[cur_arg], "agent-addr")) {
 				if(str2ip(args[cur_arg + 1], &newsrv->agent.addr) == NULL) {
-					Alert("parsing agent-addr failed. Check if %s is correct address.\n", args[cur_arg + 1]);
+					ha_alert("parsing agent-addr failed. Check if %s is correct address.\n", args[cur_arg + 1]);
 					goto out;
 				}
 
@@ -2095,7 +2095,7 @@
 					}
 					else if (str2ip2(p, &sa, 0)) {
 						if (is_addr(&newsrv->init_addr)) {
-							Alert("parsing [%s:%d]: '%s' : initial address already specified, cannot add '%s'.\n",
+							ha_alert("parsing [%s:%d]: '%s' : initial address already specified, cannot add '%s'.\n",
 							      file, linenum, args[cur_arg], p);
 							err_code |= ERR_ALERT | ERR_FATAL;
 							goto out;
@@ -2104,13 +2104,13 @@
 						done = srv_append_initaddr(&newsrv->init_addr_methods, SRV_IADDR_IP);
 					}
 					else {
-						Alert("parsing [%s:%d]: '%s' : unknown init-addr method '%s', supported methods are 'libc', 'last', 'none'.\n",
+						ha_alert("parsing [%s:%d]: '%s' : unknown init-addr method '%s', supported methods are 'libc', 'last', 'none'.\n",
 							file, linenum, args[cur_arg], p);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
 					}
 					if (!done) {
-						Alert("parsing [%s:%d]: '%s' : too many init-addr methods when trying to add '%s'\n",
+						ha_alert("parsing [%s:%d]: '%s' : too many init-addr methods when trying to add '%s'\n",
 							file, linenum, args[cur_arg], p);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
@@ -2129,7 +2129,7 @@
 				else if (!strcmp(args[cur_arg + 1], "ipv6"))
 					newsrv->dns_opts.family_prio = AF_INET6;
 				else {
-					Alert("parsing [%s:%d]: '%s' expects either ipv4 or ipv6 as argument.\n",
+					ha_alert("parsing [%s:%d]: '%s' expects either ipv4 or ipv6 as argument.\n",
 						file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2142,7 +2142,7 @@
 				struct dns_options *opt;
 
 				if (!args[cur_arg + 1] || args[cur_arg + 1][0] == '\0') {
-					Alert("parsing [%s:%d]: '%s' expects a list of networks.\n",
+					ha_alert("parsing [%s:%d]: '%s' expects a list of networks.\n",
 					      file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2158,7 +2158,7 @@
 				while (*p != '\0') {
 					/* If no room avalaible, return error. */
 					if (opt->pref_net_nb >= SRV_MAX_PREF_NET) {
-						Alert("parsing [%s:%d]: '%s' exceed %d networks.\n",
+						ha_alert("parsing [%s:%d]: '%s' exceed %d networks.\n",
 						      file, linenum, args[cur_arg], SRV_MAX_PREF_NET);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
@@ -2181,7 +2181,7 @@
 						opt->pref_net[opt->pref_net_nb].family = AF_INET6;
 					} else {
 						/* All network conversions fail, retrun error. */
-						Alert("parsing [%s:%d]: '%s': invalid network '%s'.\n",
+						ha_alert("parsing [%s:%d]: '%s': invalid network '%s'.\n",
 						      file, linenum, args[cur_arg], p);
 						err_code |= ERR_ALERT | ERR_FATAL;
 						goto out;
@@ -2194,7 +2194,7 @@
 			}
 			else if (!strcmp(args[cur_arg], "rise")) {
 				if (!*args[cur_arg + 1]) {
-					Alert("parsing [%s:%d]: '%s' expects an integer argument.\n",
+					ha_alert("parsing [%s:%d]: '%s' expects an integer argument.\n",
 						file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2202,7 +2202,7 @@
 
 				newsrv->check.rise = atol(args[cur_arg + 1]);
 				if (newsrv->check.rise <= 0) {
-					Alert("parsing [%s:%d]: '%s' has to be > 0.\n",
+					ha_alert("parsing [%s:%d]: '%s' has to be > 0.\n",
 						file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2216,14 +2216,14 @@
 				newsrv->check.fall = atol(args[cur_arg + 1]);
 
 				if (!*args[cur_arg + 1]) {
-					Alert("parsing [%s:%d]: '%s' expects an integer argument.\n",
+					ha_alert("parsing [%s:%d]: '%s' expects an integer argument.\n",
 						file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 
 				if (newsrv->check.fall <= 0) {
-					Alert("parsing [%s:%d]: '%s' has to be > 0.\n",
+					ha_alert("parsing [%s:%d]: '%s' has to be > 0.\n",
 						file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2234,13 +2234,13 @@
 			else if (!strcmp(args[cur_arg], "inter")) {
 				const char *err = parse_time_err(args[cur_arg + 1], &val, TIME_UNIT_MS);
 				if (err) {
-					Alert("parsing [%s:%d] : unexpected character '%c' in 'inter' argument of server %s.\n",
+					ha_alert("parsing [%s:%d] : unexpected character '%c' in 'inter' argument of server %s.\n",
 					      file, linenum, *err, newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 				if (val <= 0) {
-					Alert("parsing [%s:%d]: invalid value %d for argument '%s' of server %s.\n",
+					ha_alert("parsing [%s:%d]: invalid value %d for argument '%s' of server %s.\n",
 					      file, linenum, val, args[cur_arg], newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2251,13 +2251,13 @@
 			else if (!strcmp(args[cur_arg], "fastinter")) {
 				const char *err = parse_time_err(args[cur_arg + 1], &val, TIME_UNIT_MS);
 				if (err) {
-					Alert("parsing [%s:%d]: unexpected character '%c' in 'fastinter' argument of server %s.\n",
+					ha_alert("parsing [%s:%d]: unexpected character '%c' in 'fastinter' argument of server %s.\n",
 					      file, linenum, *err, newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 				if (val <= 0) {
-					Alert("parsing [%s:%d]: invalid value %d for argument '%s' of server %s.\n",
+					ha_alert("parsing [%s:%d]: invalid value %d for argument '%s' of server %s.\n",
 					      file, linenum, val, args[cur_arg], newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2268,13 +2268,13 @@
 			else if (!strcmp(args[cur_arg], "downinter")) {
 				const char *err = parse_time_err(args[cur_arg + 1], &val, TIME_UNIT_MS);
 				if (err) {
-					Alert("parsing [%s:%d]: unexpected character '%c' in 'downinter' argument of server %s.\n",
+					ha_alert("parsing [%s:%d]: unexpected character '%c' in 'downinter' argument of server %s.\n",
 					      file, linenum, *err, newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
 				}
 				if (val <= 0) {
-					Alert("parsing [%s:%d]: invalid value %d for argument '%s' of server %s.\n",
+					ha_alert("parsing [%s:%d]: invalid value %d for argument '%s' of server %s.\n",
 					      file, linenum, val, args[cur_arg], newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2291,7 +2291,7 @@
 				int w;
 				w = atol(args[cur_arg + 1]);
 				if (w < 0 || w > SRV_UWGHT_MAX) {
-					Alert("parsing [%s:%d] : weight of server %s is not within 0 and %d (%d).\n",
+					ha_alert("parsing [%s:%d] : weight of server %s is not within 0 and %d (%d).\n",
 					      file, linenum, newsrv->id, SRV_UWGHT_MAX, w);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2315,7 +2315,7 @@
 				/* slowstart is stored in seconds */
 				const char *err = parse_time_err(args[cur_arg + 1], &val, TIME_UNIT_MS);
 				if (err) {
-					Alert("parsing [%s:%d] : unexpected character '%c' in 'slowstart' argument of server %s.\n",
+					ha_alert("parsing [%s:%d] : unexpected character '%c' in 'slowstart' argument of server %s.\n",
 					      file, linenum, *err, newsrv->id);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2333,7 +2333,7 @@
 				else if (!strcmp(args[cur_arg + 1], "mark-down"))
 					newsrv->onerror = HANA_ONERR_MARKDWN;
 				else {
-					Alert("parsing [%s:%d]: '%s' expects one of 'fastinter', "
+					ha_alert("parsing [%s:%d]: '%s' expects one of 'fastinter', "
 						"'fail-check', 'sudden-death' or 'mark-down' but got '%s'\n",
 						file, linenum, args[cur_arg], args[cur_arg + 1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
@@ -2346,7 +2346,7 @@
 				if (!strcmp(args[cur_arg + 1], "shutdown-sessions"))
 					newsrv->onmarkeddown = HANA_ONMARKEDDOWN_SHUTDOWNSESSIONS;
 				else {
-					Alert("parsing [%s:%d]: '%s' expects 'shutdown-sessions' but got '%s'\n",
+					ha_alert("parsing [%s:%d]: '%s' expects 'shutdown-sessions' but got '%s'\n",
 						file, linenum, args[cur_arg], args[cur_arg + 1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2358,7 +2358,7 @@
 				if (!strcmp(args[cur_arg + 1], "shutdown-backup-sessions"))
 					newsrv->onmarkedup = HANA_ONMARKEDUP_SHUTDOWNBACKUPSESSIONS;
 				else {
-					Alert("parsing [%s:%d]: '%s' expects 'shutdown-backup-sessions' but got '%s'\n",
+					ha_alert("parsing [%s:%d]: '%s' expects 'shutdown-backup-sessions' but got '%s'\n",
 						file, linenum, args[cur_arg], args[cur_arg + 1]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2368,7 +2368,7 @@
 			}
 			else if (!strcmp(args[cur_arg], "error-limit")) {
 				if (!*args[cur_arg + 1]) {
-					Alert("parsing [%s:%d]: '%s' expects an integer argument.\n",
+					ha_alert("parsing [%s:%d]: '%s' expects an integer argument.\n",
 						file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2377,7 +2377,7 @@
 				newsrv->consecutive_errors_limit = atoi(args[cur_arg + 1]);
 
 				if (newsrv->consecutive_errors_limit <= 0) {
-					Alert("parsing [%s:%d]: %s has to be > 0.\n",
+					ha_alert("parsing [%s:%d]: %s has to be > 0.\n",
 						file, linenum, args[cur_arg]);
 					err_code |= ERR_ALERT | ERR_FATAL;
 					goto out;
@@ -2385,7 +2385,7 @@
 				cur_arg += 2;
 			}
 			else if (!strcmp(args[cur_arg], "usesrc")) {  /* address to use outside: needs "source" first */
-				Alert("parsing [%s:%d] : '%s' only allowed after a '%s' statement.\n",
+				ha_alert("parsing [%s:%d] : '%s' only allowed after a '%s' statement.\n",
 				      file, linenum, "usesrc", "source");
 				err_code |= ERR_ALERT | ERR_FATAL;
 				goto out;
@@ -2401,7 +2401,7 @@
 					int code;
 
 					if (!kw->parse) {
-						Alert("parsing [%s:%d] : '%s %s' : '%s' option is not implemented in this version (check build options).\n",
+						ha_alert("parsing [%s:%d] : '%s %s' : '%s' option is not implemented in this version (check build options).\n",
 						      file, linenum, args[0], args[1], args[cur_arg]);
 						if (kw->skip != -1)
 							cur_arg += 1 + kw->skip ;
@@ -2410,7 +2410,7 @@
 					}
 
 					if (defsrv && !kw->default_ok) {
-						Alert("parsing [%s:%d] : '%s %s' : '%s' option is not accepted in default-server sections.\n",
+						ha_alert("parsing [%s:%d] : '%s %s' : '%s' option is not accepted in default-server sections.\n",
 						      file, linenum, args[0], args[1], args[cur_arg]);
 						if (kw->skip != -1)
 							cur_arg += 1 + kw->skip ;
@@ -2443,7 +2443,7 @@
 					srv_dumped = 1;
 				}
 
-				Alert("parsing [%s:%d] : '%s %s' unknown keyword '%s'.%s%s\n",
+				ha_alert("parsing [%s:%d] : '%s %s' unknown keyword '%s'.%s%s\n",
 				      file, linenum, args[0], args[1], args[cur_arg],
 				      err ? " Registered keywords :" : "", err ? err : "");
 				free(err);
@@ -2923,8 +2923,8 @@
  out:
 	if (msg->len) {
 		chunk_appendf(msg, "\n");
-		Warning("server-state application failed for server '%s/%s'%s",
-		        srv->proxy->id, srv->id, msg->str);
+		ha_warning("server-state application failed for server '%s/%s'%s",
+			   srv->proxy->id, srv->id, msg->str);
 	}
 }
 
@@ -3084,7 +3084,7 @@
 		errno = 0;
 		f = fopen(filepath, "r");
 		if (errno && fileopenerr)
-			Warning("Can't open server state file '%s': %s\n", filepath, strerror(errno));
+			ha_warning("Can't open server state file '%s': %s\n", filepath, strerror(errno));
 		if (!f)
 			continue;
 
@@ -3094,7 +3094,7 @@
 
 		/* first character of first line of the file must contain the version of the export */
 		if (fgets(mybuf, SRV_STATE_LINE_MAXLEN, f) == NULL) {
-			Warning("Can't read first line of the server state file '%s'\n", filepath);
+			ha_warning("Can't read first line of the server state file '%s'\n", filepath);
 			goto fileclose;
 		}
 
@@ -3130,7 +3130,7 @@
 
 			/* truncated lines */
 			if (mybuf[mybuflen - 1] != '\n') {
-				Warning("server-state file '%s': truncated line\n", filepath);
+				ha_warning("server-state file '%s': truncated line\n", filepath);
 				continue;
 			}
 
@@ -3200,11 +3200,11 @@
 			if (!check_id && !check_name)
 				continue;
 			else if (!check_id && check_name) {
-				Warning("backend ID mismatch: from server state file: '%s', from running config '%d'\n", params[0], bk->uuid);
+				ha_warning("backend ID mismatch: from server state file: '%s', from running config '%d'\n", params[0], bk->uuid);
 				send_log(bk, LOG_NOTICE, "backend ID mismatch: from server state file: '%s', from running config '%d'\n", params[0], bk->uuid);
 			}
 			else if (check_id && !check_name) {
-				Warning("backend name mismatch: from server state file: '%s', from running config '%s'\n", params[1], bk->id);
+				ha_warning("backend name mismatch: from server state file: '%s', from running config '%s'\n", params[1], bk->id);
 				send_log(bk, LOG_NOTICE, "backend name mismatch: from server state file: '%s', from running config '%s'\n", params[1], bk->id);
 				/* if name doesn't match, we still want to update curproxy if the backend id
 				 * was forced in previous the previous configuration */
@@ -3219,19 +3219,19 @@
 
 			if (!srv) {
 				/* if no server found, then warning and continue with next line */
-				Warning("can't find server '%s' with id '%s' in backend with id '%s' or name '%s'\n",
-					params[3], params[2], params[0], params[1]);
+				ha_warning("can't find server '%s' with id '%s' in backend with id '%s' or name '%s'\n",
+					   params[3], params[2], params[0], params[1]);
 				send_log(bk, LOG_NOTICE, "can't find server '%s' with id '%s' in backend with id '%s' or name '%s'\n",
 					 params[3], params[2], params[0], params[1]);
 				continue;
 			}
 			else if (diff & PR_FBM_MISMATCH_ID) {
-				Warning("In backend '%s' (id: '%d'): server ID mismatch: from server state file: '%s', from running config %d\n", bk->id, bk->uuid, params[2], srv->puid);
+				ha_warning("In backend '%s' (id: '%d'): server ID mismatch: from server state file: '%s', from running config %d\n", bk->id, bk->uuid, params[2], srv->puid);
 				send_log(bk, LOG_NOTICE, "In backend '%s' (id: %d): server ID mismatch: from server state file: '%s', from running config %d\n", bk->id, bk->uuid, params[2], srv->puid);
 				continue;
 			}
 			else if (diff & PR_FBM_MISMATCH_NAME) {
-				Warning("In backend '%s' (id: %d): server name mismatch: from server state file: '%s', from running config '%s'\n", bk->id, bk->uuid, params[3], srv->id);
+				ha_warning("In backend '%s' (id: %d): server name mismatch: from server state file: '%s', from running config '%s'\n", bk->id, bk->uuid, params[3], srv->id);
 				send_log(bk, LOG_NOTICE, "In backend '%s' (id: %d): server name mismatch: from server state file: '%s', from running config '%s'\n", bk->id, bk->uuid, params[3], srv->id);
 				continue;
 			}
@@ -3289,7 +3289,7 @@
 				s->proxy->id, s->id, oldip, newip, updater);
 
 		/* write the buffer on stderr */
-		Warning("%s.\n", trash.str);
+		ha_warning("%s.\n", trash.str);
 
 		/* send a log */
 		send_log(s->proxy, LOG_NOTICE, "%s.\n", trash.str);
@@ -3519,7 +3519,7 @@
 			chunk_printf(&trash, "Server %s/%s administratively READY thanks to valid DNS answer",
 			             s->proxy->id, s->id);
 
-			Warning("%s.\n", trash.str);
+			ha_warning("%s.\n", trash.str);
 			send_log(s->proxy, LOG_NOTICE, "%s.\n", trash.str);
 			return 0;
 
@@ -3885,16 +3885,16 @@
 		case SRV_IADDR_NONE:
 			srv_set_admin_flag(srv, SRV_ADMF_RMAINT, NULL);
 			if (return_code) {
-				Warning("parsing [%s:%d] : 'server %s' : could not resolve address '%s', disabling server.\n",
-					srv->conf.file, srv->conf.line, srv->id, srv->hostname);
+				ha_warning("parsing [%s:%d] : 'server %s' : could not resolve address '%s', disabling server.\n",
+					   srv->conf.file, srv->conf.line, srv->id, srv->hostname);
 			}
 			return return_code;
 
 		case SRV_IADDR_IP:
 			ipcpy(&srv->init_addr, &srv->addr);
 			if (return_code) {
-				Warning("parsing [%s:%d] : 'server %s' : could not resolve address '%s', falling back to configured address.\n",
-					srv->conf.file, srv->conf.line, srv->id, srv->hostname);
+				ha_warning("parsing [%s:%d] : 'server %s' : could not resolve address '%s', falling back to configured address.\n",
+					   srv->conf.file, srv->conf.line, srv->id, srv->hostname);
 			}
 			goto out;
 
@@ -3904,11 +3904,11 @@
 	}
 
 	if (!return_code) {
-		Alert("parsing [%s:%d] : 'server %s' : no method found to resolve address '%s'\n",
+		ha_alert("parsing [%s:%d] : 'server %s' : no method found to resolve address '%s'\n",
 		      srv->conf.file, srv->conf.line, srv->id, srv->hostname);
 	}
 	else {
-		Alert("parsing [%s:%d] : 'server %s' : could not resolve address '%s'.\n",
+		ha_alert("parsing [%s:%d] : 'server %s' : could not resolve address '%s'.\n",
 		      srv->conf.file, srv->conf.line, srv->id, srv->hostname);
 	}
 
@@ -4472,7 +4472,7 @@
 				             s->proxy->id, s->id);
 
 				srv_append_status(tmptrash, s, NULL, xferred, 0);
-				Warning("%s.\n", tmptrash->str);
+				ha_warning("%s.\n", tmptrash->str);
 
 				/* we don't send an alert if the server was previously paused */
 				log_level = srv_was_stopping ? LOG_NOTICE : LOG_ALERT;
@@ -4505,7 +4505,7 @@
 
 				srv_append_status(tmptrash, s, NULL, xferred, 0);
 
-				Warning("%s.\n", tmptrash->str);
+				ha_warning("%s.\n", tmptrash->str);
 				send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 				free_trash_chunk(tmptrash);
 				tmptrash = NULL;
@@ -4563,7 +4563,7 @@
 				             s->proxy->id, s->id);
 
 				srv_append_status(tmptrash, s, NULL, xferred, 0);
-				Warning("%s.\n", tmptrash->str);
+				ha_warning("%s.\n", tmptrash->str);
 				send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 				send_email_alert(s, LOG_NOTICE, "%s", tmptrash->str);
 				free_trash_chunk(tmptrash);
@@ -4618,7 +4618,7 @@
 				srv_append_status(tmptrash, s, NULL, -1, (s->next_admin & SRV_ADMF_FMAINT));
 
 				if (!(global.mode & MODE_STARTING)) {
-					Warning("%s.\n", tmptrash->str);
+					ha_warning("%s.\n", tmptrash->str);
 					send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 				}
 				free_trash_chunk(tmptrash);
@@ -4652,7 +4652,7 @@
 				srv_append_status(tmptrash, s, NULL, xferred, (s->next_admin & SRV_ADMF_FMAINT));
 
 				if (!(global.mode & MODE_STARTING)) {
-					Warning("%s.\n", tmptrash->str);
+					ha_warning("%s.\n", tmptrash->str);
 					send_log(s->proxy, srv_was_stopping ? LOG_NOTICE : LOG_ALERT, "%s.\n", tmptrash->str);
 				}
 				free_trash_chunk(tmptrash);
@@ -4728,7 +4728,7 @@
 					     (s->next_state == SRV_ST_STOPPED) ? "DOWN" : "UP",
 					     (s->next_admin & SRV_ADMF_DRAIN) ? "DRAIN" : "READY");
 			}
-			Warning("%s.\n", tmptrash->str);
+			ha_warning("%s.\n", tmptrash->str);
 			send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 			free_trash_chunk(tmptrash);
 			tmptrash = NULL;
@@ -4766,7 +4766,7 @@
 				if (s->track) /* normally it's mandatory here */
 					chunk_appendf(tmptrash, " via %s/%s",
 				              s->track->proxy->id, s->track->id);
-				Warning("%s.\n", tmptrash->str);
+				ha_warning("%s.\n", tmptrash->str);
 				send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 				free_trash_chunk(tmptrash);
 				tmptrash = NULL;
@@ -4783,7 +4783,7 @@
 				if (s->track) /* normally it's mandatory here */
 					chunk_appendf(tmptrash, " via %s/%s",
 				              s->track->proxy->id, s->track->id);
-				Warning("%s.\n", tmptrash->str);
+				ha_warning("%s.\n", tmptrash->str);
 				send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 				free_trash_chunk(tmptrash);
 				tmptrash = NULL;
@@ -4796,7 +4796,7 @@
 				             "%sServer %s/%s remains in forced maintenance",
 				             s->flags & SRV_F_BACKUP ? "Backup " : "",
 				             s->proxy->id, s->id);
-				Warning("%s.\n", tmptrash->str);
+				ha_warning("%s.\n", tmptrash->str);
 				send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 				free_trash_chunk(tmptrash);
 				tmptrash = NULL;
@@ -4830,7 +4830,7 @@
 				srv_append_status(tmptrash, s, NULL, xferred, (s->next_admin & SRV_ADMF_FDRAIN));
 
 				if (!(global.mode & MODE_STARTING)) {
-					Warning("%s.\n", tmptrash->str);
+					ha_warning("%s.\n", tmptrash->str);
 					send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 					send_email_alert(s, LOG_NOTICE, "%s", tmptrash->str);
 				}
@@ -4874,7 +4874,7 @@
 					s->track->proxy->id, s->track->id);
 				}
 
-				Warning("%s.\n", tmptrash->str);
+				ha_warning("%s.\n", tmptrash->str);
 				send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 				free_trash_chunk(tmptrash);
 				tmptrash = NULL;
@@ -4913,7 +4913,7 @@
 					             s->flags & SRV_F_BACKUP ? "Backup " : "",
 					             s->proxy->id, s->id);
 				}
-				Warning("%s.\n", tmptrash->str);
+				ha_warning("%s.\n", tmptrash->str);
 				send_log(s->proxy, LOG_NOTICE, "%s.\n", tmptrash->str);
 				free_trash_chunk(tmptrash);
 				tmptrash = NULL;
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index f7e4159..54c8a7f 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -393,18 +393,18 @@
 	/* grab the structural reference to the engine */
 	engine = ENGINE_by_id(engine_id);
 	if (engine  == NULL) {
-		Alert("ssl-engine %s: failed to get structural reference\n", engine_id);
+		ha_alert("ssl-engine %s: failed to get structural reference\n", engine_id);
 		goto fail_get;
 	}
 
 	if (!ENGINE_init(engine)) {
 		/* the engine couldn't initialise, release it */
-		Alert("ssl-engine %s: failed to initialize\n", engine_id);
+		ha_alert("ssl-engine %s: failed to initialize\n", engine_id);
 		goto fail_init;
 	}
 
 	if (ENGINE_set_default_string(engine, def_algorithms) == 0) {
-		Alert("ssl-engine %s: failed on ENGINE_set_default_string\n", engine_id);
+		ha_alert("ssl-engine %s: failed on ENGINE_set_default_string\n", engine_id);
 		goto fail_set_method;
 	}
 
@@ -1169,7 +1169,7 @@
 	warn = NULL;
 	if (ssl_sock_load_ocsp_response_from_file(ocsp_path, iocsp, cid, &warn)) {
 		memprintf(&warn, "Loading '%s': %s. Content will be ignored", ocsp_path, warn ? warn : "failure");
-		Warning("%s.\n", warn);
+		ha_warning("%s.\n", warn);
 	}
 
 out:
@@ -1210,7 +1210,7 @@
 
 	fd = open(ocsp_path, O_RDONLY);
 	if (fd == -1) {
-		Warning("Error opening OCSP response file %s.\n", ocsp_path);
+		ha_warning("Error opening OCSP response file %s.\n", ocsp_path);
 		return -1;
 	}
 
@@ -1220,7 +1220,7 @@
 		if (r < 0) {
 			if (errno == EINTR)
 				continue;
-			Warning("Error reading OCSP response from file %s.\n", ocsp_path);
+			ha_warning("Error reading OCSP response from file %s.\n", ocsp_path);
 			close(fd);
 			return -1;
 		}
@@ -3698,9 +3698,9 @@
 	bind_conf->initial_ctx = ctx;
 
 	if (conf_ssl_methods->flags && (conf_ssl_methods->min || conf_ssl_methods->max))
-		Warning("Proxy '%s': no-sslv3/no-tlsv1x are ignored for bind '%s' at [%s:%d]. "
-			"Use only 'ssl-min-ver' and 'ssl-max-ver' to fix.\n",
-			bind_conf->frontend->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+		ha_warning("Proxy '%s': no-sslv3/no-tlsv1x are ignored for bind '%s' at [%s:%d]. "
+			   "Use only 'ssl-min-ver' and 'ssl-max-ver' to fix.\n",
+			   bind_conf->frontend->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 	else
 		flags = conf_ssl_methods->flags;
 
@@ -3722,10 +3722,10 @@
 		if (methodVersions[i].option && !(flags & methodVersions[i].flag)) {
 			if (min) {
 				if (hole) {
-					Warning("Proxy '%s': SSL/TLS versions range not contiguous for bind '%s' at [%s:%d]. "
-						"Hole find for %s. Use only 'ssl-min-ver' and 'ssl-max-ver' to fix.\n",
-						bind_conf->frontend->id, bind_conf->arg, bind_conf->file, bind_conf->line,
-						methodVersions[hole].name);
+					ha_warning("Proxy '%s': SSL/TLS versions range not contiguous for bind '%s' at [%s:%d]. "
+						   "Hole find for %s. Use only 'ssl-min-ver' and 'ssl-max-ver' to fix.\n",
+						   bind_conf->frontend->id, bind_conf->arg, bind_conf->file, bind_conf->line,
+						   methodVersions[hole].name);
 					hole = 0;
 				}
 				max = i;
@@ -3739,8 +3739,8 @@
 				hole = i;
 		}
 	if (!min) {
-		Alert("Proxy '%s': all SSL/TLS versions are disabled for bind '%s' at [%s:%d].\n",
-			bind_conf->frontend->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+		ha_alert("Proxy '%s': all SSL/TLS versions are disabled for bind '%s' at [%s:%d].\n",
+			 bind_conf->frontend->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 		cfgerr += 1;
 	}
 	/* save real min/max in bind_conf */
@@ -4068,8 +4068,8 @@
 		conf_ssl_methods->min = min;
 		conf_ssl_methods->max = max;
 		if (!min) {
-			Alert("Proxy '%s': all SSL/TLS versions are disabled for bind '%s' at [%s:%d].\n",
-			      bind_conf->frontend->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+			ha_alert("Proxy '%s': all SSL/TLS versions are disabled for bind '%s' at [%s:%d].\n",
+				 bind_conf->frontend->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 			cfgerr += 1;
 		}
 	}
@@ -4092,8 +4092,8 @@
 		if (ca_file) {
 			/* load CAfile to verify */
 			if (!SSL_CTX_load_verify_locations(ctx, ca_file, NULL)) {
-				Alert("Proxy '%s': unable to load CA file '%s' for bind '%s' at [%s:%d].\n",
-				      curproxy->id, ca_file, bind_conf->arg, bind_conf->file, bind_conf->line);
+				ha_alert("Proxy '%s': unable to load CA file '%s' for bind '%s' at [%s:%d].\n",
+					 curproxy->id, ca_file, bind_conf->arg, bind_conf->file, bind_conf->line);
 				cfgerr++;
 			}
 			if (!((ssl_conf && ssl_conf->no_ca_names) || bind_conf->ssl_conf.no_ca_names)) {
@@ -4102,8 +4102,8 @@
 			}
 		}
 		else {
-			Alert("Proxy '%s': verify is enabled but no CA file specified for bind '%s' at [%s:%d].\n",
-			      curproxy->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+			ha_alert("Proxy '%s': verify is enabled but no CA file specified for bind '%s' at [%s:%d].\n",
+				 curproxy->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 			cfgerr++;
 		}
 #ifdef X509_V_FLAG_CRL_CHECK
@@ -4111,8 +4111,8 @@
 			X509_STORE *store = SSL_CTX_get_cert_store(ctx);
 
 			if (!store || !X509_STORE_load_locations(store, crl_file, NULL)) {
-				Alert("Proxy '%s': unable to configure CRL file '%s' for bind '%s' at [%s:%d].\n",
-				      curproxy->id, crl_file, bind_conf->arg, bind_conf->file, bind_conf->line);
+				ha_alert("Proxy '%s': unable to configure CRL file '%s' for bind '%s' at [%s:%d].\n",
+					 curproxy->id, crl_file, bind_conf->arg, bind_conf->file, bind_conf->line);
 				cfgerr++;
 			}
 			else {
@@ -4125,8 +4125,8 @@
 #if (defined SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB && TLS_TICKETS_NO > 0)
 	if(bind_conf->keys_ref) {
 		if (!SSL_CTX_set_tlsext_ticket_key_cb(ctx, ssl_tlsext_ticket_key_cb)) {
-			Alert("Proxy '%s': unable to set callback for TLS ticket validation for bind '%s' at [%s:%d].\n",
-				curproxy->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+			ha_alert("Proxy '%s': unable to set callback for TLS ticket validation for bind '%s' at [%s:%d].\n",
+				 curproxy->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 			cfgerr++;
 		}
 	}
@@ -4136,8 +4136,8 @@
 	conf_ciphers = (ssl_conf && ssl_conf->ciphers) ? ssl_conf->ciphers : bind_conf->ssl_conf.ciphers;
 	if (conf_ciphers &&
 	    !SSL_CTX_set_cipher_list(ctx, conf_ciphers)) {
-		Alert("Proxy '%s': unable to set SSL cipher list to '%s' for bind '%s' at [%s:%d].\n",
-		curproxy->id, conf_ciphers, bind_conf->arg, bind_conf->file, bind_conf->line);
+		ha_alert("Proxy '%s': unable to set SSL cipher list to '%s' for bind '%s' at [%s:%d].\n",
+			 curproxy->id, conf_ciphers, bind_conf->arg, bind_conf->file, bind_conf->line);
 		cfgerr++;
 	}
 
@@ -4183,7 +4183,7 @@
 		}
 
 		if (dhe_found) {
-			Warning("Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048. Please set a value >= 1024 to make this warning disappear.\n");
+			ha_warning("Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048. Please set a value >= 1024 to make this warning disappear.\n");
 		}
 
 		global_ssl.default_dh_param = 1024;
@@ -4233,8 +4233,8 @@
 	conf_curves = (ssl_conf && ssl_conf->curves) ? ssl_conf->curves : bind_conf->ssl_conf.curves;
 	if (conf_curves) {
 		if (!SSL_CTX_set1_curves_list(ctx, conf_curves)) {
-			Alert("Proxy '%s': unable to set SSL curves list to '%s' for bind '%s' at [%s:%d].\n",
-			      curproxy->id, conf_curves, bind_conf->arg, bind_conf->file, bind_conf->line);
+			ha_alert("Proxy '%s': unable to set SSL curves list to '%s' for bind '%s' at [%s:%d].\n",
+				 curproxy->id, conf_curves, bind_conf->arg, bind_conf->file, bind_conf->line);
 			cfgerr++;
 		}
 #if defined(SSL_CTX_set_ecdh_auto)
@@ -4263,8 +4263,8 @@
 
 		i = OBJ_sn2nid(ecdhe);
 		if (!i || ((ecdh = EC_KEY_new_by_curve_name(i)) == NULL)) {
-			Alert("Proxy '%s': unable to set elliptic named curve to '%s' for bind '%s' at [%s:%d].\n",
-			      curproxy->id, ecdhe, bind_conf->arg, bind_conf->file, bind_conf->line);
+			ha_alert("Proxy '%s': unable to set elliptic named curve to '%s' for bind '%s' at [%s:%d].\n",
+				 curproxy->id, ecdhe, bind_conf->arg, bind_conf->file, bind_conf->line);
 			cfgerr++;
 		}
 		else {
@@ -4440,7 +4440,7 @@
 
 	/* Make sure openssl opens /dev/urandom before the chroot */
 	if (!ssl_initialize_random()) {
-		Alert("OpenSSL random data generator initialization failed.\n");
+		ha_alert("OpenSSL random data generator initialization failed.\n");
 		cfgerr++;
 	}
 
@@ -4450,9 +4450,9 @@
 	/* Initiate SSL context for current server */
 	if (!srv->ssl_ctx.reused_sess) {
 		if ((srv->ssl_ctx.reused_sess = calloc(1, global.nbthread*sizeof(*srv->ssl_ctx.reused_sess))) == NULL) {
-			Alert("Proxy '%s', server '%s' [%s:%d] out of memory.\n",
-			      curproxy->id, srv->id,
-			      srv->conf.file, srv->conf.line);
+			ha_alert("Proxy '%s', server '%s' [%s:%d] out of memory.\n",
+				 curproxy->id, srv->id,
+				 srv->conf.file, srv->conf.line);
 			cfgerr++;
 			return cfgerr;
 		}
@@ -4464,17 +4464,17 @@
 
 	ctx = SSL_CTX_new(SSLv23_client_method());
 	if (!ctx) {
-		Alert("config : %s '%s', server '%s': unable to allocate ssl context.\n",
-		      proxy_type_str(curproxy), curproxy->id,
-		      srv->id);
+		ha_alert("config : %s '%s', server '%s': unable to allocate ssl context.\n",
+			 proxy_type_str(curproxy), curproxy->id,
+			 srv->id);
 		cfgerr++;
 		return cfgerr;
 	}
 
 	if (conf_ssl_methods->flags && (conf_ssl_methods->min || conf_ssl_methods->max))
-		Warning("config : %s '%s': no-sslv3/no-tlsv1x are ignored for server '%s'. "
-			"Use only 'ssl-min-ver' and 'ssl-max-ver' to fix.\n",
-			proxy_type_str(curproxy), curproxy->id, srv->id);
+		ha_warning("config : %s '%s': no-sslv3/no-tlsv1x are ignored for server '%s'. "
+			   "Use only 'ssl-min-ver' and 'ssl-max-ver' to fix.\n",
+			   proxy_type_str(curproxy), curproxy->id, srv->id);
 	else
 		flags = conf_ssl_methods->flags;
 
@@ -4492,10 +4492,10 @@
 		if (methodVersions[i].option && !(flags & methodVersions[i].flag)) {
 			if (min) {
 				if (hole) {
-					Warning("config : %s '%s': SSL/TLS versions range not contiguous for server '%s'. "
-						"Hole find for %s. Use only 'ssl-min-ver' and 'ssl-max-ver' to fix.\n",
-						proxy_type_str(curproxy), curproxy->id, srv->id,
-						methodVersions[hole].name);
+					ha_warning("config : %s '%s': SSL/TLS versions range not contiguous for server '%s'. "
+						   "Hole find for %s. Use only 'ssl-min-ver' and 'ssl-max-ver' to fix.\n",
+						   proxy_type_str(curproxy), curproxy->id, srv->id,
+						   methodVersions[hole].name);
 					hole = 0;
 				}
 				max = i;
@@ -4509,8 +4509,8 @@
 				hole = i;
 		}
 	if (!min) {
-		Alert("config : %s '%s': all SSL/TLS versions are disabled for server '%s'.\n",
-		      proxy_type_str(curproxy), curproxy->id, srv->id);
+		ha_alert("config : %s '%s': all SSL/TLS versions are disabled for server '%s'.\n",
+			 proxy_type_str(curproxy), curproxy->id, srv->id);
 		cfgerr += 1;
 	}
 
@@ -4542,21 +4542,21 @@
 
 	if (srv->ssl_ctx.client_crt) {
 		if (SSL_CTX_use_PrivateKey_file(srv->ssl_ctx.ctx, srv->ssl_ctx.client_crt, SSL_FILETYPE_PEM) <= 0) {
-			Alert("config : %s '%s', server '%s': unable to load SSL private key from PEM file '%s'.\n",
-			      proxy_type_str(curproxy), curproxy->id,
-			      srv->id, srv->ssl_ctx.client_crt);
+			ha_alert("config : %s '%s', server '%s': unable to load SSL private key from PEM file '%s'.\n",
+				 proxy_type_str(curproxy), curproxy->id,
+				 srv->id, srv->ssl_ctx.client_crt);
 			cfgerr++;
 		}
 		else if (SSL_CTX_use_certificate_chain_file(srv->ssl_ctx.ctx, srv->ssl_ctx.client_crt) <= 0) {
-			Alert("config : %s '%s', server '%s': unable to load ssl certificate from PEM file '%s'.\n",
-			      proxy_type_str(curproxy), curproxy->id,
-			      srv->id, srv->ssl_ctx.client_crt);
+			ha_alert("config : %s '%s', server '%s': unable to load ssl certificate from PEM file '%s'.\n",
+				 proxy_type_str(curproxy), curproxy->id,
+				 srv->id, srv->ssl_ctx.client_crt);
 			cfgerr++;
 		}
 		else if (SSL_CTX_check_private_key(srv->ssl_ctx.ctx) <= 0) {
-			Alert("config : %s '%s', server '%s': inconsistencies between private key and certificate loaded from PEM file '%s'.\n",
-			      proxy_type_str(curproxy), curproxy->id,
-			      srv->id, srv->ssl_ctx.client_crt);
+			ha_alert("config : %s '%s', server '%s': inconsistencies between private key and certificate loaded from PEM file '%s'.\n",
+				 proxy_type_str(curproxy), curproxy->id,
+				 srv->id, srv->ssl_ctx.client_crt);
 			cfgerr++;
 		}
 	}
@@ -4578,21 +4578,21 @@
 		if (srv->ssl_ctx.ca_file) {
 			/* load CAfile to verify */
 			if (!SSL_CTX_load_verify_locations(srv->ssl_ctx.ctx, srv->ssl_ctx.ca_file, NULL)) {
-				Alert("Proxy '%s', server '%s' [%s:%d] unable to load CA file '%s'.\n",
-				      curproxy->id, srv->id,
-				      srv->conf.file, srv->conf.line, srv->ssl_ctx.ca_file);
+				ha_alert("Proxy '%s', server '%s' [%s:%d] unable to load CA file '%s'.\n",
+					 curproxy->id, srv->id,
+					 srv->conf.file, srv->conf.line, srv->ssl_ctx.ca_file);
 				cfgerr++;
 			}
 		}
 		else {
 			if (global.ssl_server_verify == SSL_SERVER_VERIFY_REQUIRED)
-				Alert("Proxy '%s', server '%s' [%s:%d] verify is enabled by default but no CA file specified. If you're running on a LAN where you're certain to trust the server's certificate, please set an explicit 'verify none' statement on the 'server' line, or use 'ssl-server-verify none' in the global section to disable server-side verifications by default.\n",
-				      curproxy->id, srv->id,
-				      srv->conf.file, srv->conf.line);
+				ha_alert("Proxy '%s', server '%s' [%s:%d] verify is enabled by default but no CA file specified. If you're running on a LAN where you're certain to trust the server's certificate, please set an explicit 'verify none' statement on the 'server' line, or use 'ssl-server-verify none' in the global section to disable server-side verifications by default.\n",
+					 curproxy->id, srv->id,
+					 srv->conf.file, srv->conf.line);
 			else
-				Alert("Proxy '%s', server '%s' [%s:%d] verify is enabled but no CA file specified.\n",
-				      curproxy->id, srv->id,
-				      srv->conf.file, srv->conf.line);
+				ha_alert("Proxy '%s', server '%s' [%s:%d] verify is enabled but no CA file specified.\n",
+					 curproxy->id, srv->id,
+					 srv->conf.file, srv->conf.line);
 			cfgerr++;
 		}
 #ifdef X509_V_FLAG_CRL_CHECK
@@ -4600,9 +4600,9 @@
 			X509_STORE *store = SSL_CTX_get_cert_store(srv->ssl_ctx.ctx);
 
 			if (!store || !X509_STORE_load_locations(store, srv->ssl_ctx.crl_file, NULL)) {
-				Alert("Proxy '%s', server '%s' [%s:%d] unable to configure CRL file '%s'.\n",
-				      curproxy->id, srv->id,
-				      srv->conf.file, srv->conf.line, srv->ssl_ctx.crl_file);
+				ha_alert("Proxy '%s', server '%s' [%s:%d] unable to configure CRL file '%s'.\n",
+					 curproxy->id, srv->id,
+					 srv->conf.file, srv->conf.line, srv->ssl_ctx.crl_file);
 				cfgerr++;
 			}
 			else {
@@ -4617,9 +4617,9 @@
 	SSL_CTX_sess_set_new_cb(srv->ssl_ctx.ctx, ssl_sess_new_srv_cb);
 	if (srv->ssl_ctx.ciphers &&
 		!SSL_CTX_set_cipher_list(srv->ssl_ctx.ctx, srv->ssl_ctx.ciphers)) {
-		Alert("Proxy '%s', server '%s' [%s:%d] : unable to set SSL cipher list to '%s'.\n",
-		      curproxy->id, srv->id,
-		      srv->conf.file, srv->conf.line, srv->ssl_ctx.ciphers);
+		ha_alert("Proxy '%s', server '%s' [%s:%d] : unable to set SSL cipher list to '%s'.\n",
+			 curproxy->id, srv->id,
+			 srv->conf.file, srv->conf.line, srv->ssl_ctx.ciphers);
 		cfgerr++;
 	}
 
@@ -4641,7 +4641,7 @@
 
 	/* Make sure openssl opens /dev/urandom before the chroot */
 	if (!ssl_initialize_random()) {
-		Alert("OpenSSL random data generator initialization failed.\n");
+		ha_alert("OpenSSL random data generator initialization failed.\n");
 		err++;
 	}
 	/* Create initial_ctx used to start the ssl connection before do switchctx */
@@ -4689,19 +4689,19 @@
 
 	if (!bind_conf->is_ssl) {
 		if (bind_conf->default_ctx) {
-			Warning("Proxy '%s': A certificate was specified but SSL was not enabled on bind '%s' at [%s:%d] (use 'ssl').\n",
-				px->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+			ha_warning("Proxy '%s': A certificate was specified but SSL was not enabled on bind '%s' at [%s:%d] (use 'ssl').\n",
+				   px->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 		}
 		return 0;
 	}
 	if (!bind_conf->default_ctx) {
 		if (bind_conf->strict_sni && !bind_conf->generate_certs) {
-			Warning("Proxy '%s': no SSL certificate specified for bind '%s' at [%s:%d], ssl connections will fail (use 'crt').\n",
-				px->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+			ha_warning("Proxy '%s': no SSL certificate specified for bind '%s' at [%s:%d], ssl connections will fail (use 'crt').\n",
+				   px->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 		}
 		else {
-			Alert("Proxy '%s': no SSL certificate specified for bind '%s' at [%s:%d] (use 'crt').\n",
-			      px->id, bind_conf->arg, bind_conf->file, bind_conf->line);
+			ha_alert("Proxy '%s': no SSL certificate specified for bind '%s' at [%s:%d] (use 'crt').\n",
+				 px->id, bind_conf->arg, bind_conf->file, bind_conf->line);
 			return -1;
 		}
 	}
@@ -4712,9 +4712,9 @@
 			       ((global.nbthread > 1) || (!global_ssl.private_cache && (global.nbproc > 1))) ? 1 : 0);
 	if (alloc_ctx < 0) {
 		if (alloc_ctx == SHCTX_E_INIT_LOCK)
-			Alert("Unable to initialize the lock for the shared SSL session cache. You can retry using the global statement 'tune.ssl.force-private-cache' but it could increase CPU usage due to renegotiations if nbproc > 1.\n");
+			ha_alert("Unable to initialize the lock for the shared SSL session cache. You can retry using the global statement 'tune.ssl.force-private-cache' but it could increase CPU usage due to renegotiations if nbproc > 1.\n");
 		else
-			Alert("Unable to allocate SSL session cache.\n");
+			ha_alert("Unable to allocate SSL session cache.\n");
 		return -1;
 	}
 	/* free block callback */
@@ -4825,27 +4825,27 @@
 #endif
 
 	if (!bind_conf->ca_sign_file) {
-		Alert("Proxy '%s': cannot enable certificate generation, "
-		      "no CA certificate File configured at [%s:%d].\n",
-		      px->id, bind_conf->file, bind_conf->line);
+		ha_alert("Proxy '%s': cannot enable certificate generation, "
+			 "no CA certificate File configured at [%s:%d].\n",
+			 px->id, bind_conf->file, bind_conf->line);
 		goto load_error;
 	}
 
 	/* read in the CA certificate */
 	if (!(fp = fopen(bind_conf->ca_sign_file, "r"))) {
-		Alert("Proxy '%s': Failed to read CA certificate file '%s' at [%s:%d].\n",
-		      px->id, bind_conf->ca_sign_file, bind_conf->file, bind_conf->line);
+		ha_alert("Proxy '%s': Failed to read CA certificate file '%s' at [%s:%d].\n",
+			 px->id, bind_conf->ca_sign_file, bind_conf->file, bind_conf->line);
 		goto load_error;
 	}
 	if (!(cacert = PEM_read_X509(fp, NULL, NULL, NULL))) {
-		Alert("Proxy '%s': Failed to read CA certificate file '%s' at [%s:%d].\n",
-		      px->id, bind_conf->ca_sign_file, bind_conf->file, bind_conf->line);
+		ha_alert("Proxy '%s': Failed to read CA certificate file '%s' at [%s:%d].\n",
+			 px->id, bind_conf->ca_sign_file, bind_conf->file, bind_conf->line);
 		goto read_error;
 	}
 	rewind(fp);
 	if (!(capkey = PEM_read_PrivateKey(fp, NULL, NULL, bind_conf->ca_sign_pass))) {
-		Alert("Proxy '%s': Failed to read CA private key file '%s' at [%s:%d].\n",
-		      px->id, bind_conf->ca_sign_file, bind_conf->file, bind_conf->line);
+		ha_alert("Proxy '%s': Failed to read CA private key file '%s' at [%s:%d].\n",
+			 px->id, bind_conf->ca_sign_file, bind_conf->file, bind_conf->line);
 		goto read_error;
 	}
 
@@ -7312,7 +7312,7 @@
 static int ssl_bind_parse_tls_method_minmax(char **args, int cur_arg, struct proxy *px, struct ssl_bind_conf *conf, char **err)
 {
 #if (OPENSSL_VERSION_NUMBER < 0x10101000L) || !defined(OPENSSL_IS_BORINGSSL)
-	Warning("crt-list: ssl-min-ver and ssl-max-ver are not supported with this Openssl version (skipped).\n");
+	ha_warning("crt-list: ssl-min-ver and ssl-max-ver are not supported with this Openssl version (skipped).\n");
 #endif
 	return parse_tls_method_minmax(args, cur_arg, &conf->ssl_methods, err);
 }
@@ -7990,7 +7990,7 @@
 	int err_code = 0;
 
 	if (global_ssl.async && (openssl_engines_initialized > 32)) {
-		Alert("ssl-mode-async only supports a maximum of 32 engines.\n");
+		ha_alert("ssl-mode-async only supports a maximum of 32 engines.\n");
 		err_code = ERR_ABORT;
 	}
 	return err_code;
diff --git a/src/uri_auth.c b/src/uri_auth.c
index cfe1f4c..dcfa5e0 100644
--- a/src/uri_auth.c
+++ b/src/uri_auth.c
@@ -237,8 +237,8 @@
 
 	for (newuser = u->userlist->users; newuser; newuser = newuser->next)
 		if (!strcmp(newuser->user, user)) {
-			Warning("uri auth: ignoring duplicated user '%s'.\n",
-				user);
+			ha_warning("uri auth: ignoring duplicated user '%s'.\n",
+				   user);
 			return u;
 		}
 
diff --git a/src/vars.c b/src/vars.c
index 2192fa5..d7e7157 100644
--- a/src/vars.c
+++ b/src/vars.c
@@ -662,7 +662,7 @@
 	default:
 		send_log(px, LOG_ERR, "Vars: internal error while execute action store.");
 		if (!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE))
-			Alert("Vars: internal error while execute action store.\n");
+			ha_alert("Vars: internal error while execute action store.\n");
 		return ACT_RET_CONT;
 	}
 
diff --git a/src/wurfl.c b/src/wurfl.c
index 0349a50..591fbdb 100644
--- a/src/wurfl.c
+++ b/src/wurfl.c
@@ -299,7 +299,7 @@
 	global_wurfl.handle = wurfl_create();
 
 	if (global_wurfl.handle == NULL) {
-		Warning("WURFL: Engine handler creation failed");
+		ha_warning("WURFL: Engine handler creation failed");
 		send_log(NULL, LOG_WARNING, "WURFL: Engine handler creation failed\n");
 		return ERR_WARN;
 	}
@@ -308,18 +308,18 @@
 
 	// set wurfl data file
 	if (global_wurfl.data_file == NULL) {
-		Warning("WURFL: missing wurfl-data-file parameter in global configuration\n");
+		ha_warning("WURFL: missing wurfl-data-file parameter in global configuration\n");
 		send_log(NULL, LOG_WARNING, "WURFL: missing wurfl-data-file parameter in global configuration\n");
 		return ERR_WARN;
 	}
 
 	if (global.nbthread > 1) {
-		Alert("WURFL: multithreading is not supported for now.\n");
+		ha_alert("WURFL: multithreading is not supported for now.\n");
 		return (ERR_FATAL | ERR_ALERT);
 	}
 
 	if (wurfl_set_root(global_wurfl.handle, global_wurfl.data_file) != WURFL_OK) {
-		Warning("WURFL: Engine setting root file failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
+		ha_warning("WURFL: Engine setting root file failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 		send_log(NULL, LOG_WARNING, "WURFL: Engine setting root file failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 		return ERR_WARN;
 	}
@@ -330,7 +330,7 @@
 
 	// load wurfl data needed ( and filter whose are supposed to be capabilities )
 	if (LIST_ISEMPTY(&global_wurfl.information_list)) {
-		Warning("WURFL: missing wurfl-information-list parameter in global configuration\n");
+		ha_warning("WURFL: missing wurfl-information-list parameter in global configuration\n");
 		send_log(NULL, LOG_WARNING, "WURFL: missing wurfl-information-list parameter in global configuration\n");
 		return ERR_WARN;
 	} else {
@@ -352,7 +352,7 @@
 					wi->data.type = HA_WURFL_DATA_TYPE_CAP;
 
 					if (wurfl_add_requested_capability(global_wurfl.handle, wi->data.name) != WURFL_OK) {
-						Warning("WURFL: capability filtering failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
+						ha_warning("WURFL: capability filtering failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 						send_log(NULL, LOG_WARNING, "WURFL: capability filtering failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 						return ERR_WARN;
 					}
@@ -366,7 +366,7 @@
 				wn = malloc(sizeof(wurfl_data_t) + len + 1);
 
 				if (wn == NULL) {
-					Warning("WURFL: Error allocating memory for information tree element.\n");
+					ha_warning("WURFL: Error allocating memory for information tree element.\n");
 					send_log(NULL, LOG_WARNING, "WURFL: Error allocating memory for information tree element.\n");
 					return ERR_WARN;
 				}
@@ -378,7 +378,7 @@
 				wn->nd.key[len] = 0;
 
 				if (!ebst_insert(&global_wurfl.btree, &wn->nd)) {
-					Warning("WURFL: [%s] not inserted in btree\n",wn->name);
+					ha_warning("WURFL: [%s] not inserted in btree\n",wn->name);
 					send_log(NULL, LOG_WARNING, "WURFL: [%s] not inserted in btree\n",wn->name);
 					return ERR_WARN;
 				}
@@ -402,7 +402,7 @@
 
 			if (ebst_lookup(&global_wurfl.btree, name) == NULL) {
 				if (wurfl_add_requested_capability(global_wurfl.handle, name) != WURFL_OK) {
-					Warning("WURFL: Engine adding mandatory capability [%s] failed - %s\n", name, wurfl_get_error_message(global_wurfl.handle));
+					ha_warning("WURFL: Engine adding mandatory capability [%s] failed - %s\n", name, wurfl_get_error_message(global_wurfl.handle));
 					send_log(NULL, LOG_WARNING, "WURFL: Adding mandatory capability [%s] failed - %s\n", name, wurfl_get_error_message(global_wurfl.handle));
 					return ERR_WARN;
 				}
@@ -423,7 +423,7 @@
 
 		list_for_each_entry(wp, &global_wurfl.patch_file_list, list) {
 			if (wurfl_add_patch(global_wurfl.handle, wp->patch_file_path) != WURFL_OK) {
-				Warning("WURFL: Engine adding patch file failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
+				ha_warning("WURFL: Engine adding patch file failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 				send_log(NULL, LOG_WARNING, "WURFL: Adding engine patch file failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 				return ERR_WARN;
 			}
@@ -447,7 +447,7 @@
 		}
 
 		if (wurfl_result_code != WURFL_OK) {
-			Warning("WURFL: Setting cache to [%s] failed - %s\n", global_wurfl.cache_size, wurfl_get_error_message(global_wurfl.handle));
+			ha_warning("WURFL: Setting cache to [%s] failed - %s\n", global_wurfl.cache_size, wurfl_get_error_message(global_wurfl.handle));
 			send_log(NULL, LOG_WARNING, "WURFL: Setting cache to [%s] failed - %s\n", global_wurfl.cache_size, wurfl_get_error_message(global_wurfl.handle));
 			return ERR_WARN;
 		}
@@ -458,7 +458,7 @@
 	// setting engine mode if specified in cfg, otherwise let engine choose
 	if (global_wurfl.engine_mode != -1) {
 		if (wurfl_set_engine_target(global_wurfl.handle, global_wurfl.engine_mode) != WURFL_OK ) {
-			Warning("WURFL: Setting engine target failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
+			ha_warning("WURFL: Setting engine target failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 			send_log(NULL, LOG_WARNING, "WURFL: Setting engine target failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 			return ERR_WARN;
 		}
@@ -470,7 +470,7 @@
 	// setting ua priority if specified in cfg, otherwise let engine choose
 	if (global_wurfl.useragent_priority != -1) {
 		if (wurfl_set_useragent_priority(global_wurfl.handle, global_wurfl.useragent_priority) != WURFL_OK ) {
-			Warning("WURFL: Setting engine useragent priority failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
+			ha_warning("WURFL: Setting engine useragent priority failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 			send_log(NULL, LOG_WARNING, "WURFL: Setting engine useragent priority failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 			return ERR_WARN;
 		}
@@ -481,7 +481,7 @@
 
 	// loading WURFL engine
 	if (wurfl_load(global_wurfl.handle) != WURFL_OK) {
-		Warning("WURFL: Engine load failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
+		ha_warning("WURFL: Engine load failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 		send_log(NULL, LOG_WARNING, "WURFL: Engine load failed - %s\n", wurfl_get_error_message(global_wurfl.handle));
 		return ERR_WARN;
 	}