BUG/MEDIUM: proto-htx: Set SI_FL_NOHALF on server side when request is done

In the function htx_end_request, the flag SI_FL_NOHALF must be set on the server
side once the request is in the state HTTP_MSG_DONE. But the response state was
checked before and the flag was only set when the response was also in the state
HTTP_MSG_DONE. Of course, it is not desirable.

This patch must be backported to 1.9.
diff --git a/src/proto_htx.c b/src/proto_htx.c
index 2a02193..9a22a5e 100644
--- a/src/proto_htx.c
+++ b/src/proto_htx.c
@@ -5068,13 +5068,6 @@
 		return;
 
 	if (txn->req.msg_state == HTTP_MSG_DONE) {
-		if (txn->rsp.msg_state < HTTP_MSG_DONE) {
-			/* The server has not finished to respond, so we
-			 * don't want to move in order not to upset it.
-			 */
-			return;
-		}
-
 		/* No need to read anymore, the request was completely parsed.
 		 * We can shut the read side unless we want to abort_on_close,
 		 * or we have a POST request. The issue with POST requests is
@@ -5099,6 +5092,13 @@
 		 */
 		chn->flags |= CF_NEVER_WAIT;
 
+		if (txn->rsp.msg_state < HTTP_MSG_DONE) {
+			/* The server has not finished to respond, so we
+			 * don't want to move in order not to upset it.
+			 */
+			return;
+		}
+
 		/* When we get here, it means that both the request and the
 		 * response have finished receiving. Depending on the connection
 		 * mode, we'll have to wait for the last bytes to leave in either