Update NativeState.php

sync garbage collection cycle of KerberosAuth and NativeState
This commit is contained in:
C1-10P 2018-07-20 15:15:51 +02:00 committed by GitHub
commit 38fd1a794d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -34,6 +34,10 @@ class NativeState {
protected $handlerSet = false; protected $handlerSet = false;
protected $connected = false; protected $connected = false;
// sync the garbage collection cycle
// __deconstruct() of KerberosAuth should not called too soon
protected $auth;
// see error.h // see error.h
const EXCEPTION_MAP = [ const EXCEPTION_MAP = [
@ -85,6 +89,11 @@ class NativeState {
$this->state = smbclient_state_new(); $this->state = smbclient_state_new();
smbclient_option_set($this->state, SMBCLIENT_OPT_AUTO_ANONYMOUS_LOGIN, false); smbclient_option_set($this->state, SMBCLIENT_OPT_AUTO_ANONYMOUS_LOGIN, false);
$auth->setExtraSmbClientOptions($this->state); $auth->setExtraSmbClientOptions($this->state);
// sync the garbage collection cycle
// __deconstruct() of KerberosAuth should not called too soon
$this->auth = $auth;
$result = @smbclient_state_init($this->state, $auth->getWorkgroup(), $auth->getUsername(), $auth->getPassword()); $result = @smbclient_state_init($this->state, $auth->getWorkgroup(), $auth->getUsername(), $auth->getPassword());
$this->testResult($result, ''); $this->testResult($result, '');