-/* $OpenLDAP$ */
/* cancel.c - LDAP cancel extended operation */
-/*
- * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* $OpenLDAP$ */
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2004 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
*/
#include "portable.h"
#include "slap.h"
-#ifdef LDAP_EXOP_X_CANCEL
-
#include <lber_pvt.h>
#include <lutil.h>
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_NEXT(o, o_next) = NULL;
+ op->o_conn->c_n_ops_pending--;
slap_op_free( o );
found = 1;
break;
}
if ( !found ) {
-#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_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;
return rc;
}
-
-#endif /* LDAP_EXOP_X_CANCEL */