[389-commits] ldap/servers Makefile.am Makefile.in

Noriko Hosoi nhosoi at fedoraproject.org
Tue Jan 18 18:51:24 UTC 2011


 Makefile.am                                             |    2 
 Makefile.in                                             |   64 ++---
 ldap/servers/plugins/replication/cl5_api.c              |  198 +++++++++++++++-
 ldap/servers/plugins/replication/cl5_api.h              |   13 +
 ldap/servers/plugins/replication/cl5_init.c             |    2 
 ldap/servers/plugins/replication/repl5_init.c           |    6 
 ldap/servers/plugins/replication/repl5_replica_config.c |   11 
 ldap/servers/slapd/back-ldbm/archive.c                  |   19 +
 ldap/servers/slapd/pblock.c                             |   24 +
 ldap/servers/slapd/plugin.c                             |    6 
 ldap/servers/slapd/protect_db.h                         |    2 
 ldap/servers/slapd/slap.h                               |    4 
 ldap/servers/slapd/slapi-plugin.h                       |    2 
 ldap/servers/slapd/slapi-private.h                      |    2 
 14 files changed, 302 insertions(+), 53 deletions(-)

New commits:
commit f9a13fd1690f652e3c1dda78b7f846647be56a34
Author: Noriko Hosoi <nhosoi at jiji.usersys.redhat.com>
Date:   Mon Jan 17 18:23:40 2011 -0800

    Bug 669205 - db2bak: backed up changelog should include RUVs
    
    https://bugzilla.redhat.com/show_bug.cgi?id=669205
    
    Description:
    Introduced backup plugin hooks: SLAPI_PLUGIN_BE_PRE_BACKUP_FN
    and SLAPI_PLUGIN_BE_POST_BACKUP_FN to call back cl5WriteRUV and
    cl5DeleteRUV, respectively.  cl5WriteRUV adds RUVs to changelog
    and cl5DeleteRUV reads and deletes RUVs in changelog.  The call-
    back functions are avaiable only when the process is initialized
    as a server, which must have started with a backend normal mode
    flag (DBLAYER_NORMAL_MODE) not with other utility modes such as
    DBLAYER_ARCHIVE_MODE.  With this restriction, db2bak is not
    allowed to use to back up the database including changelog db
    when the server is up.  If launched, the utility fails with this
    error message:
      [...] - db2archive: pre-backup-plugin failed (1).
      [...] - ERROR: Standalone db2bak is not supported \
      when a multimaster replication enabled server is coexisting.
      Please use db2bak.pl, instead.
    As mentioned in the message, db2bak.pl is supposed to be used.
    
    See also:
    http://directory.fedoraproject.org/wiki/Move_changelog#Backing_up_Changelog

diff --git a/Makefile.am b/Makefile.am
index 1b43a0a..bd3c64e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -624,6 +624,7 @@ libslapd_la_SOURCES = ldap/servers/slapd/add.c \
 	ldap/servers/slapd/plugin_mr.c \
 	ldap/servers/slapd/plugin_role.c \
 	ldap/servers/slapd/plugin_syntax.c \
+	ldap/servers/slapd/protect_db.c \
 	ldap/servers/slapd/proxyauth.c \
 	ldap/servers/slapd/pw.c \
 	ldap/servers/slapd/pw_retry.c \
@@ -1264,7 +1265,6 @@ ns_slapd_SOURCES = ldap/servers/slapd/abandon.c \
 	ldap/servers/slapd/main.c \
 	ldap/servers/slapd/monitor.c \
 	ldap/servers/slapd/passwd_extop.c \
-	ldap/servers/slapd/protect_db.c \
 	ldap/servers/slapd/psearch.c \
 	ldap/servers/slapd/pw_mgmt.c \
 	ldap/servers/slapd/rootdse.c \
diff --git a/Makefile.in b/Makefile.in
index a5a5c3e..e2e1f39 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -611,12 +611,13 @@ am__libslapd_la_SOURCES_DIST = ldap/servers/slapd/add.c \
 	ldap/servers/slapd/plugin_mr.c \
 	ldap/servers/slapd/plugin_role.c \
 	ldap/servers/slapd/plugin_syntax.c \
-	ldap/servers/slapd/proxyauth.c ldap/servers/slapd/pw.c \
-	ldap/servers/slapd/pw_retry.c ldap/servers/slapd/rdn.c \
-	ldap/servers/slapd/referral.c ldap/servers/slapd/regex.c \
-	ldap/servers/slapd/resourcelimit.c ldap/servers/slapd/result.c \
-	ldap/servers/slapd/rwlock.c ldap/servers/slapd/sasl_map.c \
-	ldap/servers/slapd/schema.c ldap/servers/slapd/schemaparse.c \
+	ldap/servers/slapd/protect_db.c ldap/servers/slapd/proxyauth.c \
+	ldap/servers/slapd/pw.c ldap/servers/slapd/pw_retry.c \
+	ldap/servers/slapd/rdn.c ldap/servers/slapd/referral.c \
+	ldap/servers/slapd/regex.c ldap/servers/slapd/resourcelimit.c \
+	ldap/servers/slapd/result.c ldap/servers/slapd/rwlock.c \
+	ldap/servers/slapd/sasl_map.c ldap/servers/slapd/schema.c \
+	ldap/servers/slapd/schemaparse.c \
 	ldap/servers/slapd/security_wrappers.c \
 	ldap/servers/slapd/slapd_plhash.c \
 	ldap/servers/slapd/slapi_counter.c \
@@ -694,6 +695,7 @@ am_libslapd_la_OBJECTS = ldap/servers/slapd/libslapd_la-add.lo \
 	ldap/servers/slapd/libslapd_la-plugin_mr.lo \
 	ldap/servers/slapd/libslapd_la-plugin_role.lo \
 	ldap/servers/slapd/libslapd_la-plugin_syntax.lo \
