Browse Source

Revert "Don't wait on select when first detecting stratum, just receive one line."

This reverts commit 496af92afd.

Not quite right.
nfactor-troky
Con Kolivas 12 years ago
parent
commit
d851bf3d65
  1. 15
      util.c

15
util.c

@ -897,14 +897,18 @@ static void clear_sock(SOCKETTYPE sock)
} }
/* Check to see if Santa's been good to you */ /* Check to see if Santa's been good to you */
static bool sock_full(SOCKETTYPE sock) static bool sock_full(SOCKETTYPE sock, bool wait)
{ {
struct timeval timeout; struct timeval timeout;
fd_set rd; fd_set rd;
FD_ZERO(&rd); FD_ZERO(&rd);
FD_SET(sock, &rd); FD_SET(sock, &rd);
timeout.tv_usec = timeout.tv_sec = 0; timeout.tv_usec = 0;
if (wait)
timeout.tv_sec = 60;
else
timeout.tv_sec = 0;
if (select(sock + 1, &rd, NULL, NULL, &timeout) > 0) if (select(sock + 1, &rd, NULL, NULL, &timeout) > 0)
return true; return true;
return false; return false;
@ -1137,7 +1141,7 @@ bool auth_stratum(struct pool *pool)
swork_id++, pool->rpc_user, pool->rpc_pass); swork_id++, pool->rpc_user, pool->rpc_pass);
/* Parse all data prior sending auth request */ /* Parse all data prior sending auth request */
while (sock_full(pool->sock)) { while (sock_full(pool->sock, false)) {
sret = recv_line(pool->sock); sret = recv_line(pool->sock);
if (!parse_method(pool, sret)) { if (!parse_method(pool, sret)) {
clear_sock(pool->sock); clear_sock(pool->sock);
@ -1208,6 +1212,11 @@ bool initiate_stratum(struct pool *pool)
goto out; goto out;
} }
if (!sock_full(pool->sock, true)) {
applog(LOG_DEBUG, "Timed out waiting for response in initiate_stratum");
goto out;
}
sret = recv_line(pool->sock); sret = recv_line(pool->sock);
if (!sret) if (!sret)
goto out; goto out;

Loading…
Cancel
Save