Changed
- A failed connect to an LDAP server is logged with its socket error, for
example(111: Connection refused).
Fixed
- A request whose first operation went out on a connection the LDAP server
or a firewall had already closed as idle answered503; the operation is
now sent again, once, on another or a reconnected connection. - An answer that arrived together with the close of its connection was
lost: a correct password got503, a wrong one503instead of401. - When the connection died under the user bind, the request waited for
request_timeoutbefore the next server was asked; it now fails over at
once. - Requests queued on a server whose connections failed to come up waited
forrequest_timeoutbefore the next server was asked; they now fail
over at once. The last server is still waited for. - Requests waiting for a free connection could wait for
request_timeout
while a connection was free, when the request woken before them went
away or left the server without it. - An LDAP operation that could not be sent at once waited for
request_timeoutinstead of being finished when the socket became
writable. - A long queue of requests that failed at once could overflow the stack
of the worker. - A client that closed its connection while its request waited for LDAP
went unnoticed until the LDAP answer or the timeout, and kept its LDAP
connection busy. - A worker shutting down kept running until the bind timeout of its LDAP
connections afterworker_shutdown_timeout, and a gracefully exiting
worker waited forconnect_timeoutandbind_timeoutof connections
that were still coming up. - Referrals in a StartTLS or failed service bind answer leaked memory on
every reconnect.
Full list of changes: v1.2.0...v1.2.1