mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-10 17:17:06 +02:00
MINOR: quic: Wake up the mux to probe with new data
When we have to probe the peer, we must first try to send new data. This is done here waking up the mux after having set the number of maximum number of datagrams to send to QUIC_MAX_NB_PTO_DGRAMS (2). Of course, this is only the case if the mux was subscribed to SEND events.
This commit is contained in:
parent
d8b798d7ef
commit
dafbde6c8c
@ -4244,14 +4244,26 @@ static struct task *process_timer(struct task *task, void *ctx, unsigned int sta
|
||||
}
|
||||
|
||||
if (qc->path->in_flight) {
|
||||
qc->flags |= QUIC_FL_CONN_RETRANS_NEEDED;
|
||||
pktns = quic_pto_pktns(qc, qc->state >= QUIC_HS_ST_COMPLETE, NULL);
|
||||
if (qc->mux_state == QC_MUX_READY && qc->qcc->subs &&
|
||||
qc->qcc->subs->events & SUB_RETRY_SEND) {
|
||||
struct qcc *qcc = qc->qcc;
|
||||
|
||||
pktns->tx.pto_probe = QUIC_MAX_NB_PTO_DGRAMS;
|
||||
tasklet_wakeup(qcc->subs->tasklet);
|
||||
qcc->subs->events &= ~SUB_RETRY_SEND;
|
||||
if (!qcc->subs->events)
|
||||
qcc->subs = NULL;
|
||||
}
|
||||
else {
|
||||
qc->flags |= QUIC_FL_CONN_RETRANS_NEEDED;
|
||||
pktns->flags |= QUIC_FL_PKTNS_PROBE_NEEDED;
|
||||
if (pktns == &qc->pktns[QUIC_TLS_PKTNS_INITIAL]) {
|
||||
if (qc->pktns[QUIC_TLS_PKTNS_HANDSHAKE].tx.in_flight)
|
||||
qc->pktns[QUIC_TLS_PKTNS_HANDSHAKE].flags |= QUIC_FL_PKTNS_PROBE_NEEDED;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!qc_is_listener(qc) && qc->state <= QUIC_HS_ST_COMPLETE) {
|
||||
struct quic_enc_level *iel = &qc->els[QUIC_TLS_ENC_LEVEL_INITIAL];
|
||||
struct quic_enc_level *hel = &qc->els[QUIC_TLS_ENC_LEVEL_HANDSHAKE];
|
||||
|
Loading…
Reference in New Issue
Block a user