From 9dff4b6393673f1bcf351109a9cc77873dd1226e Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sun, 27 Mar 2022 21:40:51 +0200 Subject: [PATCH] cangen: do_send_one(): use sendmsg() instead of write() Signed-off-by: Marc Kleine-Budde --- cangen.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cangen.c b/cangen.c index c4dbbd9..85b8021 100644 --- a/cangen.c +++ b/cangen.c @@ -200,11 +200,19 @@ static void sigterm(int signo) 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; int ret; resend: - nbytes = write(fd, buf, len); + nbytes = sendmsg(fd, &msg, 0); if (nbytes < 0) { ret = -errno; if (ret != -ENOBUFS) {