mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
MINOR: cfgparse: use a common errmsg pointer for all parsers
In order to generalize the simplified error reporting mechanism, let's centralize the error pointer.
This commit is contained in:
parent
bd83314ee9
commit
f4068b6503
@ -1110,7 +1110,6 @@ static int create_cond_regex_rule(const char *file, int line,
|
|||||||
if ((cond = build_acl_cond(file, line, px, cond_start, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, line, px, cond_start, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
|
||||||
file, line, cmd, errmsg);
|
file, line, cmd, errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
@ -1152,8 +1151,10 @@ static int create_cond_regex_rule(const char *file, int line,
|
|||||||
if (dir == SMP_OPT_DIR_REQ && warnif_misplaced_reqxxx(px, file, line, cmd))
|
if (dir == SMP_OPT_DIR_REQ && warnif_misplaced_reqxxx(px, file, line, cmd))
|
||||||
err_code |= ERR_WARN;
|
err_code |= ERR_WARN;
|
||||||
|
|
||||||
|
free(errmsg);
|
||||||
return err_code;
|
return err_code;
|
||||||
err:
|
err:
|
||||||
|
free(errmsg);
|
||||||
free(preg);
|
free(preg);
|
||||||
return err_code;
|
return err_code;
|
||||||
}
|
}
|
||||||
@ -1337,6 +1338,7 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
struct acl_cond *cond = NULL;
|
struct acl_cond *cond = NULL;
|
||||||
struct logsrv *tmplogsrv;
|
struct logsrv *tmplogsrv;
|
||||||
struct logformat_node *tmplf;
|
struct logformat_node *tmplf;
|
||||||
|
char *errmsg = NULL;
|
||||||
|
|
||||||
if (!strcmp(args[0], "listen"))
|
if (!strcmp(args[0], "listen"))
|
||||||
rc = PR_CAP_LISTEN;
|
rc = PR_CAP_LISTEN;
|
||||||
@ -2084,8 +2086,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
curproxy->bind_proc = set;
|
curproxy->bind_proc = set;
|
||||||
}
|
}
|
||||||
else if (!strcmp(args[0], "acl")) { /* add an ACL */
|
else if (!strcmp(args[0], "acl")) { /* add an ACL */
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
if (curproxy == &defproxy) {
|
if (curproxy == &defproxy) {
|
||||||
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
@ -2102,7 +2102,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
if (parse_acl((const char **)args + 1, &curproxy->acl, &errmsg) == NULL) {
|
if (parse_acl((const char **)args + 1, &curproxy->acl, &errmsg) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing ACL '%s' : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing ACL '%s' : %s.\n",
|
||||||
file, linenum, args[1], errmsg);
|
file, linenum, args[1], errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -2521,8 +2520,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
curproxy->server_id_hdr_len = strlen(curproxy->server_id_hdr_name);
|
curproxy->server_id_hdr_len = strlen(curproxy->server_id_hdr_name);
|
||||||
}
|
}
|
||||||
else if (!strcmp(args[0], "block")) { /* early blocking based on ACLs */
|
else if (!strcmp(args[0], "block")) { /* early blocking based on ACLs */
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
if (curproxy == &defproxy) {
|
if (curproxy == &defproxy) {
|
||||||
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
@ -2539,7 +2536,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 1, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 1, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing blocking condition : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing blocking condition : %s.\n",
|
||||||
file, linenum, errmsg);
|
file, linenum, errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -2637,13 +2633,10 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
}
|
}
|
||||||
else if (strcmp(args[cur_arg], "if") == 0 ||
|
else if (strcmp(args[cur_arg], "if") == 0 ||
|
||||||
strcmp(args[cur_arg], "unless") == 0) {
|
strcmp(args[cur_arg], "unless") == 0) {
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
cond = build_acl_cond(file, linenum, curproxy, (const char **)args + cur_arg, &errmsg);
|
cond = build_acl_cond(file, linenum, curproxy, (const char **)args + cur_arg, &errmsg);
|
||||||
if (!cond) {
|
if (!cond) {
|
||||||
Alert("parsing [%s:%d] : '%s': error detected while parsing redirect condition : %s.\n",
|
Alert("parsing [%s:%d] : '%s': error detected while parsing redirect condition : %s.\n",
|
||||||
file, linenum, args[0], errmsg);
|
file, linenum, args[0], errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -2696,7 +2689,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
}
|
}
|
||||||
else if (!strcmp(args[0], "use_backend")) {
|
else if (!strcmp(args[0], "use_backend")) {
|
||||||
struct switching_rule *rule;
|
struct switching_rule *rule;
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
if (curproxy == &defproxy) {
|
if (curproxy == &defproxy) {
|
||||||
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
||||||
@ -2723,7 +2715,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing switching rule : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing switching rule : %s.\n",
|
||||||
file, linenum, errmsg);
|
file, linenum, errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -2738,7 +2729,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
}
|
}
|
||||||
else if (strcmp(args[0], "use-server") == 0) {
|
else if (strcmp(args[0], "use-server") == 0) {
|
||||||
struct server_rule *rule;
|
struct server_rule *rule;
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
if (curproxy == &defproxy) {
|
if (curproxy == &defproxy) {
|
||||||
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
||||||
@ -2765,7 +2755,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing switching rule : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing switching rule : %s.\n",
|
||||||
file, linenum, errmsg);
|
file, linenum, errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -2782,7 +2771,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
else if ((!strcmp(args[0], "force-persist")) ||
|
else if ((!strcmp(args[0], "force-persist")) ||
|
||||||
(!strcmp(args[0], "ignore-persist"))) {
|
(!strcmp(args[0], "ignore-persist"))) {
|
||||||
struct persist_rule *rule;
|
struct persist_rule *rule;
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
if (curproxy == &defproxy) {
|
if (curproxy == &defproxy) {
|
||||||
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
||||||
@ -2803,7 +2791,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 1, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 1, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing a '%s' rule : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing a '%s' rule : %s.\n",
|
||||||
file, linenum, args[0], errmsg);
|
file, linenum, args[0], errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -2979,7 +2966,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
struct sticking_rule *rule;
|
struct sticking_rule *rule;
|
||||||
struct sample_expr *expr;
|
struct sample_expr *expr;
|
||||||
int myidx = 0;
|
int myidx = 0;
|
||||||
char *errmsg = NULL;
|
|
||||||
const char *name = NULL;
|
const char *name = NULL;
|
||||||
int flags;
|
int flags;
|
||||||
|
|
||||||
@ -3058,7 +3044,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + myidx, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + myidx, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : '%s': error detected while parsing sticking condition : %s.\n",
|
Alert("parsing [%s:%d] : '%s': error detected while parsing sticking condition : %s.\n",
|
||||||
file, linenum, args[0], errmsg);
|
file, linenum, args[0], errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
free(expr);
|
free(expr);
|
||||||
goto out;
|
goto out;
|
||||||
@ -3098,7 +3083,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
goto stats_error_parsing;
|
goto stats_error_parsing;
|
||||||
} else if (!strcmp(args[1], "admin")) {
|
} else if (!strcmp(args[1], "admin")) {
|
||||||
struct stats_admin_rule *rule;
|
struct stats_admin_rule *rule;
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
if (curproxy == &defproxy) {
|
if (curproxy == &defproxy) {
|
||||||
Alert("parsing [%s:%d]: '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
|
Alert("parsing [%s:%d]: '%s %s' not allowed in 'defaults' section.\n", file, linenum, args[0], args[1]);
|
||||||
@ -3121,7 +3105,6 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
|||||||
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing a '%s %s' rule : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing a '%s %s' rule : %s.\n",
|
||||||
file, linenum, args[0], args[1], errmsg);
|
file, linenum, args[0], args[1], errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -3876,8 +3859,6 @@ stats_error_parsing:
|
|||||||
err_code |= ERR_WARN;
|
err_code |= ERR_WARN;
|
||||||
|
|
||||||
if (strcmp(args[1], "fail") == 0) {
|
if (strcmp(args[1], "fail") == 0) {
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
/* add a condition to fail monitor requests */
|
/* add a condition to fail monitor requests */
|
||||||
if (strcmp(args[2], "if") != 0 && strcmp(args[2], "unless") != 0) {
|
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",
|
Alert("parsing [%s:%d] : '%s %s' requires either 'if' or 'unless' followed by a condition.\n",
|
||||||
@ -3889,7 +3870,6 @@ stats_error_parsing:
|
|||||||
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args + 2, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing a '%s %s' condition : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing a '%s %s' condition : %s.\n",
|
||||||
file, linenum, args[0], args[1], errmsg);
|
file, linenum, args[0], args[1], errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -5028,7 +5008,6 @@ stats_error_parsing:
|
|||||||
}
|
}
|
||||||
else if (!strcmp(args[0], "reqadd")) { /* add request header */
|
else if (!strcmp(args[0], "reqadd")) { /* add request header */
|
||||||
struct cond_wordlist *wl;
|
struct cond_wordlist *wl;
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
if (curproxy == &defproxy) {
|
if (curproxy == &defproxy) {
|
||||||
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
||||||
@ -5048,7 +5027,6 @@ stats_error_parsing:
|
|||||||
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args+2, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args+2, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
|
||||||
file, linenum, args[0], errmsg);
|
file, linenum, args[0], errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -5125,7 +5103,6 @@ stats_error_parsing:
|
|||||||
}
|
}
|
||||||
else if (!strcmp(args[0], "rspadd")) { /* add response header */
|
else if (!strcmp(args[0], "rspadd")) { /* add response header */
|
||||||
struct cond_wordlist *wl;
|
struct cond_wordlist *wl;
|
||||||
char *errmsg = NULL;
|
|
||||||
|
|
||||||
if (curproxy == &defproxy) {
|
if (curproxy == &defproxy) {
|
||||||
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
|
||||||
@ -5145,7 +5122,6 @@ stats_error_parsing:
|
|||||||
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args+2, &errmsg)) == NULL) {
|
if ((cond = build_acl_cond(file, linenum, curproxy, (const char **)args+2, &errmsg)) == NULL) {
|
||||||
Alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
|
Alert("parsing [%s:%d] : error detected while parsing a '%s' condition : %s.\n",
|
||||||
file, linenum, args[0], errmsg);
|
file, linenum, args[0], errmsg);
|
||||||
free(errmsg);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -5295,6 +5271,7 @@ stats_error_parsing:
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
|
free(errmsg);
|
||||||
return err_code;
|
return err_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user