]> git.sur5r.net Git - openldap/commitdiff
Delete obsolete syncprovider stuff
authorHoward Chu <hyc@openldap.org>
Fri, 14 Jan 2005 05:49:45 +0000 (05:49 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 14 Jan 2005 05:49:45 +0000 (05:49 +0000)
servers/slapd/back-bdb/Makefile.in
servers/slapd/back-bdb/add.c
servers/slapd/back-bdb/back-bdb.h
servers/slapd/back-bdb/config.c
servers/slapd/back-bdb/ctxcsn.c [deleted file]
servers/slapd/back-bdb/delete.c
servers/slapd/back-bdb/init.c
servers/slapd/back-bdb/modify.c
servers/slapd/back-bdb/modrdn.c
servers/slapd/back-bdb/search.c
servers/slapd/back-hdb/Makefile.in

index a1955be77525acc5e9d97201be2f218401432b77..f439138a523a89bcc42706659835b1ac117fd1eb 100644 (file)
@@ -18,14 +18,14 @@ SRCS = init.c tools.c config.c \
        extended.c referral.c operational.c \
        attr.c index.c key.c dbcache.c filterindex.c \
        dn2entry.c dn2id.c error.c id2entry.c idl.c \
-       nextid.c cache.c trans.c ctxcsn.c
+       nextid.c cache.c trans.c
 
 OBJS = init.lo tools.lo config.lo \
        add.lo bind.lo compare.lo delete.lo modify.lo modrdn.lo search.lo \
        extended.lo referral.lo operational.lo \
        attr.lo index.lo key.lo dbcache.lo filterindex.lo \
        dn2entry.lo dn2id.lo error.lo id2entry.lo idl.lo \
-       nextid.lo cache.lo trans.lo ctxcsn.lo
+       nextid.lo cache.lo trans.lo
 
 LDAP_INCDIR= ../../../include       
 LDAP_LIBDIR= ../../../libraries
index fdeb3288a14da04b47efdc28c18da5bbccf59c4e..3a1f6942f44c8194775383d8c783daf4f6582f55 100644 (file)
@@ -367,19 +367,6 @@ retry:     /* transaction retry */
                goto return_results;
        }
 
