Browse Source

Differentiate socket closed from socket error in recv_line.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
2f89eef4b1
  1. 9
      util.c

9
util.c

@ -1038,11 +1038,16 @@ char *recv_line(struct pool *pool)
mutex_lock(&pool->stratum_lock); mutex_lock(&pool->stratum_lock);
do { do {
char s[RBUFSIZE]; char s[RBUFSIZE];
size_t slen, n; size_t slen;
ssize_t n;
memset(s, 0, RBUFSIZE); memset(s, 0, RBUFSIZE);
n = recv(pool->sock, s, RECVSIZE, 0); 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"); applog(LOG_DEBUG, "Failed to recv sock in recv_line");
break; break;
} }

Loading…
Cancel
Save