[python-ldap] Searching with paged results?

Christian Heimes christian at python.org
Thu Feb 11 16:42:51 EST 2021


On 10/02/2021 23.44, John wrote:
>   Any pointers on what I'm doing wrong (or directions to documentation, but not just to the below page (I need a little more handholding, apparently)?  The "search_filter" and "attributes" variables are good, 'cause I _am_ getting the right results...just not _all_ the results.
> 
>   I got as far as https://www.python-ldap.org/en/python-ldap-3.3.0/reference/ldap-controls.html#ldap.controls.libldap.SimplePagedResultsControl but what I tried above isn't quite what I'm after.
> 

Hi,

you have to use the asynchronous method with
SimplePagedResultsControl(). search_ext_s() doesn't give you the
controls to access the next page cookie.

The conn.search_ext() methods returns a result id.
conn.result3(result_id) gives you a bunch of extra data including result
type and server controls. One of the server controls will be a page
control entry with a new cookie. You have to use that cookie in your
next search_ext() call

You can find an example in the LDAP library of FreeIPA,
https://github.com/freeipa/freeipa/blob/master/ipapython/ipaldap.py

Christian



More information about the python-ldap mailing list