]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
send_search_reference should propagate errors
authorQuanah Gibson-Mount <quanah@openldap.org>
Sat, 16 Dec 2006 01:38:06 +0000 (01:38 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Sat, 16 Dec 2006 01:38:06 +0000 (01:38 +0000)
servers/slapd/result.c

index c5e17337b577d8aa4cd6b12d27238228606b9e35..a766356c470306802afc3335ea727f685a448e50 100644 (file)
@@ -1341,11 +1341,15 @@ slap_send_search_reference( Operation *op, SlapReply *rs )
        bytes = send_ldap_ber( op->o_conn, ber );
        ber_free_buf( ber );
 
-       ldap_pvt_thread_mutex_lock( &slap_counters.sc_sent_mutex );
-       ldap_pvt_mp_add_ulong( slap_counters.sc_bytes, (unsigned long)bytes );
-       ldap_pvt_mp_add_ulong( slap_counters.sc_refs, 1 );
-       ldap_pvt_mp_add_ulong( slap_counters.sc_pdu, 1 );
-       ldap_pvt_thread_mutex_unlock( &slap_counters.sc_sent_mutex );
+       if ( bytes < 0 ) {
+               rc = LDAP_UNAVAILABLE;
+       } else {
+               ldap_pvt_thread_mutex_lock( &slap_counters.sc_sent_mutex );
+               ldap_pvt_mp_add_ulong( slap_counters.sc_bytes, (unsigned long)bytes );
+               ldap_pvt_mp_add_ulong( slap_counters.sc_refs, 1 );
+               ldap_pvt_mp_add_ulong( slap_counters.sc_pdu, 1 );
+               ldap_pvt_thread_mutex_unlock( &slap_counters.sc_sent_mutex );
+       }
 #ifdef LDAP_CONNECTIONLESS
        }
 #endif