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.
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature