|
|
@@ -1023,16 +1023,12 @@ bool stratum_send(struct pool *pool, char *s, ssize_t len)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-/* Check to see if Santa's been good to you */
|
|
|
-bool sock_full(struct pool *pool, bool wait)
|
|
|
+static bool socket_full(struct pool *pool, bool wait)
|
|
|
{
|
|
|
SOCKETTYPE sock = pool->sock;
|
|
|
struct timeval timeout;
|
|
|
fd_set rd;
|
|
|
|
|
|
- if (pool->readbuf.buf && memchr(pool->readbuf.buf, '\n', pool->readbuf.len))
|
|
|
- return true;
|
|
|
-
|
|
|
FD_ZERO(&rd);
|
|
|
FD_SET(sock, &rd);
|
|
|
timeout.tv_usec = 0;
|
|
|
@@ -1045,6 +1041,15 @@ bool sock_full(struct pool *pool, bool wait)
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+/* Check to see if Santa's been good to you */
|
|
|
+bool sock_full(struct pool *pool)
|
|
|
+{
|
|
|
+ if (pool->readbuf.buf && memchr(pool->readbuf.buf, '\n', pool->readbuf.len))
|
|
|
+ return true;
|
|
|
+
|
|
|
+ return (socket_full(pool, false));
|
|
|
+}
|
|
|
+
|
|
|
static void clear_sock(struct pool *pool)
|
|
|
{
|
|
|
ssize_t n;
|
|
|
@@ -1069,8 +1074,8 @@ char *recv_line(struct pool *pool)
|
|
|
while (!(pool->readbuf.buf && memchr(pool->readbuf.buf, '\n', pool->readbuf.len))) {
|
|
|
char s[RBUFSIZE];
|
|
|
|
|
|
- if (!sock_full(pool, true)) {
|
|
|
- applog(LOG_DEBUG, "Timed out waiting for data on sock_full");
|
|
|
+ if (!socket_full(pool, true)) {
|
|
|
+ applog(LOG_DEBUG, "Timed out waiting for data on socket_full");
|
|
|
goto out;
|
|
|
}
|
|
|
memset(s, 0, RBUFSIZE);
|
|
|
@@ -1506,7 +1511,7 @@ bool initiate_stratum(struct pool *pool)
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- if (!sock_full(pool, true)) {
|
|
|
+ if (!socket_full(pool, true)) {
|
|
|
applog(LOG_DEBUG, "Timed out waiting for response in initiate_stratum");
|
|
|
goto out;
|
|
|
}
|