8

Is there a way to set timeout for "simple_bind_s" in python-LDAP manually? I have tested ldapObject.timeout = 10 it did not work for me. Any ideas?

Thanks in advance..

kursat
  • 1,059
  • 5
  • 15
  • 32

2 Answers2

15

Set the option ldap.OPT_NETWORK_TIMEOUT for the ldap object.

import ldap

l = ldap.initialize('ldap://servername:389')
l.set_option(ldap.OPT_NETWORK_TIMEOUT, 10.0)
l.simple_bind_s('username', 'password')

This will raise a ldap.SERVER_DOWN exception if the specified timeout is reached.

robots.jpg
  • 5,001
  • 1
  • 38
  • 41
5

For some reason ldap.OPT_NETWORK_TIMEOUT never seems to time out for me, so I used ldap.OPT_TIMEOUT instead (which will raise ldap.TIMEOUT):

import ldap

l = ldap.initialize('ldaps://ldap.example.com')
l.set_option(ldap.OPT_TIMEOUT, 10)
l.simple_bind_s('username', 'password')
bmaupin
  • 14,427
  • 5
  • 89
  • 94
  • 2
    I may be mistaken, but from what I can tell, the difference between OPT_NETWORK_TIMEOUT and OPT_TIMEOUT is that the "network" option is for the initial connection: fail to connect within 10 seconds, raise exception. The OPT_TIMEOUT option seems to be for actions taken on the LDAP server: attempt to create a new record and it takes longer than 10 seconds, raise exception. – CptSupermrkt Oct 10 '14 at 20:32