Explicitly list limit exception types

This commit is contained in:
stroeder 2015-10-24 16:21:14 +00:00
parent b8844cb526
commit 5d85c44b83
2 changed files with 12 additions and 5 deletions

View File

@ -14,8 +14,6 @@ import sys,ldap,ldapurl,getpass
from ldap.controls.openldap import SearchNoOpControl
LDAPLimitErrors = (ldap.TIMEOUT,ldap.TIMELIMIT_EXCEEDED,ldap.SIZELIMIT_EXCEEDED,ldap.ADMINLIMIT_EXCEEDED)
SEARCH_TIMEOUT=30.0
try:
@ -56,7 +54,11 @@ try:
serverctrls=[SearchNoOpControl(criticality=True)],
)
_,_,_,search_response_ctrls = ldap_conn.result3(msg_id,all=1,timeout=SEARCH_TIMEOUT)
except LDAPLimitErrors,e:
except (
ldap.TIMEOUT,
ldap.TIMELIMIT_EXCEEDED,
ldap.SIZELIMIT_EXCEEDED,
ldap.ADMINLIMIT_EXCEEDED),e:
ldap_conn.abandon(msg_id)
sys.exit(1)

View File

@ -4,7 +4,7 @@ ldap.controls.openldap - classes for OpenLDAP-specific controls
See http://www.python-ldap.org/ for project details.
$Id: openldap.py,v 1.4 2015/09/18 17:24:39 stroeder Exp $
$Id: openldap.py,v 1.5 2015/10/24 16:21:14 stroeder Exp $
"""
import ldap.controls
@ -63,7 +63,12 @@ class SearchNoOpMixIn:
serverctrls=[SearchNoOpControl(criticality=True)],
)
_,_,_,search_response_ctrls = self.result3(msg_id,all=1,timeout=timeout)
except LDAPLimitErrors,e:
except (
ldap.TIMEOUT,
ldap.TIMELIMIT_EXCEEDED,
ldap.SIZELIMIT_EXCEEDED,
ldap.ADMINLIMIT_EXCEEDED
),e:
self.abandon(msg_id)
raise e
else: