|
|
@ -12,9 +12,10 @@ function _getsock($fun, $port, $unix=true) |
|
|
|
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); |
|
|
|
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); |
|
|
|
if ($socket === false || $socket === null) |
|
|
|
if ($socket === false || $socket === null) |
|
|
|
{ |
|
|
|
{ |
|
|
|
$sockerr = socket_strerror(socket_last_error()); |
|
|
|
$sle = socket_last_error(); |
|
|
|
|
|
|
|
$sockerr = socket_strerror($sle); |
|
|
|
$msg = "$fun() _getsock() create($port) failed"; |
|
|
|
$msg = "$fun() _getsock() create($port) failed"; |
|
|
|
error_log("CKPERR: $msg '$sockerr'"); |
|
|
|
error_log("CKPERR: $msg ($sle) '$sockerr'"); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -43,21 +44,24 @@ function _getsock($fun, $port, $unix=true) |
|
|
|
} |
|
|
|
} |
|
|
|
if ($res === false) |
|
|
|
if ($res === false) |
|
|
|
{ |
|
|
|
{ |
|
|
|
$sockerr = socket_strerror(socket_last_error()); |
|
|
|
$sle = socket_last_error(); |
|
|
|
|
|
|
|
$sockerr = socket_strerror($sle); |
|
|
|
if ($unix === true) |
|
|
|
if ($unix === true) |
|
|
|
$msg = "$fun() _getsock() connect($port) failed 3x"; |
|
|
|
$msg = "$fun() _getsock() connect($port) failed 3x"; |
|
|
|
else |
|
|
|
else |
|
|
|
$msg = "$fun() _getsock() connect($port) failed 3x (+2+5s sleep)"; |
|
|
|
$msg = "$fun() _getsock() connect($port) failed 3x (+2+5s sleep)"; |
|
|
|
error_log("CKPERR: $msg '$sockerr'"); |
|
|
|
error_log("CKPERR: $msg ($sle) '$sockerr'"); |
|
|
|
socket_close($socket); |
|
|
|
socket_close($socket); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
# Avoid getting locked up for long |
|
|
|
# Avoid getting locked up for long |
|
|
|
$tmo = array('sec' => 1, 'usec' => 0); |
|
|
|
$tmo = array('sec' => 2, 'usec' => 0); |
|
|
|
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, $tmo); |
|
|
|
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, $tmo); |
|
|
|
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, $tmo); |
|
|
|
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, $tmo); |
|
|
|
|
|
|
|
# Enable timeout |
|
|
|
|
|
|
|
socket_set_block($socket); |
|
|
|
return $socket; |
|
|
|
return $socket; |
|
|
|
} |
|
|
|
} |
|
|
|
# |
|
|
|
# |
|
|
@ -71,7 +75,8 @@ function readsockline($fun, $socket) |
|
|
|
$siz = socket_read($socket, 4, PHP_BINARY_READ); |
|
|
|
$siz = socket_read($socket, 4, PHP_BINARY_READ); |
|
|
|
if ($siz === false) |
|
|
|
if ($siz === false) |
|
|
|
{ |
|
|
|
{ |
|
|
|
$sockerr = socket_strerror(socket_last_error()); |
|
|
|
$sle = socket_last_error(); |
|
|
|
|
|
|
|
$sockerr = socket_strerror($sle); |
|
|
|
$msg = "$fun() readsockline() failed"; |
|
|
|
$msg = "$fun() readsockline() failed"; |
|
|
|
error_log("CKPERR: $msg '$sockerr'"); |
|
|
|
error_log("CKPERR: $msg '$sockerr'"); |
|
|
|
return false; |
|
|
|
return false; |
|
|
@ -91,9 +96,10 @@ function readsockline($fun, $socket) |
|
|
|
$line = socket_read($socket, $left, PHP_BINARY_READ); |
|
|
|
$line = socket_read($socket, $left, PHP_BINARY_READ); |
|
|
|
if ($line === false) |
|
|
|
if ($line === false) |
|
|
|
{ |
|
|
|
{ |
|
|
|
$sockerr = socket_strerror(socket_last_error()); |
|
|
|
$sle = socket_last_error(); |
|
|
|
$msg = "$fun() readsockline() failed"; |
|
|
|
$sockerr = socket_strerror($sle); |
|
|
|
error_log("CKPERR: $msg '$sockerr'"); |
|
|
|
$msg = "$fun() readsockline() $left failed (len=$len)"; |
|
|
|
|
|
|
|
error_log("CKPERR: $msg ($sle) '$sockerr'"); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
$red = strlen($line); |
|
|
|
$red = strlen($line); |
|
|
|