aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2012-03-30 08:27:11 -0400
committerUlrich Drepper <drepper@gmail.com>2012-03-30 08:27:11 -0400
commit8e6d108343c2f15d684b84fa48b73b23eb0e7c8b (patch)
treef4e170d5e82c00ed1358c406b0a4d33aca4205c7
parentc030f70c8796c7743c3aa97d6beff3bd5b8dcd5d (diff)
downloadglibc-8e6d108343c2f15d684b84fa48b73b23eb0e7c8b.zip
glibc-8e6d108343c2f15d684b84fa48b73b23eb0e7c8b.tar.gz
glibc-8e6d108343c2f15d684b84fa48b73b23eb0e7c8b.tar.bz2
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.
-rw-r--r--ChangeLog2
-rw-r--r--resolv/res_send.c2
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 <drepper@gmail.com>
* 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);