diff options
-rw-r--r-- | program/include/rcube_ldap.php | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php index e308ffd58..92db189d0 100644 --- a/program/include/rcube_ldap.php +++ b/program/include/rcube_ldap.php @@ -537,11 +537,11 @@ class rcube_ldap extends rcube_addressbook } /** - * Get all members of the given group - * - * @param string Group DN - * @param array Group entries (if called recursively) - * @return array Accumulated group members + * Get all members of the given group + * + * @param string Group DN + * @param array Group entries (if called recursively) + * @return array Accumulated group members */ function list_group_members($dn, $count = false, $entries = null) { @@ -742,9 +742,17 @@ class rcube_ldap extends rcube_addressbook $this->ldap_result = @$function($this->conn, $this->base_dn, $this->filter ? $this->filter : '(objectclass=*)', array_values($this->fieldmap), 0, (int)$this->prop['sizelimit'], (int)$this->prop['timelimit']); + $this->result = new rcube_result_set(0); + + if (!$this->ldap_result) { + $this->_debug("S: ".ldap_error($this->conn)); + return $this->result; + } + + $this->_debug("S: ".ldap_count_entries($this->conn, $this->ldap_result)." record(s)"); + // get all entries of this page and post-filter those that really match the query $search = mb_strtolower($value); - $this->result = new rcube_result_set(0); $entries = ldap_get_entries($this->conn, $this->ldap_result); for ($i = 0; $i < $entries['count']; $i++) { |