-#ifdef BDB_PSEARCH
-       if ( LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-               rc = bdb_csn_commit( op, rs, ltid, ei, &suffix_ei,
-                       &ctxcsn_e, &ctxcsn_added, locker );
-               switch ( rc ) {
-               case BDB_CSN_ABORT :
-                       goto return_results;
-               case BDB_CSN_RETRY :
-                       goto retry;
-               }
-       }
-#endif
-
        /* post-read */
        if( op->o_postread ) {
                if( postread_ctrl == NULL ) {
@@ -421,31 +408,6 @@ retry:     /* transaction retry */
                        suffix_ei = BEI(e);
                }
 
-#ifdef BDB_PSEARCH
-               if ( LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-                       if ( ctxcsn_added ) {
-                               bdb_cache_add( bdb, suffix_ei, ctxcsn_e,
-                                       (struct berval *)&slap_ldapsync_cn_bv, locker );
-                       }
-               }
-
-               if ( rs->sr_err == LDAP_SUCCESS && !op->o_no_psearch ) {
-                       ldap_pvt_thread_rdwr_wlock( &bdb->bi_pslist_rwlock );
-                       assert( BEI(e) );
-                       LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-                               rc = bdb_psearch( op, rs, ps_list, e, LDAP_PSEARCH_BY_ADD );
-                               if ( rc ) {
-                                       Debug( LDAP_DEBUG_TRACE,
-                                               LDAP_XSTRING(bdb_add)
-                                               ": persistent search failed "
-                                               "(%d,%d)\n",
-                                               rc, rs->sr_err, 0 );
-                               }
-                       }
-                       ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-               }
-#endif
-
                if(( rs->sr_err=TXN_COMMIT( ltid, 0 )) != 0 ) {
                        rs->sr_text = "txn_commit failed";
                } else {
index 341d0e9989c60a7d61ecef447a7d62fa2a63f8eb..d788665c3c044442d6eb556d4f986f522b306065 100644 (file)
@@ -23,8 +23,6 @@
 
 LDAP_BEGIN_DECL
 
-#undef BDB_PSEARCH
-
 #define DB_VERSION_FULL ((DB_VERSION_MAJOR << 24) | (DB_VERSION_MINOR << 16) | DB_VERSION_PATCH)
 
 #define BDB_SUBENTRIES 1
@@ -184,11 +182,6 @@ struct bdb_info {
 
        ID                      bi_lastid;
        ldap_pvt_thread_mutex_t bi_lastid_mutex;
-#ifdef BDB_PSEARCH
-       LDAP_LIST_HEAD(pl, slap_op) bi_psearch_list;
-       ldap_pvt_thread_rdwr_t bi_pslist_rwlock;
-       LDAP_LIST_HEAD(se, slap_session_entry) bi_session_list;
-#endif
        int             bi_idl_cache_max_size;
        int             bi_idl_cache_size;
        Avlnode         *bi_idl_tree;
index 04d5651423ddc631ce45d92e32ca88ca9af683e2..ec70bf0095b73b2f95812578dfed5a65fa9112d2 100644 (file)
@@ -194,48 +194,7 @@ bdb_db_config(
                }
                if ( !( slapMode & SLAP_TOOL_MODE ) )
                        bdb->bi_idl_cache_max_size = atoi( argv[1] );
-#ifdef BDB_PSEARCH
-       } else if ( strcasecmp( argv[0], "sessionlog" ) == 0 ) {
-               int se_id = 0, se_size = 0;
-               struct slap_session_entry *sent;
-               if ( argc < 3 ) {
-                       Debug( LDAP_DEBUG_ANY,
-                               "%s: line %d: missing arguments in \"sessionlog <id> <size>\""
-                               " line\n", fname, lineno, 0 );
-                       return( 1 );
-               }
 
-               se_id = atoi( argv[1] );
-
-               if ( se_id < 0 || se_id > 999 ) {
-                       Debug( LDAP_DEBUG_ANY,
-                               "%s: line %d: session log id %d is out of range [0..999]\n",
-                               fname, lineno , se_id );
-                       return( 1 );
-               }
-
-               se_size = atoi( argv[2] );
-               if ( se_size < 0 ) {
-                       Debug( LDAP_DEBUG_ANY,
-                               "%s: line %d: session log size %d is negative\n",
-                               fname, lineno , se_size );
-                       return( 1 );
-               }
-
-               LDAP_LIST_FOREACH( sent, &bdb->bi_session_list, se_link ) {
-                       if ( sent->se_id == se_id ) {
-                               Debug( LDAP_DEBUG_ANY,
-                                       "%s: line %d: session %d already exists\n",
-                                       fname, lineno , se_id );
-                               return( 1 );
-                       }
-               }
-               sent = (struct slap_session_entry *) ch_calloc( 1,
-                                               sizeof( struct slap_session_entry ));
-               sent->se_id = se_id;
-               sent->se_size = se_size;
-               LDAP_LIST_INSERT_HEAD( &bdb->bi_session_list, sent, se_link );
-#endif /* BDB_PSEARCH */
        /* anything else */
        } else {
                return SLAP_CONF_UNKNOWN;
diff --git a/servers/slapd/back-bdb/ctxcsn.c b/servers/slapd/back-bdb/ctxcsn.c
deleted file mode 100644 (file)
index 5256623..0000000
+++ /dev/null
@@ -1,443 +0,0 @@
-/* ctxcsn.c -- back-bdb Context CSN Management Routines */
-/* $OpenLDAP$ */
-/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 2003-2005 The OpenLDAP Foundation.
- * Portions Copyright 2003 IBM Corporation.
- * 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 <stdio.h>
-
-#include <ac/string.h>
-#include <ac/time.h>
-
-#include "lutil.h"
-#include "back-bdb.h"
-
-#ifdef BDB_PSEARCH
-int
-bdb_csn_commit(
-       Operation *op,
-       SlapReply *rs,
-       DB_TXN *tid,
-       EntryInfo *ei,
-       EntryInfo **suffix_ei,
-       Entry **ctxcsn_e,
-       int *ctxcsn_added,
-       u_int32_t locker
-)
-{
-       struct bdb_info *bdb = (struct bdb_info *) op->o_bd->be_private;
-       EntryInfo               *ctxcsn_ei = NULL;
-       DB_LOCK                 ctxcsn_lock;
-       struct berval   max_committed_csn;
-       DB_LOCK                 suffix_lock;
-       int                             rc, ret;
-       ID                              ctxcsn_id;
-       Entry                   *e;
-       char                    textbuf[SLAP_TEXT_BUFLEN];
-       size_t                  textlen = sizeof textbuf;
-       EntryInfo               *eip = NULL;
-
-       assert( !BER_BVISNULL( &op->o_bd->be_context_csn ) );
-
-       if ( ei ) {
-               e = ei->bei_e;
-       }
-
-       rc =  bdb_dn2entry( op, tid, &op->o_bd->be_context_csn, &ctxcsn_ei,
-                       1, locker, &ctxcsn_lock );
-       switch( rc ) {
-       case 0:
-       case DB_NOTFOUND:
-               break;
-       case DB_LOCK_DEADLOCK:
-       case DB_LOCK_NOTGRANTED:
-               return BDB_CSN_RETRY;
-       default:
-               return BDB_CSN_ABORT;
-       }
-       
-       *ctxcsn_e = ctxcsn_ei->bei_e;
-
-       slap_get_commit_csn( op, &max_committed_csn );
-
-       if ( max_committed_csn.bv_val == NULL ) {
-               return BDB_CSN_COMMIT;
-       }
-
-       *ctxcsn_added = 0;
-
-       switch( rc ) {
-       case 0:
-               if ( !*ctxcsn_e ) {
-                       rs->sr_err = LDAP_OTHER;
-                       rs->sr_text = "context csn not present";
-                       op->o_tmpfree( max_committed_csn.bv_val, op->o_tmpmemctx );
-                       return BDB_CSN_ABORT;
-               } else {
-                       Modifications mod;
-                       struct berval modvals[2];
-                       Entry dummy;
-
-                       modvals[0] = max_committed_csn;
-                       modvals[1].bv_val = NULL;
-                       modvals[1].bv_len = 0;
-
-                       mod.sml_op = LDAP_MOD_REPLACE;
-                       mod.sml_values = modvals;
-                       mod.sml_nvalues = NULL;
-                       mod.sml_desc = slap_schema.si_ad_contextCSN;
-                       mod.sml_type = mod.sml_desc->ad_cname;
-                       mod.sml_next = NULL;
-
-                       dummy = **ctxcsn_e;
-                       ret = bdb_modify_internal( op, tid, &mod, &dummy,
-                                                                       &rs->sr_text, textbuf, textlen );                                                      
-                       op->o_tmpfree( max_committed_csn.bv_val, op->o_tmpmemctx );
-                       if ( ret != LDAP_SUCCESS ) {
-                               Debug( LDAP_DEBUG_TRACE,
-                                               "bdb_csn_commit: modify failed (%d)\n", rs->sr_err, 0, 0 );
-                               if ( dummy.e_attrs != e->e_attrs ) attrs_free( dummy.e_attrs );
-                               switch( ret ) {
-                               case DB_LOCK_DEADLOCK:
-                               case DB_LOCK_NOTGRANTED:
-                                       goto rewind;
-                               default:
-                                       return BDB_CSN_ABORT;
-                               }
-                       }
-
-                       ret = bdb_id2entry_update( op->o_bd, tid, &dummy );
-                       switch ( ret ) {
-                       case 0 :
-                               break;
-                       case DB_LOCK_DEADLOCK :
-                       case DB_LOCK_NOTGRANTED :
-                               if ( dummy.e_attrs != e->e_attrs ) attrs_free( dummy.e_attrs );
-                               goto rewind;
-                       default :
-                               if ( dummy.e_attrs != e->e_attrs ) attrs_free( dummy.e_attrs );
-                               rs->sr_err = ret;
-                               rs->sr_text = "context csn update failed";
-                               return BDB_CSN_ABORT;
-                       }
-                       ret = bdb_cache_modify( *ctxcsn_e, dummy.e_attrs, bdb->bi_dbenv, locker, &ctxcsn_lock );
-                       if ( ret != LDAP_SUCCESS ) {
-                               if ( dummy.e_attrs != e->e_attrs ) attrs_free( dummy.e_attrs );
-                               switch( ret ) {
-                               case DB_LOCK_DEADLOCK:
-                               case DB_LOCK_NOTGRANTED:
-                                       goto rewind;
-                               }
-                       }
-               }
-               break;
-       case DB_NOTFOUND:
-               if ( op->o_tag == LDAP_REQ_ADD &&
-                                               be_issuffix( op->o_bd, &op->oq_add.rs_e->e_nname )) {
-                       *suffix_ei = NULL;
-                       eip = (EntryInfo *) ch_calloc( 1, sizeof( EntryInfo ));
-                       eip->bei_id = op->oq_add.rs_e->e_id;
-               } else {
-                       eip = *suffix_ei = ctxcsn_ei;
-               }
-
-               /* This serializes add. But this case is very rare : only once. */
-               rs->sr_err = bdb_next_id( op->o_bd, tid, &ctxcsn_id );
-               if ( rs->sr_err != 0 ) {
-                       Debug( LDAP_DEBUG_TRACE,
-                               "bdb_csn_commit: next_id failed (%d)\n",
-                               rs->sr_err, 0, 0 );
-                       rs->sr_err = LDAP_OTHER;
-                       rs->sr_text = "internal error";
-                       return BDB_CSN_ABORT;
-               }
-
-               *ctxcsn_e = slap_create_context_csn_entry( op->o_bd, &max_committed_csn );
-               op->o_tmpfree( max_committed_csn.bv_val, op->o_tmpmemctx );
-               (*ctxcsn_e)->e_id = ctxcsn_id;
-               *ctxcsn_added = 1;
-
-               ret = bdb_dn2id_add( op, tid, eip, *ctxcsn_e );
-               switch ( ret ) {
-               case 0 :
-                       break;
-               case DB_LOCK_DEADLOCK :
-               case DB_LOCK_NOTGRANTED :
-                       goto rewind;
-               case DB_KEYEXIST :
-                       rs->sr_err = LDAP_OTHER;
-                       rs->sr_text = "context csn exists before context prefix does";
-                       return BDB_CSN_ABORT;
-               default :
-                       rs->sr_err = LDAP_OTHER;
-                       rs->sr_text = "context csn store failed";
-                       return BDB_CSN_ABORT;
-               }
-
-               if ( *suffix_ei == NULL ) {
-                       ch_free( eip );
-               }
-
-               ret = bdb_id2entry_add( op->o_bd, tid, *ctxcsn_e );
-               switch ( ret ) {
-               case 0 :
-                       break;
-               case DB_LOCK_DEADLOCK :
-               case DB_LOCK_NOTGRANTED :
-                       goto rewind;
-               default :
-                       rs->sr_err = LDAP_OTHER;
-                       rs->sr_text = "context csn store failed";
-                       return BDB_CSN_ABORT;
-               }
-               ret = bdb_index_entry_add( op, tid, *ctxcsn_e );
-               switch ( ret ) {
-               case 0 :
-                       break;
-               case DB_LOCK_DEADLOCK :
-               case DB_LOCK_NOTGRANTED :
-                       goto rewind;
-               default :
-                       rs->sr_err = LDAP_OTHER;
-                       rs->sr_text = "context csn indexing failed";
-                       return BDB_CSN_ABORT;
-               }
-               break;
-       case DB_LOCK_DEADLOCK:
-       case DB_LOCK_NOTGRANTED:
-               Debug( LDAP_DEBUG_TRACE,
-                               "bdb_csn_commit : bdb_dn2entry retry\n", 0, 0, 0 );
-               goto rewind;
-       case LDAP_BUSY:
-               rs->sr_err = rc;
-               rs->sr_text = "ldap server busy";
-               return BDB_CSN_ABORT;
-       default:
-               rs->sr_err = LDAP_OTHER;
-               rs->sr_text = "internal error";
-               return BDB_CSN_ABORT;
-       }
-
-       return BDB_CSN_COMMIT;
-
-rewind :
-       slap_rewind_commit_csn( op );
-       return BDB_CSN_RETRY;
-}
-
-int
-bdb_get_commit_csn(
-       Operation       *op,
-       SlapReply       *rs,
-       struct berval   **search_context_csn,
-       u_int32_t       locker,
-       DB_LOCK         *ctxcsn_lock
-)
-{
-       struct bdb_info *bdb = (struct bdb_info *) op->o_bd->be_private;
-       struct berval csn = BER_BVNULL;
-       EntryInfo       *ctxcsn_ei = NULL;
-       EntryInfo       *suffix_ei = NULL;
-       Entry           *ctxcsn_e = NULL;
-       DB_TXN          *ltid = NULL;
-       Attribute       *csn_a;
-       char            gid[DB_XIDDATASIZE];
-       char            csnbuf[ LDAP_LUTIL_CSNSTR_BUFSIZE ];
-       int                     num_retries = 0;
-       int                     ctxcsn_added = 0;
-       int                     rc;
-       struct sync_cookie syncCookie = { NULL, -1, NULL};
-       syncinfo_t      *si;
-       u_int32_t       ctxcsn_locker = 0;
-
-       if ( (op->o_sync_mode & SLAP_SYNC_REFRESH) &&
-                !LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-               char substr[67];
-               struct berval ctxcsn_ndn = BER_BVNULL;
-               struct berval bv;
-
-               LDAP_STAILQ_FOREACH( si, &op->o_bd->be_syncinfo, si_next ) {
-                       sprintf( substr, "cn=syncrepl%ld", si->si_rid );
-                       ber_str2bv( substr, 0, 0, &bv );
-                       build_new_dn( &ctxcsn_ndn, &op->o_bd->be_nsuffix[0], &bv, op->o_tmpmemctx );
-
-consumer_ctxcsn_retry :
-                       rs->sr_err = bdb_dn2entry( op, NULL, &ctxcsn_ndn, &ctxcsn_ei,
-                                                                               0, locker, ctxcsn_lock );
-                       switch(rs->sr_err) {
-                       case DB_LOCK_DEADLOCK:
-                       case DB_LOCK_NOTGRANTED:
-                               goto consumer_ctxcsn_retry;
-                       case 0:
-                               op->o_tmpfree( ctxcsn_ndn.bv_val, op->o_tmpmemctx );
-                               ctxcsn_ndn.bv_val = NULL;
-                               if ( ctxcsn_ei ) {
-                                       ctxcsn_e = ctxcsn_ei->bei_e;
-                               }
-                               break;
-                       case DB_NOTFOUND:
-                       default:
-                               rs->sr_err = LDAP_OTHER;
-                       case LDAP_BUSY:
-                               op->o_tmpfree( ctxcsn_ndn.bv_val, op->o_tmpmemctx );
-                               ctxcsn_ndn.bv_val = NULL;
-                               goto done;
-                       }
-
-                       if ( ctxcsn_e ) {
-                               csn_a = attr_find( ctxcsn_e->e_attrs,
-                                                       slap_schema.si_ad_syncreplCookie );
-                               if ( csn_a ) {
-                                       struct berval cookie;
-                                       const char *text;
-                                       int match = -1;
-                                       ber_dupbv( &cookie, &csn_a->a_vals[0] );
-                                       ber_bvarray_add( &syncCookie.octet_str, &cookie );
-                                       slap_parse_sync_cookie( &syncCookie );
-                                       if ( *search_context_csn &&
-                                               (*search_context_csn)->bv_val != NULL )
-                                       {
-                                               value_match( &match, slap_schema.si_ad_entryCSN,
-                                                       slap_schema.si_ad_entryCSN->ad_type->sat_ordering,
-                                                       SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX,
-                                                       syncCookie.ctxcsn, *search_context_csn, &text );
-                                       }
-                                       if ( match < 0 ) {
-                                               /* set search_context_csn to the
-                                                  smallest syncrepl cookie value */
-                                               if ( *search_context_csn ) {
-                                                       ch_free( (*search_context_csn)->bv_val );
-                                                       ch_free( *search_context_csn );
-                                               }
-                                               *search_context_csn = ber_dupbv( NULL,
-                                                       syncCookie.ctxcsn );
-                                       }
-                                       slap_sync_cookie_free( &syncCookie, 0 );
-                               } else {
-                                       *search_context_csn = NULL;
-                               } 
-                       } else {
-                               *search_context_csn = NULL;
-                       }
-               }
-       } else if ( (op->o_sync_mode & SLAP_SYNC_REFRESH) &&
-                LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-
-provider_ctxcsn_retry :
-               rs->sr_err = bdb_dn2entry( op, NULL, &op->o_bd->be_context_csn, &ctxcsn_ei,
-                                                                       0, locker, ctxcsn_lock );
-               switch(rs->sr_err) {
-               case 0:
-                       if ( ctxcsn_ei ) {
-                               ctxcsn_e = ctxcsn_ei->bei_e;
-                       }
-                       break;
-               case LDAP_BUSY:
-                       goto done;
-               case DB_LOCK_DEADLOCK:
-               case DB_LOCK_NOTGRANTED:
-                       goto provider_ctxcsn_retry;
-               case DB_NOTFOUND:
-                       snprintf( gid, sizeof( gid ), "%s-%08lx-%08lx",
-                               bdb_uuid.bv_val, (long) op->o_connid, (long) op->o_opid );
-
-                       slap_get_csn( op, csnbuf, sizeof(csnbuf), &csn, 1 );
-
-                       if ( 0 ) {
-txn_retry:
-                               rs->sr_err = TXN_ABORT( ltid );
-                               ltid = NULL;
-                               if ( rs->sr_err != 0 ) {
-                                       rs->sr_err = LDAP_OTHER;
-                                       goto done;
-                               }
-                               ldap_pvt_thread_yield();
-                               bdb_trans_backoff( ++num_retries );
-                       }
-                       rs->sr_err = TXN_BEGIN( bdb->bi_dbenv, NULL,
-                                                               &ltid, bdb->bi_db_opflags );
-                       if ( rs->sr_err != 0 ) {
-                               rs->sr_err = LDAP_OTHER;
-                               goto done;
-                       }
-
-                       ctxcsn_locker = TXN_ID ( ltid );
-
-                       rs->sr_err = bdb_csn_commit( op, rs, ltid, NULL,
-                                               &suffix_ei, &ctxcsn_e,
-                                               &ctxcsn_added, ctxcsn_locker );
-                       switch( rs->sr_err ) {
-                       case BDB_CSN_ABORT:
-                               rs->sr_err = LDAP_OTHER;
-                               goto done;      
-                       case BDB_CSN_RETRY:
-                               goto txn_retry;
-                       }
-
-                       rs->sr_err = TXN_PREPARE( ltid, gid );
-                       if ( rs->sr_err != 0 ) {
-                               rs->sr_err = LDAP_OTHER;
-                               goto done;
-                       }
-
-                       bdb_cache_add( bdb, suffix_ei, ctxcsn_e,
-                                       (struct berval *)&slap_ldapsync_cn_bv, ctxcsn_locker );
-
-                       rs->sr_err = TXN_COMMIT( ltid, 0 );
-                       if ( rs->sr_err != 0 ) {
-                               rs->sr_err = LDAP_OTHER;
-                               goto done;
-                       }
-
-                       rs->sr_err = bdb_dn2entry( op, NULL,
-                                               &op->o_bd->be_context_csn,
-                                               &ctxcsn_ei, 0, ctxcsn_locker,
-                                               ctxcsn_lock );
-
-                       if ( ctxcsn_ei ) {
-                               ctxcsn_e = ctxcsn_ei->bei_e;
-                       }
-                       break;
-
-               default:
-                       rs->sr_err = LDAP_OTHER;
-                       goto done;
-               }
-
-               if ( ctxcsn_e ) {
-                       csn_a = attr_find( ctxcsn_e->e_attrs,
-                                               slap_schema.si_ad_contextCSN );
-                       if ( csn_a ) {
-                               *search_context_csn = ber_dupbv( NULL, &csn_a->a_vals[0] );
-                       } else {
-                               *search_context_csn = NULL;
-                       }
-               } else {
-                       *search_context_csn = NULL;
-               }
-       }
-
-       ltid = NULL;
-       rs->sr_err = LDAP_SUCCESS;
-
-done:
-    if( ltid != NULL ) {
-        TXN_ABORT( ltid );
-    }
-
-       return rs->sr_err;
-}
-#endif
index 8937180724a4c0bced890e71f660a30f504dcb6c..7eacf1fbc4790d45f9799240d9a3707da1dadc4d 100644 (file)
@@ -377,22 +377,6 @@ retry:     /* transaction retry */
                goto return_results;
        }
 
-#ifdef BDB_PSEARCH
-       ldap_pvt_thread_rdwr_wlock( &bdb->bi_pslist_rwlock );
-       LDAP_LIST_FOREACH( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-               rc = bdb_psearch( op, rs, ps_list, e, LDAP_PSEARCH_BY_PREDELETE );
-               if ( rc == LDAP_BUSY && op->o_ps_send_wait ) {
-                       ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-                       goto retry;
-               } else if ( rc ) {
-                       Debug( LDAP_DEBUG_TRACE,
-                               LDAP_XSTRING(bdb_delete) ": persistent search "
-                               "failed (%d,%d)\n", rc, rs->sr_err, 0 );
-               }
-       }
-       ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-#endif
-
        /* delete from dn2id */
        rs->sr_err = bdb_dn2id_delete( op, lt2, eip, e );
        if ( rs->sr_err != 0 ) {
@@ -482,21 +466,6 @@ retry:     /* transaction retry */
        ldap_pvt_thread_mutex_unlock( &bdb->bi_lastid_mutex );
 #endif
 
-#ifdef BDB_PSEARCH
-       if ( !dn_match( &ctxcsn_ndn, &op->o_req_ndn ) &&
-                !be_issuffix( op->o_bd, &op->o_req_ndn ) &&
-                       LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-               rc = bdb_csn_commit( op, rs, ltid, ei, &suffix_ei,
-                       &ctxcsn_e, &ctxcsn_added, locker );
-               switch ( rc ) {
-               case BDB_CSN_ABORT :
-                       goto return_results;
-               case BDB_CSN_RETRY :
-                       goto retry;
-               }
-       }
-#endif
-
        if( op->o_noop ) {
                if ( ( rs->sr_err = TXN_ABORT( ltid ) ) != 0 ) {
                        rs->sr_text = "txn_abort (no-op) failed";
@@ -513,43 +482,6 @@ retry:     /* transaction retry */
                        goto retry;
                }
 
-#ifdef BDB_PSEARCH
-               if ( LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-                       if ( ctxcsn_added ) {
-                               bdb_cache_add( bdb, suffix_ei,
-                                       ctxcsn_e, (struct berval *)&slap_ldapsync_cn_bv, locker );
-                       }
-               }
-
-               if ( rs->sr_err == LDAP_SUCCESS && !op->o_no_psearch ) {
-                       Attribute *a;
-                       a = attr_find( e->e_attrs, slap_schema.si_ad_entryCSN );
-                       if ( a ) {
-                               if( (void *) e->e_attrs != (void *) (e+1)) {
-                                       attr_delete( &e->e_attrs, slap_schema.si_ad_entryCSN );
-                                       attr_merge_normalize_one( e, slap_schema.si_ad_entryCSN,
-                                       &op->o_sync_csn, NULL );
-                               } else {
-                                       a->a_vals[0] = op->o_sync_csn;
-                               }
-                       } else {
-                               /* Hm, the entryCSN ought to exist. ??? */
-                       }
-                       ldap_pvt_thread_rdwr_wlock( &bdb->bi_pslist_rwlock );
-                       LDAP_LIST_FOREACH( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-                               rc = bdb_psearch( op, rs, ps_list, e, LDAP_PSEARCH_BY_DELETE );
-                               if ( rc ) {
-                                       Debug( LDAP_DEBUG_TRACE,
-                                               LDAP_XSTRING(bdb_delete)
-                                               ": persistent search failed "
-                                               "(%d,%d)\n",
-                                               rc, rs->sr_err, 0 );
-                               }
-                       }
-                       ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-               }
-#endif
-
                rs->sr_err = TXN_COMMIT( ltid, 0 );
        }
        ltid = NULL;
index 5e92a5544ab15a42494cab4c106767ede3086b1a..188464e42affe255161a26b5f555bf5a97b38b3f 100644 (file)
@@ -85,11 +85,6 @@ bdb_db_init( BackendDB *be )
        bdb->bi_search_stack_depth = DEFAULT_SEARCH_STACK_DEPTH;
        bdb->bi_search_stack = NULL;
 
-#ifdef BDB_PSEARCH
-       LDAP_LIST_INIT (&bdb->bi_psearch_list);
-       ldap_pvt_thread_rdwr_init ( &bdb->bi_pslist_rwlock );
-#endif
-
        ldap_pvt_thread_mutex_init( &bdb->bi_database_mutex );
        ldap_pvt_thread_mutex_init( &bdb->bi_lastid_mutex );
        ldap_pvt_thread_mutex_init( &bdb->bi_cache.lru_mutex );
@@ -468,68 +463,6 @@ bdb_db_destroy( BackendDB *be )
                ldap_pvt_thread_mutex_destroy( &bdb->bi_idl_tree_lrulock );
        }
 
-#ifdef BDB_PSEARCH
-       ldap_pvt_thread_rdwr_destroy ( &bdb->bi_pslist_rwlock );
-       ps = LDAP_LIST_FIRST( &bdb->bi_psearch_list );
-
-       if ( ps ) {
-               psn = LDAP_LIST_NEXT( ps, o_ps_link );
-
-               saved_tmpmemctx = ps->o_tmpmemctx;
-
-               if (!BER_BVISNULL(&ps->o_req_dn)) {
-                       slap_sl_free( ps->o_req_dn.bv_val, ps->o_tmpmemctx );
-               }
-               if (!BER_BVISNULL(&ps->o_req_ndn)) {
-                       slap_sl_free( ps->o_req_ndn.bv_val, ps->o_tmpmemctx );
-               }
-               if (!BER_BVISNULL(&ps->ors_filterstr)) {
-                       slap_sl_free(ps->ors_filterstr.bv_val, ps->o_tmpmemctx);
-               }
-               if (ps->ors_filter != NULL) {
-                       filter_free_x(ps, ps->ors_filter);
-               }
-               if ( ps->ors_attrs != NULL) {
-                       ps->o_tmpfree(ps->ors_attrs, ps->o_tmpmemctx);
-               }
-
-               slap_op_free( ps );
-
-               if ( saved_tmpmemctx ) {
-                       slap_sl_mem_destroy( NULL, saved_tmpmemctx );
-               }
-       }
-
-       while ( psn ) {
-               ps = psn;
-               psn = LDAP_LIST_NEXT( ps, o_ps_link );
-
-               saved_tmpmemctx = ps->o_tmpmemctx;
-
-               if (!BER_BVISNULL(&ps->o_req_dn)) {
-                       slap_sl_free( ps->o_req_dn.bv_val, ps->o_tmpmemctx );
-               }
-               if (!BER_BVISNULL(&ps->o_req_ndn)) {
-                       slap_sl_free( ps->o_req_ndn.bv_val, ps->o_tmpmemctx );
-               }
-               if (!BER_BVISNULL(&ps->ors_filterstr)) {
-                       slap_sl_free(ps->ors_filterstr.bv_val, ps->o_tmpmemctx);
-               }
-               if (ps->ors_filter != NULL) {
-                       filter_free_x(ps, ps->ors_filter);
-               }
-               if ( ps->ors_attrs != NULL) {
-                       ps->o_tmpfree(ps->ors_attrs, ps->o_tmpmemctx);
-               }
-
-               slap_op_free( ps );
-
-               if ( saved_tmpmemctx ) {
-                       slap_sl_mem_destroy( NULL, saved_tmpmemctx );
-               }
-       }
-#endif
-
        ch_free( bdb );
        be->be_private = NULL;
 
index 4ad218ac1412be9ff69f8f161d1124184258737f..9bdf51fde6298ade1ed3ede207a0e417025e7b18 100644 (file)
@@ -307,16 +307,6 @@ retry:     /* transaction retry */
                Debug(LDAP_DEBUG_TRACE,
                        LDAP_XSTRING(bdb_modify) ": retrying...\n", 0, 0, 0);
 
-#ifdef BDB_PSEARCH
-               pm_list = LDAP_LIST_FIRST(&op->o_pm_list);
-               while ( pm_list != NULL ) {
-                       LDAP_LIST_REMOVE ( pm_list, ps_link );
-                       pm_prev = pm_list;
-                       pm_list = LDAP_LIST_NEXT ( pm_list, ps_link );
-                       ch_free( pm_prev );
-               }
-#endif
-
                rs->sr_err = TXN_ABORT( ltid );
                ltid = NULL;
                op->o_private = NULL;
@@ -447,25 +437,6 @@ retry:     /* transaction retry */
                goto return_results;
        }
 
