cangen: do_send_one(): use sendmsg() instead of write()

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
pull/389/head
Marc Kleine-Budde 2022-03-27 21:40:51 +02:00
parent 759524f02c
commit 9dff4b6393
1 changed files with 9 additions and 1 deletions

View File

@ -200,11 +200,19 @@ static void sigterm(int signo)
static int do_send_one(int fd, void *buf, size_t len, int timeout) static int do_send_one(int fd, void *buf, size_t len, int timeout)
{ {
struct iovec iov = {
.iov_base = buf,
.iov_len = len,
};
struct msghdr msg = {
.msg_iov = &iov,
.msg_iovlen = 1,
};
ssize_t nbytes; ssize_t nbytes;
int ret; int ret;
resend: resend:
nbytes = write(fd, buf, len); nbytes = sendmsg(fd, &msg, 0);
if (nbytes < 0) { if (nbytes < 0) {
ret = -errno; ret = -errno;
if (ret != -ENOBUFS) { if (ret != -ENOBUFS) {