I'm trying to use SimplePagedResultsControl so I can pull some data out of
Active Directory that has a Server-Limit set. I got most of my code from this
guide http://www.novell.com/coolsolutions/tip/18274.html
When I try and run it I get this dump:
"""
SimplePagedResultsControl(1.2.840.113556.1.4.319,True,(10, ''))
Traceback (most recent call last):
File "./test_ldap_brakeit.py", line 29, in ?
msgid = l.search_ext(base, ldap.SCOPE_SUBTREE, 'objectclass=user',
serverctrls=[lc])
File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 468, in
search_ext
EncodeControlTuples(serverctrls),
File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 93, in
EncodeControlTuples
result = [
File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 45, in
getEncodedTuple
return
(self.controlType,self.criticality,self.encodeControlValue(self.controlValue))
File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 78, in
encodeControlValue
return _ldap.encode_page_control(size,cookie)
ldap.ENCODING_ERROR
"""
Server is RHEL5.2 , not too sure about the Active Directory I think it is
running on Windows Server 2003.
Here is the code:
#!/usr/bin/python
#
import ldap,ldap.async,pprint
from ldap.controls import SimplePagedResultsControl
server = 'xxxx.com'
ldap_version = 3
base = 'dc=example,dc=com'
binddn = ''
bindpw = ''
userbase = ''
port = 3268
page_size = 10
l = ldap.open(server,port)
l.protocol_version = ldap_version
l.simple_bind_s(binddn, bindpw)
ldap.set_option(ldap.OPT_REFERRALS, 0)
lc = SimplePagedResultsControl(
ldap.LDAP_CONTROL_PAGE_OID, True, (page_size,'') )
print lc
msgid = l.search_ext(base, ldap.SCOPE_SUBTREE, 'objectclass=user',
serverctrls=[lc])
pages = 0
while True:
pages += 1
print "Getting page %d" % (pages,)
rtype,rdata,rmsgid,serverctrls = l.result3(msgid)
print "%d results" % len(rdata)
pctrls = [ c for c in serverctrls if c.controlType ==
ldap.LDAP_CONTROL_PAGE_OID ]
if pctrls:
est, cookie = pctrls[0].controlValue
if cookie:
lc.controlValue = (page_size,cookie)
msgid = l.search_ext(base, ldap.SCOPE_SUBTREE,
'objectclass=user', serverctrls=[lc])
else:
break
else:
print "Warning: Server ignores RFC 2696 control"
Joel Heenan
________________________________
Information contained in this communication (including any attachments) is
confidential and may be privileged or subject to copyright. If you have
received this communication in error you are not authorised to use the
information in any way and Optiver requests that you notify the sender by
return email, destroy all copies and delete the information from your system.
Optiver does not represent, warrant or guarantee that this communication is
free from computer viruses or other defects or that the integrity of this
communication has been maintained. Any views expressed in this communication
are those of the individual sender. Optiver does not accept liability for any
loss or damage caused directly or indirectly by this communication or its use.
Please consider the environment before printing this email.
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Python-LDAP-dev mailing list
Python-LDAP-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/python-ldap-dev