ITS#9244 Test for network timeout in ldap_int_check_async_open

This commit is contained in:
Ondřej Kuzník 2026-02-16 10:53:46 +00:00
parent c787dc9bfe
commit 21b5b33a5b

View file

@ -668,14 +668,21 @@ ldap_int_check_async_open( LDAP *ld, ber_socket_t sd )
ld->ld_defconn->lconn_status = LDAP_CONNST_CONNECTED;
break;
case -2:
/* connect not completed yet, timed out? */
LDAP_MUTEX_LOCK( &ld->ld_options.ldo_mutex );
if ( time( NULL ) - ld->ld_defconn->lconn_created <= ld->ld_options.ldo_tm_net.tv_sec )
{
ld->ld_errno = LDAP_X_CONNECTING;
LDAP_MUTEX_UNLOCK( &ld->ld_options.ldo_mutex );
return rc;
}
LDAP_MUTEX_UNLOCK( &ld->ld_options.ldo_mutex );
/* fallthru */
default:
ld->ld_errno = LDAP_CONNECT_ERROR;
return -1;
case -2:
/* connect not completed yet */
ld->ld_errno = LDAP_X_CONNECTING;
return rc;
}
#ifdef HAVE_TLS