+	ldap/servers/slapd/libslapd_la-protect_db.lo \
 	ldap/servers/slapd/libslapd_la-proxyauth.lo \
 	ldap/servers/slapd/libslapd_la-pw.lo \
 	ldap/servers/slapd/libslapd_la-pw_retry.lo \
@@ -868,8 +870,7 @@ am__ns_slapd_SOURCES_DIST = ldap/servers/slapd/abandon.c \
 	ldap/servers/slapd/getopt_ext.c ldap/servers/slapd/globals.c \
 	ldap/servers/slapd/house.c ldap/servers/slapd/init.c \
 	ldap/servers/slapd/main.c ldap/servers/slapd/monitor.c \
-	ldap/servers/slapd/passwd_extop.c \
-	ldap/servers/slapd/protect_db.c ldap/servers/slapd/psearch.c \
+	ldap/servers/slapd/passwd_extop.c ldap/servers/slapd/psearch.c \
 	ldap/servers/slapd/pw_mgmt.c ldap/servers/slapd/rootdse.c \
 	ldap/servers/slapd/sasl_io.c ldap/servers/slapd/saslbind.c \
 	ldap/servers/slapd/search.c \
@@ -898,7 +899,6 @@ am_ns_slapd_OBJECTS = ldap/servers/slapd/ns_slapd-abandon.$(OBJEXT) \
 	ldap/servers/slapd/ns_slapd-main.$(OBJEXT) \
 	ldap/servers/slapd/ns_slapd-monitor.$(OBJEXT) \
 	ldap/servers/slapd/ns_slapd-passwd_extop.$(OBJEXT) \
-	ldap/servers/slapd/ns_slapd-protect_db.$(OBJEXT) \
 	ldap/servers/slapd/ns_slapd-psearch.$(OBJEXT) \
 	ldap/servers/slapd/ns_slapd-pw_mgmt.$(OBJEXT) \
 	ldap/servers/slapd/ns_slapd-rootdse.$(OBJEXT) \
@@ -1762,12 +1762,13 @@ libslapd_la_SOURCES = ldap/servers/slapd/add.c \
 	ldap/servers/slapd/plugin_mr.c \
 	ldap/servers/slapd/plugin_role.c \
 	ldap/servers/slapd/plugin_syntax.c \
-	ldap/servers/slapd/proxyauth.c ldap/servers/slapd/pw.c \
-	ldap/servers/slapd/pw_retry.c ldap/servers/slapd/rdn.c \
-	ldap/servers/slapd/referral.c ldap/servers/slapd/regex.c \
-	ldap/servers/slapd/resourcelimit.c ldap/servers/slapd/result.c \
-	ldap/servers/slapd/rwlock.c ldap/servers/slapd/sasl_map.c \
-	ldap/servers/slapd/schema.c ldap/servers/slapd/schemaparse.c \
+	ldap/servers/slapd/protect_db.c ldap/servers/slapd/proxyauth.c \
+	ldap/servers/slapd/pw.c ldap/servers/slapd/pw_retry.c \
+	ldap/servers/slapd/rdn.c ldap/servers/slapd/referral.c \
+	ldap/servers/slapd/regex.c ldap/servers/slapd/resourcelimit.c \
+	ldap/servers/slapd/result.c ldap/servers/slapd/rwlock.c \
+	ldap/servers/slapd/sasl_map.c ldap/servers/slapd/schema.c \
+	ldap/servers/slapd/schemaparse.c \
 	ldap/servers/slapd/security_wrappers.c \
 	ldap/servers/slapd/slapd_plhash.c \
 	ldap/servers/slapd/slapi_counter.c \
@@ -2353,7 +2354,6 @@ ns_slapd_SOURCES = ldap/servers/slapd/abandon.c \
 	ldap/servers/slapd/main.c \
 	ldap/servers/slapd/monitor.c \
 	ldap/servers/slapd/passwd_extop.c \
-	ldap/servers/slapd/protect_db.c \
 	ldap/servers/slapd/psearch.c \
 	ldap/servers/slapd/pw_mgmt.c \
 	ldap/servers/slapd/rootdse.c \
@@ -3863,6 +3863,9 @@ ldap/servers/slapd/libslapd_la-plugin_role.lo:  \
 ldap/servers/slapd/libslapd_la-plugin_syntax.lo:  \
 	ldap/servers/slapd/$(am__dirstamp) \
 	ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp)
+ldap/servers/slapd/libslapd_la-protect_db.lo:  \
+	ldap/servers/slapd/$(am__dirstamp) \
+	ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp)
 ldap/servers/slapd/libslapd_la-proxyauth.lo:  \
 	ldap/servers/slapd/$(am__dirstamp) \
 	ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp)
@@ -4365,9 +4368,6 @@ ldap/servers/slapd/ns_slapd-monitor.$(OBJEXT):  \
 ldap/servers/slapd/ns_slapd-passwd_extop.$(OBJEXT):  \
 	ldap/servers/slapd/$(am__dirstamp) \
 	ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp)
-ldap/servers/slapd/ns_slapd-protect_db.$(OBJEXT):  \
-	ldap/servers/slapd/$(am__dirstamp) \
-	ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp)
 ldap/servers/slapd/ns_slapd-psearch.$(OBJEXT):  \
 	ldap/servers/slapd/$(am__dirstamp) \
 	ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp)
@@ -5195,6 +5195,8 @@ mostlyclean-compile:
 	-rm -f ldap/servers/slapd/libslapd_la-plugin_role.lo
 	-rm -f ldap/servers/slapd/libslapd_la-plugin_syntax.$(OBJEXT)
 	-rm -f ldap/servers/slapd/libslapd_la-plugin_syntax.lo
