]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/cancel.c
allow to programmatically register new response code names
[openldap] / servers / slapd / cancel.c
index 08115f45eda2bdc5b78fd1664db12c8eb2011e28..d11ad6a001d7e859282b0372ea67646652c8d175 100644 (file)
@@ -56,21 +56,21 @@ int cancel_extop( Operation *op, SlapReply *rs )
 
        (void) ber_free( ber, 1 );
 
+       Statslog( LDAP_DEBUG_STATS, "%s CANCEL msg=%d\n",
+               op->o_log_prefix, opid, 0, 0, 0 );
+
        if ( opid < 0 ) {
                rs->sr_text = "message ID invalid";
                return LDAP_PROTOCOL_ERROR;
        }
 
-       Statslog( LDAP_DEBUG_STATS, "%s CANCEL msg=%d\n",
-               op->o_log_prefix, opid, 0, 0, 0 );
-
        ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );
        LDAP_STAILQ_FOREACH( o, &op->o_conn->c_pending_ops, o_next ) {
                if ( o->o_msgid == opid ) {
-                       LDAP_STAILQ_REMOVE( &op->o_conn->c_pending_ops, o, slap_op, o_next );
+                       LDAP_STAILQ_REMOVE( &op->o_conn->c_pending_ops, o, Operation, o_next );
                        LDAP_STAILQ_NEXT(o, o_next) = NULL;
                        op->o_conn->c_n_ops_pending--;
-                       slap_op_free( o );
+                       slap_op_free( o, NULL );
                        ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );
                        return LDAP_SUCCESS;
                }