-#ifdef BDB_PSEARCH
-       if ( rs->sr_err == LDAP_SUCCESS && !op->o_noop && !op->o_no_psearch ) {
-               ldap_pvt_thread_rdwr_wlock( &bdb->bi_pslist_rwlock );
-               LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-                       rc = bdb_psearch(op, rs, ps_list, e, LDAP_PSEARCH_BY_PREMODIFY );
-                       if ( rc == LDAP_BUSY && op->o_ps_send_wait ) {
-                               ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-                               goto retry;
-                       } else if ( rc ) {
-                               Debug( LDAP_DEBUG_TRACE,
-                                       LDAP_XSTRING(bdb_modify)
-                                       ": persistent search failed (%d,%d)\n",
-                                       rc, rs->sr_err, 0 );
-                       }
-               }
-               ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-       }
-#endif
-
        if( op->o_preread ) {
                if( preread_ctrl == NULL ) {
                        preread_ctrl = &ctrls[num_ctrls++];
@@ -537,19 +508,6 @@ retry:     /* transaction retry */
                goto return_results;
        }
 
-#ifdef BDB_PSEARCH
-       if ( LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-               rc = bdb_csn_commit( op, rs, ltid, ei, &suffix_ei,
-                       &ctxcsn_e, &ctxcsn_added, locker );
-               switch ( rc ) {
-               case BDB_CSN_ABORT :
-                       goto return_results;
-               case BDB_CSN_RETRY :
-                       goto retry;
-               }
-       }
-#endif
-
        if( op->o_postread ) {
                if( postread_ctrl == NULL ) {
                        postread_ctrl = &ctrls[num_ctrls++];
@@ -583,47 +541,6 @@ retry:     /* transaction retry */
                }
                dummy.e_attrs = NULL;
 
-#ifdef BDB_PSEARCH
-               if ( LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-                       if ( ctxcsn_added ) {
-                               bdb_cache_add( bdb, suffix_ei, ctxcsn_e,
-                                       (struct berval *)&slap_ldapsync_cn_bv, locker );
-                       }
-               }
-
-               if ( rs->sr_err == LDAP_SUCCESS ) {
-                       /* Loop through in-scope entries for each psearch spec */
-                       ldap_pvt_thread_rdwr_wlock( &bdb->bi_pslist_rwlock );
-                       LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-                               rc = bdb_psearch( op, rs, ps_list, e, LDAP_PSEARCH_BY_MODIFY );
-                               if ( rc ) {
-                                       Debug( LDAP_DEBUG_TRACE,
-                                               LDAP_XSTRING(bdb_modify)
-                                               ": persistent search failed "
-                                               "(%d,%d)\n",
-                                               rc, rs->sr_err, 0 );
-                               }
-                       }
-                       pm_list = LDAP_LIST_FIRST(&op->o_pm_list);
-                       while ( pm_list != NULL ) {
-                               rc = bdb_psearch(op, rs, pm_list->ps_op,
-                                                       e, LDAP_PSEARCH_BY_SCOPEOUT);
-                               if ( rc ) {
-                                       Debug( LDAP_DEBUG_TRACE,
-                                               LDAP_XSTRING(bdb_modify)
-                                               ": persistent search failed "
-                                               "(%d,%d)\n",
-                                               rc, rs->sr_err, 0 );
-                               }
-                               LDAP_LIST_REMOVE ( pm_list, ps_link );
-                               pm_prev = pm_list;
-                               pm_list = LDAP_LIST_NEXT ( pm_list, ps_link );
-                               ch_free( pm_prev );
-                       }
-                       ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-               }
-#endif
-
                rs->sr_err = TXN_COMMIT( ltid, 0 );
        }
        ltid = NULL;
