From 8a25fcd36e0f63abe2d811c6bd33b0ac8869f9ad Mon Sep 17 00:00:00 2001 From: Frederic Lecaille Date: Wed, 25 Jun 2025 16:04:28 +0200 Subject: [PATCH] MINOR: quic-be: Allow sending 1200 bytes Initial datagrams This easy to understand patch is not intrusive at all and cannot break the QUIC listeners. The QUIC client MUST always pad its datagrams with Initial packets. A "!l" (not a listener) test OR'ed with the existing ones is added to satisfy the condition to allow the build of such datagrams. --- src/quic_tx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/quic_tx.c b/src/quic_tx.c index 342a2dc58..8ce67bbf6 100644 --- a/src/quic_tx.c +++ b/src/quic_tx.c @@ -679,7 +679,7 @@ static int qc_prep_pkts(struct quic_conn *qc, struct buffer *buf, * datagrams carrying ack-eliciting Initial packets to at least the * smallest allowed maximum datagram size of 1200 bytes. */ - if (qel == qc->iel && (!LIST_ISEMPTY(frms) || probe)) { + if (qel == qc->iel && (!l || !LIST_ISEMPTY(frms) || probe)) { /* Ensure that no ack-eliciting packets are sent into too small datagrams */ if (end - pos < QUIC_INITIAL_PACKET_MINLEN) { TRACE_PROTO("No more enough room to build an Initial packet", @@ -704,7 +704,7 @@ static int qc_prep_pkts(struct quic_conn *qc, struct buffer *buf, */ cur_pkt = qc_build_pkt(&pos, end, qel, tls_ctx, frms, qc, ver, dglen, pkt_type, must_ack, - padding && !next_qel && (!probe || !LIST_ISEMPTY(frms)), + padding && (!l || (!next_qel && (!probe || !LIST_ISEMPTY(frms)))), probe, cc, &err); if (!cur_pkt) { switch (err) {