Esempio n. 1
0
try:
    ldap_conn.simple_bind_s(ldap_url.who or '', ldap_url.cred or '')

except ldap.INVALID_CREDENTIALS as e:
    print('Simple bind failed:', str(e))
    sys.exit(1)

try:
    msg_id = ldap_conn.search_ext(
        ldap_url.dn,
        ldap_url.scope,
        filterstr=ldap_url.filterstr or '(objectClass=*)',
        attrlist=['1.1'],
        timeout=SEARCH_TIMEOUT,
        serverctrls=[SearchNoOpControl(criticality=True)],
    )
    _, _, _, search_response_ctrls = ldap_conn.result3(msg_id,
                                                       all=1,
                                                       timeout=SEARCH_TIMEOUT)
except LDAPLimitErrors as e:
    ldap_conn.abandon(msg_id)
    sys.exit(1)

noop_srch_ctrl = [
    c for c in search_response_ctrls
    if c.controlType == SearchNoOpControl.controlType
][0]

print('Number of search results: %d' % noop_srch_ctrl.numSearchResults)
print('Number of search continuations: %d' %
Esempio n. 2
0
from slapdtest import SlapdTestCase, requires_tls

import ldap
from ldap.controls import RequestControlTuples
from ldap.controls.pagedresults import SimplePagedResultsControl
from ldap.controls.openldap import SearchNoOpControl
from ldap.ldapobject import SimpleLDAPObject

SENTINEL = object()

TEST_CTRL = RequestControlTuples([
    # with BER data
    SimplePagedResultsControl(criticality=0, size=5, cookie=b'cookie'),
    # value-less
    SearchNoOpControl(criticality=1),
])
TEST_CTRL_EXPECTED = [
    TEST_CTRL[0],
    # get_option returns empty bytes
    (TEST_CTRL[1][0], TEST_CTRL[1][1], b''),
]


class BaseTestOptions:
    """Common tests for getting/setting options

    Used in subclasses below
    """
    def get_option(self, option):
        raise NotImplementedError()