MINOR: quic-be: avoid a useless I/O callback wakeup for 0-RTT sessions

For backends and 0-RTT sessions, this patch modifies the ->start() callback to
wake up the I/O callback only if the connection (and the mux) is not ready. Note that
connect_server() has been modified to call this xprt callback just after having
created the mux and installed the mux. Contrary to 1-RTT session, for 0-RTT sessions,
the connections are always ready before calling this ->start xprt callback.
This commit is contained in:
Frederic Lecaille 2025-11-06 15:36:43 +01:00
parent 92d2ab76e0
commit c76e072e43

View File

@ -182,7 +182,8 @@ static int qc_xprt_start(struct connection *conn, void *ctx)
* is not done for 0-RTT as xprt->start happens before handshake
* completion.
*/
if (qc_is_back(qc) || (qc->flags & QUIC_FL_CONN_NEED_POST_HANDSHAKE_FRMS))
if ((qc_is_back(qc) && !qc_is_conn_ready(qc)) ||
(qc->flags & QUIC_FL_CONN_NEED_POST_HANDSHAKE_FRMS))
tasklet_wakeup(qc->wait_event.tasklet);
ret = 1;