From 8e6d108343c2f15d684b84fa48b73b23eb0e7c8b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 30 Mar 2012 08:27:11 -0400 Subject: [PATCH] Correct check for DNS request send success This predates the sendmmsg use. The two requests can use different request sizes but the check for successful transfer always only used buflen. --- ChangeLog | 2 +- resolv/res_send.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index fd46252..2dd220e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ 2012-03-30 Ulrich Drepper * resolv/res_send.c (send_dg): Use sendmmsg if we have to write two - requests to save a system call. + requests to save a system call. Fix check that all bytes are sent. * sysdeps/unix/sysv/linux/bits/socket.h (struct mmsghdr): Fix up comments for sendmmsg. diff --git a/resolv/res_send.c b/resolv/res_send.c index 0b5bc91..968ede0 100644 --- a/resolv/res_send.c +++ b/resolv/res_send.c @@ -1171,7 +1171,7 @@ send_dg(res_state statp, else sr = send (pfd[0].fd, buf, buflen, MSG_NOSIGNAL); - if (sr != buflen) { + if (sr != (nwritten != 0 ? buflen2 : buflen)) { if (errno == EINTR || errno == EAGAIN) goto recompute_resend; Perror(statp, stderr, "send", errno); -- 2.7.4