- *text = "message ID not found";
- ldap_pvt_thread_mutex_unlock( &conn->c_mutex );
- return LDAP_NO_SUCH_OPERATION;
+#ifdef LDAP_SYNC
+ for ( i = 0; i < nbackends; i++ ) {
+ op->o_bd = &backends[i];
+ if( !op->o_bd->be_cancel ) continue;
+
+ ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );
+
+ op->oq_cancel.rs_msgid = opid;
+ if ( op->o_bd->be_cancel( op, rs ) == LDAP_SUCCESS ) {
+ return LDAP_SUCCESS;
+ }
+ ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );
+ }
+#endif
+ ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );
+ rs->sr_text = "message ID not found";
+ return LDAP_NO_SUCH_OPERATION;