+	-rm -f ldap/servers/slapd/libslapd_la-protect_db.$(OBJEXT)
+	-rm -f ldap/servers/slapd/libslapd_la-protect_db.lo
 	-rm -f ldap/servers/slapd/libslapd_la-proxyauth.$(OBJEXT)
 	-rm -f ldap/servers/slapd/libslapd_la-proxyauth.lo
 	-rm -f ldap/servers/slapd/libslapd_la-pw.$(OBJEXT)
@@ -5282,7 +5284,6 @@ mostlyclean-compile:
 	-rm -f ldap/servers/slapd/ns_slapd-main.$(OBJEXT)
 	-rm -f ldap/servers/slapd/ns_slapd-monitor.$(OBJEXT)
 	-rm -f ldap/servers/slapd/ns_slapd-passwd_extop.$(OBJEXT)
-	-rm -f ldap/servers/slapd/ns_slapd-protect_db.$(OBJEXT)
 	-rm -f ldap/servers/slapd/ns_slapd-psearch.$(OBJEXT)
 	-rm -f ldap/servers/slapd/ns_slapd-pw_mgmt.$(OBJEXT)
 	-rm -f ldap/servers/slapd/ns_slapd-rootdse.$(OBJEXT)
@@ -5680,6 +5681,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/libslapd_la-plugin_mr.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/libslapd_la-plugin_role.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/libslapd_la-plugin_syntax.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/libslapd_la-protect_db.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/libslapd_la-proxyauth.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/libslapd_la-pw.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/libslapd_la-pw_retry.Plo at am__quote@
@@ -5734,7 +5736,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/ns_slapd-main.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/ns_slapd-monitor.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/ns_slapd-passwd_extop.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/ns_slapd-protect_db.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/ns_slapd-psearch.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/ns_slapd-pw_mgmt.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ldap/servers/slapd/$(DEPDIR)/ns_slapd-rootdse.Po at am__quote@
@@ -8053,6 +8054,13 @@ ldap/servers/slapd/libslapd_la-plugin_syntax.lo: ldap/servers/slapd/plugin_synta
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libslapd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/libslapd_la-plugin_syntax.lo `test -f 'ldap/servers/slapd/plugin_syntax.c' || echo '$(srcdir)/'`ldap/servers/slapd/plugin_syntax.c
 
+ldap/servers/slapd/libslapd_la-protect_db.lo: ldap/servers/slapd/protect_db.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libslapd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/libslapd_la-protect_db.lo -MD -MP -MF ldap/servers/slapd/$(DEPDIR)/libslapd_la-protect_db.Tpo -c -o ldap/servers/slapd/libslapd_la-protect_db.lo `test -f 'ldap/servers/slapd/protect_db.c' || echo '$(srcdir)/'`ldap/servers/slapd/protect_db.c
+ at am__fastdepCC_TRUE@	$(am__mv) ldap/servers/slapd/$(DEPDIR)/libslapd_la-protect_db.Tpo ldap/servers/slapd/$(DEPDIR)/libslapd_la-protect_db.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ldap/servers/slapd/protect_db.c' object='ldap/servers/slapd/libslapd_la-protect_db.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libslapd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/libslapd_la-protect_db.lo `test -f 'ldap/servers/slapd/protect_db.c' || echo '$(srcdir)/'`ldap/servers/slapd/protect_db.c
+
 ldap/servers/slapd/libslapd_la-proxyauth.lo: ldap/servers/slapd/proxyauth.c
 @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libslapd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/libslapd_la-proxyauth.lo -MD -MP -MF ldap/servers/slapd/$(DEPDIR)/libslapd_la-proxyauth.Tpo -c -o ldap/servers/slapd/libslapd_la-proxyauth.lo `test -f 'ldap/servers/slapd/proxyauth.c' || echo '$(srcdir)/'`ldap/servers/slapd/proxyauth.c
 @am__fastdepCC_TRUE@	$(am__mv) ldap/servers/slapd/$(DEPDIR)/libslapd_la-proxyauth.Tpo ldap/servers/slapd/$(DEPDIR)/libslapd_la-proxyauth.Plo
@@ -9082,20 +9090,6 @@ ldap/servers/slapd/ns_slapd-passwd_extop.obj: ldap/servers/slapd/passwd_extop.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/ns_slapd-passwd_extop.obj `if test -f 'ldap/servers/slapd/passwd_extop.c'; then $(CYGPATH_W) 'ldap/servers/slapd/passwd_extop.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/passwd_extop.c'; fi`
 
