diff --git a/include/types/arg.h b/include/types/arg.h index a53d29375..9e4284044 100644 --- a/include/types/arg.h +++ b/include/types/arg.h @@ -54,7 +54,8 @@ enum { 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 ae6f0a338..a1e5db991 100644 --- a/src/log.c +++ b/src/log.c @@ -168,6 +168,10 @@ static inline const char *fmt_directive(const struct proxy *curproxy) { 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 1921b9329..b5ad54c84 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -8465,7 +8465,7 @@ struct http_req_rule *parse_http_req_cond(const char **args, const char *file, i 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 @@ struct http_res_rule *parse_http_res_cond(const char **args, const char *file, i 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 1a2ab478a..dc2304a7d 100644 --- a/src/sample.c +++ b/src/sample.c @@ -839,7 +839,8 @@ int smp_resolve_args(struct proxy *p) 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; }