[CLEANUP] stream_sock: MSG_NOSIGNAL is only for send(), not recv()

We must not set this flag on recv(), it's not used, it's just for
send().
This commit is contained in:
Willy Tarreau 2010-01-15 10:26:13 +01:00
parent 2a3a51752b
commit fc1daaf497
2 changed files with 2 additions and 13 deletions

View File

@ -791,7 +791,7 @@ static int event_srv_chk_r(int fd)
* but the connection was closed on the remote end. Fortunately, recv still
* works correctly and we don't need to do the getsockopt() on linux.
*/
len = recv(fd, trash, sizeof(trash), MSG_NOSIGNAL);
len = recv(fd, trash, sizeof(trash), 0);
if (unlikely(len < 0 && errno == EAGAIN)) {
/* we want some polling to happen first */
fdtab[fd].ev &= ~FD_POLL_IN;

View File

@ -321,18 +321,7 @@ int stream_sock_read(int fd) {
/*
* 2. read the largest possible block
*/
if (MSG_NOSIGNAL) {
ret = recv(fd, b->r, max, MSG_NOSIGNAL);
} else {
int skerr;
socklen_t lskerr = sizeof(skerr);
ret = getsockopt(fd, SOL_SOCKET, SO_ERROR, &skerr, &lskerr);
if (ret == -1 || skerr)
ret = -1;
else
ret = recv(fd, b->r, max, 0);
}
ret = recv(fd, b->r, max, 0);
if (ret > 0) {
b->r += ret;