-ldap/servers/slapd/ns_slapd-protect_db.o: ldap/servers/slapd/protect_db.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/ns_slapd-protect_db.o -MD -MP -MF ldap/servers/slapd/$(DEPDIR)/ns_slapd-protect_db.Tpo -c -o ldap/servers/slapd/ns_slapd-protect_db.o `test -f 'ldap/servers/slapd/protect_db.c' || echo '$(srcdir)/'`ldap/servers/slapd/protect_db.c
- at am__fastdepCC_TRUE@	$(am__mv) ldap/servers/slapd/$(DEPDIR)/ns_slapd-protect_db.Tpo ldap/servers/slapd/$(DEPDIR)/ns_slapd-protect_db.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ldap/servers/slapd/protect_db.c' object='ldap/servers/slapd/ns_slapd-protect_db.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/ns_slapd-protect_db.o `test -f 'ldap/servers/slapd/protect_db.c' || echo '$(srcdir)/'`ldap/servers/slapd/protect_db.c
-
-ldap/servers/slapd/ns_slapd-protect_db.obj: ldap/servers/slapd/protect_db.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/ns_slapd-protect_db.obj -MD -MP -MF ldap/servers/slapd/$(DEPDIR)/ns_slapd-protect_db.Tpo -c -o ldap/servers/slapd/ns_slapd-protect_db.obj `if test -f 'ldap/servers/slapd/protect_db.c'; then $(CYGPATH_W) 'ldap/servers/slapd/protect_db.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/protect_db.c'; fi`
- at am__fastdepCC_TRUE@	$(am__mv) ldap/servers/slapd/$(DEPDIR)/ns_slapd-protect_db.Tpo ldap/servers/slapd/$(DEPDIR)/ns_slapd-protect_db.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ldap/servers/slapd/protect_db.c' object='ldap/servers/slapd/ns_slapd-protect_db.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/ns_slapd-protect_db.obj `if test -f 'ldap/servers/slapd/protect_db.c'; then $(CYGPATH_W) 'ldap/servers/slapd/protect_db.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/protect_db.c'; fi`
-
 ldap/servers/slapd/ns_slapd-psearch.o: ldap/servers/slapd/psearch.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/ns_slapd-psearch.o -MD -MP -MF ldap/servers/slapd/$(DEPDIR)/ns_slapd-psearch.Tpo -c -o ldap/servers/slapd/ns_slapd-psearch.o `test -f 'ldap/servers/slapd/psearch.c' || echo '$(srcdir)/'`ldap/servers/slapd/psearch.c
 @am__fastdepCC_TRUE@	$(am__mv) ldap/servers/slapd/$(DEPDIR)/ns_slapd-psearch.Tpo ldap/servers/slapd/$(DEPDIR)/ns_slapd-psearch.Po
diff --git a/ldap/servers/plugins/replication/cl5_api.c b/ldap/servers/plugins/replication/cl5_api.c
index 9922131..8b1599e 100644
--- a/ldap/servers/plugins/replication/cl5_api.c
+++ b/ldap/servers/plugins/replication/cl5_api.c
@@ -56,7 +56,7 @@
 #endif
 
 
-#include "cl5_api.h"
+#include "cl5.h"
 #include "cl_crypt.h"
 #include "plhash.h" 
 #include "plstr.h"
@@ -1807,12 +1807,6 @@ static int _cl5Open (const char *dir, const CL5DBConfig *config, CL5OpenMode ope
 		_cl5SetDefaultDBConfig ();
 	}
 
-	/* init the clcache */
-	if (( clcache_init (&s_cl5Desc.dbEnv) != 0 )) {
-		rc = CL5_SYSTEM_ERROR;
-		goto done;
-	}
-
 	/* initialize trimming */
 	rc = _cl5TrimInit ();
 	if (rc != CL5_SUCCESS)
@@ -1855,6 +1849,12 @@ static int _cl5Open (const char *dir, const CL5DBConfig *config, CL5OpenMode ope
 		goto done;
 	}
 
+	/* init the clcache */
+	if (( clcache_init (&s_cl5Desc.dbEnv) != 0 )) {
+		rc = CL5_SYSTEM_ERROR;
+		goto done;
+	}
+
 	/* open database files */
 	rc = _cl5DBOpen (!didRecovery);
 	if (rc != CL5_SUCCESS)
