cangen: do_send_one(): use sendmsg() instead of write()
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>pull/389/head
parent
759524f02c
commit
9dff4b6393
10
cangen.c
10
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)
|
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) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue