mirror of
https://github.com/curl/curl.git
synced 2026-04-11 12:01:42 +08:00
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:
parent
05367694ec
commit
cf4164fa8d
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user