@@ -5364,7 +5364,7 @@ static int _cl5CheckMissingCSN (const CSN *csn, const RUV *supplierRuv, CL5DBFil
 
 /* Helper functions that work with individual changelog files */
 
-/* file name format : <replica name>_<replica generation>db{2,3} */
+/* file name format : <replica name>_<replica generation>db{2,3,...} */
 static PRBool _cl5FileName2Replica (const char *file_name, Object **replica)
 {
     Replica *r;
@@ -6220,3 +6220,185 @@ cl5DbDirIsEmpty(const char *dir)
 
 	return isempty;
 }
+
+/*
+ * Write RUVs into the changelog;
+ * implemented for backup to make sure the backed up changelog contains RUVs
+ * Return values: 0 -- success
+ *                1 -- failure
+ */
+int
+cl5WriteRUV()
+{
+    int rc = 0;
+    Object *file_obj = NULL;
+    CL5DBFile *dbfile = NULL;
+    int closeit = 0;
+    int slapd_pid = 0;
+
+    changelog5Config config;
+
+    /* read changelog configuration */
+    changelog5_read_config (&config);
+    if (config.dir == NULL) {
+        /* Changelog is not configured; Replication is not enabled.
+         * we don't have to update RUVs.
+         * bail out - return success */
+        goto bail;
+    }
+
+    slapd_pid = is_slapd_running();
+    if (slapd_pid <= 0) {
+        /* I'm not a server, rather a utility.
+         * And the server is NOT running.
+         * RUVs should be in the changelog.
+         * we don't have to update RUVs.
+         * bail out - return success */
+        goto bail;
+    }
+
+    if (getpid() != slapd_pid) {
+        /* I'm not a server, rather a utility.
+         * And the server IS running.
+         * RUVs are not in the changelog and no easy way to retrieve them.
+         * bail out - return failure */
+        slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name_cl, 
+                     "cl5WriteRUV: server (pid %d) is already running; bail.\n",
+                     slapd_pid);
+        rc = 1;
+        goto bail;
+    }
+
+    /* file is stored in the changelog directory and is named
+     *        <replica name>.ldif */
+    if (CL5_STATE_OPEN != s_cl5Desc.dbState) {
+        rc = _cl5Open(config.dir, &config.dbconfig, CL5_OPEN_NORMAL);
+        if (rc != CL5_SUCCESS) {
+            slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name_cl, 
+                            "cl5WriteRUV: failed to open changelog\n");
+            goto bail;
+        }
+        s_cl5Desc.dbState = CL5_STATE_OPEN; /* force to change the state */
+        closeit = 1; /* It had not been opened; close it */
+    }
+                
+    file_obj = objset_first_obj(s_cl5Desc.dbFiles);
+    while (file_obj) {
+        dbfile = (CL5DBFile *)object_get_data(file_obj);
+        if (dbfile) {
+            _cl5WriteEntryCount(dbfile);
+            _cl5WriteRUV(dbfile, PR_TRUE);
+            _cl5WriteRUV(dbfile, PR_FALSE); 
+        }
+        file_obj = objset_next_obj(s_cl5Desc.dbFiles, file_obj);
+    }
+    if (file_obj) {
+        object_release (file_obj);
+    }
+bail:
+    if (closeit && (CL5_STATE_OPEN == s_cl5Desc.dbState)) {
+        _cl5Close ();
+        s_cl5Desc.dbState = CL5_STATE_CLOSED; /* force to change the state */
+    }
+    changelog5_config_done(&config);
+    return rc;
+}
+
+/*
+ * Delete RUVs from the changelog;
+ * implemented for backup to clean up RUVs
+ * Return values: 0 -- success
+ *                1 -- failure
+ */
+int
+cl5DeleteRUV()
+{
+    int rc = 0;
+    Object *file_obj = NULL;
+    CL5DBFile *dbfile = NULL;
+    int slapd_pid = 0;
+    int closeit = 0;
+
+    changelog5Config config;
+
+    /* read changelog configuration */
+    changelog5_read_config (&config);
+    if (config.dir == NULL) {
+        /* Changelog is not configured; Replication is not enabled.
+         * we don't have to update RUVs.
+         * bail out - return success */
+        goto bail;
+    }
+
+    slapd_pid = is_slapd_running();
+    if (slapd_pid <= 0) {
+        /* I'm not a server, rather a utility.
+         * And the server is NOT running.
+         * RUVs should be in the changelog.
+         * we don't have to update RUVs.
+         * bail out - return success */
+        goto bail;
+    }
+
+    if (getpid() != slapd_pid) {
+        /* I'm not a server, rather a utility.
+         * And the server IS running.
+         * RUVs are not in the changelog.
+         * bail out - return success */
+        slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name_cl, 
+                    "cl5DeleteRUV: server (pid %d) is already running; bail.\n",
+                    slapd_pid);
+        goto bail;
+    }
+
+    /* file is stored in the changelog directory and is named
+     *        <replica name>.ldif */
+    if (CL5_STATE_OPEN != s_cl5Desc.dbState) {
+        rc = _cl5Open(config.dir, &config.dbconfig, CL5_OPEN_NORMAL);
+        if (rc != CL5_SUCCESS) {
+            slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name_cl, 
+                            "cl5DeleteRUV: failed to open changelog\n");
+            goto bail;
+        }
+        s_cl5Desc.dbState = CL5_STATE_OPEN; /* force to change the state */
+        closeit = 1; /* It had been opened; no need to close */
+    }
+
+    file_obj = objset_first_obj(s_cl5Desc.dbFiles);
+    while (file_obj) {
+        dbfile = (CL5DBFile *)object_get_data(file_obj);
+
+        /* _cl5GetEntryCount deletes entry count after reading it */
+        rc = _cl5GetEntryCount(dbfile);
+        if (rc != CL5_SUCCESS)
+        {
+            slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name_cl, 
+                            "cl5DeleteRUV: failed to get/delete entry count\n");
+            goto bail;
+        }
+        /* _cl5ReadRUV deletes RUV after reading it */
+        rc = _cl5ReadRUV (dbfile->replGen, file_obj, PR_TRUE);    
+        if (rc != CL5_SUCCESS) {
+            slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name_cl, 
+                       "cl5DeleteRUV: failed to read/delete purge RUV\n");
+            goto bail;
+        }
+        rc = _cl5ReadRUV (dbfile->replGen, file_obj, PR_FALSE);    
+        if (rc != CL5_SUCCESS) {
+            slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name_cl, 
+                       "cl5DeleteRUV: failed to read/delete upper bound RUV\n");
+            goto bail;
+        }
+        file_obj = objset_next_obj(s_cl5Desc.dbFiles, file_obj);
+    }
+    if (file_obj) {
+        object_release (file_obj);
+    }
+bail:
+    if (closeit && (CL5_STATE_OPEN == s_cl5Desc.dbState)) {
+        _cl5Close ();
+        s_cl5Desc.dbState = CL5_STATE_CLOSED; /* force to change the state */
+    }
+    changelog5_config_done(&config);
+    return rc;
+}
diff --git a/ldap/servers/plugins/replication/cl5_api.h b/ldap/servers/plugins/replication/cl5_api.h
index 9590dd1..3a59111 100644
--- a/ldap/servers/plugins/replication/cl5_api.h
+++ b/ldap/servers/plugins/replication/cl5_api.h
@@ -455,4 +455,17 @@ int cl5_diskspace_is_available();
 */
 int cl5DbDirIsEmpty(const char *dir);
 
+/* Name: cl5WriteRUV
+   Description: Write RUVs into changelog db's.  Called before backup.
+   Parameters:	none
+   Return:		TRUE
+*/
+int cl5WriteRUV();
+
+/* Name: cl5DeleteRUV
+   Description: Read and delete RUVs from changelog db's.  Called after backup.
+   Parameters:	none
+   Return:		TRUE
+*/
+int cl5DeleteRUV();
 #endif
diff --git a/ldap/servers/plugins/replication/cl5_init.c b/ldap/servers/plugins/replication/cl5_init.c
index ed5aaf6..8ee725d 100644
--- a/ldap/servers/plugins/replication/cl5_init.c
+++ b/ldap/servers/plugins/replication/cl5_init.c
@@ -70,6 +70,8 @@ int changelog5_init()
 	if (config.dir == NULL)
 	{
 		/* changelog is not configured - bail out */
+		/* Note: but still changelog needs to be initialized to allow it
+		 * to configure after this point. (don't call cl5Cleanup) */
 		rc = 0; /* OK */
         goto done;
 	}
diff --git a/ldap/servers/plugins/replication/repl5_init.c b/ldap/servers/plugins/replication/repl5_init.c
index 3ca3ab2..2b6ebdf 100644
--- a/ldap/servers/plugins/replication/repl5_init.c
+++ b/ldap/servers/plugins/replication/repl5_init.c
@@ -299,7 +299,8 @@ multimaster_bepreop_init( Slapi_PBlock *pb )
 	    slapi_pblock_set( pb, SLAPI_PLUGIN_BE_PRE_DELETE_FN, (void *) multimaster_bepreop_delete ) != 0 ||
 		slapi_pblock_set( pb, SLAPI_PLUGIN_BE_PRE_MODIFY_FN, (void *) multimaster_bepreop_modify ) != 0 ||
 	    slapi_pblock_set( pb, SLAPI_PLUGIN_BE_PRE_MODRDN_FN, (void *) multimaster_bepreop_modrdn ) != 0 ||
-	    slapi_pblock_set( pb, SLAPI_PLUGIN_BE_PRE_CLOSE_FN, (void *) cl5Close ) != 0 )
+	    slapi_pblock_set( pb, SLAPI_PLUGIN_BE_PRE_CLOSE_FN, (void *) cl5Close ) != 0 ||
+	    slapi_pblock_set( pb, SLAPI_PLUGIN_BE_PRE_BACKUP_FN, (void *) cl5WriteRUV ) != 0 )
 	{
 		slapi_log_error( SLAPI_LOG_PLUGIN, repl_plugin_name, "multimaster_bepreop_init failed\n" );
 		rc= -1;
@@ -317,7 +318,8 @@ multimaster_bepostop_init( Slapi_PBlock *pb )
 		slapi_pblock_set( pb, SLAPI_PLUGIN_DESCRIPTION, (void *)&multimasterbepostopdesc ) != 0 ||
 		slapi_pblock_set( pb, SLAPI_PLUGIN_BE_POST_MODRDN_FN, (void *) multimaster_bepostop_modrdn ) != 0 ||
 		slapi_pblock_set( pb, SLAPI_PLUGIN_BE_POST_DELETE_FN, (void *) multimaster_bepostop_delete ) != 0 ||
-		slapi_pblock_set( pb, SLAPI_PLUGIN_BE_POST_OPEN_FN, (void *) changelog5_init ) != 0 )
+		slapi_pblock_set( pb, SLAPI_PLUGIN_BE_POST_OPEN_FN, (void *) changelog5_init ) != 0 ||
+		slapi_pblock_set( pb, SLAPI_PLUGIN_BE_POST_BACKUP_FN, (void *) cl5DeleteRUV ) != 0 )
 	{
 		slapi_log_error( SLAPI_LOG_PLUGIN, repl_plugin_name, "multimaster_bepostop_init failed\n" );
 		rc= -1;
diff --git a/ldap/servers/plugins/replication/repl5_replica_config.c b/ldap/servers/plugins/replication/repl5_replica_config.c
index df9c12a..2caa94f 100644
--- a/ldap/servers/plugins/replication/repl5_replica_config.c
+++ b/ldap/servers/plugins/replication/repl5_replica_config.c
@@ -907,7 +907,7 @@ static int replica_execute_cl2ldif_task (Object *r, char *returntext)
     Object *rlist [2];
     Replica *replica;
     char fName [MAXPATHLEN];
-    char *clDir;
+    char *clDir = NULL;
 
     if (cl5GetState () != CL5_STATE_OPEN)
     {
@@ -936,7 +936,7 @@ static int replica_execute_cl2ldif_task (Object *r, char *returntext)
     }
 
     PR_snprintf (fName, MAXPATHLEN, "%s/%s.ldif", clDir, replica_get_name (replica));
-    slapi_ch_free ((void**)&clDir);
+    slapi_ch_free_string (&clDir);
 
     slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name, 
                     "Beginning changelog export of replica \"%s\"\n",
@@ -965,7 +965,7 @@ static int replica_execute_ldif2cl_task (Object *r, char *returntext)
     Object *rlist [2];
     Replica *replica;
     char fName [MAXPATHLEN];
-    char *clDir;
+    char *clDir = NULL;
     changelog5Config config;
 
     if (cl5GetState () != CL5_STATE_OPEN)
@@ -1011,14 +1011,14 @@ static int replica_execute_ldif2cl_task (Object *r, char *returntext)
                     "Beginning changelog import of replica \"%s\"\n",
                     replica_get_name(replica));
     imprc = cl5ImportLDIF (clDir, fName, rlist);
-    slapi_ch_free ((void**)&clDir);
+    slapi_ch_free_string (&clDir);
     if (CL5_SUCCESS == imprc)
     {
         slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name, 
                         "Finished changelog import of replica \"%s\"\n",
                         replica_get_name(replica));
     }
-	else
+    else
     {
         PR_snprintf (returntext, SLAPI_DSE_RETURNTEXT_SIZE,
                      "Failed changelog import replica %s; "
@@ -1042,6 +1042,7 @@ static int replica_execute_ldif2cl_task (Object *r, char *returntext)
         rc = LDAP_OPERATIONS_ERROR;    
     }
 bail:
+    changelog5_config_done(&config);
     /* if cl5ImportLDIF returned an error, report it first. */
     return imprc?imprc:rc;
 }
