MINOR: http-ana: Add an error message in the txn and send it when defined

It is now possible to set the error message to return to client in the HTTP
transaction. If it is defined, this error message is used instead of proxy's
errors or default errors.
diff --git a/include/types/http_ana.h b/include/types/http_ana.h
index a352a99..5a7ced7 100644
--- a/include/types/http_ana.h
+++ b/include/types/http_ana.h
@@ -175,6 +175,7 @@
 	enum http_meth_t meth;          /* HTTP method */
 	/* 1 unused byte here */
 	short status;                   /* HTTP status from the server, negative if from proxy */
+	struct buffer *errmsg;          /* custom HTTP error message to use as reply */
 
 	char cache_hash[20];               /* Store the cache hash  */
 	char *uri;                      /* first line if log needed, NULL otherwise */
diff --git a/src/http_ana.c b/src/http_ana.c
index 574f6eb..10ee241 100644
--- a/src/http_ana.c
+++ b/src/http_ana.c
@@ -4597,7 +4597,9 @@
 {
 	const int msgnum = http_get_status_idx(s->txn->status);
 
-	if (s->be->errmsg[msgnum])
+	if (s->txn && s->txn->errmsg)
+		return s->txn->errmsg;
+	else if (s->be->errmsg[msgnum])
 		return s->be->errmsg[msgnum];
 	else if (strm_fe(s)->errmsg[msgnum])
 		return strm_fe(s)->errmsg[msgnum];
@@ -5024,6 +5026,7 @@
 		      ? (TX_NOT_FIRST|TX_WAIT_NEXT_RQ)
 		      : 0);
 	txn->status = -1;
+	txn->errmsg = NULL;
 	*(unsigned int *)txn->cache_hash = 0;
 
 	txn->cookie_first_date = 0;