BUG/MINOR: arg: fix error reporting for add-header/set-header sample fetch arguments
The 'add-header %[samples]' parsing errors associated to http-request
and http-response are displayed with the wrong keyword.
Configuration entry:
http-request set-header mon-header %[res.hdr(user-agent)]
Original error message:
[WARNING] 323/150920 (16559) : parsing [haproxy.conf:36] : 'log-format' : sample fetch <res.hdr ...
After commit error message:
[WARNING] 323/150929 (16580) : parsing [haproxy.conf:36] : 'http-request' : sample fetch <res.hdr ...
diff --git a/include/types/arg.h b/include/types/arg.h
index a53d293..9e42840 100644
--- a/include/types/arg.h
+++ b/include/types/arg.h
@@ -54,7 +54,8 @@
ARGC_STK, /* sticking rule */
ARGC_TRK, /* tracking rule */
ARGC_LOG, /* log-format */
- ARGC_HDR, /* add-header */
+ ARGC_HRQ, /* http-request */
+ ARGC_HRS, /* http-response */
ARGC_UIF, /* unique-id-format */
};
diff --git a/src/log.c b/src/log.c
index ae6f0a3..a1e5db9 100644
--- a/src/log.c
+++ b/src/log.c
@@ -168,6 +168,10 @@
{
if (curproxy->conf.args.ctx == ARGC_UIF)
return "unique-id-format";
+ else if (curproxy->conf.args.ctx == ARGC_HRQ)
+ return "http-request";
+ else if (curproxy->conf.args.ctx == ARGC_HRS)
+ return "http-response";
else
return "log-format";
}
diff --git a/src/proto_http.c b/src/proto_http.c
index 1921b93..b5ad54c 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -8465,7 +8465,7 @@
rule->arg.hdr_add.name_len = strlen(rule->arg.hdr_add.name);
LIST_INIT(&rule->arg.hdr_add.fmt);
- proxy->conf.args.ctx = ARGC_HDR;
+ proxy->conf.args.ctx = ARGC_HRQ;
parse_logformat_string(args[cur_arg + 1], proxy, &rule->arg.hdr_add.fmt, 0,
(proxy->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR);
cur_arg += 2;
@@ -8633,7 +8633,7 @@
rule->arg.hdr_add.name_len = strlen(rule->arg.hdr_add.name);
LIST_INIT(&rule->arg.hdr_add.fmt);
- proxy->conf.args.ctx = ARGC_HDR;
+ proxy->conf.args.ctx = ARGC_HRS;
parse_logformat_string(args[cur_arg + 1], proxy, &rule->arg.hdr_add.fmt, 0,
(proxy->cap & PR_CAP_BE) ? SMP_VAL_BE_HRS_HDR : SMP_VAL_FE_HRS_HDR);
cur_arg += 2;
diff --git a/src/sample.c b/src/sample.c
index 1a2ab47..dc2304a 100644
--- a/src/sample.c
+++ b/src/sample.c
@@ -839,7 +839,8 @@
case ARGC_STK:where = "in stick rule in"; break;
case ARGC_TRK: where = "in tracking rule in"; break;
case ARGC_LOG: where = "in log-format string in"; break;
- case ARGC_HDR: where = "in HTTP header format string in"; break;
+ case ARGC_HRQ: where = "in http-request header format string in"; break;
+ case ARGC_HRS: where = "in http-response header format string in"; break;
case ARGC_UIF: where = "in unique-id-format string in"; break;
case ARGC_ACL: ctx = "ACL keyword"; break;
}