From f3774d6ea324a2bff691b5e0ea2e1e8148275bc3 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Tue, 23 Mar 1999 01:57:48 +0000 Subject: [PATCH] Fix unlock bug in connection_read/write. Fix connection_read() to ignore input when connection is closing. --- servers/slapd/connection.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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; } -- 2.39.5