[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:
parent
2a3a51752b
commit
fc1daaf497
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user