2011-07-13 15 views
6

Python-LDAP'de "simple_bind_s" için zaman aşımını manüel olarak ayarlamanın bir yolu var mı? LdapObject.timeout = 10'u test ettim, benim için çalışmadı. Herhangi bir fikir? peşinPython-LDAP simple_bind_s zaman aşımı

Teşekkür ..

cevap

10

ldap nesnesi için seçenek ldap.OPT_NETWORK_TIMEOUT ayarlayın. belirtilen zaman aşımı ulaşılırsa

import ldap 

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

Bu

bir ldap.SERVER_DOWN istisna yükseltecektir. Nedense ldap.OPT_NETWORK_TIMEOUT için

3

benim için zaman aşımına gibi görünüyor asla, bu yüzden (ldap.TIMEOUT yükseltecek olan) yerine ldap.OPT_TIMEOUT kullandı:

import ldap 

l = ldap.initialize('ldaps://ldap.example.com') 
l.set_option(ldap.OPT_TIMEOUT, 10) 
l.simple_bind_s('username', 'password') 
+1

ben ama, OPT_NETWORK_TIMEOUT arasındaki farkı söyleyebilirim gelen, yanlış olabilir ve OPT_TIMEOUT, "ağ" seçeneğinin başlangıçtaki bağlantı içindir: 10 saniye içinde bağlanamaz, istisna artar. OPT_TIMEOUT seçeneği, LDAP sunucusunda gerçekleştirilen eylemler için geçerli gibi görünüyor: yeni bir kayıt oluşturma girişimi 10 saniyeden uzun sürüyor, istisnayı yükseltiyor. – CptSupermrkt