diff -Naru fetchmail-5.9.12.orig/socket.c fetchmail-5.9.12/socket.c --- fetchmail-5.9.12.orig/socket.c Fri May 24 12:57:06 2002 +++ fetchmail-5.9.12/socket.c Wed Jun 5 10:53:54 2002 @@ -608,46 +608,41 @@ out of the loop now */ newline = bp; } - } else { - if ((n = fm_peek(sock, bp, len)) <= 0) - return(-1); - if ((newline = memchr(bp, '\n', n)) != NULL) - n = newline - bp + 1; - if ((n = fm_read(sock, bp, n)) == -1) - return(-1); } -#else + else +#endif /* SSL_ENABLE */ + { #ifdef __BEOS__ - if ((n = fm_read(sock, bp, 1)) <= 0) + if ((n = fm_read(sock, bp, 1)) <= 0) #else - if ((n = fm_peek(sock, bp, len)) <= 0) + if ((n = fm_peek(sock, bp, len)) <= 0) #endif - return (-1); - if ((newline = memchr(bp, '\n', n)) != NULL) - n = newline - bp + 1; + return (-1); + if ((newline = memchr(bp, '\n', n)) != NULL) + n = newline - bp + 1; #ifndef __BEOS__ - if ((n2 = fm_read(sock, bp, n)) == -1) - return(-1); -#ifdef __CYGWIN__ - /* - * Workaround Microsoft Winsock recv/WSARecv(..., MSG_PEEK) bug. - * See http://sources.redhat.com/ml/cygwin/2001-08/msg00628.html - * for more details. - */ - if (n2 != n) { - int n3; - if (outlevel >= O_VERBOSE) - report(stdout, GT_("Cygwin socket read retry\n")); - n3 = fm_read(sock, bp + n2, n - n2); - if (n3 == -1 || n2 + n3 != n) { - report(stderr, GT_("Cygwin socket read retry failed!\n")); + if ((n2 = fm_read(sock, bp, n)) == -1) return(-1); +#ifdef __CYGWIN__ + /* + * Workaround Microsoft Winsock recv/WSARecv(..., MSG_PEEK) bug. + * See http://sources.redhat.com/ml/cygwin/2001-08/msg00628.html + * for more details. + */ + if (n2 != n) { + int n3; + if (outlevel >= O_VERBOSE) + report(stdout, GT_("Cygwin socket read retry\n")); + n3 = fm_read(sock, bp + n2, n - n2); + if (n3 == -1 || n2 + n3 != n) { + report(stderr, GT_("Cygwin socket read retry failed!\n")); + return(-1); + } } - } #endif /* __CYGWIN__ */ #endif /* __BEOS__ */ -#endif + } bp += n; len -= n; } while