summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/lib/LDAP.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/user_ldap/lib/LDAP.php')
-rw-r--r--apps/user_ldap/lib/LDAP.php18
1 files changed, 17 insertions, 1 deletions
diff --git a/apps/user_ldap/lib/LDAP.php b/apps/user_ldap/lib/LDAP.php
index 2411b8d3438..e6039c77d12 100644
--- a/apps/user_ldap/lib/LDAP.php
+++ b/apps/user_ldap/lib/LDAP.php
@@ -189,9 +189,24 @@ class LDAP implements ILDAPWrapper {
* @param int $attrsOnly
* @param int $limit
* @return mixed
+ * @throws \Exception
*/
public function search($link, $baseDN, $filter, $attr, $attrsOnly = 0, $limit = 0) {
- return $this->invokeLDAPMethod('search', $link, $baseDN, $filter, $attr, $attrsOnly, $limit);
+ $oldHandler = set_error_handler(function($no, $message, $file, $line) use (&$oldHandler) {
+ if(strpos($message, 'Partial search results returned: Sizelimit exceeded') !== false) {
+ return true;
+ }
+ $oldHandler($no, $message, $file, $line);
+ return true;
+ });
+ try {
+ $result = $this->invokeLDAPMethod('search', $link, $baseDN, $filter, $attr, $attrsOnly, $limit);
+ restore_error_handler();
+ return $result;
+ } catch (\Exception $e) {
+ restore_error_handler();
+ throw $e;
+ }
}
/**
@@ -342,6 +357,7 @@ class LDAP implements ILDAPWrapper {
/**
* Called after an ldap method is run to act on LDAP error if necessary
+ * @throw \Exception
*/
private function postFunctionCall() {
if($this->isResource($this->curArgs[0])) {