Win32 version working OK [was Re: Speed difference, which version to use?]

Mauro Cicognini mcicogni at siosistemi.it
Mon Jun 24 10:01:06 CEST 2002


I'm glad to announce that I've found the limiting factor for the 5-odd 
seconds delay during binds, which I was annoyed by, and that I was able 
to remove it. Therefore, it appears that the native Win32 (i.e., 
non-Cygwin) version of PythonLDAP 2.0.0pre04 (linked against OpenLDAP 
2.0 libs) is indeed a workable replacement for PythonLDAP 1.x (under 
Windows, that is).

If anyone's interested, here's what I found.

By sniffing network traffic I saw that it wasn't LDAP's fault per se. In 
fact, for some reason the current libraries (as opposed to the old UMich 
libs that I used in PythonLDAP 1.x) do a reverse-resolution on the 
server's IP address before attempting to bind, on both DNS _and_ NetBIOS 
(remember I'm dealing with Windows machines here).

Note that the I passed the LDAP server's address as a DNS name, and that 
the IP address was correctly resolved by my DNS server. Anyhow, the 
client always tries to find the NetBIOS name of the server machine, and 
this was what caused the delay, since my LDAP server is behind a 
firewall which is configured to disallow NetBIOS queries (the client 
tries 3 times the query, then gives up). Once I let NetBIOS-ns through 
(UDP port 137) the delay disappeared.

If anyone has a clue to what is causing this rather bizarre behavior in 
the client, please let me know: I do think this is a misfeature, and I'd 
like to #ifdef it away at least in my version of the libs.
However, I can't really tell who's doing this: it might be happening 
within SASL, or within OpenLDAP, or in any of some minor different 
components that need to be there when compiling.

I can tell that it isn't Windows fault, at least: I'm sure of this 
because I compiled, on the same machine (WinXP Pro using MSVC++ 6.0sp4), 
both versions of PythonLDAP (old 1.x style linked with UMich libs, and 
new 2.x linked with OpenLDAP libs); and the former isn't trying reverse 
resolution, whereas the latter is.

If anyone's interested, I can post the compiled Win32 binaries somewhere 
so that others may test them more thoroughly than myself.

Thanks everybody
Mauro

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 2926 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mail.python.org/pipermail/python-ldap/attachments/20020624/928e8b02/attachment.bin>


More information about the python-ldap mailing list