1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-11 07:17:58 +00:00

Use sock_blocks function for stratum send and receive.

This commit is contained in:
Con Kolivas 2013-04-24 23:07:42 +10:00
parent a2a7a036f0
commit af60a19ddd

7
util.c
View File

@ -963,7 +963,7 @@ static enum send_ret __stratum_send(struct pool *pool, char *s, ssize_t len)
return SEND_SELECTFAIL; return SEND_SELECTFAIL;
sent = send(pool->sock, s + ssent, len, 0); sent = send(pool->sock, s + ssent, len, 0);
if (sent < 0) { if (sent < 0) {
if (errno != EAGAIN && errno != EWOULDBLOCK) if (!sock_blocks())
return SEND_SENDFAIL; return SEND_SENDFAIL;
sent = 0; sent = 0;
} }
@ -1108,13 +1108,16 @@ char *recv_line(struct pool *pool)
ret = RECV_CLOSED; ret = RECV_CLOSED;
break; break;
} }
if (n < 0 && errno != EAGAIN && errno != EWOULDBLOCK) { if (n < 0) {
if (!sock_blocks()) {
ret = RECV_RECVFAIL; ret = RECV_RECVFAIL;
break; break;
} }
} else {
slen = strlen(s); slen = strlen(s);
recalloc_sock(pool, slen); recalloc_sock(pool, slen);
strcat(pool->sockbuf, s); strcat(pool->sockbuf, s);
}
cgtime(&now); cgtime(&now);
} while (tdiff(&now, &rstart) < 60 && !strstr(pool->sockbuf, "\n")); } while (tdiff(&now, &rstart) < 60 && !strstr(pool->sockbuf, "\n"));
mutex_unlock(&pool->stratum_lock); mutex_unlock(&pool->stratum_lock);