MINOR: proxy: Add references on http replies for proxy error messages
Error messages defined in proxy section or inherited from a default section are
now also referenced using an array of http replies. This is done during the
configuration validity check.
diff --git a/include/types/proxy.h b/include/types/proxy.h
index 35ca0ad..62fc435 100644
--- a/include/types/proxy.h
+++ b/include/types/proxy.h
@@ -409,6 +409,7 @@
char *check_command; /* Command to use for external agent checks */
char *check_path; /* PATH environment to use for external agent checks */
struct buffer *errmsg[HTTP_ERR_SIZE]; /* default or customized error messages for known errors */
+ struct http_reply *replies[HTTP_ERR_SIZE]; /* HTTP replies for known errors */
int uuid; /* universally unique proxy ID, used for SNMP */
unsigned int backlog; /* force the frontend's listen backlog */
unsigned long bind_proc; /* bitmask of processes using this proxy */
diff --git a/src/http_htx.c b/src/http_htx.c
index b830c73..18ac47c 100644
--- a/src/http_htx.c
+++ b/src/http_htx.c
@@ -1852,6 +1852,7 @@
/* errorfile */
rc = http_get_status_idx(conf_err->info.errorfile.status);
px->errmsg[rc] = conf_err->info.errorfile.msg;
+ px->replies[rc] = conf_err->info.errorfile.reply;
}
else {
/* errorfiles */
@@ -1872,8 +1873,10 @@
free(conf_err->info.errorfiles.name);
for (rc = 0; rc < HTTP_ERR_SIZE; rc++) {
if (conf_err->info.errorfiles.status[rc] > 0) {
- if (http_errs->errmsg[rc])
+ if (http_errs->errmsg[rc]) {
px->errmsg[rc] = http_errs->errmsg[rc];
+ px->replies[rc] = http_errs->replies[rc];
+ }
else if (conf_err->info.errorfiles.status[rc] == 2)
ha_warning("config: proxy '%s' : status '%d' not declared in"
" http-errors section '%s' (at %s:%d).\n",
@@ -1934,6 +1937,7 @@
if (conf_err->type == 1) {
new_conf_err->info.errorfile.status = conf_err->info.errorfile.status;
new_conf_err->info.errorfile.msg = conf_err->info.errorfile.msg;
+ new_conf_err->info.errorfile.reply = conf_err->info.errorfile.reply;
}
else {
new_conf_err->info.errorfiles.name = strdup(conf_err->info.errorfiles.name);