@@ -663,15 +580,6 @@ return_results:
 
 done:
        if( ltid != NULL ) {
-#ifdef BDB_PSEARCH
-               pm_list = LDAP_LIST_FIRST(&op->o_pm_list);
-               while ( pm_list != NULL ) {
-                       LDAP_LIST_REMOVE ( pm_list, ps_link );
-                       pm_prev = pm_list;
-                       pm_list = LDAP_LIST_NEXT ( pm_list, ps_link );
-                       ch_free( pm_prev );
-               }
-#endif
                TXN_ABORT( ltid );
                op->o_private = NULL;
        }
index b7ebd0bbff0fd81012ce39ab6b2bcef5db29cac8..51e7399410d016ebbb9144fc550c2afafe37da17 100644 (file)
@@ -100,15 +100,6 @@ retry:     /* transaction retry */
                }
                Debug( LDAP_DEBUG_TRACE, "==>" LDAP_XSTRING(bdb_modrdn)
                                ": retrying...\n", 0, 0, 0 );
-#ifdef BDB_PSEARCH
-               pm_list = LDAP_LIST_FIRST(&op->o_pm_list);
-               while ( pm_list != NULL ) {
-                       LDAP_LIST_REMOVE ( pm_list, ps_link );
-                       pm_prev = pm_list;
-                       pm_list = LDAP_LIST_NEXT ( pm_list, ps_link );
-                       ch_free( pm_prev );
-               }
-#endif
 
                rs->sr_err = TXN_ABORT( ltid );
                ltid = NULL;
@@ -720,23 +711,6 @@ retry:     /* transaction retry */
 
        dummy.e_attrs = e->e_attrs;
 
-#ifdef BDB_PSEARCH
-       if ( rs->sr_err == LDAP_SUCCESS && !op->o_noop && !op->o_no_psearch ) {
-               ldap_pvt_thread_rdwr_wlock( &bdb->bi_pslist_rwlock );
-               LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-                       rc = bdb_psearch( op, rs, ps_list, &dummy, LDAP_PSEARCH_BY_PREMODIFY );
-                       if ( rc ) {
-                               Debug( LDAP_DEBUG_TRACE,
-                                       LDAP_XSTRING(bdb_modrdn)
-                                       ": persistent search failed (%d,%d)\n",
-                                       rc, rs->sr_err, 0 );
-                       }
-               }
-               ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-       }
-#endif
-
-
        /* modify entry */
        rs->sr_err = bdb_modify_internal( op, lt2, &mod[0], &dummy,
                &rs->sr_text, textbuf, textlen );
@@ -805,19 +779,6 @@ retry:     /* transaction retry */
                goto return_results;
        }
 
-#ifdef BDB_PSEARCH
-       if ( LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-               rc = bdb_csn_commit( op, rs, ltid, ei, &suffix_ei,
-                       &ctxcsn_e, &ctxcsn_added, locker );
-               switch ( rc ) {
-               case BDB_CSN_ABORT :
-                       goto return_results;
-               case BDB_CSN_RETRY :
-                       goto retry;
-               }
-       }
-#endif
-
        if( op->o_postread ) {
                if( postread_ctrl == NULL ) {
                        postread_ctrl = &ctrls[num_ctrls++];
@@ -853,47 +814,6 @@ retry:     /* transaction retry */
                new_dn.bv_val = NULL;
                new_ndn.bv_val = NULL;
 
-#ifdef BDB_PSEARCH
-               if ( LDAP_STAILQ_EMPTY( &op->o_bd->be_syncinfo )) {
-                       if ( ctxcsn_added ) {
-                               bdb_cache_add( bdb, suffix_ei, ctxcsn_e,
-                                       (struct berval *)&slap_ldapsync_cn_bv, locker );
-                       }
-               }
-
-               if ( rs->sr_err == LDAP_SUCCESS ) {
-                       /* Loop through in-scope entries for each psearch spec */
-                       ldap_pvt_thread_rdwr_wlock( &bdb->bi_pslist_rwlock );
-                       LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-                               rc = bdb_psearch( op, rs, ps_list, e, LDAP_PSEARCH_BY_MODIFY );
-                               if ( rc ) {
-                                       Debug( LDAP_DEBUG_TRACE,
-                                               LDAP_XSTRING(bdb_modrdn)
-                                               ": persistent search failed "
-                                               "(%d,%d)\n",
-                                               rc, rs->sr_err, 0 );
-                       }
-                       }
-                       pm_list = LDAP_LIST_FIRST(&op->o_pm_list);
-                       while ( pm_list != NULL ) {
-                               rc = bdb_psearch(op, rs, pm_list->ps_op,
-                                                       e, LDAP_PSEARCH_BY_SCOPEOUT);
-                               if ( rc ) {
-                                       Debug( LDAP_DEBUG_TRACE,
-                                               LDAP_XSTRING(bdb_modrdn)
-                                               ": persistent search failed "
-                                               "(%d,%d)\n",
-                                               rc, rs->sr_err, 0 );
-                               }
-                               pm_prev = pm_list;
-                               LDAP_LIST_REMOVE ( pm_list, ps_link );
-                               pm_list = LDAP_LIST_NEXT ( pm_list, ps_link );
-                               ch_free( pm_prev );
-                       }
-                       ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-               }
-#endif
-
                if(( rs->sr_err=TXN_COMMIT( ltid, 0 )) != 0 ) {
                        rs->sr_text = "txn_commit failed";
                } else {
@@ -980,15 +900,6 @@ done:
        }
 
        if( ltid != NULL ) {
-#ifdef BDB_PSEARCH
-               pm_list = LDAP_LIST_FIRST(&op->o_pm_list);
-               while ( pm_list != NULL ) {
-                       LDAP_LIST_REMOVE ( pm_list, ps_link );
-                       pm_prev = pm_list;
-                       pm_list = LDAP_LIST_NEXT ( pm_list, ps_link );
-                       ch_free( pm_prev );
-               }
-#endif
                TXN_ABORT( ltid );
                op->o_private = NULL;
        }
index 59f9646ed05cb6e3233badb32c997db4448519ab..3f090595db0e63b4c49adb0a1c87923ef9bcbacb 100644 (file)
@@ -302,307 +302,10 @@ sameido:
        return rs->sr_err;
 }
 
