CLEANUP: http: make http_server_error() not set the status anymore

Given that all call places except one had to set txn->status prior to
calling http_server_error(), it's simpler to make this function rely
on txn->status than have it store it from an argument.
diff --git a/src/proto_http.c b/src/proto_http.c
index 7fed50e..c0f57c5 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -1037,22 +1037,20 @@
 
 /* This function handles a server error at the stream interface level. The
  * stream interface is assumed to be already in a closed state. An optional
- * message is copied into the input buffer, and an HTTP status code stored.
+ * message is copied into the input buffer.
  * The error flags are set to the values in arguments. Any pending request
  * in this buffer will be lost.
  */
 static void http_server_error(struct stream *s, struct stream_interface *si,
-			      int err, int finst, int status, const struct chunk *msg)
+			      int err, int finst, const struct chunk *msg)
 {
-	FLT_STRM_CB(s, flt_http_reply(s, status, msg));
+	FLT_STRM_CB(s, flt_http_reply(s, s->txn->status, msg));
 	channel_auto_read(si_oc(si));
 	channel_abort(si_oc(si));
 	channel_auto_close(si_oc(si));
 	channel_erase(si_oc(si));
 	channel_auto_close(si_ic(si));
 	channel_auto_read(si_ic(si));
-	if (status > 0)
-		s->txn->status = status;
 	if (msg)
 		bo_inject(si_ic(si), msg->str, msg->len);
 	if (!(s->flags & SF_ERR_MASK))
@@ -1258,7 +1256,8 @@
 	si->state    = SI_ST_CLO;
 
 	/* send the message */
-	http_server_error(s, si, SF_ERR_LOCAL, SF_FINST_C, 302, &trash);
+	txn->status = 302;
+	http_server_error(s, si, SF_ERR_LOCAL, SF_FINST_C, &trash);
 
 	/* FIXME: we should increase a counter of redirects per server and per backend. */
 	srv_inc_sess_ctr(srv);
@@ -1285,33 +1284,33 @@
 
 	if (err_type & SI_ET_QUEUE_ABRT)
 		http_server_error(s, si, SF_ERR_CLICL, SF_FINST_Q,
-				  503, http_error_message(s));
+				  http_error_message(s));
 	else if (err_type & SI_ET_CONN_ABRT)
 		http_server_error(s, si, SF_ERR_CLICL, SF_FINST_C,
-				  503, (s->txn->flags & TX_NOT_FIRST) ? NULL :
+				  (s->txn->flags & TX_NOT_FIRST) ? NULL :
 				  http_error_message(s));
 	else if (err_type & SI_ET_QUEUE_TO)
 		http_server_error(s, si, SF_ERR_SRVTO, SF_FINST_Q,
-				  503, http_error_message(s));
+				  http_error_message(s));
 	else if (err_type & SI_ET_QUEUE_ERR)
 		http_server_error(s, si, SF_ERR_SRVCL, SF_FINST_Q,
-				  503, http_error_message(s));
+				  http_error_message(s));
 	else if (err_type & SI_ET_CONN_TO)
 		http_server_error(s, si, SF_ERR_SRVTO, SF_FINST_C,
-				  503, (s->txn->flags & TX_NOT_FIRST) ? NULL :
+				  (s->txn->flags & TX_NOT_FIRST) ? NULL :
 				  http_error_message(s));
 	else if (err_type & SI_ET_CONN_ERR)
 		http_server_error(s, si, SF_ERR_SRVCL, SF_FINST_C,
-				  503, (s->flags & SF_SRV_REUSED) ? NULL :
+				  (s->flags & SF_SRV_REUSED) ? NULL :
 				  http_error_message(s));
 	else if (err_type & SI_ET_CONN_RES)
 		http_server_error(s, si, SF_ERR_RESOURCE, SF_FINST_C,
-				  503, (s->txn->flags & TX_NOT_FIRST) ? NULL :
+				  (s->txn->flags & TX_NOT_FIRST) ? NULL :
 				  http_error_message(s));
 	else { /* SI_ET_CONN_OTHER and others */
 		s->txn->status = 500;
 		http_server_error(s, si, SF_ERR_INTERNAL, SF_FINST_C,
-				  500, http_error_message(s));
+				  http_error_message(s));
 	}
 }