FYI
I tried to use OpenLDAP on the client side on Windows 2000 (w/ SP4) through the SOCKS server. I had to use the Hummingbird SOCKS client (choosing another SOCKS client is not an option). The problem seems to be in the interaction between the Hummingbird SOCKS client & Windows TCP/IP stack.
Basically, non-blocking socks calls do not work in this configuration (probably the Hummingbird SOCKS client bug). As OpenLDAP is using them I could not connect to my LDAP server. I spent a week+ trying to find what was going wrong.
Finally, changing ldap_pvt_connect in os-ip.c so that ldap_pvt_ndelay_on is not called fixed my problem. This worked for me as I was already using synchronous LDAP calls only. Please notice that if you do this, all your LDAP calls will be synchronous.
I am still on 2.0.27 as this works just fine for me.