-#ifdef BDB_PSEARCH
-
-#define is_sync_protocol(op)   \
-       ((op)->o_sync_mode & SLAP_SYNC_REFRESH_AND_PERSIST)
-
-#define IS_BDB_REPLACE(type) (( type == LDAP_PSEARCH_BY_DELETE ) || \
-       ( type == LDAP_PSEARCH_BY_SCOPEOUT ))
-#define IS_PSEARCH (op != sop)
-#define IS_POST_SEARCH ( op->ors_post_search_id != NOID )
-
-static Operation *
-bdb_drop_psearch( Operation *op, ber_int_t msgid )
-{
-       Operation       *ps_list;
-       struct bdb_info *bdb = (struct bdb_info *) op->o_bd->be_private;
-
-       LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-               if ( ps_list->o_connid == op->o_connid ) {
-                       if ( ps_list->o_msgid == msgid ) {
-                               ps_list->o_abandon = 1;
-                               LDAP_LIST_REMOVE( ps_list, o_ps_link );
-                               ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );
-                               LDAP_STAILQ_REMOVE( &op->o_conn->c_ops, ps_list,
-                                       slap_op, o_next );
-                               LDAP_STAILQ_NEXT( ps_list, o_next ) = NULL;
-                               op->o_conn->c_n_ops_executing--;
-                               op->o_conn->c_n_ops_completed++;
-                               ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );
-                               return ps_list;
-                       }
-               }
-       }
-
-       return NULL;
-}
-
-int
-bdb_abandon( Operation *op, SlapReply *rs )
-{
-       Operation       *ps;
-       void            *saved_tmpmemctx;
-
-       ps = bdb_drop_psearch( op, op->oq_abandon.rs_msgid );
-       if ( ps ) {
-               saved_tmpmemctx = ps->o_tmpmemctx;
-
-               if (!BER_BVISNULL(&ps->o_req_dn)) {
-                       slap_sl_free(ps->o_req_dn.bv_val, ps->o_tmpmemctx );
-               }
-               if (!BER_BVISNULL(&ps->o_req_ndn)) {
-                       slap_sl_free(ps->o_req_ndn.bv_val, ps->o_tmpmemctx );
-               }
-               if (!BER_BVISNULL(&ps->ors_filterstr)) {
-                       ps->o_tmpfree(ps->ors_filterstr.bv_val, ps->o_tmpmemctx);
-               }
-               if (ps->ors_filter != NULL) {
-                       filter_free_x(ps, ps->ors_filter);
-               }
-               if (ps->ors_attrs != NULL) {
-                       ps->o_tmpfree(ps->ors_attrs, ps->o_tmpmemctx);
-               }
-
-               slap_op_free ( ps );
-
-               if ( saved_tmpmemctx ) {
-                       slap_sl_mem_destroy( NULL, saved_tmpmemctx );
-               }
-
-               return LDAP_SUCCESS;
-       }
-       return LDAP_UNAVAILABLE;
-}
-
-int
-bdb_cancel( Operation *op, SlapReply *rs )
-{
-       Operation       *ps;
-       void            *saved_tmpmemctx;
-
-       ps = bdb_drop_psearch( op, op->oq_cancel.rs_msgid );
-       if ( ps ) {
-               saved_tmpmemctx = ps->o_tmpmemctx;
-
-               rs->sr_err = LDAP_CANCELLED;
-               send_ldap_result( ps, rs );
-
-               if (!BER_BVISNULL(&ps->o_req_dn)) {
-                       slap_sl_free(ps->o_req_dn.bv_val, ps->o_tmpmemctx );
-               }
-               if (!BER_BVISNULL(&ps->o_req_ndn)) {
-                       slap_sl_free(ps->o_req_ndn.bv_val, ps->o_tmpmemctx );
-               }
-               if (!BER_BVISNULL(&ps->ors_filterstr)) {
-                       ps->o_tmpfree(ps->ors_filterstr.bv_val, ps->o_tmpmemctx);
-               }
-               if (ps->ors_filter != NULL) {
-                       filter_free_x(ps, ps->ors_filter);
-               }
-               if (ps->ors_attrs != NULL) {
-                       ps->o_tmpfree(ps->ors_attrs, ps->o_tmpmemctx);
-               }
-
-               slap_op_free ( ps );
-
-               if ( saved_tmpmemctx ) {
-                       slap_sl_mem_destroy( NULL, saved_tmpmemctx );
-               }
-
-               return LDAP_SUCCESS;
-       }
-       return LDAP_UNAVAILABLE;
-}
-
-int bdb_search( Operation *op, SlapReply *rs )
-{
-       int rc;
-       struct pc_entry *pce = NULL;
-       struct pc_entry *tmp_pce = NULL;
-       Entry ps_e = {0};
-       Attribute *a;
-
-       ps_e.e_private = NULL;
-       ldap_pvt_thread_mutex_init( &op->o_pcmutex );
-       LDAP_TAILQ_INIT( &op->o_ps_pre_candidates );
-       LDAP_TAILQ_INIT( &op->o_ps_post_candidates );
-
-       op->ors_post_search_id = NOID;
-       rc = bdb_do_search( op, rs, op, NULL, 0 );
-
-       ldap_pvt_thread_mutex_lock( &op->o_pcmutex );
-       pce = LDAP_TAILQ_FIRST( &op->o_ps_post_candidates );
-       ldap_pvt_thread_mutex_unlock( &op->o_pcmutex );
-
-       while ( rc == LDAP_SUCCESS && pce &&
-                       op->o_sync_mode & SLAP_SYNC_REFRESH_AND_PERSIST ) {
-
-               ps_e.e_id = op->ors_post_search_id = pce->pc_id;
-               if ( op->o_sync_csn.bv_val ) {
-                       ch_free( op->o_sync_csn.bv_val );
-                       op->o_sync_csn.bv_val = NULL;
-               }
-               ber_dupbv( &op->o_sync_csn, &pce->pc_csn );
-               ber_dupbv( &ps_e.e_name, &pce->pc_ename );
-               ber_dupbv( &ps_e.e_nname, &pce->pc_enname );
-               a = ch_calloc( 1, sizeof( Attribute ));
-               a->a_desc = slap_schema.si_ad_entryUUID;
-               a->a_vals = ch_calloc( 2, sizeof( struct berval ));
-               ber_dupbv( &a->a_vals[0], &pce->pc_entryUUID );
-               a->a_nvals = a->a_vals;
-               a->a_next = NULL;
-               ps_e.e_attrs = a;
-
-               rc = bdb_do_search( op, rs, op, &ps_e, 0 );
-
-               tmp_pce = pce;
-               ldap_pvt_thread_mutex_lock( &op->o_pcmutex );
-               pce = LDAP_TAILQ_NEXT( pce, pc_link );
-               LDAP_TAILQ_REMOVE( &op->o_ps_post_candidates, tmp_pce, pc_link );
-               ldap_pvt_thread_mutex_unlock( &op->o_pcmutex );
-
-               ch_free( tmp_pce->pc_csn.bv_val );
-               ch_free( tmp_pce->pc_entryUUID.bv_val );
-               ch_free( tmp_pce->pc_ename.bv_val );
-               ch_free( tmp_pce->pc_enname.bv_val );
-               ch_free( tmp_pce );     
-               entry_clean( &ps_e );
-       }
-       return rc;
-}
-
-#define BDB_PSEARCH_MAX_WAIT 3
-int bdb_psearch( Operation *op, SlapReply *rs, Operation *sop,
-       Entry *ps_e, int ps_type )
-{
-       int     rc;
-       struct pc_entry *pce = NULL;
-       struct pc_entry *p = NULL;
-       int num_retries = 0;
-
-       op->ors_post_search_id = NOID;
-
-       switch (ps_type) {
-       case LDAP_PSEARCH_BY_PREMODIFY:
-       case LDAP_PSEARCH_BY_PREDELETE:
-
-               if ( !op->o_ps_send_wait ) {
-                       if ( sop->o_refresh_in_progress ) {
-                               pce = (struct pc_entry *) ch_calloc(
-                                                       1, sizeof( struct pc_entry ));
-                               pce->pc_id = ps_e->e_id;
-                               ldap_pvt_thread_mutex_lock( &sop->o_pcmutex );
-                               if ( LDAP_TAILQ_EMPTY( &sop->o_ps_pre_candidates )) {
-                                       LDAP_TAILQ_INSERT_HEAD(
-                                                       &sop->o_ps_pre_candidates, pce, pc_link );
-                               } else {
-                                       LDAP_TAILQ_FOREACH( p,
-                                                       &sop->o_ps_pre_candidates, pc_link ) {
-                                               if ( p->pc_id > pce->pc_id )
-                                                       break;
-                                       }
-
-                                       if ( p ) {
-                                               LDAP_TAILQ_INSERT_BEFORE( p, pce, pc_link );
-                                       } else {
-                                               LDAP_TAILQ_INSERT_TAIL(
-                                                               &sop->o_ps_pre_candidates,
-                                                               pce, pc_link );
-                                       }
-                               }
-                               ldap_pvt_thread_mutex_unlock( &sop->o_pcmutex );
-                       } else {
-                               rc = bdb_do_search( op, rs, sop, ps_e, ps_type );
-                               return rc;
-                       }
-               } else {
-                       pce = op->o_ps_send_wait;
-               }
-
-               /* Wait until refresh search send the entry */
-               while ( !pce->pc_sent ) {
-                       if ( sop->o_refresh_in_progress ) {
-                               if ( num_retries == BDB_PSEARCH_MAX_WAIT ) {
-                                       op->o_ps_send_wait = pce;
-                                       return LDAP_BUSY;
-                               }
-                               ldap_pvt_thread_yield();
-                               bdb_trans_backoff( ++num_retries );
-                       } else {
-                               break;
-                       }
-               }
-
-               op->o_ps_send_wait = NULL;
-
-               if ( !sop->o_refresh_in_progress && !pce->pc_sent ) {
-                       /* refresh ended without processing pce */
-                       /* need to perform psearch for ps_e */
-                       ldap_pvt_thread_mutex_lock( &sop->o_pcmutex );
-                       LDAP_TAILQ_REMOVE( &sop->o_ps_pre_candidates, pce, pc_link );
-                       ldap_pvt_thread_mutex_unlock( &sop->o_pcmutex );
-                       ch_free( pce );
-                       rc = bdb_do_search( op, rs, sop, ps_e, ps_type );
-                       return rc;
-               } else {
-                       /* the pce entry was sent in the refresh phase */
-                       if ( ps_type == LDAP_PSEARCH_BY_PREMODIFY ) {
-                               struct psid_entry* psid_e;
-                               psid_e = (struct psid_entry *) ch_calloc(1,
-                                                       sizeof(struct psid_entry));
-                               psid_e->ps_op = sop;
-                               LDAP_LIST_INSERT_HEAD( &op->o_pm_list, psid_e, ps_link );
-                       }
-
-                       ldap_pvt_thread_mutex_lock( &sop->o_pcmutex );
-                       LDAP_TAILQ_REMOVE( &sop->o_ps_pre_candidates, pce, pc_link );
-                       ldap_pvt_thread_mutex_unlock( &sop->o_pcmutex );
-                       ch_free( pce );
-                       return LDAP_SUCCESS;
-               } 
-               break;
-       case LDAP_PSEARCH_BY_DELETE:
-       case LDAP_PSEARCH_BY_SCOPEOUT:
-       case LDAP_PSEARCH_BY_ADD:
-       case LDAP_PSEARCH_BY_MODIFY:
-               ldap_pvt_thread_mutex_lock( &op->o_pcmutex );
-               if ( sop->o_refresh_in_progress ||
-                               !LDAP_TAILQ_EMPTY( &sop->o_ps_post_candidates )) {
-                       pce = (struct pc_entry *) ch_calloc( 1, sizeof( struct pc_entry ));
-                       pce->pc_id = ps_e->e_id;
-                       ber_dupbv( &pce->pc_csn, &op->o_sync_csn );
-                       if ( ps_type == LDAP_PSEARCH_BY_DELETE ) {
-                               Attribute *a;
-                               for ( a = ps_e->e_attrs; a != NULL; a = a->a_next ) {
-                                       AttributeDescription *desc = a->a_desc;
-                                       if ( desc == slap_schema.si_ad_entryUUID ) {
-                                               ber_dupbv( &pce->pc_entryUUID, &a->a_nvals[0] );
-                                       }
-                               }
-                       }       
-                       ber_dupbv( &pce->pc_ename, &ps_e->e_name ); 
-                       ber_dupbv( &pce->pc_enname, &ps_e->e_nname ); 
-                       LDAP_TAILQ_INSERT_TAIL( &sop->o_ps_post_candidates, pce, pc_link );
-                       ldap_pvt_thread_mutex_unlock( &op->o_pcmutex );
-               } else {
-                       ldap_pvt_thread_mutex_unlock( &op->o_pcmutex );
-                       rc = bdb_do_search( op, rs, sop, ps_e, ps_type );
-                       return rc;
-               }
-               break;
-       default:
-               Debug( LDAP_DEBUG_TRACE, "do_psearch: invalid psearch type\n",
-                               0, 0, 0 );
-               return LDAP_OTHER;
-       }
-}
-#else
 int bdb_search( Operation *op, SlapReply *rs )
 {
        return bdb_do_search( op, rs, op, NULL, 0 );
 }
-#endif
 
 /* For persistent searches, op is the currently executing operation,
  * sop is the persistent search. For regular searches, sop = op.
@@ -630,137 +333,13 @@ bdb_do_search( Operation *op, SlapReply *rs, Operation *sop,
        struct  bdb_op_info     *opinfo = NULL;
        DB_TXN                  *ltid = NULL;
 
-#ifdef BDB_PSEARCH
-       Filter          contextcsnand, contextcsnle, cookief, csnfnot,
-                       csnfeq, csnfand, csnfge;
-       AttributeAssertion aa_ge, aa_eq, aa_le;
-       struct berval   *search_context_csn = NULL;
-       DB_LOCK         ctxcsn_lock;
-       LDAPControl     *ctrls[SLAP_MAX_RESPONSE_CONTROLS];
-       int             num_ctrls = 0;
-       AttributeName   uuid_attr[2];
-       int             rc_sync = 0;
-       int             entry_sync_state = -1;
-       AttributeName   null_attr;
-       int             no_sync_state_change = 0;
-
-
-       Operation       *ps_list;
-       int                     sync_send_present_mode = 1;
-       int                     match;
-       MatchingRule *mr;
-       const char *text;
-       int                     slog_found = 0;
-
-       struct pc_entry *pce = NULL;
-       BerVarray       syncUUID_set = NULL;
-       int                     syncUUID_set_cnt = 0;
-
-#endif
-
        Debug( LDAP_DEBUG_TRACE, "=> " LDAP_XSTRING(bdb_search) "\n", 0, 0, 0);
        attrs = sop->oq_search.rs_attrs;
 
        opinfo = (struct bdb_op_info *) op->o_private;
 
-#ifdef BDB_PSEARCH
-       if ( !IS_POST_SEARCH && !IS_PSEARCH &&
-                       sop->o_sync_mode & SLAP_SYNC_REFRESH_AND_PERSIST ) {
-               struct slap_session_entry *sent;
-               if ( sop->o_sync_state.sid >= 0 ) {
-                       LDAP_LIST_FOREACH( sent, &bdb->bi_session_list, se_link ) {
-                               if ( sent->se_id == sop->o_sync_state.sid ) {
-                                       sop->o_sync_slog_size = sent->se_size;
-                                       break;
-                               }
-                       }
-               }
-       }
-
-       /* psearch needs to be registered before refresh begins */
-       if ( !IS_POST_SEARCH && !IS_PSEARCH &&
-                       sop->o_sync_mode & SLAP_SYNC_PERSIST ) {
-               sop->o_refresh_in_progress = 1;
-               ldap_pvt_thread_rdwr_wlock( &bdb->bi_pslist_rwlock );
-               LDAP_LIST_INSERT_HEAD( &bdb->bi_psearch_list, sop, o_ps_link );
-               ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-
-       } else if ( !IS_POST_SEARCH && !IS_PSEARCH &&
-                               sop->o_sync_mode & SLAP_SYNC_REFRESH_AND_PERSIST
-                               && sop->o_sync_slog_size >= 0 )
-       {
-               ldap_pvt_thread_rdwr_wlock( &bdb->bi_pslist_rwlock );
-               LDAP_LIST_FOREACH( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-                       if ( ps_list->o_sync_slog_size >= 0 ) {
-                               if ( ps_list->o_sync_state.sid == sop->o_sync_state.sid ) {
-                                       slog_found = 1;
-                                       break;
-                               }
-                       }
-               }
-
-               if ( slog_found ) {
-                       if ( ps_list->o_sync_slog_omitcsn.bv_len != 0 ) {
-                               mr = slap_schema.si_ad_entryCSN->ad_type->sat_ordering;
-                               if ( sop->o_sync_state.ctxcsn &&
-                                       sop->o_sync_state.ctxcsn->bv_val != NULL )
-                               {
-                                       value_match( &match, slap_schema.si_ad_entryCSN, mr,
-                                               SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX,
-                                               sop->o_sync_state.ctxcsn,
-                                               &ps_list->o_sync_slog_omitcsn,
-                                               &text );
-                               } else {
-                                       match = -1;
-                               }
-                               if ( match >= 0 ) {
-                                       sync_send_present_mode = 0;
-                               }
-                       } else {
-                               sync_send_present_mode = 0;
-                       }
-               } else if ( sop->o_sync_slog_size >= 0 ) {
-                       LDAP_LIST_INSERT_HEAD( &bdb->bi_psearch_list, sop, o_ps_link );
-               } else {
-                       sop->o_sync_state.sid = -1;
-               }
-               ldap_pvt_thread_rdwr_wunlock( &bdb->bi_pslist_rwlock );
-       }
-
-       null_attr.an_desc = NULL;
-       null_attr.an_oc = NULL;
-       null_attr.an_oc_exclude = 0;
-       BER_BVZERO( &null_attr.an_name );
-
-       for( num_ctrls = 0; num_ctrls < SLAP_MAX_RESPONSE_CONTROLS; num_ctrls++ ) {
-               ctrls[num_ctrls] = NULL;
-       }
-       num_ctrls = 0;
-
-       if ( IS_PSEARCH && IS_BDB_REPLACE(ps_type)) {
-               attrs = uuid_attr;
-               attrs[0].an_desc = NULL;
-               attrs[0].an_oc = NULL;
-               attrs[0].an_oc_exclude = 0;
-               BER_BVZERO( &attrs[0].an_name );
-       }
-#endif
-
        manageDSAit = get_manageDSAit( sop );
 
