]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/abandon.c
minor naming cleanup; improvements to DN mapping layer; major docs update
[openldap] / servers / slapd / abandon.c
index 670e540f4e8aad829aec860b09e530f0b65d222b..6020e8a22881ea518fc9d26339842c9a0dadc0c3 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2004 The OpenLDAP Foundation.
+ * Copyright 1998-2005 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -93,20 +93,27 @@ do_abandon( Operation *op, SlapReply *rs )
 done:
        op->orn_msgid = id;
 
-       if ( frontendDB->be_abandon ) {
-               op->o_bd = frontendDB;
-               frontendDB->be_abandon( op, rs );
-       }
-
-       for ( i = 0; i < nbackends; i++ ) {
-               op->o_bd = &backends[i];
-               if( op->o_bd->be_abandon ) op->o_bd->be_abandon( op, rs );
-       }
+       op->o_bd = frontendDB;
+       rs->sr_err = frontendDB->be_abandon( op, rs );
 
        ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );
 
        Debug( LDAP_DEBUG_TRACE, "do_abandon: op=%ld %sfound\n",
                (long) id, o ? "" : "not ", 0 );
-       return LDAP_SUCCESS;
+       return rs->sr_err;
 }
 
+int
+fe_op_abandon( Operation *op, SlapReply *rs )
+{
+       int i;
+
+       for ( i = 0; i < nbackends; i++ ) {
+               op->o_bd = &backends[i];
+               if ( op->o_bd->be_abandon ) {
+                       (void)op->o_bd->be_abandon( op, rs );
+               }
+       }
+
+       return LDAP_SUCCESS;
+}