diff --git a/ldap/servers/slapd/back-ldbm/archive.c b/ldap/servers/slapd/back-ldbm/archive.c
index 545a4b0..f5fab1a 100644
--- a/ldap/servers/slapd/back-ldbm/archive.c
+++ b/ldap/servers/slapd/back-ldbm/archive.c
@@ -425,9 +425,28 @@ int ldbm_back_ldbm2archive( Slapi_PBlock *pb )
         }
     }
 
+    return_value = plugin_call_plugins (pb, SLAPI_PLUGIN_BE_PRE_BACKUP_FN);
+    if (return_value) {
+        LDAPDebug1Arg(LDAP_DEBUG_BACKLDBM,
+            "db2archive: pre-backup-plugin failed (%d).\n", return_value);
+        if (is_slapd_running() && run_from_cmdline) {
+            LDAPDebug0Args(LDAP_DEBUG_ANY,
+                           "ERROR: Standalone db2bak is not supported when a "
+                           "multimaster replication enabled server is "
+                           "coexisting.\nPlease use db2bak.pl, instead.\n");
+            goto err;
+        }
+    }
+
     /* tell it to archive */
     return_value = dblayer_backup(li, directory, task);
 
+    return_value = plugin_call_plugins (pb, SLAPI_PLUGIN_BE_POST_BACKUP_FN);
+    if (return_value) {
+        LDAPDebug1Arg(LDAP_DEBUG_BACKLDBM,
+                "db2archive: post-backup-plugin failed (%d).\n", return_value);
+    }
+
     if (! run_from_cmdline) {
         ldbm_instance *inst;
         Object *inst_obj;
diff --git a/ldap/servers/slapd/pblock.c b/ldap/servers/slapd/pblock.c
index 256b6d2..3d945cd 100644
--- a/ldap/servers/slapd/pblock.c
+++ b/ldap/servers/slapd/pblock.c
@@ -952,6 +952,12 @@ slapi_pblock_get( Slapi_PBlock *pblock, int arg, void *value )
 		}
 		(*(IFP *)value) = pblock->pb_plugin->plg_bepreclose;
 		break;
+	case SLAPI_PLUGIN_BE_PRE_BACKUP_FN:
+		if (pblock->pb_plugin->plg_type != SLAPI_PLUGIN_BEPREOPERATION) {
+			return( -1 );
+		}
+		(*(IFP *)value) = pblock->pb_plugin->plg_beprebackup;
+		break;
 
 	/* backend postoperation plugin */
 	case SLAPI_PLUGIN_BE_POST_MODIFY_FN:
@@ -984,6 +990,12 @@ slapi_pblock_get( Slapi_PBlock *pblock, int arg, void *value )
 		}
 		(*(IFP *)value) = pblock->pb_plugin->plg_bepostopen;
 		break;
+	case SLAPI_PLUGIN_BE_POST_BACKUP_FN:
+		if (pblock->pb_plugin->plg_type != SLAPI_PLUGIN_BEPOSTOPERATION) {
+			return( -1 );
+		}
+		(*(IFP *)value) = pblock->pb_plugin->plg_bepostbackup;
+		break;
 
 	/* internal preoperation plugin */
 	case SLAPI_PLUGIN_INTERNAL_PRE_MODIFY_FN:
@@ -2372,6 +2384,12 @@ slapi_pblock_set( Slapi_PBlock *pblock, int arg, void *value )
 		}
 		pblock->pb_plugin->plg_bepreclose = (IFP) value;
 		break;
+	case SLAPI_PLUGIN_BE_PRE_BACKUP_FN:
+		if (pblock->pb_plugin->plg_type != SLAPI_PLUGIN_BEPREOPERATION) {
+			return( -1 );
+		}
+		pblock->pb_plugin->plg_beprebackup = (IFP) value;
+		break;
 
 	/* backend postoperation plugin */
 	case SLAPI_PLUGIN_BE_POST_MODIFY_FN:
@@ -2404,6 +2422,12 @@ slapi_pblock_set( Slapi_PBlock *pblock, int arg, void *value )
 		}
 		pblock->pb_plugin->plg_bepostopen = (IFP) value;
 		break;
+	case SLAPI_PLUGIN_BE_POST_BACKUP_FN:
+		if (pblock->pb_plugin->plg_type != SLAPI_PLUGIN_BEPOSTOPERATION) {
+			return( -1 );
+		}
+		pblock->pb_plugin->plg_bepostbackup = (IFP) value;
+		break;
 
 	/* internal preoperation plugin */
 	case SLAPI_PLUGIN_INTERNAL_PRE_MODIFY_FN:
diff --git a/ldap/servers/slapd/plugin.c b/ldap/servers/slapd/plugin.c
index b8257d1..d60d191 100644
--- a/ldap/servers/slapd/plugin.c
+++ b/ldap/servers/slapd/plugin.c
@@ -348,6 +348,7 @@ plugin_call_plugins( Slapi_PBlock *pb, int whichfunction )
 	case SLAPI_PLUGIN_BE_PRE_ADD_FN:
 	case SLAPI_PLUGIN_BE_PRE_DELETE_FN:
 	case SLAPI_PLUGIN_BE_PRE_CLOSE_FN:
+	case SLAPI_PLUGIN_BE_PRE_BACKUP_FN:
         plugin_list_number= PLUGIN_LIST_BEPREOPERATION;
 		do_op = 1; /* always allow backend callbacks (even during startup) */
 		break;
@@ -356,6 +357,7 @@ plugin_call_plugins( Slapi_PBlock *pb, int whichfunction )
 	case SLAPI_PLUGIN_BE_POST_ADD_FN:
 	case SLAPI_PLUGIN_BE_POST_DELETE_FN:
 	case SLAPI_PLUGIN_BE_POST_OPEN_FN:
+	case SLAPI_PLUGIN_BE_POST_BACKUP_FN:
         plugin_list_number= PLUGIN_LIST_BEPOSTOPERATION;
 		do_op = 1; /* always allow backend callbacks (even during startup) */
 		break;
@@ -2410,7 +2412,9 @@ plugin_invoke_plugin_pb (struct slapdplugin *plugin, int operation, Slapi_PBlock
 		operation == SLAPI_PLUGIN_CLOSE_FN || 
 		operation == SLAPI_PLUGIN_CLEANUP_FN ||
 		operation == SLAPI_PLUGIN_BE_PRE_CLOSE_FN ||
-		operation == SLAPI_PLUGIN_BE_POST_OPEN_FN)
+		operation == SLAPI_PLUGIN_BE_POST_OPEN_FN ||
+		operation == SLAPI_PLUGIN_BE_PRE_BACKUP_FN ||
+		operation == SLAPI_PLUGIN_BE_POST_BACKUP_FN)
 		return PR_TRUE;
 
 	PR_ASSERT (pb->pb_op);
diff --git a/ldap/servers/slapd/protect_db.h b/ldap/servers/slapd/protect_db.h
index bbb5324..0517556 100644
--- a/ldap/servers/slapd/protect_db.h
+++ b/ldap/servers/slapd/protect_db.h
@@ -43,7 +43,7 @@
 /* Header file for protect_db.c */
 
 int add_new_slapd_process(int exec_mode, int r_flag, int skip_flag);
-int is_slapd_running();
+/* int is_slapd_running(); */
 void remove_slapd_process();
 
 /*
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h
index c79eae8..9c655ef 100644
--- a/ldap/servers/slapd/slap.h
+++ b/ldap/servers/slapd/slap.h
@@ -961,12 +961,14 @@ struct slapdplugin {
 			IFP	plg_un_bepre_add;		  /* add */
 			IFP	plg_un_bepre_delete;	  /* delete */
 			IFP	plg_un_bepre_close;		  /* close */
+			IFP	plg_un_bepre_backup;	  /* backup */
 		} plg_un_bepre;
 #define plg_bepremodify	plg_un.plg_un_bepre.plg_un_bepre_modify
 #define plg_bepremodrdn	plg_un.plg_un_bepre.plg_un_bepre_modrdn
 #define plg_bepreadd	plg_un.plg_un_bepre.plg_un_bepre_add
 #define plg_bepredelete	plg_un.plg_un_bepre.plg_un_bepre_delete
 #define plg_bepreclose	plg_un.plg_un_bepre.plg_un_bepre_close
+#define plg_beprebackup	plg_un.plg_un_bepre.plg_un_bepre_backup
 
 		/* backend post-operation plugin structure */
 		struct plg_un_bepost_operation {
@@ -975,12 +977,14 @@ struct slapdplugin {
 			IFP	plg_un_bepost_add;	  /* add */
 			IFP	plg_un_bepost_delete;	  /* delete */
 			IFP	plg_un_bepost_open;		  /* open */
+			IFP	plg_un_bepost_backup;	  /* backup */
 		} plg_un_bepost;
 #define plg_bepostmodify		plg_un.plg_un_bepost.plg_un_bepost_modify
 #define plg_bepostmodrdn		plg_un.plg_un_bepost.plg_un_bepost_modrdn
 #define plg_bepostadd			plg_un.plg_un_bepost.plg_un_bepost_add
 #define plg_bepostdelete		plg_un.plg_un_bepost.plg_un_bepost_delete
 #define plg_bepostopen			plg_un.plg_un_bepost.plg_un_bepost_open
+#define plg_bepostbackup		plg_un.plg_un_bepost.plg_un_bepost_backup
 
         /* internal  pre-operation plugin structure */
 		struct plg_un_internal_pre_operation {
diff --git a/ldap/servers/slapd/slapi-plugin.h b/ldap/servers/slapd/slapi-plugin.h
index 6a17d82..821b911 100644
--- a/ldap/servers/slapd/slapi-plugin.h
+++ b/ldap/servers/slapd/slapi-plugin.h
@@ -5728,6 +5728,7 @@ typedef struct slapi_plugindesc {
 #define SLAPI_PLUGIN_BE_PRE_MODRDN_FN		452
 #define SLAPI_PLUGIN_BE_PRE_DELETE_FN		453
 #define SLAPI_PLUGIN_BE_PRE_CLOSE_FN		454
+#define SLAPI_PLUGIN_BE_PRE_BACKUP_FN		455
 
 /* postoperation plugin functions */
 #define SLAPI_PLUGIN_POST_BIND_FN		501
@@ -5756,6 +5757,7 @@ typedef struct slapi_plugindesc {
 #define SLAPI_PLUGIN_BE_POST_MODRDN_FN		552
 #define SLAPI_PLUGIN_BE_POST_DELETE_FN		553
 #define SLAPI_PLUGIN_BE_POST_OPEN_FN		554
+#define SLAPI_PLUGIN_BE_POST_BACKUP_FN		555
 
 /* matching rule plugin functions */
 #define SLAPI_PLUGIN_MR_FILTER_CREATE_FN	600
diff --git a/ldap/servers/slapd/slapi-private.h b/ldap/servers/slapd/slapi-private.h
index 91a6023..44e9bb3 100644
--- a/ldap/servers/slapd/slapi-private.h
+++ b/ldap/servers/slapd/slapi-private.h
@@ -1226,6 +1226,8 @@ void    DS_Sleep(PRIntervalTime ticks);
 /* plugin.c */
 int plugin_enabled(const char *plugin_name, void *identity);
 
+int is_slapd_running();
+
 #ifdef __cplusplus
 }
 #endif




More information about the 389-commits mailing list