MINOR: quic: notify on send ready
This patch completes the previous one with poller subscribe of quic-conn
owned socket on sendto() error. This ensures that mux-quic is notified
if waiting on sending when a transient sendto() error is cleared. As
such, qc_notify_send() is called directly inside socket I/O callback.
qc_notify_send() internal condition have been thus completed. This will
prevent to notify upper layer until all sending condition are fulfilled:
room in congestion window and no transient error on socket FD.
This should be backported up to 2.7.
diff --git a/src/quic_conn.c b/src/quic_conn.c
index 1021bb1..4639e67 100644
--- a/src/quic_conn.c
+++ b/src/quic_conn.c
@@ -7809,7 +7809,8 @@
int qc_notify_send(struct quic_conn *qc)
{
if (qc->subs && qc->subs->events & SUB_RETRY_SEND) {
- if (quic_path_prep_data(qc->path)) {
+ if (quic_path_prep_data(qc->path) &&
+ (!qc_test_fd(qc) || !fd_send_active(qc->fd))) {
tasklet_wakeup(qc->subs->tasklet);
qc->subs->events &= ~SUB_RETRY_SEND;
if (!qc->subs->events)