-#ifdef BDB_PSEARCH
-       /* Sync control overrides manageDSAit */
-       if ( !IS_PSEARCH && sop->o_sync_mode & SLAP_SYNC_REFRESH ) {
-               if ( manageDSAit == SLAP_CONTROL_NONE ) {
-                       manageDSAit = SLAP_CONTROL_CRITICAL;
-               }
-       } else if ( IS_PSEARCH ) {
-               if ( manageDSAit == SLAP_CONTROL_NONE ) {
-                       manageDSAit = SLAP_CONTROL_CRITICAL;
-               }
-       }
-#endif
-
        if ( opinfo && opinfo->boi_txn ) {
                ltid = opinfo->boi_txn;
                locker = TXN_ID( ltid );
@@ -776,16 +355,6 @@ bdb_do_search( Operation *op, SlapReply *rs, Operation *sop,
                }
        }
 
-#ifdef BDB_PSEARCH
-       if ( IS_POST_SEARCH ) {
-               cursor = 0;
-               candidates[0] = 1;
-               candidates[1] = op->ors_post_search_id;
-               search_context_csn = ber_dupbv( NULL, &op->o_sync_csn );        
-               goto loop_start;
-       }
-#endif
-
        if ( sop->o_req_ndn.bv_len == 0 ) {
                /* DIT root special case */
                ei_root.bei_e = &e_root;
@@ -983,30 +552,6 @@ dn2entry_retry:
        }
        e = NULL;
 
-#ifdef BDB_PSEARCH
-       if ( !IS_PSEARCH ) {
-               rs->sr_err = bdb_get_commit_csn( sop, rs, &search_context_csn,
-                       locker, &ctxcsn_lock );
-
-               if ( rs->sr_err != LDAP_SUCCESS ) {
-                       send_ldap_error( sop, rs, rs->sr_err,
-                               "error in csn management in search" );
-                       goto done;
-               }
-
-               if ( sop->o_sync_mode != SLAP_SYNC_NONE &&
-                       sop->o_sync_state.ctxcsn &&
-                       sop->o_sync_state.ctxcsn->bv_val &&
-                       ber_bvcmp( &sop->o_sync_state.ctxcsn[0], search_context_csn ) == 0 )
-               {
-                       bdb_cache_entry_db_unlock( bdb->bi_dbenv, &ctxcsn_lock );
-                       goto nochange;
-               }
-       } else {
-               search_context_csn = ber_dupbv( NULL, &op->o_sync_csn );        
-       }
-#endif
-
        /* select candidates */
        if ( sop->oq_search.rs_scope == LDAP_SCOPE_BASE ) {
                rs->sr_err = base_candidate( op->o_bd, &base, candidates );
@@ -1018,33 +563,9 @@ dn2entry_retry:
                        locker, candidates, scopes );
        }
 
-#ifdef BDB_PSEARCH
-       if ( !IS_PSEARCH && sop->o_sync_mode != SLAP_SYNC_NONE ) {
-               bdb_cache_entry_db_unlock( bdb->bi_dbenv, &ctxcsn_lock );
-       }
-#endif
-
        /* start cursor at beginning of candidates.
         */
        cursor = 0;
