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
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) {
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