From b2093e3016027d6b5cf06b3f91f30769bfc099e2 Mon Sep 17 00:00:00 2001 From: cvsadm Date: Fri, 21 Jan 2005 00:44:34 +0000 Subject: Moving NSCP Directory Server from DirectoryBranch to TRUNK, initial drop. (foxworth) --- ldap/servers/plugins/chainingdb/cb_abandon.c | 50 ++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 ldap/servers/plugins/chainingdb/cb_abandon.c (limited to 'ldap/servers/plugins/chainingdb/cb_abandon.c') diff --git a/ldap/servers/plugins/chainingdb/cb_abandon.c b/ldap/servers/plugins/chainingdb/cb_abandon.c new file mode 100644 index 00000000..ca0cfc09 --- /dev/null +++ b/ldap/servers/plugins/chainingdb/cb_abandon.c @@ -0,0 +1,50 @@ +/** BEGIN COPYRIGHT BLOCK + * Copyright 2001 Sun Microsystems, Inc. + * Portions copyright 1999, 2001-2003 Netscape Communications Corporation. + * All rights reserved. + * END COPYRIGHT BLOCK **/ +#include "cb.h" + +/* + * Perform an abandon operation + * + * Returns: + * 0 - success + * <0 - fail + * + */ + +int +chaining_back_abandon ( Slapi_PBlock *pb ) +{ + /* + * Abandon forwarded to the farm server for scoped + * searches only. Done in cb_search.c + */ + return 0; +} + +int cb_check_forward_abandon(cb_backend_instance * cb,Slapi_PBlock * pb, LDAP * ld, int msgid ) { + + int rc; + LDAPControl ** ctrls=NULL; + + if (slapi_op_abandoned( pb )) { + + if ((rc=cb_forward_operation(pb)) != LDAP_SUCCESS ) { + return 0; + } + + if ((rc = cb_update_controls( pb,ld,&ctrls,CB_UPDATE_CONTROLS_ISABANDON )) != LDAP_SUCCESS ) { + if ( NULL != ctrls) + ldap_controls_free(ctrls); + return 0; + } + rc = ldap_abandon_ext(ld, msgid, ctrls, NULL ); + cb_release_op_connection(cb->pool,ld,CB_LDAP_CONN_ERROR(rc)); + if ( NULL != ctrls) + ldap_controls_free(ctrls); + return 1; + } + return 0; +} -- cgit