diff options
author | Ulrich Drepper <drepper@gmail.com> | 2012-03-30 08:27:11 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2012-03-30 08:27:11 -0400 |
commit | 8e6d108343c2f15d684b84fa48b73b23eb0e7c8b (patch) | |
tree | f4e170d5e82c00ed1358c406b0a4d33aca4205c7 | |
parent | c030f70c8796c7743c3aa97d6beff3bd5b8dcd5d (diff) | |
download | glibc-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-- | ChangeLog | 2 | ||||
-rw-r--r-- | resolv/res_send.c | 2 |
2 files changed, 2 insertions, 2 deletions
@@ -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); |