[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#4783) ldap_sasl_bind() is not asynchronous
ando@sys-net.it wrote:
> fcusack@fcusack.com wrote:
>> But still you can do the bind async, and just close the fd on the client
>> side on timeout. I don't see why connect() timeout can't be handled
>> the same way. (ignoring the problem that there is no API call AFAICT
>> to just drop the connection)
>>
> I'll note that there's been some interest in that area --- I loosely
> have the same need (see
> <http://www.openldap.org/lists/openldap-devel/200611/msg00000.html>) but
> unfortunately it's not in my priority list, considering that it might
> have relevant impact on the client library.
Eventually, this got on top of my priority list, and it's now
implemented in HEAD. One needs to:
- set LDAP_OPT_NETWORK_TIMEOUT to a value greater than 0
- set LDAP_OPT_CONNECT_ASYNC to TRUE
- perform the first operation asynchronously (e.g. ldap_sasl_bind(3))
the library call might return LDAP_X_CONNECTING if poll(2)'ing after
connect(2) didn't succeed yet and LDAP_OPT_NETWORK_TIMEOUT didn't expire
yet. In that case, the client should resubmit the request until it
either succeeds or LDAP_OPT_NETWORK_TIMEOUT expires.
Note that, right now, there's no means to set LDAP_OPT_CONNECT_ASYNC
other than via ldap_set_option(3), and none is foreseen, because only
specially crafted clients would be able to handle LDAP_X_CONNECTING
appropriately.
Please test.
p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.n.c.
Via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
------------------------------------------
Office: +39.02.23998309
Mobile: +39.333.4963172
Email: pierangelo.masarati@sys-net.it
------------------------------------------