@@ -469,18 +469,19 @@ int qc_purge_txbuf(struct quic_conn *qc, struct buffer *buf)
469469 *
470470 * Returns the result from qc_send() function.
471471 */
472- int qc_send_mux (struct quic_conn * qc , struct list * frms )
472+ enum quic_tx_err qc_send_mux (struct quic_conn * qc , struct list * frms )
473473{
474474 struct list send_list = LIST_HEAD_INIT (send_list );
475- int ret ;
475+ enum quic_tx_err ret = QUIC_TX_ERR_NONE ;
476+ int sent ;
476477
477478 TRACE_ENTER (QUIC_EV_CONN_TXPKT , qc );
478479 BUG_ON (qc -> mux_state != QC_MUX_READY ); /* Only MUX can uses this function so it must be ready. */
479480
480481 if (qc -> conn -> flags & CO_FL_SOCK_WR_SH ) {
481482 qc -> conn -> flags |= CO_FL_ERROR | CO_FL_SOCK_RD_SH ;
482483 TRACE_DEVEL ("connection on error" , QUIC_EV_CONN_TXPKT , qc );
483- return 0 ;
484+ return QUIC_TX_ERR_FATAL ;
484485 }
485486
486487 /* Try to send post handshake frames first unless on 0-RTT. */
@@ -493,7 +494,9 @@ int qc_send_mux(struct quic_conn *qc, struct list *frms)
493494
494495 TRACE_STATE ("preparing data (from MUX)" , QUIC_EV_CONN_TXPKT , qc );
495496 qel_register_send (& send_list , qc -> ael , frms );
496- ret = qc_send (qc , 0 , & send_list , 0 );
497+ sent = qc_send (qc , 0 , & send_list , 0 );
498+ if (sent <= 0 )
499+ ret = QUIC_TX_ERR_FATAL ;
497500
498501 TRACE_LEAVE (QUIC_EV_CONN_TXPKT , qc );
499502 return ret ;
0 commit comments