Commit 26c91dad authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

ITS#6056

parent 52925234
......@@ -13,6 +13,7 @@ OpenLDAP 2.4.17 Engineering
Fixed slapd cert validation (ITS#6098)
Fixed slapd errno handling (ITS#6037)
Fixed slapd global alloc handling (ITS#6054)
Fixed slapd ldapi issues (ITS#6056)
Fixed slapd moduleload with static backends and modules (ITS#6016)
Fixed slapd normalization of updated schema attributes (ITS#5540)
Fixed slapd olcLimits handling (ITS#6159)
......
......@@ -1271,24 +1271,6 @@ int connection_read_activate( ber_socket_t s )
return rc;
}
void
connection_hangup( ber_socket_t s )
{
Connection *c;
c = connection_get( s );
if ( c ) {
if ( c->c_conn_state == SLAP_C_CLIENT ) {
connection_return( c );
connection_read_activate( s );
} else {
connection_closing( c, "connection lost" );
connection_close( c );
connection_return( c );
}
}
}
static int
connection_read( ber_socket_t s, conn_readinfo *cri )
{
......
......@@ -2529,7 +2529,7 @@ slapd_daemon_task(
#endif /* LDAP_DEBUG */
for ( i = 0; i < ns; i++ ) {
int rc = 1, fd, w = 0;
int rc = 1, fd, w = 0, r = 0;
if ( SLAP_EVENT_IS_LISTENER( i ) ) {
rc = slap_listener_activate( SLAP_EVENT_LISTENER( i ) );
......@@ -2569,24 +2569,23 @@ slapd_daemon_task(
}
}
/* If event is a read */
if ( SLAP_EVENT_IS_READ( i ) ) {
if ( SLAP_EVENT_IS_READ( i ))
r = 1;
if ( r || !w ) {
Debug( LDAP_DEBUG_CONNS,
"daemon: read active on %d\n",
fd, 0, 0 );
SLAP_EVENT_CLR_READ( i );
connection_read_activate( fd );
} else if ( !w ) {
Debug( LDAP_DEBUG_CONNS,
"daemon: hangup on %d\n", fd, 0, 0 );
if ( SLAP_SOCK_IS_ACTIVE( fd )) {
if ( r ) {
SLAP_EVENT_CLR_READ( i );
} else {
#ifdef HAVE_EPOLL
/* Don't keep reporting the hangup
*/
SLAP_EPOLL_SOCK_SET( fd, EPOLLET );
#endif
connection_hangup( fd );
}
connection_read_activate( fd );
}
}
}
......
......@@ -758,7 +758,6 @@ LDAP_SLAPD_F (Connection *) connection_init LDAP_P((
LDAP_SLAPD_F (void) connection_closing LDAP_P((
Connection *c, const char *why ));
LDAP_SLAPD_F (void) connection_hangup LDAP_P(( ber_socket_t fd ));
LDAP_SLAPD_F (int) connection_valid LDAP_P(( Connection *c ));
LDAP_SLAPD_F (const char *) connection_state2str LDAP_P(( int state ))
LDAP_GCCATTR((const));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment