mirror of
https://codeberg.org/icewind/SMB.git
synced 2026-06-03 17:24:07 +02:00
psalm fixes
This commit is contained in:
parent
edc9703e6b
commit
8101154ac3
6 changed files with 26 additions and 7 deletions
|
|
@ -55,8 +55,16 @@ final class KerberosTicket {
|
||||||
return new KerberosTicket($krb5, $ticketName);
|
return new KerberosTicket($krb5, $ticketName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function load(string $ticket): KerberosTicket {
|
private static function tmpNam(): string {
|
||||||
$tmpFilename = tempnam(sys_get_temp_dir(), "krb5cc_php_");
|
$tmpFilename = tempnam(sys_get_temp_dir(), "krb5cc_php_");
|
||||||
|
if ($tmpFilename === false) {
|
||||||
|
throw new \Exception("Failed to create temporary file for ticket");
|
||||||
|
}
|
||||||
|
return $tmpFilename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function load(string $ticket): KerberosTicket {
|
||||||
|
$tmpFilename = self::tmpNam();
|
||||||
file_put_contents($tmpFilename, $ticket);
|
file_put_contents($tmpFilename, $ticket);
|
||||||
register_shutdown_function(function () use ($tmpFilename) {
|
register_shutdown_function(function () use ($tmpFilename) {
|
||||||
if (file_exists($tmpFilename)) {
|
if (file_exists($tmpFilename)) {
|
||||||
|
|
@ -74,12 +82,15 @@ final class KerberosTicket {
|
||||||
if (substr($this->cacheName, 0, 5) === 'FILE:') {
|
if (substr($this->cacheName, 0, 5) === 'FILE:') {
|
||||||
$ticket = file_get_contents(substr($this->cacheName, 5));
|
$ticket = file_get_contents(substr($this->cacheName, 5));
|
||||||
} else {
|
} else {
|
||||||
$tmpFilename = tempnam(sys_get_temp_dir(), "krb5cc_php_");
|
$tmpFilename = self::tmpNam();
|
||||||
$tmpCacheFile = "FILE:" . $tmpFilename;
|
$tmpCacheFile = "FILE:" . $tmpFilename;
|
||||||
$this->krb5->save($tmpCacheFile);
|
$this->krb5->save($tmpCacheFile);
|
||||||
$ticket = file_get_contents($tmpFilename);
|
$ticket = file_get_contents($tmpFilename);
|
||||||
unlink($tmpFilename);
|
unlink($tmpFilename);
|
||||||
}
|
}
|
||||||
|
if ($ticket === false) {
|
||||||
|
throw new \Exception("Failed to read saved ticket");
|
||||||
|
}
|
||||||
return $ticket;
|
return $ticket;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -204,6 +204,9 @@ final class NativeShare extends AbstractShare {
|
||||||
*/
|
*/
|
||||||
public function put(string $source, string $target): bool {
|
public function put(string $source, string $target): bool {
|
||||||
$sourceHandle = fopen($source, 'rb');
|
$sourceHandle = fopen($source, 'rb');
|
||||||
|
if (!$sourceHandle) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
$targetUrl = $this->buildUrl($target);
|
$targetUrl = $this->buildUrl($target);
|
||||||
|
|
||||||
$targetHandle = $this->getState()->create($targetUrl);
|
$targetHandle = $this->getState()->create($targetUrl);
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,9 @@ abstract class NativeStream implements File {
|
||||||
if (stream_wrapper_unregister('nativesmb') === false) {
|
if (stream_wrapper_unregister('nativesmb') === false) {
|
||||||
throw new Exception("Failed to unregister stream wrapper");
|
throw new Exception("Failed to unregister stream wrapper");
|
||||||
}
|
}
|
||||||
|
if ($fh === false) {
|
||||||
|
throw new \Exception("Failed to start stream wrapper");
|
||||||
|
}
|
||||||
return $fh;
|
return $fh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ final class Connection extends RawConnection {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|bool $promptLine (optional) prompt line that might contain some info about the error
|
* @param string|false $promptLine (optional) prompt line that might contain some info about the error
|
||||||
* @throws ConnectException
|
* @throws ConnectException
|
||||||
* @return no-return
|
* @return no-return
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ final class Parser {
|
||||||
throw new Exception("Malformed state response from server");
|
throw new Exception("Malformed state response from server");
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
'mtime' => strtotime($data['write_time']),
|
'mtime' => (int)strtotime($data['write_time']),
|
||||||
'mode' => hexdec(substr($data['attributes'], $attributeStart + 1, -1)),
|
'mode' => hexdec(substr($data['attributes'], $attributeStart + 1, -1)),
|
||||||
'size' => isset($data['stream']) ? (int)(explode(' ', $data['stream'])[1]) : 0
|
'size' => isset($data['stream']) ? (int)(explode(' ', $data['stream'])[1]) : 0
|
||||||
];
|
];
|
||||||
|
|
@ -182,7 +182,7 @@ final class Parser {
|
||||||
list(, $name, $mode, $size, $time) = $matches;
|
list(, $name, $mode, $size, $time) = $matches;
|
||||||
if ($name !== '.' and $name !== '..') {
|
if ($name !== '.' and $name !== '..') {
|
||||||
$mode = $this->parseMode(strtoupper($mode));
|
$mode = $this->parseMode(strtoupper($mode));
|
||||||
$time = strtotime($time . ' ' . $this->timeZone);
|
$time = (int)strtotime($time . ' ' . $this->timeZone);
|
||||||
$path = $basePath . '/' . $name;
|
$path = $basePath . '/' . $name;
|
||||||
$content[] = new FileInfo($path, $name, (int)$size, $time, $mode, function () use ($aclCallback, $path): array {
|
$content[] = new FileInfo($path, $name, (int)$size, $time, $mode, function () use ($aclCallback, $path): array {
|
||||||
return $aclCallback($path);
|
return $aclCallback($path);
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ class RawConnection {
|
||||||
'COLUMNS' => 8192, // prevent smbclient from line-wrapping it's output
|
'COLUMNS' => 8192, // prevent smbclient from line-wrapping it's output
|
||||||
'TZ' => 'UTC',
|
'TZ' => 'UTC',
|
||||||
]);
|
]);
|
||||||
$this->process = proc_open($this->command, $descriptorSpec, $this->pipes, '/', $env);
|
$this->process = proc_open($this->command, $descriptorSpec, $this->pipes, '/', $env) ?: null;
|
||||||
if (!$this->isValid()) {
|
if (!$this->isValid()) {
|
||||||
throw new ConnectionException();
|
throw new ConnectionException();
|
||||||
}
|
}
|
||||||
|
|
@ -211,7 +211,9 @@ class RawConnection {
|
||||||
? "username=$user"
|
? "username=$user"
|
||||||
: "username=$user\npassword=$password\n";
|
: "username=$user\npassword=$password\n";
|
||||||
|
|
||||||
$this->authStream = fopen('php://temp', 'w+');
|
/** @var resource $stream */
|
||||||
|
$stream = fopen('php://temp', 'w+');
|
||||||
|
$this->authStream = $stream;
|
||||||
fwrite($this->authStream, $auth);
|
fwrite($this->authStream, $auth);
|
||||||
rewind($this->authStream);
|
rewind($this->authStream);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue