if ( opt_tv && ldap_pvt_ndelay_on(ld, s) == -1 )
return ( -1 );
- if ( connect(s, sin, addrlen) != AC_SOCKET_ERROR ) {
- if ( opt_tv && ldap_pvt_ndelay_off(ld, s) == -1 )
- return ( -1 );
- return ( 0 );
- }
+ do{
+ osip_debug(ld, "attempting to connect: \n", 0, 0, 0);
+ if ( connect(s, sin, addrlen) != AC_SOCKET_ERROR ) {
+ osip_debug(ld, "connect success\n", 0, 0, 0);
+
+ if ( opt_tv && ldap_pvt_ndelay_off(ld, s) == -1 )
+ return ( -1 );
+ return ( 0 );
+ }
+ err = sock_errno();
+ osip_debug(ld, "connect errno: %d\n", err, 0, 0);
+
+ } while(err == EINTR &&
+ LDAP_BOOL_GET( &ld->ld_options, LDAP_BOOL_RESTART ));
- err = sock_errno();
if ( err != EINPROGRESS && err != EWOULDBLOCK ) {
return ( -1 );
}