Hi, We are using Netscape 5.12. We are facing an issue with ldap_simple_bind() asynchronous call in SSL mode. Any help in this matter would be greatly appreciated. Is there a way to set a timeout for ldap_simple_bind() asynchronous call (operating in SSL Mode) so that it does not get blocked if LDAP server hanges. Currently during the ldap_simple_bind() call, the Netscape SDK seems to do a SSL handshake to exchange messages and due to LDAP server hang, the ldap_simple_bind() call hangs. Is there a way we can set some timelimit to this function call so that we can failover to a different server in such scenarios ? It would be great if we can have the control on the client side itself. Following is the stack that we are seeing: ntdll!ZwWaitForSingleObject+0xb (FPO: [3,0,0]) KERNEL32!WaitForSingleObjectEx+0x71 (FPO: [Non-Fpo]) KERNEL32!WaitForSingleObject+0xf (FPO: [2,0,0]) libobnspr4!_PR_MD_WAIT(struct PRThread * thread = 0x0229ae50, unsigned int ticks = 0xffffffff)+0x72 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\md\windows\ntio.c @ 528] libobnspr4!_NT_IO_WAIT(struct PRThread * thread = 0x0229ae50, unsigned int timeout = 0xffffffff)+0xe9 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\md\windows\ntio.c @ 743] libobnspr4!_PR_MD_RECV(struct PRFileDesc * fd = 0x04a70138, void * buf = 0x04b2377c, int amount = 5, int flags = 0, unsigned int timeout = 0xffffffff)+0x2f1 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\md\windows\ntio.c @ 1756] libobnspr4!SocketRecv(struct PRFileDesc * fd = 0x04a70138, void * buf = 0x04b2377c, int amount = 5, int flags = 0, unsigned int timeout = 0xffffffff)+0x27c (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\io\prsocket.c @ 638] libobnspr4!pl_DefRecv(struct PRFileDesc * fd = 0x04b23a70, void * buf = 0x04b2377c, int amount = 5, int flags = 0, unsigned int timeout = 0xffffffff)+0x66 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\io\prlayer.c @ 277] obssl3!ssl_DefRecv(struct sslSocketStr * ss = 0x04b23598, unsigned char * buf = 0x04b2377c "", int len = 5, int flags = 0)+0x33 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\ssldef.c @ 91] obssl3!ssl3_GatherData(struct sslSocketStr * ss = 0x04b23598, struct sslGatherStr * gs = 0x04b2373c, int flags = 0)+0xf6 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\ssl3gthr.c @ 87] obssl3!ssl3_GatherCompleteHandshake(struct sslSocketStr * ss = 0x04b23598, int flags = 0)+0x4d (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\ssl3gthr.c @ 192] obssl3!ssl_GatherRecord1stHandshake(struct sslSocketStr * ss = 0x04b23598)+0x62 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\sslcon.c @ 1256] obssl3!ssl_Do1stHandshake(struct sslSocketStr * ss = 0x04b23598)+0x1ef (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\sslsecur.c @ 145] obssl3!ssl_SecureSend(struct sslSocketStr * ss = 0x04b23598, unsigned char * buf = 0x04b18504 "0*???", int len = 44, int flags = 0)+0x184 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\sslsecur.c @ 1024] obssl3!ssl_Send(struct PRFileDesc * fd = 0x04b14928, void * buf = 0x04b18504, int len = 44, int flags = 0, unsigned int timeout = 0xffffffff)+0xa5 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\sslsock.c @ 1222] libobnspr4!PR_Send(struct PRFileDesc * fd = 0x04b14928, void * buf = 0x04b18504, int amount = 44, int flags = 0, unsigned int timeout = 0xffffffff)+0x1f (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\io\priometh.c @ 221] OBNSLDAPPR32V50!prldap_write(int s = 1, void * buf = 0x04b18504, int len = 44, struct lextiof_socket_private * socketarg = 0x04b18930)+0x32 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libprldap\ldappr-io.c @ 210] OBNSLDAP32V50!ber_flush(struct sockbuf * sb = 0x04a6ff60, struct berelement * ber = 0x04b183e0, int freeit = 0)+0x205 (FPO: [Non-Fpo]) (CONV: stdcall) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\liblber\io.c @ 417] OBNSLDAP32V50!nsldapi_send_ber_message(struct ldap * ld = 0x04a6fd80, struct sockbuf * sb = 0x04a6ff60, struct berelement * ber = 0x04b183e0, int freeit = 0)+0x6c (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\request.c @ 399] OBNSLDAP32V50!nsldapi_send_server_request(struct ldap * ld = 0x04a6fd80, struct berelement * ber = 0x04b183e0, int msgid = 1, struct ldapreq * parentreq = 0x00000000, struct ldap_server * srvlist = 0x00000000, struct ldap_conn * lc = 0x04b281c0, char * bindreqdn = 0x04b23b78 "cn=Directory Manager", int bind = 0)+0xb86 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\request.c @ 334] OBNSLDAP32V50!nsldapi_send_initial_request(struct ldap * ld = 0x04a6fd80, int msgid = 1, unsigned long msgtype = 0x60, char * dn = 0x04b27ca8 "cn=Directory Manager", struct berelement * ber = 0x04b183e0)+0x6f (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\request.c @ 148] OBNSLDAP32V50!simple_bind_nolock(struct ldap * ld = 0x04a6fd80, char * dn = 0x04b27ca8 "cn=Directory Manager", char * passwd = 0x04b27cf0 "oblixoblix", int unlock_permitted = 1)+0x41b (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\sbind.c @ 150] OBNSLDAP32V50!ldap_simple_bind(struct ldap * ld = 0x04a6fd80, char * dn = 0x04b27ca8 "cn=Directory Manager", char * passwd = 0x04b27cf0 "oblixoblix")+0x5d (FPO: [Non-Fpo]) (CONV: stdcall) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\sbind.c @ 79 Any help with this matter would be greatly appreciated. Thanks, Rama.
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _______________________________________________ dev-tech-ldap mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-ldap
