lib/ldap: Use ldap_count_entries for counting the result set

This commit is contained in:
Eric Lippmann 2015-09-04 09:57:04 +02:00
parent fa25ce7f2f
commit 9b22b24561
1 changed files with 22 additions and 2 deletions

View File

@ -358,10 +358,30 @@ class LdapConnection implements Selectable, Inspectable
*/
public function count(LdapQuery $query)
{
$ds = $this->getConnection();
$this->bind();
$res = $this->runQuery($query, array());
return count($res);
$results = @ldap_search(
$ds,
$query->getBase() ?: $this->getDn(),
(string) $query,
array('dn'),
0,
0
);
if ($results === false) {
if (ldap_errno($ds) !== self::LDAP_NO_SUCH_OBJECT) {
throw new LdapException(
'LDAP count query "%s" (base %s) failed: %s',
(string) $query,
$query->getBase() ?: $this->getDn(),
ldap_error($ds)
);
}
}
return ldap_count_entries($ds, $results);
}
/**