MINOR: h3: add h3c pointer into h3s instance

As a mirror to qcc/qcs types, add a h3c pointer into h3s struct. This
should help to clean up H3 code and avoid to use qcs.qcc.ctx to retrieve
the h3c instance.
diff --git a/src/h3.c b/src/h3.c
index 1b8e378..b9a9fed 100644
--- a/src/h3.c
+++ b/src/h3.c
@@ -133,6 +133,8 @@
 #define H3_SF_UNI_NO_H3 0x00000002  /* unidirectional stream does not carry H3 frames */
 
 struct h3s {
+	struct h3c *h3c;
+
 	enum h3s_t type;
 	int demux_frame_len;
 	int demux_frame_type;
@@ -574,11 +576,11 @@
  *
  * Returns 0 on success else non-zero.
  */
-static int h3_decode_qcs(struct qcs *qcs, int fin, void *ctx)
+static int h3_decode_qcs(struct qcs *qcs, int fin)
 {
 	struct ncbuf *rxbuf = &qcs->rx.ncbuf;
-	struct h3c *h3c = ctx;
 	struct h3s *h3s = qcs->ctx;
+	struct h3c *h3c = h3s->h3c;
 	ssize_t ret;
 
 	h3_debug_printf(stderr, "%s: STREAM ID: %lu\n", __func__, qcs->id);
@@ -1020,7 +1022,7 @@
 	return total;
 }
 
-static int h3_attach(struct qcs *qcs)
+static int h3_attach(struct qcs *qcs, void *conn_ctx)
 {
 	struct h3s *h3s;
 
@@ -1031,6 +1033,8 @@
 		return 1;
 
 	qcs->ctx = h3s;
+	h3s->h3c = conn_ctx;
+
 	h3s->demux_frame_len = 0;
 	h3s->demux_frame_type = 0;
 	h3s->flags = 0;
diff --git a/src/hq_interop.c b/src/hq_interop.c
index c9ab683..f5c0e79 100644
--- a/src/hq_interop.c
+++ b/src/hq_interop.c
@@ -9,7 +9,7 @@
 #include <haproxy/mux_quic.h>
 #include <haproxy/ncbuf.h>
 
-static int hq_interop_decode_qcs(struct qcs *qcs, int fin, void *ctx)
+static int hq_interop_decode_qcs(struct qcs *qcs, int fin)
 {
 	struct ncbuf *rxbuf = &qcs->rx.ncbuf;
 	struct htx *htx;
diff --git a/src/mux_quic.c b/src/mux_quic.c
index 04ed1ba..84237c3 100644
--- a/src/mux_quic.c
+++ b/src/mux_quic.c
@@ -139,7 +139,7 @@
 
 	qcs->id = qcs->by_id.key = id;
 	if (qcc->app_ops->attach) {
-		if (qcc->app_ops->attach(qcs))
+		if (qcc->app_ops->attach(qcs, qcc->ctx))
 			goto err;
 	}
 
@@ -434,7 +434,7 @@
 {
 	TRACE_ENTER(QMUX_EV_QCS_RECV, qcc->conn, qcs);
 
-	if (qcc->app_ops->decode_qcs(qcs, qcs->flags & QC_SF_FIN_RECV, qcc->ctx)) {
+	if (qcc->app_ops->decode_qcs(qcs, qcs->flags & QC_SF_FIN_RECV)) {
 		TRACE_DEVEL("leaving on decoding error", QMUX_EV_QCS_RECV, qcc->conn, qcs);
 		return 1;
 	}