Differentiate socket closed from socket error in recv_line.
diff --git a/util.c b/util.c
index 4428199..5665f80 100644
--- a/util.c
+++ b/util.c
@@ -1038,11 +1038,16 @@ char *recv_line(struct pool *pool)
mutex_lock(&pool->stratum_lock);
do {
char s[RBUFSIZE];
- size_t slen, n;
+ size_t slen;
+ ssize_t n;
memset(s, 0, RBUFSIZE);
n = recv(pool->sock, s, RECVSIZE, 0);
- if (n < 1 && errno != EAGAIN && errno != EWOULDBLOCK) {
+ if (!n) {
+ applog(LOG_DEBUG, "Socket closed waiting in recv_line");
+ break;
+ }
+ if (n < 0 && errno != EAGAIN && errno != EWOULDBLOCK) {
applog(LOG_DEBUG, "Failed to recv sock in recv_line");
break;
}