mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
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.
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
2012-03-30 Ulrich Drepper <drepper@gmail.com>
|
2012-03-30 Ulrich Drepper <drepper@gmail.com>
|
||||||
|
|
||||||
* resolv/res_send.c (send_dg): Use sendmmsg if we have to write two
|
* 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
|
* sysdeps/unix/sysv/linux/bits/socket.h (struct mmsghdr): Fix up
|
||||||
comments for sendmmsg.
|
comments for sendmmsg.
|
||||||
|
@ -1171,7 +1171,7 @@ send_dg(res_state statp,
|
|||||||
else
|
else
|
||||||
sr = send (pfd[0].fd, buf, buflen, MSG_NOSIGNAL);
|
sr = send (pfd[0].fd, buf, buflen, MSG_NOSIGNAL);
|
||||||
|
|
||||||
if (sr != buflen) {
|
if (sr != (nwritten != 0 ? buflen2 : buflen)) {
|
||||||
if (errno == EINTR || errno == EAGAIN)
|
if (errno == EINTR || errno == EAGAIN)
|
||||||
goto recompute_resend;
|
goto recompute_resend;
|
||||||
Perror(statp, stderr, "send", errno);
|
Perror(statp, stderr, "send", errno);
|
||||||
|
Reference in New Issue
Block a user