Browse Source

There should be no error response code with return value 0 in recv_line.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
181cb1635f
  1. 22
      util.c

22
util.c

@ -1104,19 +1104,17 @@ char *recv_line(struct pool *pool) @@ -1104,19 +1104,17 @@ char *recv_line(struct pool *pool)
memset(s, 0, RBUFSIZE);
n = recv(pool->sock, s, RECVSIZE, 0);
if (n < 1) {
if (errno != EAGAIN && errno != EWOULDBLOCK) {
if (n == 0)
ret = RECV_CLOSED;
else
ret = RECV_RECVFAIL;
break;
}
} else {
slen = strlen(s);
recalloc_sock(pool, slen);
strcat(pool->sockbuf, s);
if (!n) {
ret = RECV_CLOSED;
break;
}
if (n < 0 && errno != EAGAIN && errno != EWOULDBLOCK) {
ret = RECV_RECVFAIL;
break;
}
slen = strlen(s);
recalloc_sock(pool, slen);
strcat(pool->sockbuf, s);
cgtime(&now);
} while (tdiff(&now, &rstart) < 60 && !strstr(pool->sockbuf, "\n"));
mutex_unlock(&pool->stratum_lock);

Loading…
Cancel
Save