-#ifdef BDB_PSEARCH
-       if (IS_PSEARCH) {
-               if ( !BDB_IDL_IS_RANGE( candidates ) ) {
-                       cursor = bdb_idl_search( candidates, ps_e->e_id );
-                       if ( candidates[cursor] != ps_e->e_id ) {
-                               rs->sr_err = LDAP_SUCCESS;
-                               goto done;
-                       }
-               } else if ( ps_e->e_id < BDB_IDL_RANGE_FIRST( candidates ) ||
-                       ps_e->e_id > BDB_IDL_RANGE_LAST( candidates ))
-               {
-                       rs->sr_err = LDAP_SUCCESS;
-                       goto done;
-               }
-               candidates[0] = 1;
-               candidates[1] = ps_e->e_id;
-       }
-#endif
 
        if ( candidates[0] == 0 ) {
                Debug( LDAP_DEBUG_TRACE,
@@ -1112,157 +633,21 @@ dn2entry_retry:
                goto loop_begin;
        }
 
-#ifdef BDB_PSEARCH
-       if (( sop->o_sync_mode & SLAP_SYNC_REFRESH ) || IS_PSEARCH ) {
-               int match;
-
-               cookief.f_choice = LDAP_FILTER_AND;
-               cookief.f_and = &csnfnot;
-               cookief.f_next = NULL;
-
-               csnfnot.f_choice = LDAP_FILTER_NOT;
-               csnfnot.f_not = &csnfeq;
-               csnfnot.f_next = &csnfand;
-
-               csnfeq.f_choice = LDAP_FILTER_EQUALITY;
-               csnfeq.f_ava = &aa_eq;
-               csnfeq.f_av_desc = slap_schema.si_ad_entryCSN;
-               if ( sop->o_sync_state.ctxcsn != NULL ) {
-                       csnfeq.f_av_value = *sop->o_sync_state.ctxcsn;
-               } else {
-                       csnfeq.f_av_value = slap_empty_bv;
-               }
-
-               csnfand.f_choice = LDAP_FILTER_AND;
-               csnfand.f_and = &csnfge;
-               csnfand.f_next = NULL;
-
-               csnfge.f_choice = LDAP_FILTER_GE;
-               csnfge.f_ava = &aa_ge;
-               csnfge.f_av_desc = slap_schema.si_ad_entryCSN;
-               if ( sop->o_sync_state.ctxcsn != NULL ) {
-                       csnfge.f_av_value = *sop->o_sync_state.ctxcsn;
-               } else {
-                       csnfge.f_av_value = slap_empty_bv;
-               }
-
-               if ( search_context_csn && !IS_PSEARCH ) {
-                       csnfge.f_next = &contextcsnand;
-
-                       contextcsnand.f_choice = LDAP_FILTER_AND;
-                       contextcsnand.f_and = &contextcsnle;
-                       contextcsnand.f_next = NULL;
-       
-                       contextcsnle.f_choice = LDAP_FILTER_LE;
-                       contextcsnle.f_ava = &aa_le;
-                       contextcsnle.f_av_desc = slap_schema.si_ad_entryCSN;
-                       contextcsnle.f_av_value = *search_context_csn;
-                       contextcsnle.f_next = sop->oq_search.rs_filter;
-
-                       mr = slap_schema.si_ad_entryCSN->ad_type->sat_ordering;
-                       if ( sop->o_sync_state.ctxcsn &&
-                               sop->o_sync_state.ctxcsn->bv_val != NULL )
-                       {
-                               value_match( &match, slap_schema.si_ad_entryCSN, mr,
-                                               SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX,
-                                               &sop->o_sync_state.ctxcsn[0], search_context_csn,
-                                               &text );
-                       } else {
-                               match = -1;
-                       }
-                       no_sync_state_change = ( match >= 0 );
-               } else {
-                       csnfge.f_next = sop->oq_search.rs_filter;
-               }
-       }
-#endif
-
 loop_start:
 
        for ( id = bdb_idl_first( candidates, &cursor );
-                 id != NOID
-#ifdef BDB_PSEARCH
-                       && !no_sync_state_change
-#endif
-               ; id = bdb_idl_next( candidates, &cursor ) )
+                 id != NOID ; id = bdb_idl_next( candidates, &cursor ) )
        {
                int scopeok = 0;
                ID* idhole = NULL;
 
 loop_begin:
 
-#ifdef BDB_PSEARCH
-               if ( !IS_POST_SEARCH ) {
-                       idhole = (ID*) avl_find( sop->o_psearch_finished,
-                                                                        (caddr_t)&id, bdb_pfid_cmp );
-                       if ( idhole ) {
-                               avl_delete( &sop->o_psearch_finished,
-                                                       (caddr_t)idhole, bdb_pfid_cmp );
-                               sop->o_tmpfree( idhole, sop->o_tmpmemctx );
-                               goto loop_continue;
-                       }
-
-                       if ( sop->o_refresh_in_progress ) {
-                               ldap_pvt_thread_mutex_lock( &sop->o_pcmutex );
-                               pce = LDAP_TAILQ_FIRST( &sop->o_ps_pre_candidates );    
-                               while ( pce && pce->pc_sent ) {
-                                       pce = LDAP_TAILQ_NEXT( pce, pc_link );
-                               }
-                               ldap_pvt_thread_mutex_unlock( &sop->o_pcmutex );
-                               if ( pce ) {
-                                       ID pos;
-                                       if ( BDB_IDL_IS_RANGE( candidates ) ) {
-                                               if ( pce->pc_id >= candidates[1] &&
-                                                        pce->pc_id <= candidates[2] &&
-                                                        pce->pc_id > cursor-1 ) {
-                                                       id = pce->pc_id;
-                                                       cursor--;
-                                                       avl_insert( &sop->o_psearch_finished,
-                                                                               (caddr_t)bdb_id_dup( sop, &pce->pc_id ),
-                                                                               bdb_pfid_cmp, avl_dup_error );
-                                               } else {
-                                                       pce->pc_sent = 1;
-                                               }
-                                       } else {
-                                               pos = bdb_idl_search(candidates, pce->pc_id);
-                                               if ( pos > cursor-1 && pos <= candidates[0] ) {
-                                                       id = pce->pc_id;
-                                                       cursor--;
-                                                       avl_insert( &sop->o_psearch_finished,
-                                                                               (caddr_t)bdb_id_dup( sop, &pce->pc_id ),
-                                                                               bdb_pfid_cmp, avl_dup_error );
-                                               } else {
-                                                       pce->pc_sent = 1;
-                                               }
-                                       }
-                               }
-                       }
-               }
-
-               /* check for abandon */
-               if ( sop->o_abandon ) {
-                       if ( sop != op ) {
-                               bdb_drop_psearch( sop, sop->o_msgid );
-                       }
-                       rs->sr_err = LDAP_SUCCESS;
-                       goto done;
-               }
-
-               if ( sop->o_cancel ) {
-                       assert( sop->o_cancel == SLAP_CANCEL_REQ );
-                       rs->sr_err = LDAP_CANCELLED;
-                       send_ldap_result( sop, rs );
-                       sop->o_cancel = SLAP_CANCEL_ACK;
-                       rs->sr_err = LDAP_SUCCESS;
-                       goto done;
-               }
-#else
                /* check for abandon */
                if ( sop->o_abandon ) {
                        rs->sr_err = LDAP_SUCCESS;
                        goto done;
                }
-#endif
 
                /* check time limit */
                if ( sop->ors_tlimit != SLAP_NO_LIMIT
@@ -1275,9 +660,6 @@ loop_begin:
                        goto done;
                }
 
-#ifdef BDB_PSEARCH
-               if (!IS_PSEARCH) {
-#endif
 fetch_entry_retry:
                        /* get the entry with reader lock */
                        ei = NULL;
@@ -1302,13 +684,6 @@ fetch_entry_retry:
                        }
 
                        if ( e == NULL ) {
-#ifdef BDB_PSEARCH
-                               if ( IS_POST_SEARCH ) {
-                                       /* send LDAP_SYNC_DELETE */
-                                       rs->sr_entry = e = ps_e;
-                                       goto post_search_no_entry;
-                               } else
-#endif
                                if( !BDB_IDL_IS_RANGE(candidates) ) {
                                        /* only complain for non-range IDLs */
                                        Debug( LDAP_DEBUG_TRACE,
@@ -1319,11 +694,6 @@ fetch_entry_retry:
 
                                goto loop_continue;
                        }
-#ifdef BDB_PSEARCH
-               } else {
-                       e = ps_e;
-               }
-#endif
 
                rs->sr_entry = e;
 
@@ -1422,11 +792,7 @@ fetch_entry_retry:
                }
 
                /* Not in scope, ignore it */
-#ifdef BDB_PSEARCH
-               if ( !IS_POST_SEARCH && !scopeok )
-#else
                if ( !scopeok )
-#endif
                {
                        Debug( LDAP_DEBUG_TRACE,
                                LDAP_XSTRING(bdb_search)
@@ -1462,72 +828,16 @@ fetch_entry_retry:
                }
 
                /* if it matches the filter and scope, send it */
-#ifndef BDB_PSEARCH
                rs->sr_err = test_filter( sop, rs->sr_entry, sop->oq_search.rs_filter );
-#else
-               if (IS_PSEARCH) {
-                       if (ps_type != LDAP_PSEARCH_BY_SCOPEOUT) {
-                               rs->sr_err = test_filter( sop, rs->sr_entry, &cookief );
-                       } else {
-                               rs->sr_err = LDAP_COMPARE_TRUE;
-                       }
-
-               } else {
-                       if ( !IS_POST_SEARCH ) {
-                               if ( sop->o_sync_mode & SLAP_SYNC_REFRESH ) {
-                                       rc_sync = test_filter( sop, rs->sr_entry, &cookief );
-                                       rs->sr_err = test_filter( sop, rs->sr_entry,
-                                                                               &contextcsnand );
-                                       if ( rs->sr_err == LDAP_COMPARE_TRUE ) {
-                                               if ( rc_sync == LDAP_COMPARE_TRUE ) {
-                                                       if ( no_sync_state_change ) {
-                                                               Debug( LDAP_DEBUG_TRACE,
-                                                                       LDAP_XSTRING(bdb_search) ": "
-                                                                       "error in context csn management\n",
-                                                                       0, 0, 0 );
-                                                       }
-                                                       entry_sync_state = LDAP_SYNC_ADD;
-
-                                               } else {
-                                                       if ( no_sync_state_change ) {
-                                                               goto loop_continue;
-                                                       }
-                                                       entry_sync_state = LDAP_SYNC_PRESENT;
-                                               }
-                                       }
-                               } else {
-                                       rs->sr_err = test_filter( sop,
-                                               rs->sr_entry, sop->oq_search.rs_filter );
-                               }
-                       } else {
-                               if ( scopeok ) {
-                                       rs->sr_err = test_filter( sop,
-                                               rs->sr_entry, sop->oq_search.rs_filter );
-                               } else {
-                                       rs->sr_err = LDAP_COMPARE_TRUE;
-                               }
-                       }
-               }
-#endif
 
                if ( rs->sr_err == LDAP_COMPARE_TRUE ) {
                        /* check size limit */
-                       if ( --sop->ors_slimit == -1
-#ifdef BDB_PSEARCH
-                               && sop->o_sync_slog_size == -1
-#endif
-                        ) {
-#ifdef BDB_PSEARCH
-                               if (!IS_PSEARCH) {
-#endif
+                       if ( --sop->ors_slimit == -1) {
 #ifdef SLAP_ZONE_ALLOC
-                                       slap_zn_runlock(bdb->bi_cache.c_zctx, e);
+                               slap_zn_runlock(bdb->bi_cache.c_zctx, e);
 #endif
-                                       bdb_cache_return_entry_r( bdb->bi_dbenv,
+                               bdb_cache_return_entry_r( bdb->bi_dbenv,
                                                &bdb->bi_cache, e, &lock );
-#ifdef BDB_PSEARCH
-                               }
-#endif
                                e = NULL;
                                rs->sr_entry = NULL;
                                rs->sr_err = LDAP_SIZELIMIT_EXCEEDED;
@@ -1548,170 +858,12 @@ fetch_entry_retry:
                        if (e) {
                                /* safe default */
                                int result = -1;
-#ifdef BDB_PSEARCH
-                               if (IS_PSEARCH || IS_POST_SEARCH) {
-                                       int premodify_found = 0;
-
-                                       if ( IS_POST_SEARCH ||
-                                                ps_type == LDAP_PSEARCH_BY_ADD ||
-                                                ps_type == LDAP_PSEARCH_BY_DELETE ||
-                                                ps_type == LDAP_PSEARCH_BY_MODIFY ||
-                                                ps_type == LDAP_PSEARCH_BY_SCOPEOUT )
-                                       {
-                                               if ( !IS_POST_SEARCH &&
-                                                        ps_type == LDAP_PSEARCH_BY_MODIFY ) {
-                                                       struct psid_entry* psid_e;
-                                                       LDAP_LIST_FOREACH( psid_e,
-                                                               &op->o_pm_list, ps_link)
-                                                       {
-                                                               if( psid_e->ps_op == sop ) {
-                                                                       premodify_found = 1;
-                                                                       LDAP_LIST_REMOVE(psid_e, ps_link);
-                                                                       break;
-                                                               }
-                                                       }
-                                                       if (psid_e != NULL) free (psid_e);
-                                               }
-
-                                               if ( IS_POST_SEARCH ) {
-                                                       if ( scopeok ) {
-                                                               entry_sync_state = LDAP_SYNC_ADD;
-                                                       } else {
-post_search_no_entry:
-                                                               entry_sync_state = LDAP_SYNC_DELETE;
-                                                       }
-                                               } else if ( ps_type == LDAP_PSEARCH_BY_ADD ) {
-                                                       entry_sync_state = LDAP_SYNC_ADD;
-                                               } else if ( ps_type == LDAP_PSEARCH_BY_DELETE ) {
-                                                       entry_sync_state = LDAP_SYNC_DELETE;
-                                               } else if ( ps_type == LDAP_PSEARCH_BY_MODIFY ) {
-                                                       if ( premodify_found ) {
-                                                               entry_sync_state = LDAP_SYNC_MODIFY;
-                                                       } else {
-                                                               entry_sync_state = LDAP_SYNC_ADD;
-                                                       }
-                                               } else if ( ps_type == LDAP_PSEARCH_BY_SCOPEOUT ) {
-                                                       entry_sync_state = LDAP_SYNC_DELETE;
-                                               } else {
-                                                       rs->sr_err = LDAP_OTHER;
-                                                       goto done;
-                                               }
-
-                                               if ( sop->o_sync_slog_size != -1 ) {
-                                                       if ( entry_sync_state == LDAP_SYNC_DELETE ) {
-                                                               result = slap_add_session_log( op, sop, e );
-                                                       } else {
-                                                               result = 1;
-                                                       }
-                                               } else {
-                                                       struct berval cookie;
-                                                       slap_compose_sync_cookie( sop, &cookie,
-                                                               search_context_csn,
-                                                               sop->o_sync_state.sid,
-                                                               sop->o_sync_state.rid );
-                                                       rs->sr_err = slap_build_sync_state_ctrl(
-                                                               sop, rs, e, entry_sync_state, ctrls,
-                                                               num_ctrls++, 1, &cookie );
-                                                       if ( rs->sr_err != LDAP_SUCCESS ) goto done;
-                                                       if (!(IS_POST_SEARCH &&
-                                                               entry_sync_state == LDAP_SYNC_DELETE)) {
-                                                               rs->sr_attrs = attrs;
-                                                       } else {
-                                                               rs->sr_attrs = NULL;
-                                                       }
-                                                       rs->sr_operational_attrs = NULL;
-                                                       rs->sr_ctrls = ctrls;
-                                                       rs->sr_flags = 0;
-                                                       result = send_search_entry( sop, rs );
-                                                       if ( cookie.bv_val ) ch_free( cookie.bv_val );  
-                                                       slap_sl_free(
-                                                               ctrls[num_ctrls-1]->ldctl_value.bv_val,
-                                                               sop->o_tmpmemctx );
-                                                       slap_sl_free( ctrls[--num_ctrls],
-                                                               sop->o_tmpmemctx );
-                                                       ctrls[num_ctrls] = NULL;
-                                                       rs->sr_ctrls = NULL;
-                                               }
-
-                                       } else if ( ps_type == LDAP_PSEARCH_BY_PREMODIFY ) {
-                                               struct psid_entry* psid_e;
-                                               psid_e = (struct psid_entry *) ch_calloc(1,
-                                                       sizeof(struct psid_entry));
-                                               psid_e->ps_op = sop;
-                                               LDAP_LIST_INSERT_HEAD( &op->o_pm_list,
-                                                       psid_e, ps_link );
-
-                                       } else {
-                                               Debug( LDAP_DEBUG_TRACE,
-                                                       LDAP_XSTRING(bdb_search)
-                                                       ": invalid ps_type (%d) \n",
-                                                       ps_type, 0, 0);
-                                       }
-
-                               } else {
-                                       if ( sop->o_sync_mode & SLAP_SYNC_REFRESH ) {
-                                               if ( rc_sync == LDAP_COMPARE_TRUE ) { /* ADD */
-                                                       rs->sr_err = slap_build_sync_state_ctrl(
-                                                               sop, rs, e, entry_sync_state, ctrls,
-                                                               num_ctrls++, 0, NULL );
-                                                       if ( rs->sr_err != LDAP_SUCCESS ) goto done;
-                                                       rs->sr_ctrls = ctrls;
-                                                       rs->sr_attrs = sop->oq_search.rs_attrs;
-                                                       rs->sr_operational_attrs = NULL;
-                                                       rs->sr_flags = 0;
-                                                       result = send_search_entry( sop, rs );
-                                                       slap_sl_free(
-                                                               ctrls[num_ctrls-1]->ldctl_value.bv_val,
-                                                               sop->o_tmpmemctx );
-                                                       slap_sl_free( ctrls[--num_ctrls],
-                                                               sop->o_tmpmemctx );
-                                                       ctrls[num_ctrls] = NULL;
-                                                       rs->sr_ctrls = NULL;
-
-                                               } else { /* PRESENT */
-                                                       if ( sync_send_present_mode ) {
-                                                               result = slap_build_syncUUID_set( sop,
-                                                                       &syncUUID_set, e );
-                                                               if ( result <= 0 ) {
-                                                                       result = -1;    
-                                                               } else {
-                                                                       syncUUID_set_cnt++;
-                                                                       if ( syncUUID_set_cnt ==
-                                                                               SLAP_SYNCUUID_SET_SIZE )
-                                                                       {
-                                                                               rs->sr_err = LDAP_SUCCESS;
-                                                                               rs->sr_rspoid = LDAP_SYNC_INFO;
-                                                                               rs->sr_ctrls = NULL;
-                                                                               result = slap_send_syncinfo( sop, rs,
-                                                                                       LDAP_TAG_SYNC_ID_SET,
-                                                                                       NULL, 0, syncUUID_set, 0 );
-                                                                               if ( result != LDAP_SUCCESS ) {
-                                                                                       result = -1;
-                                                                               }
-                                                                               ber_bvarray_free_x( syncUUID_set,
-                                                                                       sop->o_tmpmemctx );
-                                                                               syncUUID_set = NULL;
-                                                                               syncUUID_set_cnt = 0;
-                                                                       }
-                                                               }
-
-                                                       } else {
-                                                               result = 1;
-                                                       }
-                                               }
-
-                                       } else {
-#endif
-                                               rs->sr_attrs = sop->oq_search.rs_attrs;
-                                               rs->sr_operational_attrs = NULL;
-                                               rs->sr_ctrls = NULL;
-                                               rs->sr_flags = 0;
-                                               rs->sr_err = LDAP_SUCCESS;
-                                               result = send_search_entry( sop, rs );
-#ifdef BDB_PSEARCH
-                                       }
-                               }
-#endif
+                               rs->sr_attrs = sop->oq_search.rs_attrs;
+                               rs->sr_operational_attrs = NULL;
+                               rs->sr_ctrls = NULL;
+                               rs->sr_flags = 0;
+                               rs->sr_err = LDAP_SUCCESS;
+                               result = send_search_entry( sop, rs );
 
                                switch (result) {
                                case 0:         /* entry sent ok */
@@ -1719,17 +871,11 @@ post_search_no_entry:
                                case 1:         /* entry not sent */
                                        break;
                                case -1:        /* connection closed */
-#ifdef BDB_PSEARCH
-                                       if (!IS_PSEARCH) {
-#endif
 #ifdef SLAP_ZONE_ALLOC
-                                               slap_zn_runlock(bdb->bi_cache.c_zctx, e);
-#endif
-                                               bdb_cache_return_entry_r(bdb->bi_dbenv,
-                                                       &bdb->bi_cache, e, &lock);
-#ifdef BDB_PSEARCH
-                                       }
+                                       slap_zn_runlock(bdb->bi_cache.c_zctx, e);
 #endif
+                                       bdb_cache_return_entry_r(bdb->bi_dbenv,
+                                               &bdb->bi_cache, e, &lock);
                                        e = NULL;
                                        rs->sr_entry = NULL;
                                        rs->sr_err = LDAP_OTHER;
@@ -1747,194 +893,32 @@ post_search_no_entry:
 loop_continue:
                if( e != NULL ) {
                        /* free reader lock */
-#ifdef BDB_PSEARCH
-                       if (!IS_PSEARCH) {
-                               if (!(IS_POST_SEARCH &&
-                                                entry_sync_state == LDAP_SYNC_DELETE)) {
-#ifdef SLAP_ZONE_ALLOC
-                                       slap_zn_runlock(bdb->bi_cache.c_zctx, e);
-#endif
-                                       bdb_cache_return_entry_r( bdb->bi_dbenv,
-                                               &bdb->bi_cache, e , &lock );
-                                       if ( sop->o_nocaching ) {
-                                               bdb_cache_delete_entry( bdb, ei, locker, &lock );
-                                       }
-                               }
-                       }
-#else
 #ifdef SLAP_ZONE_ALLOC
                        slap_zn_runlock(bdb->bi_cache.c_zctx, e);
 #endif
                        bdb_cache_return_entry_r( bdb->bi_dbenv,
                                &bdb->bi_cache, e , &lock );
-#endif
                        e = NULL;
                        rs->sr_entry = NULL;
                }
                
-#ifdef BDB_PSEARCH
-               if ( sop->o_refresh_in_progress ) {
-                       if ( pce ) {
-                               pce->pc_sent = 1;
-                       }
-               }
-#endif
-
                ldap_pvt_thread_yield();
        }
 
-#ifdef BDB_PSEARCH
-       if ( syncUUID_set_cnt > 0 ) {
-               rs->sr_err = LDAP_SUCCESS;
-               rs->sr_rspoid = LDAP_SYNC_INFO;
-               rs->sr_ctrls = NULL;
-               slap_send_syncinfo( sop, rs, LDAP_TAG_SYNC_ID_SET,
-                       NULL, 0, syncUUID_set, 0 );
-               ber_bvarray_free_x( syncUUID_set, sop->o_tmpmemctx );
-               syncUUID_set_cnt = 0;
-       }
-#endif
-
 nochange:
-#ifdef BDB_PSEARCH
-       if (!IS_PSEARCH && !IS_POST_SEARCH) {
-               if ( sop->o_sync_mode & SLAP_SYNC_REFRESH ) {
-                       if ( sop->o_sync_mode & SLAP_SYNC_PERSIST ) {
-                               struct berval cookie;
-                               slap_compose_sync_cookie( sop, &cookie, search_context_csn,
-                                       sop->o_sync_state.sid, sop->o_sync_state.rid );
-
-                               if ( sync_send_present_mode ) {
-                                       rs->sr_err = LDAP_SUCCESS;
-                                       rs->sr_rspoid = LDAP_SYNC_INFO;
-                                       rs->sr_ctrls = NULL;
-                                       slap_send_syncinfo( sop, rs,
-                                               LDAP_TAG_SYNC_REFRESH_PRESENT, &cookie, 1, NULL, 0 );
-
-                               } else {
-                                       if ( !no_sync_state_change ) {
-                                               int slog_found = 0;
-                                               ldap_pvt_thread_rdwr_rlock( &bdb->bi_pslist_rwlock );
-                                               LDAP_LIST_FOREACH( ps_list, &bdb->bi_psearch_list,
-                                                       o_ps_link )
-                                               {
-                                                       if ( ps_list->o_sync_slog_size > 0 ) {
-                                                               if ( ps_list->o_sync_state.sid ==
-                                                                       sop->o_sync_state.sid )
-                                                               {
-                                                                       slog_found = 1;
-                                                                       break;
-                                                               }
-                                                       }
-                                               }
-               
-                                               if ( slog_found ) {
-                                                       rs->sr_err = LDAP_SUCCESS;
-                                                       rs->sr_rspoid = NULL;
-                                                       rs->sr_ctrls = NULL;
-                                                       slap_send_session_log( op, ps_list, rs );
-                                               }
-                                               ldap_pvt_thread_rdwr_runlock( &bdb->bi_pslist_rwlock );
-                                       }
-
-                                       rs->sr_err = LDAP_SUCCESS;
-                                       rs->sr_rspoid = LDAP_SYNC_INFO;
-                                       rs->sr_ctrls = NULL;
-                                       slap_send_syncinfo( sop, rs,
-                                               LDAP_TAG_SYNC_REFRESH_DELETE, &cookie, 1, NULL, 0 );
-                               }
-
-                               if ( cookie.bv_val ) ch_free( cookie.bv_val );
-
-                       } else {
-                               /* refreshOnly mode */
-                               struct berval cookie;
-                               slap_compose_sync_cookie( sop, &cookie, search_context_csn,
-                                       sop->o_sync_state.sid, sop->o_sync_state.rid );
-
-                               if ( sync_send_present_mode ) {
-                                       slap_build_sync_done_ctrl( sop, rs, ctrls,
-                                               num_ctrls++, 1, &cookie, LDAP_SYNC_REFRESH_PRESENTS );
-
-                               } else {
-                                       if ( !no_sync_state_change ) {
-                                               int slog_found = 0;
-                                               ldap_pvt_thread_rdwr_rlock( &bdb->bi_pslist_rwlock );
-                                               LDAP_LIST_FOREACH( ps_list, &bdb->bi_psearch_list,
-                                                       o_ps_link )
-                                               {
-                                                       if ( ps_list->o_sync_slog_size > 0 ) {
-                                                               if ( ps_list->o_sync_state.sid ==
-                                                                               sop->o_sync_state.sid ) {
-                                                                       slog_found = 1;
-                                                                       break;
-                                                               }
-                                                       }
-                                               }
-               
-                                               if ( slog_found ) {
-                                                       slap_send_session_log( op, ps_list, rs );
-                                               }
-                                               ldap_pvt_thread_rdwr_runlock( &bdb->bi_pslist_rwlock );
-                                       }
-
-                                       slap_build_sync_done_ctrl( sop, rs, ctrls,
-                                               num_ctrls++, 1, &cookie, LDAP_SYNC_REFRESH_DELETES );
-                               }
-
-                               rs->sr_ctrls = ctrls;
-                               rs->sr_ref = rs->sr_v2ref;
-                               rs->sr_err = (rs->sr_v2ref == NULL)
-                                       ? LDAP_SUCCESS : LDAP_REFERRAL;
-                               rs->sr_rspoid = NULL;
-                               send_ldap_result( sop, rs );
-                               if ( ctrls[num_ctrls-1]->ldctl_value.bv_val != NULL ) {
-                                       slap_sl_free( ctrls[num_ctrls-1]->ldctl_value.bv_val,
-                                               sop->o_tmpmemctx );
-                               }
-                               slap_sl_free( ctrls[--num_ctrls], sop->o_tmpmemctx );
-                               ctrls[num_ctrls] = NULL;
-                               if ( cookie.bv_val ) ch_free( cookie.bv_val );  
-                       }
-
-               } else {
-#endif
-                       rs->sr_ctrls = NULL;
-                       rs->sr_ref = rs->sr_v2ref;
-                       rs->sr_err = (rs->sr_v2ref == NULL) ? LDAP_SUCCESS : LDAP_REFERRAL;
-                       rs->sr_rspoid = NULL;
-                       if ( get_pagedresults(sop) > SLAP_CONTROL_IGNORED ) {
-                               send_paged_response( sop, rs, NULL, 0 );
-                       } else {
-                               send_ldap_result( sop, rs );
-                       }
-#ifdef BDB_PSEARCH
-               }
-       }
-
-       if ( sop->o_refresh_in_progress ) {
-               sop->o_refresh_in_progress = 0;
+       rs->sr_ctrls = NULL;
+       rs->sr_ref = rs->sr_v2ref;
+       rs->sr_err = (rs->sr_v2ref == NULL) ? LDAP_SUCCESS : LDAP_REFERRAL;
+       rs->sr_rspoid = NULL;
+       if ( get_pagedresults(sop) > SLAP_CONTROL_IGNORED ) {
+               send_paged_response( sop, rs, NULL, 0 );
+       } else {
+               send_ldap_result( sop, rs );
        }
-#endif
 
        rs->sr_err = LDAP_SUCCESS;
 
 done:
-#ifdef BDB_PSEARCH
-       if ( sop->o_psearch_finished ) {
-               avl_free( sop->o_psearch_finished, ch_free );
-       }
-
-       if( !IS_PSEARCH && e != NULL ) {
-               /* free reader lock */
-#ifdef SLAP_ZONE_ALLOC
-               slap_zn_runlock(bdb->bi_cache.c_zctx, e);
-#endif
-               bdb_cache_return_entry_r( bdb->bi_dbenv, &bdb->bi_cache, e, &lock );
-       }
-       ber_bvfree( search_context_csn );
-#endif
-
        if ( !opinfo )
                LOCK_ID_FREE( bdb->bi_dbenv, locker );
 
@@ -2064,11 +1048,7 @@ static int search_candidates(
         * these clauses are redundant.
         */
        if (!oc_filter(op->oq_search.rs_filter, 1, &depth)
-               && !get_subentries_visibility(op)
-#ifdef BDB_PSEARCH
-               && !is_sync_protocol(op)
-#endif
-       ) {
+               && !get_subentries_visibility(op)) {
                if( !get_manageDSAit(op) && !get_domainScope(op) ) {
                        /* match referral objects */
                        struct berval bv_ref = BER_BVC( "referral" );
index 8dc0405bf2f6363d5e683c2cce07399e78b6876a..e7fa1e7ec330d23aa30f663dc60f33d30bc6ae7e 100644 (file)
@@ -21,13 +21,13 @@ XXSRCS = init.c tools.c config.c \
        add.c bind.c compare.c delete.c modify.c modrdn.c search.c \
        extended.c referral.c operational.c \
        attr.c index.c key.c dbcache.c filterindex.c trans.c \
-       dn2entry.c dn2id.c error.c id2entry.c idl.c nextid.c cache.c ctxcsn.c
+       dn2entry.c dn2id.c error.c id2entry.c idl.c nextid.c cache.c
 SRCS = $(XXSRCS)
 OBJS = init.lo tools.lo config.lo \
        add.lo bind.lo compare.lo delete.lo modify.lo modrdn.lo search.lo \
        extended.lo referral.lo operational.lo \
        attr.lo index.lo key.lo dbcache.lo filterindex.lo trans.lo \
-       dn2entry.lo dn2id.lo error.lo id2entry.lo idl.lo nextid.lo cache.lo ctxcsn.lo
+       dn2entry.lo dn2id.lo error.lo id2entry.lo idl.lo nextid.lo cache.lo
 
 LDAP_INCDIR= ../../../include       
 LDAP_LIBDIR= ../../../libraries