]> Pileus Git - ~andy/fetchmail/commitdiff
Cleaner version of SockRead.
authorEric S. Raymond <esr@thyrsus.com>
Wed, 14 May 1997 13:51:52 +0000 (13:51 -0000)
committerEric S. Raymond <esr@thyrsus.com>
Wed, 14 May 1997 13:51:52 +0000 (13:51 -0000)
svn path=/trunk/; revision=995

socket.c

index 1df8061fae554e5e42cce9b29b65c83ae902ea15..71b7d54395eddcc7bc4510985e3454fd99a254cb 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -129,22 +129,20 @@ int SockRead(int sock, char *buf, int len)
         */
        readlen = 0;
 
-       /* return value of 0 is EOF, < 0 is error */
        if ((n = recv(sock, bp, len, MSG_PEEK)) <= 0)
            return(-1);
        if ((p = memchr(bp, '\n', n)) != NULL)
-       {
-           if ((n = read(sock, bp, ++p - bp)) == -1)
-               return(-1);
-           readlen += n;
-           *p = '\0';
-           return readlen;
-       }
+           n = ++p - bp;
        if ((n = read(sock, bp, n)) == -1)
            return(-1);
        readlen += n;
        bp += n;
        len -= n;
+       if (p)
+       {
+           *p = '\0';
+           break;
+       }
     } while 
            (len);
     *bp = '\0';