MINOR: quic: implement sending confirmation
Implement a new MUX function qcc_notify_send. This function must be
called by the transport layer to confirm the sending of STREAM data to
the MUX.
For the moment, the function has no real purpose. However, it will be
useful to solve limitations on push frame and implement the flow
control.
diff --git a/src/xprt_quic.c b/src/xprt_quic.c
index 7f3b02a..bfe888f 100644
--- a/src/xprt_quic.c
+++ b/src/xprt_quic.c
@@ -4889,6 +4889,10 @@
/* <cf> STREAM data have been consumed. */
LIST_DELETE(&cf->list);
LIST_APPEND(outlist, &cf->list);
+
+ qcc_streams_sent_done(cf->stream.qcs,
+ cf->stream.len,
+ cf->stream.offset.key);
}
else {
struct quic_frame *new_cf;
@@ -4920,7 +4924,20 @@
cf->stream.len -= dlen;
cf->stream.offset.key += dlen;
cf->stream.data = (unsigned char *)b_peek(&cf_buf, dlen);
+
+ qcc_streams_sent_done(new_cf->stream.qcs,
+ new_cf->stream.len,
+ new_cf->stream.offset.key);
}
+
+ /* TODO the MUX is notified about the frame sending via
+ * previous qcc_streams_sent_done call. However, the
+ * sending can fail later, for example if the sendto
+ * system call returns an error. As the MUX has been
+ * notified, the transport layer is responsible to
+ * bufferize and resent the announced data later.
+ */
+
break;
default: