2011-07-13 36 views
6

Có cách nào để đặt thời gian chờ cho "simple_bind_s" trong python-LDAP theo cách thủ công không? Tôi đã thử nghiệm ldapObject.timeout = 10 nó không làm việc cho tôi. Bất kỳ ý tưởng?Python-LDAP simple_bind_s timeout

Cảm ơn trước ..

Trả lời

10

Đặt tùy chọn ldap.OPT_NETWORK_TIMEOUT cho đối tượng ldap.

import ldap 

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

Điều này sẽ tăng ngoại lệ ldap.SERVER_DOWN nếu hết thời gian chờ được chỉ định.

3

Đối với một số lý do ldap.OPT_NETWORK_TIMEOUT bao giờ dường như thời gian ra đối với tôi, vì vậy tôi sử dụng ldap.OPT_TIMEOUT thay vì (mà sẽ nâng ldap.TIMEOUT):

import ldap 

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

tôi có thể bị nhầm lẫn, nhưng từ những gì tôi có thể nói, sự khác biệt giữa OPT_NETWORK_TIMEOUT và OPT_TIMEOUT là tùy chọn "mạng" dành cho kết nối ban đầu: không kết nối được trong vòng 10 giây, hãy tăng ngoại lệ. Tùy chọn OPT_TIMEOUT dường như dành cho các hành động được thực hiện trên máy chủ LDAP: cố gắng tạo bản ghi mới và mất hơn 10 giây, tăng ngoại lệ. – CptSupermrkt