Don't use warning to check for errors, only return values

This commit is contained in:
Robin Appelman 2014-08-03 15:02:56 +02:00
commit 125bc445f7

View file

@ -27,23 +27,7 @@ class NativeState {
return $this->state; return $this->state;
} }
protected function setErrorHandler() { protected function handleError() {
if ($this->handlerSet) {
return;
}
$this->handlerSet = true;
set_error_handler(array($this, 'handleError'));
}
protected function restoreErrorHandler() {
if (!$this->handlerSet) {
return;
}
$this->handlerSet = false;
restore_error_handler();
}
protected function handleError($errorNumber = 0, $errorString = '') {
$error = smbclient_state_errno($this->state); $error = smbclient_state_errno($this->state);
switch ($error) { switch ($error) {
// see error.h // see error.h
@ -60,13 +44,9 @@ class NativeState {
case 21: case 21:
throw new InvalidTypeException(); throw new InvalidTypeException();
default: default:
if ($errorString) {
throw new Exception($errorString);
} else {
throw new Exception('Unknown error (' . $error . ')'); throw new Exception('Unknown error (' . $error . ')');
} }
} }
}
/** /**
* @param string $workGroup * @param string $workGroup
@ -79,9 +59,7 @@ class NativeState {
return true; return true;
} }
$this->state = smbclient_state_new(); $this->state = smbclient_state_new();
$this->setErrorHandler(); $result = @smbclient_state_init($this->state, $workGroup, $user, $password);
$result = smbclient_state_init($this->state, $workGroup, $user, $password);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -95,9 +73,7 @@ class NativeState {
* @return resource * @return resource
*/ */
public function opendir($uri) { public function opendir($uri) {
$this->setErrorHandler(); $result = @smbclient_opendir($this->state, $uri);
$result = smbclient_opendir($this->state, $uri);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -110,9 +86,7 @@ class NativeState {
* @return array * @return array
*/ */
public function readdir($dir) { public function readdir($dir) {
$this->setErrorHandler(); $result = @smbclient_readdir($this->state, $dir);
$result = smbclient_readdir($this->state, $dir);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -125,9 +99,7 @@ class NativeState {
* @return bool * @return bool
*/ */
public function closedir($dir) { public function closedir($dir) {
$this->setErrorHandler(); $result = @smbclient_closedir($this->state, $dir);
$result = smbclient_closedir($this->state, $dir);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -141,9 +113,7 @@ class NativeState {
* @return bool * @return bool
*/ */
public function rename($old, $new) { public function rename($old, $new) {
$this->setErrorHandler(); $result = @smbclient_rename($this->state, $old, $this->state, $new);
$result = smbclient_rename($this->state, $old, $this->state, $new);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -156,9 +126,7 @@ class NativeState {
* @return bool * @return bool
*/ */
public function unlink($uri) { public function unlink($uri) {
$this->setErrorHandler(); $result = @smbclient_unlink($this->state, $uri);
$result = smbclient_unlink($this->state, $uri);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -172,9 +140,7 @@ class NativeState {
* @return bool * @return bool
*/ */
public function mkdir($uri, $mask = 0777) { public function mkdir($uri, $mask = 0777) {
$this->setErrorHandler(); $result = @smbclient_mkdir($this->state, $uri, $mask);
$result = smbclient_mkdir($this->state, $uri, $mask);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -187,9 +153,7 @@ class NativeState {
* @return bool * @return bool
*/ */
public function rmdir($uri) { public function rmdir($uri) {
$this->setErrorHandler(); $result = @smbclient_rmdir($this->state, $uri);
$result = smbclient_rmdir($this->state, $uri);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -202,9 +166,7 @@ class NativeState {
* @return array * @return array
*/ */
public function stat($uri) { public function stat($uri) {
$this->setErrorHandler(); $result = @smbclient_stat($this->state, $uri);
$result = smbclient_stat($this->state, $uri);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -217,9 +179,7 @@ class NativeState {
* @return array * @return array
*/ */
public function fstat($file) { public function fstat($file) {
$this->setErrorHandler(); $result = @smbclient_fstat($this->state, $file);
$result = smbclient_fstat($this->state, $file);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -234,9 +194,7 @@ class NativeState {
* @return resource * @return resource
*/ */
public function open($uri, $mode, $mask = 0666) { public function open($uri, $mode, $mask = 0666) {
$this->setErrorHandler(); $result = @smbclient_open($this->state, $uri, $mode, $mask);
$result = smbclient_open($this->state, $uri, $mode, $mask);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -250,9 +208,7 @@ class NativeState {
* @return resource * @return resource
*/ */
public function create($uri, $mask = 0666) { public function create($uri, $mask = 0666) {
$this->setErrorHandler(); $result = @smbclient_creat($this->state, $uri, $mask);
$result = smbclient_creat($this->state, $uri, $mask);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -266,9 +222,7 @@ class NativeState {
* @return string * @return string
*/ */
public function read($file, $bytes) { public function read($file, $bytes) {
$this->setErrorHandler(); $result = @smbclient_read($this->state, $file, $bytes);
$result = smbclient_read($this->state, $file, $bytes);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -283,9 +237,7 @@ class NativeState {
* @return int * @return int
*/ */
public function write($file, $data, $length = null) { public function write($file, $data, $length = null) {
$this->setErrorHandler(); $result = @smbclient_write($this->state, $file, $data, $length);
$result = smbclient_write($this->state, $file, $data, $length);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -300,9 +252,7 @@ class NativeState {
* @return int * @return int
*/ */
public function lseek($file, $offset, $whence = SEEK_SET) { public function lseek($file, $offset, $whence = SEEK_SET) {
$this->setErrorHandler(); $result = @smbclient_lseek($this->state, $file, $offset, $whence);
$result = smbclient_lseek($this->state, $file, $offset, $whence);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -316,9 +266,7 @@ class NativeState {
* @return bool * @return bool
*/ */
public function ftruncate($file, $size) { public function ftruncate($file, $size) {
$this->setErrorHandler(); $result = @smbclient_ftruncate($this->state, $file, $size);
$result = smbclient_ftruncate($this->state, $file, $size);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -327,9 +275,7 @@ class NativeState {
} }
public function close($file) { public function close($file) {
$this->setErrorHandler(); $result = @smbclient_close($this->state, $file);
$result = smbclient_close($this->state, $file);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -343,9 +289,7 @@ class NativeState {
* @return string * @return string
*/ */
public function getxattr($uri, $key) { public function getxattr($uri, $key) {
$this->setErrorHandler(); $result = @smbclient_getxattr($this->state, $uri, $key);
$result = smbclient_getxattr($this->state, $uri, $key);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -361,9 +305,7 @@ class NativeState {
* @return mixed * @return mixed
*/ */
public function setxattr($uri, $key, $value, $flags = 0) { public function setxattr($uri, $key, $value, $flags = 0) {
$this->setErrorHandler(); $result = @smbclient_setxattr($this->state, $uri, $key, $value, $flags);
$result = smbclient_setxattr($this->state, $uri, $key, $value, $flags);
$this->restoreErrorHandler();
if ($result === false) { if ($result === false) {
$this->handleError(); $this->handleError();
@ -375,6 +317,5 @@ class NativeState {
if ($this->connected) { if ($this->connected) {
smbclient_state_free($this->state); smbclient_state_free($this->state);
} }
$this->restoreErrorHandler();
} }
} }