From cf4164fa8dc3e09b2fb729ba231ecbf7b5d015de Mon Sep 17 00:00:00 2001 From: Stefan Eissing Date: Tue, 27 Jan 2026 14:27:24 +0100 Subject: [PATCH] vquic: handle SOCKEMSGSIZE correctly Report UDP packets with SOCKEMSGSIZE as being "sent" to progress the send buffer properly on PMTUD probes. Reported-by: Daniil Gentili Fixes #20440 Closes #20448 --- lib/vquic/vquic.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/vquic/vquic.c b/lib/vquic/vquic.c index 31a5297f35..5cf4b0f90c 100644 --- a/lib/vquic/vquic.c +++ b/lib/vquic/vquic.c @@ -168,6 +168,7 @@ static CURLcode do_sendmsg(struct Curl_cfilter *cf, return CURLE_AGAIN; case SOCKEMSGSIZE: /* UDP datagram is too large; caused by PMTUD. Just let it be lost. */ + *psent = pktlen; break; case EIO: if(pktlen > gsolen) { @@ -206,13 +207,13 @@ static CURLcode do_sendmsg(struct Curl_cfilter *cf, goto out; } else { - failf(data, "send() returned %zd (errno %d)", rv, SOCKERRNO); if(SOCKERRNO != SOCKEMSGSIZE) { + failf(data, "send() returned %zd (errno %d)", rv, SOCKERRNO); result = CURLE_SEND_ERROR; goto out; } - /* UDP datagram is too large; caused by PMTUD. Just let it be - lost. */ + /* UDP datagram is too large; caused by PMTUD. Just let it be lost. */ + *psent = pktlen; } } #endif -- 2.47.3