Blocking bind....
Jerry Lee
tesno2 at hotmail.com
Tue Mar 4 19:09:35 CET 2003
Hi Michael,
Thanks for the response.
>From: Michael Ströder <michael at stroeder.com>
>To: Jerry Lee <tesno2 at hotmail.com>
>CC: python-ldap-dev at lists.sourceforge.net
>Subject: Re: Blocking bind....
>Date: Tue, 04 Mar 2003 17:31:23 +0100
>
>Jerry Lee wrote:
>>
>>I recently posted to the list about a problem I am having with bind
>>blocking for a long time before it times out if the server isn't there.
>
>You can elaborate on "the server isn't there"?
>
The machine doesn't exist - an ip address that I can't ping.
I'm writing a QT-based LDAP browser and I want to make it user friendly.
Give the user an option of cancelling a request if they typed the wrong IP
address (for example)
>
>>Mario Cicognini (thx Mario!!) was kind enough to suggest the following:
>>
>> l = ldap.open(LDAPServer)
>> id = l.simple_bind(LDAPbindUsername, LDAPbindPassword)
>> status,res = l.result(id, 1, 60)
>> if status != 'RES_BIND':
>> return -1
>>
>>which I tried with no success.
>
>First note that the connection timeout part is done within OpenLDAP libs.
>It might be worth testing with newer OpenLDAP lib version 2.1.x. There's
>nothing more you can do at Python level.
>
How do I set the TIMEOUT values with set_option.
Could you give me an example of how to set OPT_TIMEOUT and
OPT_NETWORK_TIMEOUT to 10 secs??
I had thought from reading the python-ldap docs that simple_bind was an
asynchronous operation - that control would be returned to my program
immediately after issuing the request. However, on my machine, it blocks -
and then times out after around 90secs. Kind of annoying.
Is the synchronous/asynchronous nature of the call controlled in the
python-ldap module or is it a function of the OpenLDAP libs??
>>My app blocks at the
>>id = l.simple_bind(LDAPbindUsername, LDAPbindPassword)
>>line and doesn't return until around 90secs later.
>
>Note that opening the connection is deferred until attempting first the
>LDAP operation. The ldap_initialize() function of OpenLDAP libs just
>returns a LDAP connection struct without actually connecting to the server.
>I guess your simple bind is the first LDAP operation.
>
>Ciao, Michael.
Yes, this seems to be OK. I get program control back immediately after the
ldap_open (ldap_initialie worked the same way).
Thanks for the response and many thanks for the work you've done on
python-ldap. You've helped make developing the app a much simpler task and
even kind of fun!!
Yours,
Jerry.
More information about the python-ldap
mailing list