6e36a4ced5287d78501985f9788aae846515e4c3 galt Tue Nov 3 10:56:08 2015 -0800 user got EINTR Error (Interrupted system call) so we should retry. diff --git src/lib/net.c src/lib/net.c index 3bf8b7b..1003e48 100644 --- src/lib/net.c +++ src/lib/net.c @@ -1379,31 +1379,35 @@ if (byteRangeUsed) { parseByteRange(url, &byteRangeStart, &byteRangeEnd, FALSE); } while(TRUE) { i = 0; while (TRUE) { nread = read(sd, &c, 1); /* one char at a time, but http headers are small */ if (nread != 1) { if (nread == -1) + { + if (errno == EINTR) + continue; warn("Error (%s) reading http header on %s", strerror(errno), url); + } else if (nread == 0) warn("Error unexpected end of input reading http header on %s", url); else warn("Error reading http header on %s", url); return FALSE; /* err reading descriptor */ } if (c == 10) break; if (c != 13) buf[i++] = c; if (i >= maxbuf) { warn("http header line too long > %d chars.",maxbuf); return FALSE; }