Thunderbird and the LDAP c-sdk

Joshua Cranmer pidgeot18 at
Mon Aug 13 14:02:41 UTC 2012

On 8/13/2012 9:24 AM, Mark Banner wrote:
> Whilst it generally appears to be perfectly adequate for Thunderbird's 
> needs, there's one problem that we keep on hitting. On Linux systems, 
> Thunderbird can crash 
> <>, if OpenLDAP is 
> installed and set up for authentication (and probably a few variants 
> of that). This is primarily due to the way module loading works on 
> Linux, and the slight API differences between the two libraries.

The other issue, as I have discovered in some of my build experiments, 
is that the LDAP SDKs are a special kind of broken in terms of their 
build system. For example, the configure script doesn't actually set up 
any flags that get passed to the linker for the dynamic libraries.

There is an RFC for a common LDAP API 
(, so if we know that just that much 
is sufficient, we could link in theory to any LDAP library.

> I'm not sure what javascript options exist, hopefully Joshua or 
> someone can provide some additional information.

There's <>, which is based off of 
node (as its name implies). I brief look at Google results suggests no 
other major implementations. The largest stumbling block in creating a 
client implementation is probably ASN.1 encoding/decoding (I've ranted 
about this in the past); after that, it's just a relatively simple 
binary protocol (although I should note that binary protocols aren't 
terribly fun to use from a JS implementation).

I have mixed feelings about pulling in a node-based JS library for use 
as a core-ish component. On the one hand, it means being to offload 
maintenance to other people, but we'd have to build up a non-trivial 
shim library for the entire low-level node stuff and possibly more 
libraries as well.

However, I think that before we can make any changes, we probably need 
to be able to run LDAP tests via the fakeserver...

Joshua Cranmer
News submodule owner
DXR coauthor

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the tb-planning mailing list