Setting Timeout for ldap_simple_bind() in SSL mode

Ramakrishna B <[email protected]>
Newsgroups gmane.comp.mozilla.devel.directory
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.