MINOR: h2: detect presence of CONNECT and/or content-length

We'll need this in order to support uploading chunks. The h2 to h1
converter checks for the presence of the content-length header field
as well as the CONNECT method and returns these information to the
caller. The caller indicates whether or not a body is detected for
the message (presence of END_STREAM or not). No transfer-encoding
header is emitted yet.
diff --git a/src/mux_h2.c b/src/mux_h2.c
index f27131f..5655bd8 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -2586,6 +2586,7 @@
 	struct chunk *tmp = get_trash_chunk();
 	struct http_hdr list[MAX_HTTP_HDR * 2];
 	struct chunk *copy = NULL;
+	unsigned int msgf;
 	int flen = h2c->dfl;
 	int outlen = 0;
 	int wrap;
@@ -2687,13 +2688,22 @@
 	}
 
 	/* OK now we have our header list in <list> */
-	outlen = h2_make_h1_request(list, bi_end(buf), try);
+	msgf = (h2c->dff & H2_F_DATA_END_STREAM) ? 0 : H2_MSGF_BODY;
+	outlen = h2_make_h1_request(list, bi_end(buf), try, &msgf);
 
 	if (outlen < 0) {
 		h2c_error(h2c, H2_ERR_COMPRESSION_ERROR);
 		goto fail;
 	}
 
+	if (msgf & H2_MSGF_BODY) {
+		/* a payload is present */
+		if (msgf & H2_MSGF_BODY_CL)
+			h2s->flags |= H2_SF_DATA_CLEN;
+		else if (!(msgf & H2_MSGF_BODY_TUNNEL))
+			h2s->flags |= H2_SF_DATA_CHNK;
+	}
+
 	/* now consume the input data */
 	bi_del(h2c->dbuf, h2c->dfl);
 	h2c->st0 = H2_CS_FRAME_H;