Skip to content

Commit 79478ce

Browse files
committed
[FIX] stratum connect with timeout
i think i found a smarter solution without while and sleep
1 parent 6159123 commit 79478ce

File tree

1 file changed

+9
-27
lines changed

1 file changed

+9
-27
lines changed

public/include/admin_checks.php

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -100,34 +100,16 @@
100100
if (function_exists('socket_create')) {
101101
$host = @gethostbyname($config['gettingstarted']['stratumurl']);
102102
$port = $config['gettingstarted']['stratumport'];
103-
$timeout = 3;
104-
$stratumerror = false;
105-
106-
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
107-
108-
socket_set_nonblock($socket)
109-
or die('Failed to set socket to non-blocking');
110-
111-
$time = time();
112-
while (!@socket_connect($socket, $host, $port)) {
113-
$err = socket_last_error($socket);
114-
if ($err == 115 || $err == 114) {
115-
if ((time() - $time) >= $timeout) {
116-
socket_close($socket);
117-
$stratumerror = true;
118-
break;
119-
}
120-
sleep(1);
121-
continue;
122-
}
123-
$stratumerrormessage = socket_strerror($err);
124-
}
125-
if ($stratumerror) {
126-
$enotice[] = 'We tried to poke your Stratum server using your $config[\'gettingstarted\'] settings but it didn\'t respond - ' . $stratumerrormessage;
127-
} else {
128-
socket_set_block($socket)
129-
or die('Failed to set socket to blocking');
103+
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 3, 'usec' => 0));
104+
105+
if (isset($port) and
106+
($socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) and
107+
(socket_connect($socket, $host, $port)))
108+
{
109+
socket_close($socket);
130110
}
111+
else
112+
$enotice[] = 'We tried to poke your Stratum server using your $config[\'gettingstarted\'] settings but it didn\'t respond - ' . socket_strerror(socket_last_error());
131113
} else {
132114
// Connect via fsockopen as fallback
133115
if (! $fp = @fsockopen($config['gettingstarted']['stratumurl'], $config['gettingstarted']['stratumport'], $errCode, $errStr, 1)) {

0 commit comments

Comments
 (0)