From: Kurt Zeilenga Date: Tue, 23 Mar 1999 01:57:48 +0000 (+0000) Subject: Fix unlock bug in connection_read/write. Fix connection_read() to X-Git-Tag: OPENLDAP_SLAPD_BACK_LDAP~343 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f3774d6ea324a2bff691b5e0ea2e1e8148275bc3;p=openldap Fix unlock bug in connection_read/write. Fix connection_read() to ignore input when connection is closing. --- diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c index 5f88d1dc33..aec09ae690 100644 --- a/servers/slapd/connection.c +++ b/servers/slapd/connection.c @@ -553,9 +553,20 @@ int connection_read(int s) Debug( LDAP_DEBUG_ANY, "connection_read(%d): no connection!\n", s, 0, 0 ); + ldap_pvt_thread_mutex_unlock( &connections_mutex ); return -1; } + if( c->c_conn_state == SLAP_C_CLOSING ) { + Debug( LDAP_DEBUG_TRACE, + "connection_read(%d): closing, ignoring input for id=%ld\n", + s, c->c_connid, 0 ); + + connection_return( c ); + ldap_pvt_thread_mutex_unlock( &connections_mutex ); + return 0; + } + Debug( LDAP_DEBUG_TRACE, "connection_read(%d): checking for input on id=%ld\n", s, c->c_connid, 0 ); @@ -755,6 +766,7 @@ int connection_write(int s) Debug( LDAP_DEBUG_ANY, "connection_write(%d): no connection!\n", s, 0, 0 ); + ldap_pvt_thread_mutex_unlock( &connections_mutex ); return -1; }