Browse Source

Use cURL return code to check if cURL sockets hit CURLE_AGAIN

Luke Dashjr 11 years ago
parent
commit
0f455c0997
1 changed files with 4 additions and 6 deletions
  1. 4 6
      util.c

+ 4 - 6
util.c

@@ -1610,7 +1610,7 @@ retry:
 		rc = curl_easy_send(pool->stratum_curl, s + ssent, len, &sent);
 		if (rc != CURLE_OK)
 		{
-			if (!sock_blocks())
+			if (rc != CURLE_AGAIN)
 				return SEND_SENDFAIL;
 			sent = 0;
 		}
@@ -1762,11 +1762,9 @@ char *recv_line(struct pool *pool)
 			waited = tdiff(&now, &rstart);
 			if (rc != CURLE_OK)
 			{
-				//Save errno from being overweitten bei socket_ commands 
-				int socket_recv_errno;
-				socket_recv_errno = SOCKERR;
-				if (!sock_blocks() || !socket_full(pool, DEFAULT_SOCKWAIT - waited)) {
-					applog(LOG_DEBUG, "Failed to recv sock in recv_line: %s", bfg_strerror(socket_recv_errno, BST_SOCKET));
+				if (rc != CURLE_AGAIN || !socket_full(pool, DEFAULT_SOCKWAIT - waited))
+				{
+					applog(LOG_DEBUG, "Failed to recv sock in recv_line");
 					suspend_stratum(pool);
 					break;
 				}