|
|
|
|
@ -86,12 +86,21 @@ class LDAP implements ILDAPWrapper {
|
|
|
|
|
$controls = [];
|
|
|
|
|
$matchedDn = null;
|
|
|
|
|
$referrals = [];
|
|
|
|
|
$success = $this->invokeLDAPMethod('parse_result', $link, $result,
|
|
|
|
|
|
|
|
|
|
/** Cannot use invokeLDAPMethod because arguments are passed by reference */
|
|
|
|
|
$this->preFunctionCall('ldap_parse_result', [$link, $result]);
|
|
|
|
|
$success = ldap_parse_result($link, $result,
|
|
|
|
|
$errorCode,
|
|
|
|
|
$matchedDn,
|
|
|
|
|
$errorMessage,
|
|
|
|
|
$referrals,
|
|
|
|
|
$controls);
|
|
|
|
|
if ($this->isResultFalse($result)) {
|
|
|
|
|
$this->postFunctionCall();
|
|
|
|
|
}
|
|
|
|
|
if ($this->dataCollector !== null) {
|
|
|
|
|
$this->dataCollector->stopLastLdapRequest();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$cookie = $controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'] ?? '';
|
|
|
|
|
|
|
|
|
|
@ -281,11 +290,11 @@ class LDAP implements ILDAPWrapper {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param array $arguments
|
|
|
|
|
* @return mixed
|
|
|
|
|
*/
|
|
|
|
|
protected function invokeLDAPMethod() {
|
|
|
|
|
$arguments = func_get_args();
|
|
|
|
|
$func = 'ldap_' . array_shift($arguments);
|
|
|
|
|
protected function invokeLDAPMethod(string $func, ...$arguments) {
|
|
|
|
|
$func = 'ldap_' . $func;
|
|
|
|
|
if (function_exists($func)) {
|
|
|
|
|
$this->preFunctionCall($func, $arguments);
|
|
|
|
|
$result = call_user_func_array($func, $arguments);
|
|
|
|
|
|