From: Stefan Eissing Date: Tue, 27 Jan 2026 13:27:24 +0000 (+0100) Subject: vquic: handle SOCKEMSGSIZE correctly X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cf4164fa8dc3e09b2fb729ba231ecbf7b5d015de;p=thirdparty%2Fcurl.git 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 --- 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