]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/os-ip.c
ITS#4844 add missing overlays
[openldap] / libraries / libldap / os-ip.c
index bd4796bc0651f8390079b2f5f92b07785e21d431..4b7de9e690f362c5b72c7c56b3a777f6d315e48a 100644 (file)
@@ -354,8 +354,7 @@ ldap_pvt_connect(LDAP *ld, ber_socket_t s,
        int async)
 {
        int rc, err;
-       struct timeval  tv = { 0 },
-                       *opt_tv = NULL;
+       struct timeval  tv, *opt_tv = NULL;
 
 #ifdef LDAP_CONNECTIONLESS
        /* We could do a connect() but that would interfere with
@@ -369,9 +368,9 @@ ldap_pvt_connect(LDAP *ld, ber_socket_t s,
                return ( 0 );
        }
 #endif
-       opt_tv = ld->ld_options.ldo_tm_net;
-       if ( opt_tv != NULL ) {
-               tv = *opt_tv;
+       if ( ld->ld_options.ldo_tm_net.tv_sec >= 0 ) {
+               tv = ld->ld_options.ldo_tm_net;
+               opt_tv = &tv;
        }
 
        osip_debug(ld, "ldap_pvt_connect: fd: %d tm: %ld async: %d\n",
@@ -398,98 +397,8 @@ ldap_pvt_connect(LDAP *ld, ber_socket_t s,
 
        rc = ldap_int_poll( ld, s, opt_tv );
 
-#if 0
-#ifdef HAVE_POLL
-       {
-               struct pollfd fd;
-               int timeout = INFTIM;
-
-               if( opt_tv != NULL ) timeout = TV2MILLISEC( &tv );
-
-               fd.fd = s;
-               fd.events = POLL_WRITE;
-
-               do {
-                       fd.revents = 0;
-                       rc = poll( &fd, 1, timeout );
-               } while( rc == AC_SOCKET_ERROR && errno == EINTR &&
-                       LDAP_BOOL_GET(&ld->ld_options, LDAP_BOOL_RESTART ));
-
-               if( rc == AC_SOCKET_ERROR ) return rc;
-
-               if( fd.revents & POLL_WRITE ) {
-                       if ( ldap_pvt_is_socket_ready(ld, s) == -1 ) return -1;
-                       if ( ldap_pvt_ndelay_off(ld, s) == -1 ) return -1;
-                       return ( 0 );
-               }
-       }
-#else
-       {
-               fd_set          wfds, *z=NULL;
-#ifdef HAVE_WINSOCK
-               fd_set          efds;
-#endif
-
-#if defined( FD_SETSIZE ) && !defined( HAVE_WINSOCK )
-               if ( s >= FD_SETSIZE ) {
-                       rc = AC_SOCKET_ERROR;
-                       tcp_close( s );
-                       ldap_pvt_set_errno( EMFILE );
-                       return rc;
-               }
-#endif
-
-               do {
-                       FD_ZERO(&wfds);
-                       FD_SET(s, &wfds );
-
-#ifdef HAVE_WINSOCK
-                       FD_ZERO(&efds);
-                       FD_SET(s, &efds );
-#endif
-
-                       rc = select(ldap_int_tblsize, z, &wfds,
-#ifdef HAVE_WINSOCK
-                               &efds,
-#else
-                               z,
-#endif
-                               opt_tv ? &tv : NULL);
-               } while( rc == AC_SOCKET_ERROR && errno == EINTR &&
-                       LDAP_BOOL_GET(&ld->ld_options, LDAP_BOOL_RESTART ));
-
-               if( rc == AC_SOCKET_ERROR ) return rc;
-
-#ifdef HAVE_WINSOCK
-               /* This means the connection failed */
-               if ( FD_ISSET(s, &efds) ) {
-                   int so_errno;
-                   int dummy = sizeof(so_errno);
-                   if ( getsockopt( s, SOL_SOCKET, SO_ERROR,
-                               (char *) &so_errno, &dummy ) == AC_SOCKET_ERROR || !so_errno )
-                   {
-                       /* impossible */
-                       so_errno = WSAGetLastError();
-                   }
-                   ldap_pvt_set_errno(so_errno);
-                   osip_debug(ld, "ldap_pvt_connect: error on socket %d: "
-                              "errno: %d (%s)\n", s, errno, sock_errstr(errno));
-                   return -1;
-               }
-#endif
-               if ( FD_ISSET(s, &wfds) ) {
-#ifndef HAVE_WINSOCK
-                       if ( ldap_pvt_is_socket_ready(ld, s) == -1 ) return -1;
-#endif
-                       if ( ldap_pvt_ndelay_off(ld, s) == -1 ) return -1;
-                       return 0;
-               }
-       }
-#endif
-
-#endif
-
        osip_debug(ld, "ldap_pvt_connect: %d\n", rc, 0, 0);
+
        return rc;
 }