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
This commit is contained in:
Stefan Eissing 2026-01-27 14:27:24 +01:00 committed by Daniel Stenberg
parent 05367694ec
commit cf4164fa8d
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -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