CLEANUP: mux-quic: remove stconn usage in h3/hq
Small cleanup on snd_buf for application protocol layer.
* do not export h3_snd_buf
* replace stconn by a qcs argument. This is better as h3/hq-interop only
uses the qcs instance.
This should be backported up to 2.6.
diff --git a/src/h3.c b/src/h3.c
index 8d13f5d..187c606 100644
--- a/src/h3.c
+++ b/src/h3.c
@@ -31,7 +31,6 @@
#include <haproxy/qpack-dec.h>
#include <haproxy/qpack-enc.h>
#include <haproxy/quic_enc.h>
-#include <haproxy/stconn.h>
#include <haproxy/tools.h>
#include <haproxy/trace.h>
#include <haproxy/xprt_quic.h>
@@ -1013,10 +1012,9 @@
return total;
}
-size_t h3_snd_buf(struct stconn *sc, struct buffer *buf, size_t count, int flags)
+static size_t h3_snd_buf(struct qcs *qcs, struct buffer *buf, size_t count, int flags)
{
size_t total = 0;
- struct qcs *qcs = __sc_mux_strm(sc);
struct htx *htx;
enum htx_blk_type btype;
struct htx_blk *blk;
diff --git a/src/hq_interop.c b/src/hq_interop.c
index be0287f..a133cd5 100644
--- a/src/hq_interop.c
+++ b/src/hq_interop.c
@@ -12,7 +12,6 @@
{
struct htx *htx;
struct htx_sl *sl;
- struct stconn *sc;
struct buffer htx_buf = BUF_NULL;
struct ist path;
char *ptr = b_head(b);
@@ -70,8 +69,7 @@
htx_add_endof(htx, HTX_BLK_EOH);
htx_to_buf(htx, &htx_buf);
- sc = qc_attach_sc(qcs, &htx_buf);
- if (!sc)
+ if (!qc_attach_sc(qcs, &htx_buf))
return -1;
b_free(&htx_buf);
@@ -90,10 +88,9 @@
return &qcs->tx.buf;
}
-static size_t hq_interop_snd_buf(struct stconn *sc, struct buffer *buf,
+static size_t hq_interop_snd_buf(struct qcs *qcs, struct buffer *buf,
size_t count, int flags)
{
- struct qcs *qcs = __sc_mux_strm(sc);
struct htx *htx;
enum htx_blk_type btype;
struct htx_blk *blk;
diff --git a/src/mux_quic.c b/src/mux_quic.c
index 08db538..5b4a354 100644
--- a/src/mux_quic.c
+++ b/src/mux_quic.c
@@ -2225,7 +2225,7 @@
goto end;
}
- ret = qcs->qcc->app_ops->snd_buf(sc, buf, count, flags);
+ ret = qcs->qcc->app_ops->snd_buf(qcs, buf, count, flags);
end:
TRACE_LEAVE(QMUX_EV_STRM_SEND, qcs->qcc->conn, qcs);