]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[CLEANUP] stream_sock: MSG_NOSIGNAL is only for send(), not recv()
authorWilly Tarreau <w@1wt.eu>
Fri, 15 Jan 2010 09:26:13 +0000 (10:26 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 28 Jan 2010 22:16:37 +0000 (23:16 +0100)
We must not set this flag on recv(), it's not used, it's just for
send().
(cherry picked from commit fc1daaf49759b7cdfbecbafa2ba0f84e2d97688c)

src/checks.c
src/stream_sock.c

index 26d4706bf686ca2ae390485b3d32ab782122ee7b..4d988308123dec46ee3f539dd0f14659a86d04ef 100644 (file)
@@ -454,7 +454,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;
index 1181812a80e19728fa01827e07d26fbb42af7107..89d165d23844cbe907dc534ca624d06d646cc803 100644 (file)
@@ -301,18 +301,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;