MINOR: quic: abort on unlisted errno on sendto()

If an unlisted errno is reported, abort the process. If a crash is
reported on this condition, we must determine if the error code is a
bug, should interrupt emission on the fd or if we can retry the syscall.
This commit is contained in:
Amaury Denoyelle 2022-05-18 18:26:13 +02:00
parent 8fa666650f
commit ad5df386d9

View File

@ -339,14 +339,18 @@ size_t qc_snd_buf(struct quic_conn *qc, const struct buffer *buf, size_t count,
if (ret < try)
break;
}
else if (errno == EINTR) {
/* try again */
continue;
}
else if (ret == 0 || errno == EAGAIN || errno == EWOULDBLOCK || errno == ENOTCONN || errno == EINPROGRESS) {
/* TODO must be handle properly. It is justified for UDP ? */
qc->sendto_err++;
break;
}
else if (errno != EINTR) {
/* TODO must be handle properly. It is justified for UDP ? */
qc->sendto_err++;
else if (errno) {
/* TODO unlisted errno : handle it explicitely. */
ABORT_NOW();
}
}