ldap_pvt_thread_mutex_lock( &slap_counters.sc_sent_mutex );
ldap_pvt_mp_add_ulong( slap_counters.sc_pdu, 1 );
- ldap_pvt_mp_add_ulong( slap_counters.sc_bytes, bytes );
+ ldap_pvt_mp_add_ulong( slap_counters.sc_bytes, (unsigned long)bytes );
ldap_pvt_thread_mutex_unlock( &slap_counters.sc_sent_mutex );
cleanup:;
clean2:;
if ( op->o_callback ) {
int first = 1;
- slap_callback *sc = op->o_callback,
- *sc_next = op->o_callback;
+ slap_callback *sc = op->o_callback, *sc_next;
for ( sc_next = op->o_callback; sc_next; op->o_callback = sc_next) {
sc_next = op->o_callback->sc_next;
if ( op->o_callback->sc_cleanup ) {
(void)op->o_callback->sc_cleanup( op, rs );
- if ( first && op->o_callback == NULL ) {
- sc = NULL;
+ if ( first && op->o_callback != sc ) {
+ sc = op->o_callback;
}
}
first = 0;
}
-
op->o_callback = sc;
}
* should just set SLAPI_RESULT_CODE rather than sending a
* result if they wish to change the result.
*/
- if ( op->o_pb != NULL ) {
+ if ( op->o_callback == NULL && op->o_pb != NULL ) {
slapi_int_pblock_set_operation( op->o_pb, op );
slapi_pblock_set( op->o_pb, SLAPI_RESULT_CODE,
(void *)rs->sr_err );
rs->sr_nentries++;
ldap_pvt_thread_mutex_lock( &slap_counters.sc_sent_mutex );
- ldap_pvt_mp_add_ulong( slap_counters.sc_bytes, bytes );
+ ldap_pvt_mp_add_ulong( slap_counters.sc_bytes, (unsigned long)bytes );
ldap_pvt_mp_add_ulong( slap_counters.sc_entries, 1 );
ldap_pvt_mp_add_ulong( slap_counters.sc_pdu, 1 );
ldap_pvt_thread_mutex_unlock( &slap_counters.sc_sent_mutex );
error_return:;
if ( op->o_callback ) {
int first = 1;
- slap_callback *sc = op->o_callback,
- *sc_next = op->o_callback;
+ slap_callback *sc = op->o_callback, *sc_next;
for ( sc_next = op->o_callback; sc_next; op->o_callback = sc_next) {
sc_next = op->o_callback->sc_next;
if ( op->o_callback->sc_cleanup ) {
(void)op->o_callback->sc_cleanup( op, rs );
- if ( first && op->o_callback == NULL ) {
- sc = NULL;
+ if ( first && op->o_callback != sc ) {
+ sc = op->o_callback;
}
}
first = 0;
}
-
op->o_callback = sc;
}
ber_free_buf( ber );
ldap_pvt_thread_mutex_lock( &slap_counters.sc_sent_mutex );
- ldap_pvt_mp_add_ulong( slap_counters.sc_bytes, bytes );
+ 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 );
rel:
if ( op->o_callback ) {
int first = 1;
- slap_callback *sc = op->o_callback,
- *sc_next = op->o_callback;
+ slap_callback *sc = op->o_callback, *sc_next;
for ( sc_next = op->o_callback; sc_next; op->o_callback = sc_next) {
sc_next = op->o_callback->sc_next;
if ( op->o_callback->sc_cleanup ) {
(void)op->o_callback->sc_cleanup( op, rs );
- if ( first && op->o_callback == NULL ) {
- sc = NULL;
+ if ( first && op->o_callback != sc ) {
+ sc = op->o_callback;
}
}
first = 0;
}
-
op->o_callback = sc;
}