BUG/MINOR: proto-htx: Try to keep connections alive on redirect

As fat as possible, we try to keep the connections alive on redirect. It's
possible when the request has no body or when the request parsing is finished.

No backport is needed.
diff --git a/src/proto_htx.c b/src/proto_htx.c
index 6393eed..77464c0 100644
--- a/src/proto_htx.c
+++ b/src/proto_htx.c
@@ -2385,6 +2385,7 @@
 	struct ist status, reason, location;
 	unsigned int flags;
 	size_t data;
+	int close = 0; /* Try to keep the connection alive byt default */
 
 	chunk = alloc_trash_chunk();
 	if (!chunk)
@@ -2544,6 +2545,9 @@
 			break;
 	}
 
+	if (!(txn->req.flags & HTTP_MSGF_BODYLESS) && txn->req.msg_state != HTTP_MSG_DONE)
+		close = 1;
+
 	htx = htx_from_buf(&res->buf);
 	flags = (HTX_SL_F_IS_RESP|HTX_SL_F_VER_11|HTX_SL_F_XFER_LEN|HTX_SL_F_BODYLESS);
 	sl = htx_add_stline(htx, HTX_BLK_RES_SL, flags, ist("HTTP/1.1"), status, reason);
@@ -2552,8 +2556,10 @@
 	sl->info.res.status = rule->code;
 	s->txn->status = rule->code;
 
+	if (close && !htx_add_header(htx, ist("Connection"), ist("close")))
+		goto fail;
+
-	if (!htx_add_header(htx, ist("Connection"), ist("close")) ||
-	    !htx_add_header(htx, ist("Content-length"), ist("0")) ||
+	if (!htx_add_header(htx, ist("Content-length"), ist("0")) ||
 	    !htx_add_header(htx, ist("Location"), location))
 		goto fail;