https://bugs.openldap.org/show_bug.cgi?id=9244
--- Comment #2 from Ryan Tandy ryan@openldap.org --- (In reply to Howard Chu from comment #1)
The Bind should not block for longer than the connect timeout.
Just to confirm: I'm talking about an initial request with implicit connect. Not an explicit ldap_connect() or ldap_open_defconn() followed by a real request. Are you saying the implicit connect inside ldap_simple_bind_s() should block for up to the network timeout?
I don't think it has ever worked that way. The calls to ldap_int_poll() in ldap_send_initial_request() (inside ldap_int_check_async_open()) and ldap_send_server_request() both use a timeout of 0.
In ldap_send_server_request(), if the network timeout is exceeded, then it falls through and returns LDAP_SERVER_DOWN. If it's meant to block during the connect timeout, when should I actually expect to see LDAP_X_CONNECTING?
In any case, right now it never reaches that code at all, so the network timeout isn't even respected with async. (With a timeout, but not async, it works fine: blocks for the network timeout and then returns LDAP_SERVER_DOWN.)