update icewind/smb to 3.4.1
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
20a3df9888
commit
f22fa87e6a
|
@ -9,6 +9,6 @@
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"icewind/streams": "0.7.3",
|
"icewind/streams": "0.7.3",
|
||||||
"icewind/smb": "3.4.0"
|
"icewind/smb": "3.4.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,20 +4,20 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "9905ed45527f669a4165a8b83b6e4141",
|
"content-hash": "dacbb67c9e2d1d46204d5b1a7f5cebc2",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "icewind/smb",
|
"name": "icewind/smb",
|
||||||
"version": "v3.4.0",
|
"version": "v3.4.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/icewind1991/SMB.git",
|
"url": "https://github.com/icewind1991/SMB.git",
|
||||||
"reference": "b5c6921f2e91229c9f71556a4713b4fac91fd394"
|
"reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/icewind1991/SMB/zipball/b5c6921f2e91229c9f71556a4713b4fac91fd394",
|
"url": "https://api.github.com/repos/icewind1991/SMB/zipball/9dba42ab2a3990de29e18cc62b0a8270aceb74e3",
|
||||||
"reference": "b5c6921f2e91229c9f71556a4713b4fac91fd394",
|
"reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -49,9 +49,9 @@
|
||||||
"description": "php wrapper for smbclient and libsmbclient-php",
|
"description": "php wrapper for smbclient and libsmbclient-php",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/icewind1991/SMB/issues",
|
"issues": "https://github.com/icewind1991/SMB/issues",
|
||||||
"source": "https://github.com/icewind1991/SMB/tree/v3.4.0"
|
"source": "https://github.com/icewind1991/SMB/tree/v3.4.1"
|
||||||
},
|
},
|
||||||
"time": "2021-03-10T14:00:37+00:00"
|
"time": "2021-04-19T13:53:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "icewind/streams",
|
"name": "icewind/streams",
|
||||||
|
|
|
@ -30,7 +30,7 @@ private static $installed = array (
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => '62929cc646134fbd409cfb4eacb7039d15763b96',
|
'reference' => '9a69b8839389f133db55a41e1c2ba4435fd50c19',
|
||||||
'name' => 'files_external/3rdparty',
|
'name' => 'files_external/3rdparty',
|
||||||
),
|
),
|
||||||
'versions' =>
|
'versions' =>
|
||||||
|
@ -42,16 +42,16 @@ private static $installed = array (
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => '62929cc646134fbd409cfb4eacb7039d15763b96',
|
'reference' => '9a69b8839389f133db55a41e1c2ba4435fd50c19',
|
||||||
),
|
),
|
||||||
'icewind/smb' =>
|
'icewind/smb' =>
|
||||||
array (
|
array (
|
||||||
'pretty_version' => 'v3.4.0',
|
'pretty_version' => 'v3.4.1',
|
||||||
'version' => '3.4.0.0',
|
'version' => '3.4.1.0',
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => 'b5c6921f2e91229c9f71556a4713b4fac91fd394',
|
'reference' => '9dba42ab2a3990de29e18cc62b0a8270aceb74e3',
|
||||||
),
|
),
|
||||||
'icewind/streams' =>
|
'icewind/streams' =>
|
||||||
array (
|
array (
|
||||||
|
|
|
@ -2,17 +2,17 @@
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "icewind/smb",
|
"name": "icewind/smb",
|
||||||
"version": "v3.4.0",
|
"version": "v3.4.1",
|
||||||
"version_normalized": "3.4.0.0",
|
"version_normalized": "3.4.1.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/icewind1991/SMB.git",
|
"url": "https://github.com/icewind1991/SMB.git",
|
||||||
"reference": "b5c6921f2e91229c9f71556a4713b4fac91fd394"
|
"reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/icewind1991/SMB/zipball/b5c6921f2e91229c9f71556a4713b4fac91fd394",
|
"url": "https://api.github.com/repos/icewind1991/SMB/zipball/9dba42ab2a3990de29e18cc62b0a8270aceb74e3",
|
||||||
"reference": "b5c6921f2e91229c9f71556a4713b4fac91fd394",
|
"reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
"phpunit/phpunit": "^8.5|^9.3.8",
|
"phpunit/phpunit": "^8.5|^9.3.8",
|
||||||
"psalm/phar": "^4.3"
|
"psalm/phar": "^4.3"
|
||||||
},
|
},
|
||||||
"time": "2021-03-10T14:00:37+00:00",
|
"time": "2021-04-19T13:53:08+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
"description": "php wrapper for smbclient and libsmbclient-php",
|
"description": "php wrapper for smbclient and libsmbclient-php",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/icewind1991/SMB/issues",
|
"issues": "https://github.com/icewind1991/SMB/issues",
|
||||||
"source": "https://github.com/icewind1991/SMB/tree/v3.4.0"
|
"source": "https://github.com/icewind1991/SMB/tree/v3.4.1"
|
||||||
},
|
},
|
||||||
"install-path": "../icewind/smb"
|
"install-path": "../icewind/smb"
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => '62929cc646134fbd409cfb4eacb7039d15763b96',
|
'reference' => '9a69b8839389f133db55a41e1c2ba4435fd50c19',
|
||||||
'name' => 'files_external/3rdparty',
|
'name' => 'files_external/3rdparty',
|
||||||
),
|
),
|
||||||
'versions' =>
|
'versions' =>
|
||||||
|
@ -18,16 +18,16 @@
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => '62929cc646134fbd409cfb4eacb7039d15763b96',
|
'reference' => '9a69b8839389f133db55a41e1c2ba4435fd50c19',
|
||||||
),
|
),
|
||||||
'icewind/smb' =>
|
'icewind/smb' =>
|
||||||
array (
|
array (
|
||||||
'pretty_version' => 'v3.4.0',
|
'pretty_version' => 'v3.4.1',
|
||||||
'version' => '3.4.0.0',
|
'version' => '3.4.1.0',
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => 'b5c6921f2e91229c9f71556a4713b4fac91fd394',
|
'reference' => '9dba42ab2a3990de29e18cc62b0a8270aceb74e3',
|
||||||
),
|
),
|
||||||
'icewind/streams' =>
|
'icewind/streams' =>
|
||||||
array (
|
array (
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
namespace Icewind\SMB;
|
namespace Icewind\SMB;
|
||||||
|
|
||||||
|
use Icewind\SMB\Exception\Exception;
|
||||||
|
|
||||||
class AnonymousAuth implements IAuth {
|
class AnonymousAuth implements IAuth {
|
||||||
public function getUsername(): ?string {
|
public function getUsername(): ?string {
|
||||||
return null;
|
return null;
|
||||||
|
@ -39,6 +41,8 @@ class AnonymousAuth implements IAuth {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setExtraSmbClientOptions($smbClientState): void {
|
public function setExtraSmbClientOptions($smbClientState): void {
|
||||||
smbclient_option_set($smbClientState, SMBCLIENT_OPT_AUTO_ANONYMOUS_LOGIN, true);
|
if (smbclient_option_set($smbClientState, SMBCLIENT_OPT_AUTO_ANONYMOUS_LOGIN, true) === false) {
|
||||||
|
throw new Exception("Failed to set smbclient options for anonymous auth");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
namespace Icewind\SMB;
|
namespace Icewind\SMB;
|
||||||
|
|
||||||
|
use Icewind\SMB\Exception\Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Use existing kerberos ticket to authenticate
|
* Use existing kerberos ticket to authenticate
|
||||||
*/
|
*/
|
||||||
|
@ -42,7 +44,11 @@ class KerberosAuth implements IAuth {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setExtraSmbClientOptions($smbClientState): void {
|
public function setExtraSmbClientOptions($smbClientState): void {
|
||||||
smbclient_option_set($smbClientState, SMBCLIENT_OPT_USE_KERBEROS, true);
|
$success = (bool)smbclient_option_set($smbClientState, SMBCLIENT_OPT_USE_KERBEROS, true);
|
||||||
smbclient_option_set($smbClientState, SMBCLIENT_OPT_FALLBACK_AFTER_KERBEROS, false);
|
$success = $success && smbclient_option_set($smbClientState, SMBCLIENT_OPT_FALLBACK_AFTER_KERBEROS, false);
|
||||||
|
|
||||||
|
if (!$success) {
|
||||||
|
throw new Exception("Failed to set smbclient options for kerberos auth");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,14 +97,13 @@ class NativeState {
|
||||||
/** @var resource $state */
|
/** @var resource $state */
|
||||||
$state = smbclient_state_new();
|
$state = smbclient_state_new();
|
||||||
$this->state = $state;
|
$this->state = $state;
|
||||||
|
/** @psalm-suppress UnusedFunctionCall */
|
||||||
smbclient_option_set($this->state, SMBCLIENT_OPT_AUTO_ANONYMOUS_LOGIN, false);
|
smbclient_option_set($this->state, SMBCLIENT_OPT_AUTO_ANONYMOUS_LOGIN, false);
|
||||||
|
/** @psalm-suppress UnusedFunctionCall */
|
||||||
smbclient_option_set($this->state, SMBCLIENT_OPT_TIMEOUT, $options->getTimeout() * 1000);
|
smbclient_option_set($this->state, SMBCLIENT_OPT_TIMEOUT, $options->getTimeout() * 1000);
|
||||||
|
|
||||||
if (function_exists('smbclient_client_protocols')) {
|
if (function_exists('smbclient_client_protocols')) {
|
||||||
$maxProtocol = $options->getMaxProtocol();
|
smbclient_client_protocols($this->state, $options->getMinProtocol(), $options->getMaxProtocol());
|
||||||
$minProtocol = $options->getMinProtocol();
|
|
||||||
|
|
||||||
smbclient_client_protocols($this->state, $minProtocol, $maxProtocol);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$auth->setExtraSmbClientOptions($this->state);
|
$auth->setExtraSmbClientOptions($this->state);
|
||||||
|
@ -357,7 +356,9 @@ class NativeState {
|
||||||
|
|
||||||
public function __destruct() {
|
public function __destruct() {
|
||||||
if ($this->connected) {
|
if ($this->connected) {
|
||||||
smbclient_state_free($this->state);
|
if (smbclient_state_free($this->state) === false) {
|
||||||
|
throw new Exception("Failed to free smb state");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,9 @@ abstract class NativeStream implements File {
|
||||||
* @return resource
|
* @return resource
|
||||||
*/
|
*/
|
||||||
protected static function wrapClass(NativeState $state, $smbStream, string $mode, string $url, string $class) {
|
protected static function wrapClass(NativeState $state, $smbStream, string $mode, string $url, string $class) {
|
||||||
stream_wrapper_register('nativesmb', $class);
|
if (stream_wrapper_register('nativesmb', $class) === false) {
|
||||||
|
throw new Exception("Failed to register stream wrapper");
|
||||||
|
}
|
||||||
$context = stream_context_create([
|
$context = stream_context_create([
|
||||||
'nativesmb' => [
|
'nativesmb' => [
|
||||||
'state' => $state,
|
'state' => $state,
|
||||||
|
@ -61,7 +63,9 @@ abstract class NativeStream implements File {
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
$fh = fopen('nativesmb://', $mode, false, $context);
|
$fh = fopen('nativesmb://', $mode, false, $context);
|
||||||
stream_wrapper_unregister('nativesmb');
|
if (stream_wrapper_unregister('nativesmb') === false) {
|
||||||
|
throw new Exception("Failed to unregister stream wrapper");
|
||||||
|
}
|
||||||
return $fh;
|
return $fh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ class StringBuffer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function read(int $count): string {
|
public function read(int $count): string {
|
||||||
$chunk = substr($this->buffer, $this->pos, $this->pos + $count);
|
$chunk = substr($this->buffer, $this->pos, $count);
|
||||||
$this->pos += strlen($chunk);
|
$this->pos += strlen($chunk);
|
||||||
return $chunk;
|
return $chunk;
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ class Server extends AbstractServer {
|
||||||
$shareNames = $parser->parseListShares($output);
|
$shareNames = $parser->parseListShares($output);
|
||||||
|
|
||||||
$shares = [];
|
$shares = [];
|
||||||
foreach ($shareNames as $name => $description) {
|
foreach ($shareNames as $name => $_description) {
|
||||||
$shares[] = $this->getShare($name);
|
$shares[] = $this->getShare($name);
|
||||||
}
|
}
|
||||||
return $shares;
|
return $shares;
|
||||||
|
|
Loading…
Reference in New Issue