mirror of
https://codeberg.org/icewind/SMB.git
synced 2026-06-04 01:34:07 +02:00
add basic smb notify support
at the moment this only works when using the smbclient based backend
This commit is contained in:
parent
c50d9aa6a5
commit
cf23de2702
4 changed files with 56 additions and 2 deletions
|
|
@ -28,6 +28,7 @@ class Connection extends RawConnection {
|
|||
/**
|
||||
* get all unprocessed output from smbclient until the next prompt
|
||||
*
|
||||
* @param callable $callback (optional) callback to call for every line read
|
||||
* @return string
|
||||
* @throws AuthenticationException
|
||||
* @throws ConnectException
|
||||
|
|
@ -35,7 +36,7 @@ class Connection extends RawConnection {
|
|||
* @throws InvalidHostException
|
||||
* @throws NoLoginServerException
|
||||
*/
|
||||
public function read() {
|
||||
public function read(callable $callback = null) {
|
||||
if (!$this->isValid()) {
|
||||
throw new ConnectionException('Connection not valid');
|
||||
}
|
||||
|
|
@ -57,7 +58,13 @@ class Connection extends RawConnection {
|
|||
}
|
||||
}
|
||||
$length = mb_strlen(self::DELIMITER);
|
||||
while (mb_substr($line, 0, $length) !== self::DELIMITER) { //next prompt functions as delimiter
|
||||
while (mb_substr($line, 0, $length) !== self::DELIMITER && $line) { //next prompt functions as delimiter
|
||||
if (is_callable($callback)) {
|
||||
$result = $callback($line);
|
||||
if ($result === false) { // allow the callback to close the connection for infinite running commands
|
||||
$this->close(true);
|
||||
}
|
||||
}
|
||||
$output[] .= $line;
|
||||
$line = $this->readLine();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue