> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> Sent: Thursday, February 03, 2011 9:35 PM
>
> But ldap_send_initial_request() then gets a good return
> > code from ldap_open_defconn(), and so it goes on to call
> > ldap_send_server_request() to send the bind, and that then calls
> > ldap_int_poll() which waits for the connect to complete, making the
> whole operation synchronous.
>
> No. ldap_int_poll() will return -2 if timeout is 0 and the filedes was
> not
> active.  So ldap_send_server_request() will return LDAP_X_CONNECTING if
> async.

Thanks. That's what the code should be doing but it's not what I was seeing, so 
I did a bit of debugging and it turns out that that ldap_int_poll call returns 
0, not -2. But that is because the poll (or select) call in it returns 1 
indicating that the connect completed immediately. So it's actually functioning 
as it should.

> The only place where this is used is in back-meta, where searches
> to multiple handles were initiated sequentially, and
> LDAP_OPT_CONNECT_ASYNC was introduced to avoid having to wait for each
> connection to be established before starting processing available
> results.

That's basically exactly the exact reason I am trying to use it now.

Thanks
Ian

Reply via email to