Re: Setting Timeout for ldap_simple_bind() in SSL mode

Anton Bobrov <[email protected]>
Newsgroups gmane.comp.mozilla.devel.directory
Organization Sun Microsystems, Inc.
Message-ID <[email protected]>
i thought i just answered this but under diff subj.
PRLDAP_OPT_IO_MAX_TIMEOUT should do the trick here,
see my prev msg for more details.

Ramakrishna B wrote:
> 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
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.