|
100 | 100 | if (function_exists('socket_create')) { |
101 | 101 | $host = @gethostbyname($config['gettingstarted']['stratumurl']); |
102 | 102 | $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); |
130 | 110 | } |
| 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()); |
131 | 113 | } else { |
132 | 114 | // Connect via fsockopen as fallback |
133 | 115 | if (! $fp = @fsockopen($config['gettingstarted']['stratumurl'], $config['gettingstarted']['stratumport'], $errCode, $errStr, 1)) { |
|
0 commit comments