Qian Li wrote:
On Thu, Nov 27, 2014 at 4:51 AM, Michael Ströder michael@stroeder.com wrote:
Qian Li wrote:
On Wed, Nov 26, 2014 at 5:30 PM, Michael Ströder michael@stroeder.com wrote:
Qian Li wrote:
Recently, I tried to write a ldap client to do ldap search
asynchronously,
but failed to perform search operation after a successful async sasl (digest-md5) bind.
What's your use-case for having async bind operation?
Note that the bind operation is somewhat special because it establishs a security context/association.
The ldap client is a daemon which accepts arbitrary request from outside
What kind of requests?
There are IPCs from other processes and the ldap client is only single thread.
I did something very similar recently.
I don't know what's your exact use-case. But if you're cautious about performance you should open a connection pool of persistent connections and always bind *once* during connection lifetime.
Yes, persistent connections pool is another solution. The search operation works in both async simple bind and sync SASL/DIGEST-MD5 bind, but doesn't work in async SASL/DIGEST-MD5 bind. This confuses me...
You have to wait for the SASL bind to complete *before* sending the subsequent search operation anyway => persistent connections are *the* solution.
In my case such a simple local demon served 300+ requests/second with the LDAP server with debug log and the demon running on the same old laptop. One request to the demon sends three synchronous LDAP requests.
Ciao, Michael.