MINOR: http-htx: Store default error messages in a global http reply array
Default error messages are stored as a buffer, in http_err_chunks global array.
Now, they are also stored as a http reply, in http_err_replies global array.
diff --git a/include/proto/http_htx.h b/include/proto/http_htx.h
index 4e9c7c8..557d34f 100644
--- a/include/proto/http_htx.h
+++ b/include/proto/http_htx.h
@@ -30,6 +30,7 @@
#include <types/http_htx.h>
extern struct buffer http_err_chunks[HTTP_ERR_SIZE];
+extern struct http_reply http_err_replies[HTTP_ERR_SIZE];
extern struct list http_errors_list;
struct htx_sl *http_get_stline(struct htx *htx);
diff --git a/src/http_htx.c b/src/http_htx.c
index d98b2b9..4414ab3 100644
--- a/src/http_htx.c
+++ b/src/http_htx.c
@@ -29,6 +29,8 @@
#include <proto/sample.h>
struct buffer http_err_chunks[HTTP_ERR_SIZE];
+struct http_reply http_err_replies[HTTP_ERR_SIZE];
+
struct eb_root http_error_messages = EB_ROOT;
struct list http_errors_list = LIST_HEAD_INIT(http_errors_list);
@@ -1013,6 +1015,11 @@
err_code |= ERR_ALERT | ERR_FATAL;
}
http_err_chunks[rc] = chk;
+ http_err_replies[rc].type = HTTP_REPLY_ERRMSG;
+ http_err_replies[rc].status = http_err_codes[rc];
+ http_err_replies[rc].ctype = NULL;
+ LIST_INIT(&http_err_replies[rc].hdrs);
+ http_err_replies[rc].body.errmsg = &http_err_chunks[rc];
}
end:
return err_code;