mirror of
https://codeberg.org/icewind/SMB.git
synced 2026-06-04 01:34:07 +02:00
add proper paths to exceptions during stream close and write
This commit is contained in:
parent
b2a62743cf
commit
db50bb51bd
4 changed files with 15 additions and 12 deletions
|
|
@ -197,12 +197,14 @@ class NativeShare extends AbstractShare {
|
|||
*/
|
||||
public function put($source, $target) {
|
||||
$sourceHandle = fopen($source, 'rb');
|
||||
$targetHandle = $this->getState()->create($this->buildUrl($target));
|
||||
$targetUrl = $this->buildUrl($target);
|
||||
|
||||
$targetHandle = $this->getState()->create($targetUrl);
|
||||
|
||||
while ($data = fread($sourceHandle, NativeReadStream::CHUNK_SIZE)) {
|
||||
$this->getState()->write($targetHandle, $data);
|
||||
$this->getState()->write($targetHandle, $data, $targetUrl);
|
||||
}
|
||||
$this->getState()->close($targetHandle);
|
||||
$this->getState()->close($targetHandle, $targetUrl);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -236,14 +238,14 @@ class NativeShare extends AbstractShare {
|
|||
} else {
|
||||
$reason = 'Unknown error';
|
||||
}
|
||||
$this->getState()->close($sourceHandle);
|
||||
$this->getState()->close($sourceHandle, $this->buildUrl($source));
|
||||
throw new InvalidResourceException('Failed opening local file "' . $target . '" for writing: ' . $reason);
|
||||
}
|
||||
|
||||
while ($data = $this->getState()->read($sourceHandle, NativeReadStream::CHUNK_SIZE)) {
|
||||
fwrite($targetHandle, $data);
|
||||
}
|
||||
$this->getState()->close($sourceHandle);
|
||||
$this->getState()->close($sourceHandle, $this->buildUrl($source));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -240,13 +240,14 @@ class NativeState {
|
|||
/**
|
||||
* @param resource $file
|
||||
* @param string $data
|
||||
* @param string $path
|
||||
* @param int $length
|
||||
* @return int
|
||||
*/
|
||||
public function write($file, $data, $length = null) {
|
||||
public function write($file, $data, $path, $length = null) {
|
||||
$result = @smbclient_write($this->state, $file, $data, $length);
|
||||
|
||||
$this->testResult($result, $file);
|
||||
$this->testResult($result, $path);
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
|
@ -275,10 +276,10 @@ class NativeState {
|
|||
return $result;
|
||||
}
|
||||
|
||||
public function close($file) {
|
||||
public function close($file, $path) {
|
||||
$result = @smbclient_close($this->state, $file);
|
||||
|
||||
$this->testResult($result, $file);
|
||||
$this->testResult($result, $path);
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ class NativeStream implements File {
|
|||
|
||||
public function stream_close() {
|
||||
try {
|
||||
return $this->state->close($this->handle);
|
||||
return $this->state->close($this->handle, $this->url);
|
||||
} catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -114,7 +114,7 @@ class NativeStream implements File {
|
|||
}
|
||||
|
||||
public function stream_write($data) {
|
||||
return $this->state->write($this->handle, $data);
|
||||
return $this->state->write($this->handle, $data, $this->url);
|
||||
}
|
||||
|
||||
public function stream_truncate($size) {
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ class NativeWriteStream extends NativeStream {
|
|||
|
||||
private function flushWrite() {
|
||||
rewind($this->writeBuffer);
|
||||
$this->state->write($this->handle, stream_get_contents($this->writeBuffer));
|
||||
$this->state->write($this->handle, stream_get_contents($this->writeBuffer), $this->url);
|
||||
$this->writeBuffer = fopen('php://memory', 'r+');
|
||||
$this->bufferSize = 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue