aclocal.m4 configure ltmain.sh m4/pcre.m4 Makefile.in
by Nathan Kinder
configure | 7 ++++++-
m4/pcre.m4 | 7 ++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
New commits:
commit f81e7eac08e2af16fa6b8d245525c4a5ac5eb6f7
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Tue Feb 9 12:21:34 2010 -0800
Improve search for pcre header file
Some platforms (RHEL4 for instance) put the pcre header file in
a pcre subdirectory under /usr/include. This patch makes configure
first search in /usr/include/pcre, then falls back to /usr/include.
diff --git a/Makefile.in b/Makefile.in
old mode 100644
new mode 100755
diff --git a/aclocal.m4 b/aclocal.m4
old mode 100644
new mode 100755
diff --git a/configure b/configure
index e9647c2..4b6db2d 100755
--- a/configure
+++ b/configure
@@ -27061,7 +27061,12 @@ if test "${with_pcre+set}" = set; then
if test "$withval" = "yes"; then
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
- if test -f "/usr/include/pcre.h"; then
+ if test -f "/usr/include/pcre/pcre.h"; then
+ pcre_incdir="/usr/include/pcre"
+ pcre_inc="-I/usr/include/pcre"
+ pcre_lib='-L$(libdir)'
+ pcre_libdir='$(libdir)'
+ elif test -f "/usr/include/pcre.h"; then
pcre_incdir="/usr/include"
pcre_inc="-I/usr/include"
pcre_lib='-L$(libdir)'
diff --git a/ltmain.sh b/ltmain.sh
old mode 100644
new mode 100755
diff --git a/m4/pcre.m4 b/m4/pcre.m4
index 6096108..0c7569d 100644
--- a/m4/pcre.m4
+++ b/m4/pcre.m4
@@ -27,7 +27,12 @@ AC_ARG_WITH(pcre, [ --with-pcre=PATH Perl Compatible Regular Expression direc
if test "$withval" = "yes"; then
AC_MSG_RESULT(yes)
dnl - check in system locations
- if test -f "/usr/include/pcre.h"; then
+ if test -f "/usr/include/pcre/pcre.h"; then
+ pcre_incdir="/usr/include/pcre"
+ pcre_inc="-I/usr/include/pcre"
+ pcre_lib='-L$(libdir)'
+ pcre_libdir='$(libdir)'
+ elif test -f "/usr/include/pcre.h"; then
pcre_incdir="/usr/include"
pcre_inc="-I/usr/include"
pcre_lib='-L$(libdir)'
14 years, 2 months
Branch 'Directory_Server_8_2_Branch' - ldap/servers Makefile.am Makefile.in wrappers/ldap-agent.in wrappers/ldap-agent-initscript.in
by Nathan Kinder
Makefile.am | 16 +-
Makefile.in | 17 +-
ldap/servers/snmp/ldap-agent.conf.in | 30 ++++
ldap/servers/snmp/ldap-agent.h | 2
ldap/servers/snmp/main.c | 37 ++---
wrappers/ldap-agent-initscript.in | 221 +++++++++++++++++++++++++++++++++++
wrappers/ldap-agent.in | 2
7 files changed, 290 insertions(+), 35 deletions(-)
New commits:
commit 3d7bf3237b1fc6d3ee6b3c54c5b84259fd2fca80
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon Feb 8 11:40:00 2010 -0800
Add ldap-agent init script.
I moved the ldap-agent binary and wrapper to sbindir. It was
previously in bindir, yet it is not a user command. The location
really should be sbindir per FHS.
I added init scripts for the subagent, so it can now be managed
using "service dirsrv-snmp [start|stop|restart|condrestart|status]".
While doing this, I found that the parent process was exiting with
1 on success instead of 0, so I fixed that.
I added a default config file for the subagent as well. When using
the init script, the config file is hardcoded into this standard
location. Having this config template should also hopefully cut
down on configuration errors since it's self documenting.
The pid file location was also changed to go into /var/run per FHS.
Previously, it was written to the same directory as the log file.
diff --git a/Makefile.am b/Makefile.am
index e60d2bf..15645e5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -124,10 +124,10 @@ defaultgroup=@defaultgroup@
#------------------------
# Build Products
#------------------------
-sbin_PROGRAMS = ns-slapd
+sbin_PROGRAMS = ns-slapd ldap-agent-bin
-bin_PROGRAMS = dbscan-bin dsktune-bin infadd-bin ldap-agent-bin \
- ldclt-bin ldif-bin migratecred-bin mmldif-bin pwdhash-bin rsearch-bin
+bin_PROGRAMS = dbscan-bin dsktune-bin infadd-bin ldclt-bin \
+ ldif-bin migratecred-bin mmldif-bin pwdhash-bin rsearch-bin
server_LTLIBRARIES = libslapd.la libns-dshttpd.la
@@ -176,7 +176,8 @@ noinst_LIBRARIES = libavl.a libldaputil.a
#------------------------
config_DATA = $(srcdir)/lib/ldaputil/certmap.conf \
$(srcdir)/ldap/schema/slapd-collations.conf \
- ldap/admin/src/template-initconfig
+ ldap/admin/src/template-initconfig \
+ ldap/servers/snmp/ldap-agent.conf
# the schema files in this list are either not
# standard schema, not tested, or not compatible
@@ -257,13 +258,13 @@ sbin_SCRIPTS = ldap/admin/src/scripts/setup-ds.pl \
ldap/admin/src/scripts/remove-ds.pl \
ldap/admin/src/scripts/start-dirsrv \
ldap/admin/src/scripts/stop-dirsrv \
- ldap/admin/src/scripts/restart-dirsrv
+ ldap/admin/src/scripts/restart-dirsrv \
+ wrappers/ldap-agent
bin_SCRIPTS = ldap/servers/slapd/tools/rsearch/scripts/dbgen.pl \
wrappers/dbscan \
wrappers/dsktune \
wrappers/infadd \
- wrappers/ldap-agent \
wrappers/ldclt \
wrappers/ldif \
$(srcdir)/ldap/admin/src/logconv.pl \
@@ -329,7 +330,8 @@ task_SCRIPTS = ldap/admin/src/scripts/template-bak2db \
ldap/admin/src/scripts/template-verify-db.pl \
ldap/admin/src/scripts/template-dbverify
-init_SCRIPTS = wrappers/$(PACKAGE_NAME)
+init_SCRIPTS = wrappers/$(PACKAGE_NAME) \
+ wrappers/$(PACKAGE_NAME)-snmp
initconfig_DATA = ldap/admin/src/$(PACKAGE_NAME)
diff --git a/Makefile.in b/Makefile.in
index 24c6852..6b4464f 100755
--- a/Makefile.in
+++ b/Makefile.in
@@ -40,10 +40,10 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-sbin_PROGRAMS = ns-slapd$(EXEEXT)
+sbin_PROGRAMS = ns-slapd$(EXEEXT) ldap-agent-bin$(EXEEXT)
bin_PROGRAMS = dbscan-bin$(EXEEXT) dsktune-bin$(EXEEXT) \
- infadd-bin$(EXEEXT) ldap-agent-bin$(EXEEXT) ldclt-bin$(EXEEXT) \
- ldif-bin$(EXEEXT) migratecred-bin$(EXEEXT) mmldif-bin$(EXEEXT) \
+ infadd-bin$(EXEEXT) ldclt-bin$(EXEEXT) ldif-bin$(EXEEXT) \
+ migratecred-bin$(EXEEXT) mmldif-bin$(EXEEXT) \
pwdhash-bin$(EXEEXT) rsearch-bin$(EXEEXT)
noinst_PROGRAMS = makstrdb$(EXEEXT)
@SOLARIS_TRUE@am__append_1 = ldap/servers/slapd/slapi_counter_sunos_sparcv9.S
@@ -1232,7 +1232,8 @@ noinst_LIBRARIES = libavl.a libldaputil.a
#------------------------
config_DATA = $(srcdir)/lib/ldaputil/certmap.conf \
$(srcdir)/ldap/schema/slapd-collations.conf \
- ldap/admin/src/template-initconfig
+ ldap/admin/src/template-initconfig \
+ ldap/servers/snmp/ldap-agent.conf
# the schema files in this list are either not
@@ -1314,13 +1315,13 @@ sbin_SCRIPTS = ldap/admin/src/scripts/setup-ds.pl \
ldap/admin/src/scripts/remove-ds.pl \
ldap/admin/src/scripts/start-dirsrv \
ldap/admin/src/scripts/stop-dirsrv \
- ldap/admin/src/scripts/restart-dirsrv
+ ldap/admin/src/scripts/restart-dirsrv \
+ wrappers/ldap-agent
bin_SCRIPTS = ldap/servers/slapd/tools/rsearch/scripts/dbgen.pl \
wrappers/dbscan \
wrappers/dsktune \
wrappers/infadd \
- wrappers/ldap-agent \
wrappers/ldclt \
wrappers/ldif \
$(srcdir)/ldap/admin/src/logconv.pl \
@@ -1387,7 +1388,9 @@ task_SCRIPTS = ldap/admin/src/scripts/template-bak2db \
ldap/admin/src/scripts/template-verify-db.pl \
ldap/admin/src/scripts/template-dbverify
-init_SCRIPTS = wrappers/$(PACKAGE_NAME)
+init_SCRIPTS = wrappers/$(PACKAGE_NAME) \
+ wrappers/$(PACKAGE_NAME)-snmp
+
initconfig_DATA = ldap/admin/src/$(PACKAGE_NAME)
inf_DATA = ldap/admin/src/slapd.inf \
ldap/admin/src/scripts/dscreate.map \
diff --git a/ldap/servers/snmp/ldap-agent.conf.in b/ldap/servers/snmp/ldap-agent.conf.in
new file mode 100644
index 0000000..6593685
--- /dev/null
+++ b/ldap/servers/snmp/ldap-agent.conf.in
@@ -0,0 +1,30 @@
+# The agentx-master setting defines how to communicate
+# with the SNMP master agent using the AgentX protocol.
+# The default is to use a UNIX domain socket. If your
+# master agent is listening on a tcp port for AgentX
+# subagents, use a line like the following:
+#
+# agentx-master localhost:705
+agentx-master /var/agentx/master
+
+# The agent-logdir settings defines where the subagent
+# will write it's logfile.
+agent-logdir @localstatedir@/log/@package_name@
+
+# The server setting specifies a Directory Server
+# instance that you want to monitor. You must use one
+# server setting for each Directory Server instance. The
+# subagent requires at least one server setting to be
+# specified. The server setting
+# should be set to the name of the Directory Server
+# instance you would like to monitor. For example:
+#
+# server slapd-phonebook
+#
+# To monitor multiple Directory Server instances, add
+# an additional server parameter for each instance:
+#
+# server slapd-phonebook
+# server slapd-example
+# server slapd-directory
+
diff --git a/ldap/servers/snmp/ldap-agent.h b/ldap/servers/snmp/ldap-agent.h
index 30253d1..664d7e2 100644
--- a/ldap/servers/snmp/ldap-agent.h
+++ b/ldap/servers/snmp/ldap-agent.h
@@ -90,7 +90,7 @@ extern "C" {
#define CACHE_REFRESH_INTERVAL 15
#define UPDATE_THRESHOLD 20
#define SNMP_NUM_SEM_WAITS 10
-#define LDAP_AGENT_PIDFILE ".ldap-agent.pid"
+#define LDAP_AGENT_PIDFILE "ldap-agent.pid"
#define LDAP_AGENT_LOGFILE "ldap-agent.log"
/*************************************************************
diff --git a/ldap/servers/snmp/main.c b/ldap/servers/snmp/main.c
index 5b2ad68..04c4ee3 100644
--- a/ldap/servers/snmp/main.c
+++ b/ldap/servers/snmp/main.c
@@ -191,7 +191,7 @@ main (int argc, char *argv[]) {
fscanf(pid_fp, "%d", &child_pid);
fclose(pid_fp);
printf("ldap-agent: Started as pid %d\n", child_pid);
- exit(1);
+ exit(0);
}
/* initialize the agent */
@@ -205,7 +205,7 @@ main (int argc, char *argv[]) {
signal(SIGTERM, stop_server);
signal(SIGINT, stop_server);
- /* create pidfile in config file dir */
+ /* create pidfile */
child_pid = getpid();
if ((pid_fp = fopen(pidfile, "w")) == NULL) {
snmp_log(LOG_ERR, "Error creating pid file: %s\n", pidfile);
@@ -272,25 +272,24 @@ load_config(char *conf_path)
}
/* set pidfile path */
+ if ((pidfile = malloc(strlen(LOCALSTATEDIR) + strlen("/run/") +
+ strlen(LDAP_AGENT_PIDFILE) + 1)) != NULL) {
+ strncpy(pidfile, LOCALSTATEDIR, strlen(LOCALSTATEDIR));
+ /* The above will likely not be NULL terminated, but we need to
+ * be sure that we're properly NULL terminated for the below
+ * strcat() to work properly. */
+ pidfile[strlen(LOCALSTATEDIR)] = (char)0;
+ strcat(pidfile, "/run/");
+ strcat(pidfile, LDAP_AGENT_PIDFILE);
+ } else {
+ printf("ldap-agent: malloc error processing config file\n");
+ error = 1;
+ goto close_and_exit;
+ }
+
+ /* set default logdir to location of config file */
for (p = (conf_path + strlen(conf_path) - 1); p >= conf_path; p--) {
if (*p == '/') {
- /* set pidfile path */
- if ((pidfile = malloc((p - conf_path) +
- strlen(LDAP_AGENT_PIDFILE) + 2)) != NULL) {
- strncpy(pidfile, conf_path, (p - conf_path + 1));
- /* The above will likely not be NULL terminated, but we need to
- * be sure that we're properly NULL terminated for the below
- * strcat() to work properly. */
- pidfile[(p - conf_path + 2)] = (char)0;
- strcat(pidfile, LDAP_AGENT_PIDFILE);
- pidfile[((p - conf_path) + strlen(LDAP_AGENT_PIDFILE) + 1)] = (char)0;
- } else {
- printf("ldap-agent: malloc error processing config file\n");
- error = 1;
- goto close_and_exit;
- }
-
- /* set default logdir to location of config file */
if ((agent_logdir = malloc((p - conf_path) + 1)) != NULL) {
strncpy(agent_logdir, conf_path, (p - conf_path));
agent_logdir[(p - conf_path)] = (char)0;
diff --git a/wrappers/ldap-agent-initscript.in b/wrappers/ldap-agent-initscript.in
new file mode 100644
index 0000000..d4e791f
--- /dev/null
+++ b/wrappers/ldap-agent-initscript.in
@@ -0,0 +1,221 @@
+#!/bin/sh
+#
+# @package_name@-snmp This starts and stops @package_name@-snmp
+#
+# chkconfig: - 22 78
+# description: @capbrand@ Directory Server SNMP Subagent
+# processname: ldap-agent-bin
+# config: @sysconfdir@/@package_name(a)/config/ldap-agent.conf
+# pidfile: @localstatedir(a)/run/ldap-agent.pid
+#
+
+# Source function library.
+if [ -f /etc/rc.d/init.d/functions ] ; then
+. /etc/rc.d/init.d/functions
+fi
+# Source networking configuration.
+if [ -f /etc/sysconfig/network ] ; then
+. /etc/sysconfig/network
+fi
+
+# Check that networking is up.
+if [ "${NETWORKING}" = "no" ]
+then
+ echo "Networking is down"
+ exit 0
+fi
+
+# figure out which echo we're using
+ECHO_N=`echo -n`
+
+# some shells echo cannot use -n - linux echo by default cannot use \c
+echo_n()
+{
+ if [ "$ECHO_N" = '-n' ] ; then
+ echo "$*\c"
+ else
+ echo -n "$*"
+ fi
+}
+
+# failure and success are not defined on some platforms
+type failure > /dev/null 2>&1 || {
+failure()
+{
+ echo_n " FAILED"
+}
+}
+
+type success > /dev/null 2>&1 || {
+success()
+{
+ echo_n " SUCCESS"
+}
+}
+
+baseexec="ldap-agent"
+exec="@sbindir@/$baseexec"
+processname="ldap-agent-bin"
+prog="@package_name@-snmp"
+pidfile="@localstatedir(a)/run/ldap-agent.pid"
+configfile="@sysconfdir@/@package_name(a)/config/ldap-agent.conf"
+
+
+
+[ -f $exec ] || exit 0
+
+
+umask 077
+
+start() {
+ echo_n "Starting $prog: "
+ ret=0
+ subagent_running=0
+ subagent_started=0
+
+ # the subagent creates a pidfile and writes
+ # the pid to it when it is fully started.
+ if [ -f $pidfile ]; then
+ pid=`cat $pidfile`
+ name=`ps -p $pid | tail -1 | awk '{ print $4 }'`
+ if kill -0 $pid && [ $name = "$processname" ]; then
+ echo_n " already running"
+ success; echo
+ subagent_running=1
+ else
+ echo " not running, but pid file exists"
+ echo_n " ... attempting to start anyway"
+ fi
+ fi
+
+ if [ $subagent_running -eq 0 ] ; then
+ rm -f $pidfile
+ $exec $configfile > /dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ subagent_started=1 # well, perhaps not running, but started ok
+ else
+ failure; echo
+ ret=1
+ fi
+ fi
+ # ok, if we started the subagent successfully, let's see
+ # if it is really running and ready to serve requests.
+ if [ $subagent_started -eq 1 ] ; then
+ loop_counter=1
+ # wait for 10 seconds
+ max_count=10
+ while test $loop_counter -le $max_count ; do
+ loop_counter=`expr $loop_counter + 1`
+ if test ! -f $pidfile ; then
+ if kill -0 $pid > /dev/null 2>&1 ; then
+ sleep 1
+ else
+ break
+ fi
+ else
+ pid=`cat $pidfile`
+ break
+ fi
+ done
+ if kill -0 $pid > /dev/null 2>&1 && test -f $pidfile ; then
+ success; echo
+ else
+ failure; echo
+ ret=1
+ fi
+ fi
+
+ exit $ret
+}
+
+stop() {
+ echo_n "Shutting down $prog: "
+ if [ -f $pidfile ]; then
+ pid=`cat $pidfile`
+ subagent_stopped=0
+ if kill -0 $pid > /dev/null 2>&1 ; then
+ kill $pid
+ if [ $? -eq 0 ]; then
+ subagent_stopped=1
+ else
+ failure; echo
+ fi
+ else
+ echo_n " subagent not running"
+ failure; echo
+ fi
+ if [ $subagent_stopped -eq 1 ] ; then
+ loop_counter=1
+ # wait for 10 seconds
+ max_count=10
+ while test $loop_counter -le $max_count; do
+ loop_counter=`expr $loop_counter + 1`
+ if kill -0 $pid > /dev/null 2>&1 ; then
+ sleep 1
+ else
+ if test -f $pidfile ; then
+ rm -f $pidfile
+ fi
+ break
+ fi
+ done
+ if test -f $pidfile ; then
+ failure; echo
+ else
+ success; echo
+ rm -f $pidfile
+ fi
+ fi
+ else
+ echo_n " subagent already stopped"
+ failure; echo
+ fi
+}
+
+reload() {
+ stop
+ start
+}
+
+restart() {
+ stop
+ start
+}
+
+condrestart() {
+ if [ -f $pidfile ]; then
+ pid=`cat $pidfile`
+ name=`ps -p $pid | tail -1 | awk '{ print $4 }'`
+ if kill -0 $pid && [ $name = "$processname" ]; then
+ restart
+ fi
+ fi
+}
+
+status() {
+ ret=0
+ if [ -f $pidfile ]; then
+ pid=`cat $pidfile`
+ if kill -0 $pid > /dev/null 2>&1 ; then
+ echo "$prog (pid $pid) is running..."
+ else
+ echo "$prog dead but pid file exists"
+ ret=1
+ fi
+ else
+ echo "$prog is stopped"
+ ret=3
+ fi
+ exit $ret
+}
+
+
+case "$1" in
+ start|stop|restart|reload|condrestart|status)
+ $1
+ ;;
+ *)
+ echo Unknown command $1
+ echo "Usage: $0 {start|stop|restart|reload|condrestart|status}"
+ exit 2
+esac
diff --git a/wrappers/ldap-agent.in b/wrappers/ldap-agent.in
index 0b19d8e..266507a 100755
--- a/wrappers/ldap-agent.in
+++ b/wrappers/ldap-agent.in
@@ -5,7 +5,7 @@
###############################################################################
LIB_DIR=@nss_libdir@:@nspr_libdir@:@ldapsdk_libdir@:@netsnmp_libdir@
-BIN_DIR=@bindir@
+BIN_DIR=@sbindir@
COMMAND=ldap-agent-bin
# We don't need to load any mibs, so set MIBS to nothing.
14 years, 2 months
Branch 'Directory_Server_8_2_Branch' - ldap/servers
by Nathan Kinder
ldap/servers/slapd/back-ldbm/dblayer.c | 8 ++++++-
ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c | 28 ++++++++++++++++++++++++-
ldap/servers/slapd/back-ldbm/proto-back-ldbm.h | 1
3 files changed, 35 insertions(+), 2 deletions(-)
New commits:
commit 736321aa6a78dc4bab41d86353553a6fb2b12516
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Mon Feb 8 08:49:51 2010 -0800
548535 - memory leak in attrcrypt
https://bugzilla.redhat.com/show_bug.cgi?id=548535
Description:
The attrcrypt module maintains the inst_attrcrypt_state_private
field in the instance structure (ldbm_instance) to store the private
keys. The area and the space for the private keys are allocated in
attrcrypt_init which is called from dblayer_instance_start.
A backend instance could be closed and restarted multiple times
(for instance, in the bulk_import, which is used by the replica
initialization), but the area had no chance to be freed.
This patch is adding the clean-up code.
diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c
index 7cf407c..1a56c96 100644
--- a/ldap/servers/slapd/back-ldbm/dblayer.c
+++ b/ldap/servers/slapd/back-ldbm/dblayer.c
@@ -1776,7 +1776,7 @@ autosize_import_cache(struct ldbminfo *li)
size_t pagesize, pages, procpages, availpages;
dblayer_sys_pages(&pagesize, &pages, &procpages, &availpages);
- LDAPDebug(LDAP_DEBUG_ANY, "dblayer_instance_start: "
+ LDAPDebug(LDAP_DEBUG_ANY, "autosize_import_cache: "
"pagesize: %d, pages: %d, procpages: %d\n",
pagesize, pages, procpages);
if (pagesize) {
@@ -2439,6 +2439,12 @@ int dblayer_instance_close(backend *be)
if (NULL == inst)
return -1;
+ if (attrcrypt_cleanup_private(inst)) {
+ LDAPDebug(LDAP_DEBUG_ANY,
+ "Error: failed to clean up attrcrypt system for %s\n",
+ inst->inst_name, 0, 0);
+ }
+
return_value = dblayer_close_indexes(be);
/* Now close id2entry if it's open */
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
index 6a93549..4e2e6cb 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
@@ -461,7 +461,10 @@ attrcrypt_init(ldbm_instance *li)
SECKEYPublicKey *public_key = NULL;
LDAPDebug(LDAP_DEBUG_TRACE,"-> attrcrypt_init\n", 0, 0, 0);
if (slapd_security_library_is_initialized()) {
- li->inst_attrcrypt_state_private = NULL;
+ /* In case the backend instance is restarted,
+ * inst_attrcrypt_state_private in li could have memory containing
+ * private keys. The private data should be cleaned up first. */
+ attrcrypt_cleanup_private(li);
/* Get the server's private key, which is used to unwrap the stored symmetric keys */
ret = attrcrypt_fetch_private_key(&private_key);
if (!ret) {
@@ -515,6 +518,29 @@ int attrcrypt_check_enable_cipher(attrcrypt_cipher_entry *ace)
return ret;
}
+/*
+ * This function cleans up the inst_attrcrypt_state_private in each backend
+ * instance.
+ */
+int
+attrcrypt_cleanup_private(ldbm_instance *li)
+{
+ int i = 0;
+ attrcrypt_cipher_state **current = NULL;
+
+ LDAPDebug(LDAP_DEBUG_TRACE, "-> attrcrypt_cleanup_private\n", 0, 0, 0);
+ if (li && li->inst_attrcrypt_state_private) {
+ for (current = &(li->inst_attrcrypt_state_private->acs_array[0]);
+ *current; current++) {
+ attrcrypt_cleanup(*current);
+ slapi_ch_free((void **)current);
+ }
+ slapi_ch_free((void **)&li->inst_attrcrypt_state_private);
+ }
+ LDAPDebug(LDAP_DEBUG_TRACE, "<- attrcrypt_cleanup_private\n", 0, 0, 0);
+ return 0;
+}
+
int
attrcrypt_cleanup(attrcrypt_cipher_state *acs)
{
diff --git a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
index dbaefc1..6f7d999 100644
--- a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
+++ b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
@@ -633,6 +633,7 @@ int attrcrypt_encrypt_entry_inplace(backend *be, const struct backentry *inout);
int attrcrypt_encrypt_entry(backend *be, const struct backentry *in, struct backentry **out);
int attrcrypt_encrypt_index_key(backend *be, struct attrinfo *ai, const struct berval *in, struct berval **out);
int attrcrypt_init(ldbm_instance *li);
+int attrcrypt_cleanup_private(ldbm_instance *li);
/*
* ldbm_usn.c
14 years, 2 months
Changes to 'Directory_Server_8_2_Branch'
by Nathan Kinder
New branch 'Directory_Server_8_2_Branch' available with the following commits:
commit 84ac47513ba85192c0afbd73601a423a7d632f62
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Wed Feb 3 14:16:29 2010 -0800
560827 - Admin Server templates: DistinguishName validation fails
https://bugzilla.redhat.com/show_bug.cgi?id=560827
Description: adding a perl subroutine dnEscape to escape special
characters and eliminate spaces around ',', which is to make
the given dn compliant with RFC4514.
commit c5bd809930162816c708832e918e9eb75673bd83
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Jan 28 10:36:40 2010 -0800
247413 - Incorrect error on multiple identical value add
https://bugzilla.redhat.com/show_bug.cgi?id=247413
[Problem Description] Adding multiple identical values returns
"Operations error (LDAP_OPERATIONS_ERROR == 0x1)" instead of
"Type or value exists (LDAP_TYPE_OR_VALUE_EXISTS == 0x14)"
E.g.,
dn: ou=test,dc=example,dc=com
changetype: modify
replace: description
description: test
description: test
modifying entry "ou=test,dc=example,dc=com"
ldap_modify: Operations error (1)
[Fix Description] API valueset_replace used to override any
error from the lower layer with LDAP_OPERATIONS_ERROR. If
the error is LDAP_TYPE_OR_VALUE_EXISTS, the error is now
returned as is.
commit 396e5f20f27e0abf5960455e3ef79b3bbc3a6423
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Jan 27 15:11:23 2010 -0800
Bug 549554 - Trim single-valued attributes before sending to AD
There are a number of attributes that AD defines as single-valued
that are multi-valued in the LDAP RFCs. We already had a few
special cases in the winsync code where we only send one attribute
to AD to allow the change to be accepted. We then simply check if
the value in AD is present in DS when comparing entries for further
changes.
This fix cleans up that old implementation a bit by adding a static
list of these single-valued attributes and a helper function to
check if a particular type is in that list. I also had to extend
the attr_compare_present() function to allow a length to be passed
in for limiting the comparison to a portion of the values. This is
needed for the initials attribute, which is single-valued and length
constrained in AD.
commit 0c8be3774487186817607280e31b39ab0c98ae72
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Jan 26 11:15:18 2010 -0700
Bug 537466 - nsslapd-distribution-plugin should not require plugin name to begin with "lib"
https://bugzilla.redhat.com/show_bug.cgi?id=537466
Resolves: bug 537466
Bug Description: nsslapd-distribution-plugin should not require plugin name to begin with "lib"
Reviewed by: nhosoi (Thanks!)
Branch: HEAD
Fix Description: We use the function PL_GetLibraryName from NSPR to get the
platform specific DLL/shared lib filename suffix. Unfortunately, this function
also prepends the string "lib" to the given name if the given file has no
suffix. If the given name already has the correct suffix, it does not prepend
the "lib" to the name. get_plugin_name() should look for the original
library name in the string returned by PL_GetLibraryName. If it is there, and
has something before it in the string, see if it is "/lib" - if so, remove the
extraneous "lib" string. If "/lib" is not there, then just pass the string
through as is.
To summarize:
/full/path/to/name.so -> /full/path/to/name.so - error if /full/path/to/name.so does not exist
name -> /default/plugin/path/libname.so -> /default/plugin/path/name.so
name.so -> /default/plugin/path/name.so
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 538e38276d6eb6653b072b92606f26b1c85db60f
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Jan 26 09:51:05 2010 -0700
Bug 543080 - Bitwise plugin fails to return the exact matched entries for Bitwise search filter
https://bugzilla.redhat.com/show_bug.cgi?id=543080
Resolves: bug 543080
Bug Description: Bitwise plugin fails to return the exact matched entries for Bitwise search filter
Reviewed by: nhosoi (Thanks!)
Branch: HEAD
Fix Description: The Microsoft Windows AD bitwise filters do not work exactly
like the usual bitwise AND (&) and OR (|) operators.
For the AND case the matching rule is true only if all bits from the value
given in the filter value match the value from the entry.
For the OR case, the matching rule is true if any bits from the value given
in the filter match the value from the entry.
For the AND case, this means that even though (a & b) is True,
if (a & b) != b, the matching rule will return False.
For the OR case, this means that even though (a | b) is True,
this may be because there are bits in a. But we only care
about bits in a that are also in b. So we do (a & b) - this
will return what we want, which is to return True if any of
the bits in b are also in a.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit c8514b36d226598b60384caff1331a8fde0b15c6
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Jan 25 17:30:23 2010 -0700
Net::LDAP password modify extop breaks; msgid in response is 0xFF
https://bugzilla.redhat.com/show_bug.cgi?id=554887
Resolves: bug 554887
Bug Description: Net::LDAP password modify extop breaks; msgid in response is 0xFF
Reviewed by: ???
Branch: HEAD
Fix Description: We use a fake conn for the internal password modify operation
so that we can use the real credentials. Unfortunately, this messes up the
result code - because there is a real, non-NULL conn, it thinks it needs to
send the result back to a real client rather than handle it as an internal
operation. It looks as though o_result_handler is only used for internal
operations. The fix is to change the result handling code to check for
an internal op OR conn == NULL to see if we should use the result handler
instead.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit c24536e308d6c601142bbd0cfda7083af074d8d1
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Mon Jan 25 15:05:59 2010 -0800
544089 - Referential Integrity Plugin does not take into account the attribute
subtypes
Bug Description: Referential Integrity Plugin does not change the references
in subtyped attributes like "manager;en" or "ou;19"
Fix Description: The problem is in the way the function int update_integrity
(char **argv, char *origDN, char *newrDN, int logChanges) in referint.c makes
the changes. The initial search with the filter ldap_create_filter( filter,
filtlen, "(%a=%e)", NULL, NULL, argv[i], origDN, NULL) finds the entries with
attributes and with attribute subtypes. But after that when generating the
necessary changes (attribute1.mod_type = argv[i] and attribute2.mod_type =
argv[i]) the function takes care only of the "base" attributes listed in the
plugin arguments. We should parse each found entry to find all the attribute
subtypes with the value concerned and then make changes to them all.
Note: This bug was reported by andrey.ivanov(a)polytechnique.fr, and the bug
fix was also provided by him. The patch was reviewed by rmeggins(a)redhat.com
as well as nhosoi(a)redhat.com.
commit 82d9707e7c158c3734e3ec4b338b549c096a4904
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Jan 25 08:25:36 2010 -0700
several spelling errors
https://bugzilla.redhat.com/show_bug.cgi?id=558518
Resolves: bug 558518
Bug Description: several spelling errors
Reviewed by: ???
Branch: HEAD
Fix Description: Fix several spelling errors in error messages and man pages.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 45a42f1ebf418adfd29dbe07f02f9cd1e4184df9
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Fri Jan 22 09:17:33 2010 -0700
Bug 519459 - Semi-hardcoded include and lib directories in db.m4
https://bugzilla.redhat.com/show_bug.cgi?id=519459
Resolves: bug 519459
Bug Description: Semi-hardcoded include and lib directories in db.m4
Reviewed by: nkinder (Thanks!)
Branch: HEAD
Fix Description: Added --with-db-inc and --with-db-lib to configure. For the
default case, check first in /usr/include/db4, then in /usr/include.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 0f013808e5796d798d7eaae864b1585fa2580e50
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Fri Jan 22 09:37:08 2010 -0800
Bug 536703 - Don't send empty mod to AD for mapped DN values
When using winsync, setting a mapped DN attribute (such as seeAlso) to
a DN outside the scope of the sync agreement causes an empty modify
operation to be sent to AD. This causes AD to respond with LDAP error
89, which triggers the update to abort.
The problem is that windows_update_remote_entry() uses a flag to
determine if it has a modify to send to AD. This flag is set by
windows_generate_update_mods(), but the mods are empty since it is
detecting that the DN used in seeAlso is not in the scope of the sync
agreement.
The fix is to only set the modify flag if we actually have mods to send.
commit ad9f90b14d03f4a1bdb178f1d75c62e3f77041ed
Author: Noriko Hosoi <nhosoi(a)jiji.localdomain>
Date: Thu Jan 14 10:58:12 2010 -0800
ldclt: -e randombinddnfromfile fails with LDAP_UNWILLING_TO_PERFORM (53)
https://bugzilla.redhat.com/show_bug.cgi?id=555189
Resolves: bug 555189
Bug Description:
ldclt code is not passing the password correctly to ldap_sasl_bind_s.
The server receives NULL credential. Due to the default configuration:
nsslapd-allow-unauthenticated-binds: off
the unauthenticated bind fails with LDAP_UNWILLING_TO_PERFORM.
Reviewed by: rmeggins(a)redhat.com
Files: see diff
Branch: HEAD
Fix Description:
When "-e randombinddnfromfile=file" is given, bind dn and password pair
is retrieved from the file and is supposed to pass to ldap_sasl_bind_s.
Although the password was read from the file, but it was not set to the
berval "cred" which was passed to ldap_sasl_bind_s. Therefore, the
bind operation tried to bind with bind dn and NULL password, which now
fails since it's considered as an unauthenticated bind. This change
fixes the problem. Also, a usage typo is being fixed.
Platforms tested: Fedora 11
Flag Day: no
Doc impact: no
commit 15f2fc38002279317d1c07a71408c6da0a1dfd45
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Thu Jan 14 09:38:28 2010 -0700
rhds81 hub with 71 master - err=32 on replica base search during replication
https://bugzilla.redhat.com/show_bug.cgi?id=509201
Resolves: bug 509201
Bug Description: rhds81 hub with 71 master - err=32 on replica base search during replication
Reviewed by: nhosoi (Thanks!)
Branch: HEAD
Fix Description: This patch doesn't fix the problem, but it makes it less likely to occur in the future. The problem is that we are not consistent about using normalized DNs everywhere. Without using a normalized DN, it is impossible to construct a DN containing another DN (e.g. cn="dc=example, dc=com", cn=mapping tree, cn=config) that another client can match on. This patch at least forces setup to use a normalized DN for the suffix.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: Yes - we will need to document what to do when running into this problem, as in the workaround in the bug report
commit 22d1aaef3bcc415b58bb0e6c979d2f2e3c8a0367
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Tue Jan 12 16:03:52 2010 -0800
Add Doxygen comments for SLAPI attr, value, and valueset functions.
This adds Doxygen comment blocks to the public header file for the
attr, value, and valueset related fucntions and defines.
commit 69a2b842328d9ca7ee59e318397d276322c348e1
Author: Endi S. Dewata <endisd(a)gmail.com>
Date: Tue Jan 12 04:00:30 2010 -0600
Uninitialized mutex in Retro Changelog Plugin. https://bugzilla.redhat.com/show_bug.cgi?id=554841 Resolves: bug 554841 Bug Description: Enabling Retro Changelog Plugin on a DS instance provisioned by Samba will crash slapd during startup. Branch: HEAD Fix Description: Apparently the retrocl_internal_lock is still NULL when it's used in retrocl_get_first_changenumber(). The solution is to initialize the lock in the retrocl_plugin_init(). Platforms tested: F12 i386
commit 9c698f2c256ae4057ff96fec4c2b591e08ce49f3
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Jan 12 14:57:51 2010 -0700
bump version to 1.2.6.a1
commit 282ef3a8896a61016c2eb0d73fd9da82e256adf5
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Jan 11 11:51:39 2010 -0700
Workaround bogus base64 encoded passwords that end in newline
https://bugzilla.redhat.com/show_bug.cgi?id=552421
Resolves: bug 552421
Bug Description: Cannot log into admin server after upgrade (fedora-ds-admin-1.1.6 -> 389-admin-1.1.9
Reviewed by: nkinder (Thanks!)
Branch: HEAD
Fix Description: Some older versions of setup encoded the admin password in SHA and added a trailing newline to the userPassword attribute when adding the admin entry. This changes the SHA passsword compare routine to ignore a trailing
newline character in the dbpwd. newline is not a valid base64 character.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 48b0a02528d7de037bf3cf01e10d6612759872b4
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Fri Jan 8 16:09:11 2010 -0800
Bug 553455 - fix segfault when changing a password
If a local password policy is set that does not have a storage
scheme specified, the server can crash since it tries to dereference
a NULL pointer to access the hashing function. This fix simply
checks if the storage scheme is set before trying to access the
hashing function.
commit 56fefdcef31d2cafffac9a1346d5c1fee51fde14
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Jan 4 11:14:52 2010 -0700
version 1.2.5.rc4
commit 7f8317c633e6ee8d96c3167f655bb0dd97ad940d
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Jan 4 10:54:47 2010 -0700
Password replication from 389DS to AD fails
https://bugzilla.redhat.com/show_bug.cgi?id=537956
Resolves: bug 537956
Bug Description: Password replication from 389DS to AD2008(64bit) fails, all other replication continues
Reviewed by: nhosoi (Thanks!)
Branch: HEAD
Fix Description: Broken during adding support for openldap API. I added the
function slapi_ldap_bind which returns the result code. The old function
being used by the winsync code expected the function to return the msgid, which
is now returned as one of the function arguments instead.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 0211dbb22a6ae5041012d424d53d47769d21a8b7
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Thu Dec 17 17:01:36 2009 -0700
bump version to 1.2.5.rc3
commit d9e33093b024d260e87ad926d3396fd0b7e21edc
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Thu Dec 17 14:12:16 2009 -0800
Bug 548537 - Fix memory leaks in DNA plugin
This fixes three small memory leaks in the DNA plugin. We were
leaking the extended operation request data and response data for
range requests as well as an attribute value for ADD operations
when checking for the magic value.
commit 66f081858aa512f98d485b2d2ac53a6f4656d982
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Dec 16 10:58:07 2009 -0800
Add missing paran from fix for bug 518084
The fix for bug 518084 was missing a paran on one line of source
for the pblock functions. This corrects the syntax error.
commit 945d14483eefb2e9656dbeed8375e1ab0f4a0b24
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Dec 9 08:27:29 2009 -0800
Document SLAPI DN related functions.
This patch adds Doxygen comment blocks for the DN related functions
in slapi-plugin.h.
commit d73a44afaf4ff21992c2ec031df3eb7888aa745a
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Tue Dec 15 14:16:04 2009 -0800
Bug 518084 - Fix out of order retro changelog entries
When using the retro changelog plugin, post-op plugins that perform
internal operations (such as memberOf) can result in the internal
operation preceeding the original operation in the changelog.
The fix is to give the retro changelog a higher precedence than the
other post-op plugins. This required some core server changes to
be made around the plugin precedence to allow an object plugin to
pass it's precedence into it's calls to slapi_register_plugin()
when it registers other plugin types.
I added an update LDIF to set the plugin precedence when running
"setup-ds.pl -u".
commit 224a856826906867a7525ece654e98caf600276c
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Fri Dec 11 08:54:16 2009 -0800
Set unknown attribute syntax to Octet String.
When an unknown attribute type is used (when adding an entry using
the extensibleObject objectclass for example), the syntax of the
attribute defaults to "Directory String". This places syntax
restrictions on the attribute, limiting the attribtues use to
specific types of values. This patch changes the syntax for
unknown attribute to "Octet String", which allows 0 or more UTF-8
bytes. This will allow unknown attributes to store binary or empty
values.
commit ba4956207cca2fda5c4865f694dab8f4409d4111
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Dec 9 14:25:38 2009 -0800
Bug 497556 - LDAPI connections cause TCP performance degradation
If a slot from the connection table had previously been used for
an LDAPI connection, it would cause serious performance degradation
(20 times worse on my system) to a TCP connection that reused the
same slot. The problem was that we were not clearing the flag
that indicates that a connection is a UNIX local socket in the
connection cleanup function. Clearing this flag makes the reused
slots perform as expected.
commit ca2f12161c44d7764398afbf3875f6c8639b7967
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Dec 7 15:58:16 2009 -0700
bump version to 1.2.5.rc2
commit 001dbad1bc7e8285ac2a8ec11e869722bfb99487
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon Dec 7 09:25:09 2009 -0800
Bug 195302 - Fix crash regression from previous fix
The previous fix for bug 195302 caused a crash during import. We
need to check if sdn is NULL before trying to get the dn member
from it in pw_encodevals_ext().
commit 0987ef9dee862ba997266b055ce4ad7a664e57a4
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Dec 2 14:03:47 2009 -0800
Bug 201275 - Make SASL EXTERNAL bind obey account lock
This patch makes SASL EXTERNAL binds obey the account lock. The
previous code was allowing the bind through even if the account
was locked.
This patch was contributed by Ulf Weltman of Hewlett Packard.
commit c3711962240acff64e63bf1c669df466702455d9
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Dec 2 10:47:46 2009 -0800
Bug 193297 - Call bind pre-op and post-op plug-ins for SASL binds
This patch makes SASL binds call the pre-op and post-op plug-ins.
The previous code was not calling the plug-ins for SASL binds.
This fix was contributed by Ulf Weltman of Hewlett Packard.
commit d2c3df96d7ebfe51b446c16fc251c8b0d445b8be
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Dec 2 10:42:13 2009 -0700
bump version to 1.2.5.rc1
commit a52cbe4af2fabcc8b336fedd2d0ed67dc8399419
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Tue Dec 1 16:27:23 2009 -0800
Bug 195302 - Allow fine-grained password storage scheme to be set
This patch makes the server use the password storage scheme set in
the appropriate fine-grained password policy (if it is set). The
previous code was always using the global storage scheme.
This fix was based off of a fix contributed by Ulf Weltman of
Hewlett Packard.
commit 9358f2403681c55a93f0d59aa083a48a9792aa78
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Nov 24 12:16:23 2009 -0700
Add Named Pipe Log Script, plugins, man page
The Named Pipe Log Script allows you to replace a log file with a named pipe attached to a script. The server can then send the log output to a script instead of to a log file. This allows you to do many different things such as:
* log only certain events e.g. failed binds, connections from certain ip addresses, etc.
* log only lines that match a certain pattern
* log only the last N lines - useful for enabling full error log debug levels in production environments
* send an email or other notification when a certain event is detected
The script is written in python, and allows plugins. By default, the script will log the last N lines (default 1000). There are two plugins provided - one to log only failed bind attempts, and one that will log only lines that match given regular expressions.
Reviewed by: nkinder (Thanks!) - found a bug in a comment
Resolves: bug 486171
Bug Description: [RFE] Access log - Failed binds
commit 61de51b42c634be93363e8dafa6dedd269c6c94e
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Nov 18 22:05:57 2009 -0800
Add bounds checking in DN unescape function
My previous patch for bug 504817 could cause us to read past the
end of the RDN string if it ended with a single escape character.
This fix adds a bounds check to ensure that we don't read past
the end of the string.
commit ab59afa8b6876caeec7f7133f1b347bec10be80e
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon Nov 16 15:49:57 2009 -0800
Avoid freeing NULL trimmed passwords list
My previous patch for removing the fixed length buffer used in
the password history checking code introduced a problem where we
could attempt to free a NULL pointer.
commit ed94076581357589124340ad71347f2e0c04aa8a
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon Nov 16 12:03:26 2009 -0800
Bug 515329 - Correct attribute value inconsistency on replica
When performing operations with multiple mods to the same multi-valued
attribute on a single modify operation, a replica was not resolving
the attribute values correctly. This would lead to an inconsistency
between the master the change was initially performed against and the
replicas. The problem would occur with a modify operation such as
this:
dn: uid=testuser,dc=example,dc=com
changetype: modify
add: cn
cn: 2
-
replace: cn
cn: 3
The problem is that we use the CSNs from the attribute state data
to determine which values should remain after the operation (this is
done to merge with later occuring changes from other masters). The
CSN for all mods within the same modify operation is exactly the same.
The old code was looking for attributes older than the deletion that
occurs as a part of the replace, then deleting those values. This
would cause the value of "2" in the above example to remain. Simply
changing this comparision to look for values with the same or older
CSN to delete would cause the new value of "3" to be removed as well
when we get around to resolving the attribute after the second half
of the replace operation.
The fix is to use a different CSN comparison when we are removing all
values of an attribute during attribute resolution (remove values with
the same or older CSN). This is safe becuse the only present values
at this time are older values or values added in a previous mod in the
same modify operation. When processing other mods that are not
removing all values of an attribute, we only want to remove values
with a CSN older that that of the current modify operation. This
prevents us from removing a newly added value, such as "3" in the
example above. This is safe since we resolve the attribute after
each mod in the modify operation.
commit a50733f9e6fe2c0d34c6837099e448c167172a44
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Thu Nov 12 11:20:16 2009 -0700
Implement support for versioning and release engineering procedures - version 1.2.5.a1
Instead of changing configure.ac AC_INIT for each version change, there
is a new file - VERSION.sh. This file also contains support for creating
version numbers for pre-releases, and pre-release strings containing git
commit hashes.
One of the complications is that AC_INIT does not allow you to override the version and package tarname fields. We can override them after the fact everywhere
except in config.h. AC_INIT defines the following which we would like to override but cannot: PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_STRING PACKAGE_BUGREPORT
Instead, we define DS_ versions of these e.g. DS_PACKAGE_VERSION etc. and make
these available with AC_DEFINE(DS_PACKAGE_VERSION,...) etc.
As an extra added precaution, we undefine these in Makefile.am like this:
DS_DEFINES = ... \
-UPACKAGE_VERSION -UPACKAGE_TARNAME -UPACKAGE_STRING -UPACKAGE_BUGREPORT
If someone tries to use PACKAGE_VERSION in C code, they will not be able to,
and will have to use DS_PACKAGE_VERSION instead. All of the DS code that used
PACKAGE_VERSION has been changed to use DS_PACKAGE_VERSION instead.
There is a new make target - git-archive - as a convenience for creating source
tarballs from git. By default, the source archive will be placed in the build
directory - you can specify SRCDISTDIR=/path/to/SOURCES to use an alternate
dir (e.g. make SRCDISTDIR=/path/to/rpmbuild/SOURCES git-archive to make a
source tarball for rpmbuild)
configure will print the branded package name and version
Reviewed by: nkinder (Thanks!)
commit d4f478cc49d5f83c22fd8b58b7d7a92e86f3b820
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Nov 11 09:43:09 2009 -0800
Bug 504817 - Handle LDAPv2 quoted RDN values correctly
The bug fix for bug 438139 introduced a regression that causes the
server to not handle LDAPv2 quoted RDN values correctly. We were
including the '"' characters used to contain an unescaped value in
the actual value itself.
The proper thing to do is to eliminate any '"' characters that are
not escaped when we unescape the value. I have tested this new fix
with the oringinal issue from bug 438139 to ensure that it does not
introduce a regression for that bug.
commit a5f8bd62875c7d958be03d1f53b21b1dda972bb0
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon Nov 9 17:10:52 2009 -0800
Bug 497199 - Skip dirsync if disconnected during incremental update
If some sort of error occurs during the sending updates to AD phase
of an incremental winsync update, we still attempt to send the dirsync
control to AD. This can cause spurious error messages to be logged to
the errors log stating that we can't send the control since we are not
connected to AD anymore.
This patch simply skips sending the dirsync control if we encountered
an error sending updates to AD.
commit d9132c84a36ff42f38f1d74066bf9ffc02cfce5f
Author: Yi Zhang <yzhang(a)redhat.com>
Date: Mon Nov 9 13:59:46 2009 -0800
516089 - add dereference search option into ldclt
This option will accept format like "-e deref=derefAttr:attr"
to ldclt when "-e esearch" is requested.
example: -e esearch -e deref=secretary:mail
search will dereference the "secretary" attribute and then return the "mail" attribute value
commit 7da999d4a394e9237bfc91d81d3df9b2f7a7aa7d
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon Nov 9 11:47:11 2009 -0800
Bug 511112 - Eliminate fixed length array in password history code.
The password history code was using a fixed length array to store
the historical password values that are used to compare to the new
password. The array was hardcoded to 25 values. The server will
allow a maximum 24 password history values to be kept by limiting
the passwordInHistory configuration value, though it would be
possible to do something such as import an LDIF with more than 24
historical password values in an entry, causing the server to crash
when the next password change occurs.
This patch eliminates the fixed length array and dynamically
allocates the array based off of the number of values that exist
in the entry whose password is being modified.
commit d85866e446ea1576c682c0c4a9049016363fed11
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Fri Oct 30 10:28:09 2009 -0700
387681 - Fix errors in mapping AD tombstones
The AD tombstone mapping code is not behaving correctly if a
cn contains a comma (such as a "last, first" type value). The
code is supposed to locate the first ":" in the tombstone DN,
then scan for the first "," after that. Everything between is
the GUID. The problem is that the code is starting at the
beginning of the string when searching for the "," instead of
starting at the ":" that was previously found. This causes the
"," in the cn to be found instead, which makes us fail to find
the GUID.
The fix is to simply start searching for the "," from the ":"
in the tombstone DN.
commit 05fa63ab42dca287ee3be08340cafdd6301fd1bc
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Nov 4 14:39:44 2009 -0800
Allow plugin execution order to be defined
This patch adds support for assigning a precedence to each plugin.
This precedence value is used to determine what order the plugins
should be called in within a given plugin type.
The precedence value is an integer between 1 and 99. The value is
set in the nsslapd-pluginPrecedence attribute in a plugin config
entry in "cn=config". If a plugin does not have a precedence
value set, the plugin is treated as if it has a precedence of 50.
For more details, see the feature design document at:
http://directory.fedoraproject.org/wiki/Plugin_Ordering
I also removed an incorrect log message in the linked attrs plugin
that I noticed while debugging this patch.
commit 8b8a828a546f2b0e1076afde5dc52c5817c7af64
Author: Yi Zhang <yzhang(a)redhat.com>
Date: Mon Nov 2 15:09:40 2009 -0800
459181 - Add attreplacefile option to ldclt
This option will accept format like "-e attreplacefile=jpegPhoto:/some/binary.file"
to ldclt. The content of the given file will be used to replace the attribute
"jpegPhoto" (in this case). The given file could be plain text or binary file.
commit 529f3bf54449a0bc8f8b513c0170ca1a377c7ad0
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Thu Oct 29 15:10:01 2009 -0700
Make removeds.pl remove instance initconfig script
When removing an instance, we need to be sure to remove the
instance specific initconfig script.
commit 4ac911d7d54a7ee443939d9be8c272f46b601da5
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Thu Oct 29 10:51:39 2009 -0600
bump version to 1.2.4
commit d587b15f17fd935fdb4564a08b403796a8dcaf21
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Oct 28 18:49:31 2009 -0700
Bug 529258 - Make upgrade remove obsolete schema from 99user.ldif
Due to a previously fixed bug (bz 474254), standard schema may
have been duplicated in 99user.ldif. When running an upgrade, we
need to check the 99user.ldif file to see if any obsolete standard
schema is defined there and remove it.
This patch makes upgrade backup the original 99user.ldif, and
scans it to see if any of the obsolete attributeTypes or
objectClasses attributes that we are removing from the standard
schema exist in 99user.ldif. We trim the obsolete definitions
and write out a new 99user.ldif with the proper permissions.
commit 8b93bfff18e6fbdf9842592a3cfc69cd5c7085b8
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon Oct 26 15:18:09 2009 -0700
BZ 221905 - Add SMD5 password storage support.
This adds SMD5 password storage support to the existing password
storage plug-in. Add upgrade LDIF has been added to ensure that
this new functionality will be available to servers that are
upgraded from previous versions.
commit 81b11a0edfe799b1283996d4d0a4eaafe3bf7dbd
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Thu Oct 1 15:56:20 2009 -0600
more updates - add missing rundir - remove ldapiautodnsuffix
Some older releases did not have nsslapd-rundir - upgrading from
those releases will cause the server not to start - we must add
nsslapd-rundir if it is missing
We also got rid of nsslapd-ldapiautodnsuffix, so remove that from
the config - it doesn't hurt anything to leave it, but the error
message is annoying
Tested on Fedora 11 i386 and x86_64
Reviewed by: nkinder (Thanks!)
commit f10bd4fe0f39edf4cf4546291954bfe3761de542
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon Oct 5 15:34:12 2009 -0700
Allow anonymous bind resource limits to be set.
This patch adds a new config setting named nsslapd-anonlimitsdn
that one can set to the DN of an entry containing the bind-based
resource limit attributes to use for operations performed by an
anonymous user. This allows the defaults to still be used for
all other actual bound users who do not have any user specific
resource settings.
This implementation approach allows any resource limits that
are registered via the reslimit API to work with this anonymous
limits template entry.
commit 639589c44b0e10b285dc65d3064810d7b243c5c5
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Fri Oct 2 13:47:38 2009 -0700
Add ssf bind rule to access control plug-in.
This patch adds a new ssf bind rule keyword to the access control
plug-in. This allows you to write ACIs that require a specific
level of encryption for the rule to apply. The new keyword can
be used with '=', '!=', '<', '>', '<=' and '>=' comparators.
I added code that stores the SSF in effect for an operation into
the operation struct. The value that we store is the higher of
the two between the SASL SSF and the SSL/TLS SSF.
commit c63bc3e09992894dc2a333609e02a6b9e312eb03
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed Sep 30 09:33:29 2009 -0700
Add minimum SSF setting
This adds a new configuration setting to the cn=config entry named
nsslapd-minssf. This can be set to a non-negative integer representing
the minimum key strength required to process operations. The default
setting will be 0.
The SSF for a particular connection will be determined by the key
strength cipher used to protect the connection. If the SSF used for a
connection does not meet the minimum requirement, the operation will be
rejected with an error code of LDAP_UNWILLING_TO_PERFORM (53) along
with a message stating that the minimum SSF was not met. Notable
exceptions to this are operations that attempt to protect a connection.
These operations are:
* SASL BIND
* startTLS
These operations will be allowed to occur on a connection with a SSF
less than the minimum. If the results of these operations end up with
a SSF smaller than the minimum, they will be rejected. Additionally,
we allow UNBIND and ABANDON operations to go through.
I also corrected a few issues with the anonymous access switch code
that I noticed while testing. We need to allow the startTLS extended
operation to go through when sent by an anonymous user since it is
common to send startTLS prior to a BIND to protect the credentials.
I also noticed that we were using the authtype from the operation
struct to determine is a user was anonymous when we really should
have been using the DN. This was causing anonymous operations to
get through on SSL/TLS connections.
commit 69e3b0ed1676602a2b8a4dfcd7808d26ddcfbd01
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Sep 30 11:28:39 2009 -0600
Updated man page with the new update options and documentation.
commit 2c05737996b3d87044d8e829f9c248a9cb158d55
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Sep 29 14:08:35 2009 -0600
SASL IO sometimes loops with "error: would block"
https://bugzilla.redhat.com/show_bug.cgi?id=526319
Resolves: bug 526319
Bug Description: SASL IO sometimes loops with "error: would block"
Reviewed by: nkinder (Thanks!)
Fix Description: The semantics for recv() are that it returns -1 for errors, 0 for connection closed, and non-zero for some bytes received. The sasl code was not using those semantics - it was returning 0 for successful read and -1 for error. Although I have not been able to reproduce the exact failure, what I believe is happening is that the initial read of the packet length in sasl_io_start_packet() works, and the sasl IO is received. At some point, the connection is
closed by the client, and the PR_Recv return of 0 is not handled correctly, and somehow the errno gets set to EWOULDBLOCK. From this point on, PR_Recv() will return -1 (since the socket has been closed) and errno is not reset from EWOULDBLOCK.
The fix is to make sure the sasl IO code handles the PR_Recv() return value
correctly.
Note that with CONNS (8) error log level, you may still occasionally see "would block" errors, but as long as they are not endlessly repeating, this should
be ok.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 257e6c24286914ec5ba40c348090b8753b7289f0
Author: Noriko Hosoi <nhosoi(a)jiji.localdomain>
Date: Fri Sep 25 11:08:36 2009 -0700
525007 ldif2db replaces existing modify/create name and timestamps
Fix contributed by Ulf Weltman (ulf.weltman(a)hp.com)
Description From Ulf Weltman (ulf.weltman(a)hp.com)
In previous releases, if LDIF being imported contained createTimestamp,
creatorsName, modifyTimestamp, or modifiersName, those values would be kept in
the imported entries. BZ# 462922 added code to insert those attributes during
import but it clobbers any values existing in the LDIF being imported. I think
the imported values should take precedence, this would be useful during
migration for example.
If anyone wants to take advantage of the new behavior where the server
provisions new values, they can strip out the values from the LDIF before
importing or they can set nsslapd-exclude-from-export to not export those
attributes before importing.
See also https://bugzilla.redhat.com/show_bug.cgi?id=525007
Reviewed by richm, nkinder, and nhosoi
commit 9b067fd28121087b787639d2cae0cb51ef4e7e71
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Fri Sep 25 11:44:22 2009 -0600
Bitwise Plugin: Bitwise filter doesn't return except the first entry if its multi-valued
http://bugzilla.redhat.com/show_bug.cgi?id=518514
Resolves: bug 518514
Bug Description: Bitwise Plugin: Bitwise filter doesn't return except the first entry if its multi-valued
Reviewed by: nhosoi (Thanks!)
Fix Description: Get the values as a char ** - look through each one until
we find one that matches.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit bcd7df8a6c8a3dc94b39dac7ef3beefb81d922e9
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Thu Sep 24 12:02:29 2009 -0700
Allow anonymous access to be disabled.
This adds a new config switch (nsslapd-allow-anonymous-access) that
allows one to restrict all anonymous access. When this is enabled,
the connection displatch code will only allow BIND operations through
for an unauthenticated user. The BIND code will only allow the
operation through if it's not an anonymous or unauthenticated BIND.
commit 55fddb04a20d0375794a3290127032ac00fa558c
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Thu Sep 24 10:38:55 2009 -0600
MODIFY/replace with empty values does not ignore missing or unknown attributes
https://bugzilla.redhat.com/show_bug.cgi?id=516305
Resolves: bug 516305
Bug Description: MODIFY/replace with empty values does not ignore missing or unknown attributes
Reviewed by: nhosoi (Thanks!)
Fix Description: The function mods_have_effect() did not work correctly. It
would set the flag have_effect = 0 the first time a type was not found.
Then if a subsequent mod would apply, it would still return have_effect = 0.
What it should do is keep looking for all mod types in the list of mods to
see if any of them would apply, and return have_effect = 1 if at least one
of them would apply. This corresponds to RFC 4511 section 4.6:
replace: replace all existing values of the modification
attribute with the new values listed, creating the attribute
if it did not already exist. A replace with no value will
delete the entire attribute if it exists, and it is ignored
if the attribute does not exist.
So the proper behavior is to ignore attributes that do not exist, and to
apply the rest.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit b6efe5cefa1fade2797a949b1ebad793d7904a99
Author: Noriko Hosoi <nhosoi(a)jiji.localdomain>
Date: Wed Sep 23 15:31:35 2009 -0700
518112 rhds 81 el53 64b ns-slapd seg fault
Fixing the contention over LAS_cookie.
Considering the case 2 threads try to evaluate the IP/DNS aci almost at the
same time, one comes in first and creates context in the critical section
(between ACL_CritEnter and ACL_CritExit); another thread sees *LAS_cookie
is non NULL and assumes the context is already made. But it could be half
baked then since the second thread does not respect the critical section.
This patch is putting the line assigning *LAS_cookie to context into the
critical section, which prevents for the second thread to pick up the half
baked *LAS_cookie.
Fix proposed in the comment#19 by Rich Megginson is included, as well:
Because what if *LAS_cookie is set to a valid value after the first if() test
and before the call to ACL_CritEnter(); ? There is similar code in LASIpEval()
too.
commit 79b0b35a290cb2ba6a2bf1672ede902c22048639
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Sep 23 10:39:00 2009 -0600
empty principal name used when using server to server sasl for db chaining
https://bugzilla.redhat.com/show_bug.cgi?id=513308
Resolves: bug 513308
Bug Description: empty principal name used when using server to server sasl for db chaining
Reviewed by: nhosoi (Thanks!)
Fix Description: Change the logic to check if the username is a valid principal name. A valid principal name in this context will be a non-empty string that
does not contain the '=' character (which will be a bind DN in this context).
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 7ab1f8c21f8ca156cfb2a53c2392a1e91d21c581
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Sep 23 09:52:29 2009 -0600
Should not attempt to pop SASL IO layer if not using SASL IO
https://bugzilla.redhat.com/show_bug.cgi?id=519455
Resolves: bug 519455
Bug Description: Should not attempt to pop SASL IO layer if not using SASL IO
Reviewed by: nkinder (Thanks!)
Fix Description: Before attempting to pop the SASL IO layer from the prfd,
first make sure we are using sasl IO, the prfd is not NULL, and the prfd
has a SASL IO layer on it.
This also fixes a bug with setting nsslapd-localhost in the bootstrap code -
if you are using a system that does not have DNS configured correctly, you
may want to force the SASL code to use the nsslapd-localhost for the FQDN.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 48f0a6992f9114b707b353e084e9bd5ad6b4e76c
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Sep 22 17:04:19 2009 -0600
logs created at startup can get wrong file mode
https://bugzilla.redhat.com/show_bug.cgi?id=518279
Resolves: bug 518279
Bug Description: logs created at startup can get wrong file mode
Reviewed by: nkinder (Thanks!)
Fix Description: Try to apply the mode using chmod() if a log file has been specified. If and only if the log file has not been set, or if the chmod() succeeds, apply the changes to the internal config.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 9eac4a92449ca62b34722255340caba272fa0f80
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Sep 22 15:47:17 2009 -0600
Start script hardcodes file permissions mask to 077 (600), so the nsslapd-*log-mode configuration attributes don't work
https://bugzilla.redhat.com/show_bug.cgi?id=495522
Resolves: bug 495522
Bug Description: Start script hardcodes file permissions mask to 077 (600), so the nsslapd-*log-mode configuration attributes don't work
Reviewed by: nkinder (Thanks!)
Fix Description: Use umask 002 for the directory server process
Platforms tested: Fedora 11 x86_64
Flag Day: no
Doc impact: no
commit 5a2826c6479e452f8486177dacb668b20271cef7
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Sep 21 15:30:00 2009 -0600
389-ds-base/glibmm24: conflicting perl provides
https://bugzilla.redhat.com/show_bug.cgi?id=523476
Resolves: bug 523476
Bug Description: 389-ds-base/glibmm24: conflicting perl provides
Reviewed by: nhosoi (Thanks!)
Files: see diff
Fix Description: Rename "Util" to "DSUtil"
Platforms tested: Fedora 11 x86_64
Flag Day: no
Doc impact: no
commit 0c699fb56a55f097d6d7400c667167d52c3f5d84
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Sep 9 17:01:49 2009 -0600
Add update code - make setup-ds.pl -u do updates
Updates are implemented in:
perl - code that plugs in to setup - scriptlets that are imported into
the setup perl interpreter and executed in process, giving access to all
of the packages and context provided by setup
ldif - applied to instances, in the same manner as ConfigFile directives
to setup
other - any executable file, shell script, etc. can be invoked, with a limited
amount of context from the setup process
An update directory is added to the package - /usr/share/dirsrv/update - this
directory contains the update files - the update filenames begin with two digits
and are executed in numeric order (00 first, then 01, etc. up to 99) which
should provide enough flexibility
In addition, there are 5 stages of update:
pre - invoked before any instance specific code
preinst, runinst, postinst - invoked for each instance
post - invoked after any instance specific code
Example files are provided which demonstrate how to get the context.
There are two different modes of operation for update:
online - must supply a bind dn and password for each instance - servers must
be up and running
offline - operates directly on the dse.ldif - servers must be shutdown first
A new section is added to the .inf file that can be passed in
[slapd-instancename]
RootDN = binddn
RootDNPwd = bindpw
The RootDN is optional - if not supplied, it will get the nsslapd-rootdn attribute from the dse.ldif for the instance.
I also fixed some problems with error messages.
The pam pta plugin entry was giving object class violations, so I added the
missing attributes - note that these are replaced by the plugin code when
the plugin is loaded - they are only needed during setup.
Fixed usage of $_ - $_ behaves like a dynamically scoped variable - which
means if you use it in an outer context, you cannot use it in an inner
context, even if it is used in a different function. Rather than attempting
to figure out how to use $_ safely in lower level functions, I just removed
the use of it altogether, which also makes the code easier to read.
Reviewed by: nhosoi (Thanks!) - fixed minor issues found
Platforms tested: Fedora 11
commit f7d456945941feefbbcfebacd28c1e052ac9dc1f
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Sep 3 10:22:08 2009 -0700
Add EntryUSN to the nsslapd-exclude-from-export list
See also http://directory.fedoraproject.org/wiki/Entry_USN#Standalone.
commit ae149b462a1050f786bdea313058cc9691d9f9d5
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Tue Sep 1 13:44:14 2009 -0700
516089 RFE: ldclt utility should support new dereferencing control searches
Adding "-e deref" option to ldclt.
Add mode (-e add): "-e deref" adds "secretary: <DN>" to the entry.
This is true when the entry's objectclass is
inetOrgPerson (-e inetOrgPerson").
Search mode (-e esearch): "-e deref" sets dereference control to the search,
where the dereference attribute and dereferenced
attribute are hardcoded to "secretary" and "cn",
respectively.
Usage:
ldclt [...] -e add -e random -e inetOrgPerson -e deref -f test_XX
ldclt [...] -e esearch -e random -e inetOrgPerson -e deref -f test_XX
commit b53d1ab26dcf556cba9b7f6807adb041460b27fc
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Aug 31 12:24:54 2009 -0600
Clean up build warnings
This cleans up the following warnings:
ds.git/ldap/servers/slapd/back-ldbm/ldbm_usn.c:102: warning: unused variable 'li'
ds.git/ldap/servers/plugins/replication/repl5_agmt.c:1184: warning: too many arguments for format
ds.git/ldap/servers/plugins/syntaxes/dn.c:143: warning: unused variable 'val_copy'
ds.git/ldap/servers/plugins/syntaxes/deliverymethod.c:264: warning: unused variable 'p'
ds.git/ldap/servers/plugins/syntaxes/facsimile.c:269: warning: unused variable 'p'
ds.git/ldap/servers/plugins/usn/usn.c:107: warning: value computed is not used
ds.git/ldap/servers/plugins/usn/usn.c:263: warning: control reaches end of non-void function
ds.git/ldap/servers/plugins/usn/usn.c:525: warning: control reaches end of non-void function
The only one I'm not sure about is changing usn_get_attr to always return a 0 - please review that usage.
With these fixes, I only see the llu and lld format warnings on RHEL5 with the default rpmbuild compiler flags.
Reviewed by: nhosoi (Thanks!)
commit 460158ab6c91fcdb3e2ec70f28bc6001c65adadb
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Mon Aug 31 08:51:03 2009 -0700
Plugin Default Config Entry
Design doc:
http://directory.fedoraproject.org/wiki/Entry_USN#Plugin_Default_Config_Entr
New slapi APIs in libslapd:
int slapi_set_plugin_default_config(const char *type, Slapi_Value *value);
Description: Add given "type: value" to the plugin default config entry
(cn=plugin default config,cn=config) unless the same "type:
value" pair already exists in the entry.
Parameters: type - Attribute type to add to the default config entry
value - Attribute value to add to the default config entry
Return Value: 0 if the operation was successful
non-0 if the operation was not successful
int slapi_get_plugin_default_config(char *type, Slapi_ValueSet **valueset);
Description: Get attribute values of given type from the plugin default
config entry (cn=plugin default config,cn=config).
Parameters: type - Attribute type to get from the default config entry
valueset - Valueset holding the attribute values
Return Value: 0 if the operation was successful
non-0 if the operation was not successful
warning: Caller is responsible to free attrs by slapi_ch_array_free
Changes in the Replication plugin:
1) Functions to set replicated attributes
agmt_set_replicated_attributes_from_attr and
agmt_set_replicated_attributes_from_entry
call _agmt_set_default_fractional_attrs to sets the default excluded
attribute list from the plugin default config entry before setting
them from each replication agreement.
To support it, agmt_parse_excluded_attrs_config_attr is changed to be
re-entrant.
2) Fixed a minor memory leak in the fractional attributes (ra->frac_attrs).
3) Added a check for the duplicated fractional attributes.
Changes in the USN plugin:
1) usn_start calls slapi_set_plugin_default_config to add "entryusn" to
the EXCLUDE list of the value of nsds5ReplicatedAttributeList in the
plugin default config entry.
2) fix for the bug 518673 - entryusn: wrong lastusn value; When the entryusn
is not assigned yet, the next value to be set is 0. Lastusn is calculate
as (the next entryusn - 1). Although the entryusn is 64-bit unsigned
long, it should be printed as a 64-bit signed integer for lastusn.
Other:
Fixed a compiler error in ldap/servers/slapd/dse.c.
commit 60151da7f579956ea6171c4c9bcb0d1477b2006f
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Aug 25 11:44:58 2009 -0600
Fails to start if attrcrypt can't unwrap keys
https://bugzilla.redhat.com/show_bug.cgi?id=519065
Resolves: 519065
Bug Description: Fails to start if attrcrypt can't unwrap keys
Reviewed by: nhosoi (Thanks!)
Fix Description: If not using the attrcrypt feature, just return success
if the keys could not be unwrapped.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit 1ec7f4538d4dc4f78927632c74cccb5878ac52fd
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Aug 25 11:09:52 2009 -0600
https://bugzilla.redhat.com/show_bug.cgi?id=487425
Resolves: bug 487425
Bug Description: slapd crashes after changelog is moved
Reviewed by: rmeggins
Fix Description: Call clcache_set_config after the global changelog cache pool has been allocated.
Platforms tested: HPUX 11 (PA-RISC 2.0 64-bit)
Flag Day: no
Doc impact: no
<diffs>
commit 65b9840a17a00897c131f7723155588d889d1aef
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Thu Aug 20 12:59:08 2009 -0600
Retry SASL writes if buffer not fully sent
https://bugzilla.redhat.com/show_bug.cgi?id=518544
Resolves: bug 518544
Bug Description: large entries cause server SASL responses to fail
Reviewed by: nhosoi (Thanks!)
Branch: HEAD and 1.2
Fix Description: The SASL server code was broken when we switched over to
use NSPR I/O for the SASL IO layer. If the entire encrypted buffer could
not be sent to the client, the server was just failing. Instead, the server
must keep track of how many encrypted bytes were sent. If all of the
encrypted bytes could not be sent, we must return the appropriate error
to the caller to let them know the operation would block. The caller in
this case is the write_function() which does a poll() to see if the socket
is available for writing again, then will attempt the send again.
I also cleaned up usage of the various Debug macros.
Finally, I discovered that the sasl init code was calling config_get_localhost()
before that value could be set. In most cases, it is ok, because it will
fall back to the default hostname from the system. However, if for some
reason you want to use a different localhost, it will fail. Now it will be
set in the boostrap config code.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
commit d4c11622e9914da56461c726dc4020d96202ef84
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Thu Aug 20 12:59:08 2009 -0600
bump version to 1.2.2
Reviewed by: nhosoi (Thanks!)
commit 94b02a19ad679152f6e42a9ef1c620b041d65b81
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Thu Aug 20 11:28:14 2009 -0600
Fix usage of pre-hashed salted passwords
Pre-hashed passwords may not use the standard internal salt length. The old
ldif base64 decode function would return the number of bytes in the decoded
string - the new NSPR function does not. We can't use strlen on the decoded
value since it is binary and may contain nulls. The solution is to use a
function to calculate exactly how many bytes the encode string will have
when decoded, taking into account padding. Since we know exactly how many
bytes are decoded, and we know exactly how many bytes of that decoded value
are the hash, the remainder must be the salt, however many bytes that is.
I tested this code with salt lengths from 1 to 99.
Reviewed by: nkinder (Thanks!)
commit 7bb211fcf816c6bd65d832dbbe941f4869970885
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Aug 20 10:31:13 2009 -0700
509472 db2index all does not reindex all the db backends correctly
The commit a26ba73fb5040383c27872997bc07ab0c2006459 made to fix the bug 509472
put the assertion at the wrong place. It should be applied just for the worker
thread.
commit e18e1d32140d8cb41ba3094327177154232fa9a9
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Fri Aug 14 08:28:01 2009 -0700
Add centralized start/stop/restart scipts.
This adds centralized start, stop, and restart scripts
for ns-slapd. These scripts live in the sbin directory
and will act upon all instances if an instance identifier
is not specified (similar to the init script). The
instance specific scripts have been modified to call the
new centralized scripts.
The instance specific parameters needed by the new scripts
are located in the instance specific initconfig scripts,
which are now created by setup-ds.pl with values mapped
from the inf file.
commit 73025a62b72751c407a62f74f8339ac717c0fe3e
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Wed Aug 12 08:36:58 2009 -0700
506786 Index maintenance mechanism causes wrong search results when
modifying attributes with subtypes
Andrey Ivanov (andrey.ivanov(a)polytechnique.fr) pointed out my previous
check-in for bug 506786 had an inefficient code. To determine whether
to delete an equality index key or not, the code checks the key still
exists in the value array having the same attribute type. The check
should be done as soon as one value is found in the value array instead
of checking through all of them.
commit 623fdabae92376b3081f15f8802726241d869d86
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Aug 12 09:03:32 2009 -0600
fix pcre build issues
Reviewed by: nkinder (Thanks!)
commit b01ab94e8c57a4b4c5f38025cb56b0d1a22a126a
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Aug 11 14:37:44 2009 -0600
Change default branding to 389 - remove lite code
The vendor, brand, and capbrand are set in configure - we should use those
everywhere rather than have to run some sort of script over the code to
change vendor, brand, version, etc. I've added VENDOR, BRAND, CAPBRAND
to the default defines passed to the compiler, and changed the code to use
these defines. And instead of the unintuitively named PRODUCTTEXT macro,
we should use the already defined PRODUCT_VERSION.
This allowed me to get rid of some code. The version was from a generated
file called dirver.h which we don't need anymore, and we don't need the perl
script dirver.pl which generated it.
The vendor string was coming from the dirlite header file. So I also used this
as an excuse to get rid of all references to dirlite once and for all (yay!).
For the places in plain text files which are not substituted, I just used the
generic name Dirsrv or Directory Server instead of having an explicit brand
and/or version in there.
Reviewed by: nkinder (Thanks!)
commit bd8747deef192c26faa62f92489ff91638bf1ec9
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Mon Aug 10 17:36:36 2009 -0700
506786 Index maintenance mechanism causes wrong search results when
modifying attributes with subtypes
When there are identical attribute value pairs except subtypes exist
in an entry, if one of the pairs are deleted, it should not affect the
index the attribute value is the key.
e.g.,
mail: abc
mail;en: abc
mail;fr: xyz
removing mail=abc or mail;en=abc, should not remove =abc from the
mail.db#.
This fix uses the value array evals to determine if the equality key
in the index should be deleted or not. The value array evals stores
the values of the attribute in the entry after the deletion is done.
If evals is empty, it means the to-be-deleted attribute value pair is
the only pair in the entry. Thus, the equality key can be removed fom
the index.
If evals has values, then the to-be-deleted attribute (curr_attr,
which was retrieved from the old entry) value needs to be checked if
it's in evals or not. If it is in evals, the equality key is still
used by other pair(s). So, leave it. Otherwise, the key can be
removed.
In the above example, let's assume removing mail=abc. evals holds
{"abc", "xyz"}. curr_attr abc is in evals, thus =abc will not be
removed.
commit e1b6c6418552a42a23c04b6c211c99daf9e47913
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Aug 6 13:16:01 2009 -0700
509472 db2index all does not reindex all the db backends correctly
db2index all (internally, called upgradedb) reads through the main db
id2entry.db# and reindex all the associated indexed attributes. The
reindex borrows the import code where the entry id is newly assigned.
The new entry id's are connective. On the other hand, entry id's of the
entries in the db to be reindexed are not. The borrowed import code
assumes the entry id and the index of the fifo are tightly coupled and
the timing when the writing to and reading from the fifo are calculated
based upon the
assumption.
The assumption should have been revised so that the entry id which is
available up to is kept in ready_EID in the job structure and entry id from
each entry (entry->ep_id) is compared with ready_EID instead of ready_ID
that holds the sequential number.
Additionally, I eliminated unused variable "shift" from import_fifo_fetch.
Also, _dblayer_delete_instance_dir cleans up files and directories, recursively.
commit 954bb3d9b49a2ac9d66e4d78a9acb44a20f58ba9
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Tue Aug 4 11:54:34 2009 -0700
513916 Server doesn't ignore paged control, if page size and server's estimate of total no of entries are same
The code processing search results were returning the PAGE END without
knowing there are more entries to return or not. To learn it, introduced
"read ahead" one entry when it comes to the PAGE END. If there are more
entries, the code undo the read ahead, which prompts for the next page
on the client side. If there is no more entries, it returns the status
SEARCH END instead of PAGE END.
In addition to the read ahead implementation to fix the bug 513916,
* supporting Simple Paged Results for chaining backend is added.
* fixed a bug in idl_new_fetch (idl_new.c) -- idlistscanlimit was not
checked when the cursor comes to the end of an index file.
commit 0e2ad741bdd6390d0eb7edf2ddba978e7cee3f12
Author: Nathan Kinder <nkinder(a)boraras.localdomain>
Date: Fri Jul 31 22:53:48 2009 -0700
Bug 514955 - Make DNA handle multiple mods
DNA doesn't handle multiple mods to a managed attribute
in the same modify operation properly. If an operation
such as deleting a managed value triggers generation, we
aren't checking if another mod in the same operation is
actually adding a new value. This triggers us to generate
a value when we really shouldn't. The fix is to unset the
generate flag if we find a subsequent mod to the same
managed type. It will be reset if we truly need to
generate a new value.
commit 6cb163231d0940b20e25e35b69d3ca8db747e905
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Fri Jul 31 13:39:24 2009 -0700
GroupOfUniqueNames in template.ldif must have uniqueMember
%rootdn% (Directory Manager) has all rights on every entry by nature.
Thus, it is not needed to give any acis. This template has several
groupOfUniqueNames objects which MUST have uniqueMember. At this
moment, there is no entry which could be a uniqueMember. Just to
satisfy the objectclass, set %rootdn% to uniqueMember of the objectclass.
commit 3936a698f07e1d8382be9e92b8b042528dc0406e
Author: Nathan Kinder <nkinder(a)boraras.localdomain>
Date: Thu Jul 30 19:18:20 2009 -0700
Bug 514848: Make selfwrite ACI keyword with with Name And Optional UID syntax attributes.
The selfwrite ACI keyword currently only applies when writing to attributes
using the Distringuished Name syntax. It needs to also work with the Name And
Optional UID syntax since that is the syntax used for the uniqueMember
attribute.
commit 3148e1140b858d656118a36d1a5009a67aaa1ef2
Author: Nathan Kinder <nkinder(a)boraras.localdomain>
Date: Thu Jul 30 16:52:26 2009 -0700
Bug 514824: Fix double free in macro ACI code.
If you have an ACI with multiple macros in it and the second attribtue does not
exist in the entry you are bound as, the in-memory list used for macro
substitution is free'd twice.
The code swaps hands the charray it plans to return after substitution over to
a working list, but it doesn't set the return list to NULL. When the second
macro attribute is not found, the working list is free'd, yet the address is
returned to the caller, who then tries to free the list a second time. The fix
is to set the list to be returned to NULL when the memory is handed over to the
working list.
commit c23c09d85cbb208a5efe962204bd8230306451c1
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Jul 30 10:34:21 2009 -0700
514770 remove per-entry response control for GER and Paged Results
Since per entry-response controls are ignored by the ldapsearch client,
we are getting rid of the unnecessary write_controls calls for Simple Paged
Results and GER.
commit 52f23f12f49f822bbffcc4f2eabf271e09f2cad9
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Jul 29 11:15:50 2009 -0600
Dereference support
This adds support for the newly proposed LDAP Dereference feature (not to
be confused with alias dereferencing). The details of the proposed feature
can be found here:
http://www.openldap.org/devel/cvsweb.cgi/~checkout~/doc/drafts/draft-masa...
This adds a new deref plugin to the directory server. This is a pre op search
plugin. In order to allow the plugin to rewrite the controls sent back with
each entry, I changed the way pre-search and pre-entry plugins work. They now
have the ability to alter the entry and controls just before being sent back
to the client.
This plugin does not currently support internal operations. It should be easy
to add a call to register the plugin for internal ops if we need to do that.
The code supports real, computed (e.g. memberOf), and virtual attributes
both as the attibute to dereference and in the list of attributes to return
from each dereferenced entry. This will allow us to use attributes such as
nsRole as the derefattr.
Tested on RHEL5 x86_64 with various openldap 2.4.15+ and Net::LDAP clients.
valgrind output is clean
commit f0b3fa0b5dbda2f1c8bf7b99bc8e030124224e9a
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Wed Jul 29 18:28:01 2009 -0700
Apply SYNTAX_DN to Name And Optional UID
Based on RFC2252, NameAndOptionalUID = DistinguishedName [ "#" bitstring ]
commit 4d9c1647479d701f46dfdad7835057c01e3b2857
Author: Nathan Kinder <nkinder(a)boraras.localdomain>
Date: Mon Jul 27 15:09:04 2009 -0700
Change aci syntax to Directory String.
The aci attribute is currently defined with a syntax of IA5 String.
This syntax only allows 7-bit characters. Now that the server has
support for syntax validation, this would prevent one from using
international characters in aci rules. This patch defines the aci
attribute with the Directory String syntax, which allows any valid
UTF8 character.
commit c3f5ddcb0843ec7fb5c674040ba6d1467528c6c1
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Jul 23 16:00:45 2009 -0700
Revert "513019 nsslapd-lookthroughlimit is not respected"
This reverts commit 1e3138f1d41562d6f42a8fdf0934af23219bb8e1.
Misunderstood nsslapd-lookthroughlimit. Regardless of the filter test result,
once hit the lookthroughlimit, search should be aborted there. That's what
the original code does and that is correct.
commit 03315a20ae02e1da631ba5ee2721a40fa218efcc
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Wed Jul 22 16:03:02 2009 -0700
513172 Simple Paged Results does not respect nsslapd-sizelimit
SPR returns one page in one operation. Let the search_result_set keep the
current sizelimit and make the sizelimit work beyond operations.
commit 88f7d3d1d98b2c4c8f40413ebe8c354c9da3d74c
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Wed Jul 22 11:34:23 2009 -0700
513170 NULL search result does not return sort control
When sort request control is given, even if the search result is NULL,
sort response control should be created and passed to the client.
commit 689e3b98b91d375de97a47d7c26b415fd53fae05
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Tue Jul 21 12:59:38 2009 -0700
Entry USN
First cut for implementing Entry USN.
See http://directory.fedoraproject.org/wiki/Entry_USN for the design details.
This change includes a bug fix for "db2ldif -r"; event queue system was not
shutdown before the plugins are closed, which could have crashed the command
line utility.
commit 98426142d06ade9ac347b8b2344279dca964681b
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Tue Jul 21 10:23:16 2009 -0700
513019 nsslapd-lookthroughlimit is not respected
When filter test is necessary against the search results and the test fails,
lookthroughcount attached to the search result structure should have been
decremented since the entry will not be sent to the client, but it was not.
This change fixes it.
commit 616296f9f43ce3ca5c55cb3df33e1495a3b110e6
Author: Nathan Kinder <nkinder(a)boraras.localdomain>
Date: Tue Jul 21 07:09:52 2009 -0700
Use LDAPv3 DN values in ns-newpwpolicy script.
The DN used by the ns-newpwpolicy script to refer to the pwpolicy
subentries are not legal. We need to escape ',' chars in the value
instead of just trying to use double-quotes around the value.
commit 8de8ad3667c810f476d8cb3eae335aa7170fbe8e
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Mon Jul 20 15:40:10 2009 -0700
510147 clean up the replication log msg
_cl5DBOpen removes a changelog db if there is no matching replica for the file.
The manner to remove the changelog db file was not good -- not using the API
that Berkeley DB provided, but removing it with NSPR delete function PR_Delete.
This fix replaces PR_Delete with the Berkeley DB API dbremove.
commit de4697916a8499497da5ebaf1008751d90ce255b
Author: Nathan Kinder <nkinder(a)boraras.localdomain>
Date: Mon Jul 20 09:30:15 2009 -0700
Skip syntax check of encrypted attributes during import.
When importing an ldif with pre-encrypted attributes, we
need to skip the syntax check to avoid the import of those
entries being skipped. The fix makes a copy of an entry
with encrypted attributes, removes the encrypted attribtues,
and uses this trimmed copy for the syntax check.
commit b1bf201d0bebbeb96e25546c141e73324524ff1e
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Jul 15 10:31:00 2009 -0600
Fix unsalted password comparisons
Unsalted password comparison was broken by the switch from using the ldif base64 function to using the NSPR base64 function. The old function used to return the number of bytes. The new one does not. The code was assuming there was
always a salt, but this is not the case. Now, the code determines if there
is a salt by comparing the calculated length (hash_len) with the actual number
of bytes in the hash (shaLen).
Reviewed by: nhosoi (Thanks!)
commit f088374561bd3b361b0c89d1c1cf71f8971a1d9a
Author: Nathan Kinder <nkinder(a)triton.usersys.redhat.com>
Date: Tue Jul 14 14:25:05 2009 -0700
Add additional standard syntaxes.
This adds support for the following standard syntaxes, complete
with validation functions:
Bit String
Delivery Method
Enhanced Guide
Facsimile Telephone Number
Fax
Guide
Name And Optional UID
Printable String
Teletex Terminal Identifier
Telex Number
This patch does not change the schema to use any of these syntaxes
yet. That will come when we update to the current versions of the
standard schema from the LDAP RFCs.
I also fixed an error in makefile.am where Setup.pm was listed
twice in perl_DATA.
commit 4dac1363821951d289ee76ced6a87400225e8375
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Jul 14 12:50:36 2009 -0600
Fix attrcrypt usage of nsSymmetricKey
The current attrcrypt is failing because it attempts to store the encryption
symkey in the nsSymmetricKey attribute. This attribute is not defined in the
schema, so it defaults to DirectoryString syntax. Storing the value then fails
syntax validation because the binary values in the key do not conform to
DirectoryString. The code was poorly designed to handle and report errors of
this nature. The real fix is to add nsSymmetricKey as a BINARY syntax
attribute. I also cleaned up the error detection and reporting for this case.
Reviewed by: nkinder (Thanks!)
commit 6071678c5874c016055d87221a24010a2fc9c7b6
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Jul 8 09:57:04 2009 -0600
Reduce noise reported by valgrind
valgrind is a very useful tool - however, the directory server produces a lot
of false positives that have to be suppressed in order to get to the useful
information. These patches attempt to reduce some of that noise.
1) aclparse - should calculate the length of the string _after_ trimming the
spaces
2) something about random number generation causes some of the bits to be uninitialized, and valgrind doesn't like it - this patch doesn't eliminate the error, just reduces it
3) use initialized memory when generating hashes - also remove "magic numbers"
4) bin.c - slapi_value_get_string must not be used with unterminated (binary) values
5) we get these odd valgrind reports from deep within bdb about invalid reads and uninitialized memory - I thought perhaps because we were initializing DBT structures with = {0} which the bdb docs says is not sufficient - they recommend memset or bzero
6) There are some small memory leaks during attrcrypt initialization and in error cases
7) error message in ldif2ldbm.c was attempting to print the Slapi_DN structure rather than getting the char *dn
8) After we call NSS_Initialize, we must call the NSS shutdown functions to clean up the caches and other data structures, otherwise NSS will leak memory. This is harmless since it happens at exit, but valgrind reports hundreds of memory leaks. The solution is to make sure we go through a single exit point after NSS_Initialize. This means many places that just called exit() must instead return with a real return value. This mostly affected main.c, detach.c, and a couple of other places called during startup.
9) minor memory leaks in mapping tree initialization
10) sasl_map.c - should not call this in referral mode
11) minor memory leaks during ssl init
Reviewed by: nkinder, nhosoi (Thanks!)
commit 0979cb60c8ceff3bbe463821b6b17751c2174075
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Jul 7 13:22:45 2009 -0600
Clean up compiler warnings
This cleans up all of the compiler warnings produced with -Wall on RHEL/Fedora platforms.
The warnings about the %lld and %llu formats are still produced and cannot be helped.
Reviewed by: nkinder (Thanks!)
commit a5ed16a5dc1883dcacb2918b42558789d45d5746
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Jul 6 12:11:01 2009 -0600
OpenLDAP support
These changes allow the server to be built with OpenLDAP (2.4.17+). A brief summary of the changes:
* #defines not provided by OpenLDAP were copied into slapi-plugin.h and protected with #ifndef blocks
* where it made sense, I created slapi wrapper functions for things like URL and LDIF processing to abstract way the differences in the APIs
* I created a new file utf8.c which contains the UTF8 functions from MozLDAP - this is only compiled when using OpenLDAP
* I tried to clean up the code - use the _ext versions of LDAP functions everywhere since the older versions should be considered deprecated
* I removed some unused code
NOTE that this should still be considered a work in progress since it depends on functionality not yet present in a released version of OpenLDAP, for NSS crypto and for the LDIF public API.
commit 5b85ddb9b27e5e901fb8a9c4882ba4ecc8f7ab79
Author: Noriko Hosoi <nhosoi(a)kiki.usersys.redhat.com>
Date: Sun Jul 5 14:49:41 2009 -0700
509269 Simple paged result crashes/hangs the server
1) Commit 281f14adb012a54d8b10c9d51dbce6f5c6f3e549 was based on the wrong
observation and testing. Backing off the change.
2) Search result set is retrieved from pblock and used for simple paged results.
When the search result set is released, the address stashed in pblock should
have been set NULL not to access the address again.
commit a92874a8c62383266a8dd7a0167a0c61f0fa0efc
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Thu Jul 2 08:49:52 2009 -0700
Bug: 509401 - dnaNextValue not updated when dnaMaxValue set to -1
When "dnaMaxValue" is set to "-1" or omitted from a range configuration entry
(which defautls to "-1" internally), the "dnaNextValue" attribute is not
updated in the range configuration entry when a value is allocated from that
range.
We were only updating the configuration entry if the new nextvalue was >=
the maxval plus the interval (1). We need to check if the maxval is -1
specifically, and update the config entry if so.
commit f8bb84d95817b4ab66d97bdf85be1ed287d8996d
Author: Noriko Hosoi <nhosoi(a)kiki.usersys.redhat.com>
Date: Wed Jul 1 15:59:27 2009 -0700
509269 Simple paged result crashes/hangs the server
There was a contention between the connection table cleanup thread (main)
and the search thread. The cleanup code should have been protected by
the same mutex we do in the paged result code (c_mutex).
commit f78c499d0f0904d0ae22a50b76b386881e2b4cce
Author: Noriko Hosoi <nhosoi(a)kiki.usersys.redhat.com>
Date: Fri Jun 26 15:18:09 2009 -0700
506137 ns-slapd hang while group aci performance testing
Bug description: If a group has more than 32767 members (max short),
a variable 'n' declared as short overflows. The value is used to calculate an
array size to store group member info, which memory is not properly allocated
and it ends up crashing up the server.
Fix description: Replaced the problematic short variable type with integer.
Plus, the each member info was storing a pointer pointing to an element inside
of the array. When the array is "realloc"ed, it's possible for the addresses
to be relocated. To solve the problem, the new code stores the index of array
instead of the address.
commit f3970f58b05e01f038ff075c79e7b5f6872b2287
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Thu Jun 25 14:28:56 2009 -0700
Add linked attributes plug-in.
This patch implements a linked attribute plug-in. Details of the
plug-in features and design are available on the 389 wiki at:
http://directory.fedoraproject.org/wiki/Linked_Attributes_Design
In addition, I encountered a memory leak when testing the new plug-in
with valgrind. There was a fix to the dse add code for a double free
a few months back, which causes a leak in certain situations. This
previous fix was for bz#489763. The proper thing to do is to make
the dse backend add function consume the passed in entry upon success
and leave it for the caller to deal with upon failure. This is the
way the back-ldbm add function works.
commit 0581d8addc80a389c8a43244e94aaf20f7ef1e3c
Author: Noriko Hosoi <nhosoi(a)kiki.usersys.redhat.com>
Date: Tue Jun 23 16:46:29 2009 -0700
507460 Access log could mistakenly report notes=U for VLV searches
Summary: Access log reports 'notes=U' for VLV indexed searches if there are no records to be found
Fix Description: VLV creates an empty IDL if no matched entries are found. To do so, VLV code was calling idl_alloc with argument 0, which generated ALLID. It's changed to call idl_alloc with 1. It creates a normal empty IDL.
commit d6378ed604386fe1f6e0ee4c4a28fdda473e1530
Author: Noriko Hosoi <nhosoi(a)kiki.usersys.redhat.com>
Date: Tue Jun 23 13:51:14 2009 -0700
504383 PCRE breaks SASL Mapping
Fix Description: unescape parenthesis in the regular expression.
E.g., ^u:\(.*\) ==> ^u:(.*)
This unescape is necessary for the new regex code using PCRE
to keep the backward compatibility.
commit bf933e8f666460c13226d9beaaa83f64783ceb86
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue Jun 9 10:41:50 2009 -0600
initial commit of io function improvements
This patch consolidates the functionality of read_function and secure_read_function into a single read_function that deals with NSPR PRFileDesc objects. It does the same for write_function and secure_write_function. Since there is only one write function, there is no need to push a separate secure read/write function to the lber layer - importing the prfd into ssl (SSL_ImportFd) does that.
I've also added some more debugging.
Reviewed by: nkinder (Thanks!)
commit f5dddbb0572dbc52fc087d047767744f13cf5098
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Fri Jun 5 14:16:48 2009 -0600
Implement SASL I/O as an NSPR I/O layer
This is part of the port to OpenLDAP, to simplify the code that
interacts with the BER I/O layer. Ideally, since we only deal
with NSPR I/O, not raw I/O, in the directory server, we can push
any additional layers, such as SASL, as NSPR I/O layers. This
is how NSS works, to push the SSL codec layer on top of the regular
NSPR network I/O layer.
Only 3 functions are implemented - PR_Send (sasl_io_send), PR_Recv
(sasl_io_recv), and PR_Write (sasl_io_write).
This simplified the code in saslbind.c and connection.c, and removed
special handling for SASL connections - now they are just treated as
regular NSPR connections - the app has not nor does not need to know
the connection is a SASL connection.
In addition, this gives us the ability to use SASL and SSL at the same
time. The SASL I/O layer can be pushed on top of the SSL layer, so
that we can use SSL for connection encryption, and SASL for authentication,
without having to worry about mixing the two.
Reviewed by: nkinder (Thanks!)
Platforms tested: RHEL5 x86_64, Fedora 9 x86_64
commit 43abea725fbf25a565e85699b072007b9d8f65e2
Author: Noriko Hosoi <nhosoi(a)kiki.usersys.redhat.com>
Date: Wed Jun 3 08:48:14 2009 -0700
Compiler warnings and paged results on DSE
1) Fixing compiler warnings on regex.c.
2) Adding dse_search_set_release to dse.c to support simple paged results on DSE.
commit 1fe3b4e59ef9f58ea13291e0cbe85dd1e0b2d35a
Author: Noriko Hosoi <nhosoi(a)kiki.usersys.redhat.com>
Date: Mon Jun 1 11:09:53 2009 -0700
Initialize smods in ldmb_back_modify
To avoid unnecessary ldap_mods_free for the early error_returns
which could be called before mods are set to smods.
commit c089a52f4febd0b08cad5bdd81726efe5afafa0c
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Fri May 29 14:11:41 2009 -0700
Bug: 181465 - Handle spacing issues in objectClass SUP list.
Our schema parser requires a space after the opening paran
when multiple SUP objectclasses are listed in the definition
of an objectclass. The RFCs show that a space is not required.
This patch simply removes the requirement that a space be
present after the opening paran.
commit c26b8a172db8db07a524c719916a3e7a76d9cdb0
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Fri May 29 08:38:35 2009 -0700
Add require secure binds switch.
This adds a new configuration attribute named
nsslapd-require-secure-binds. When enabled, a simple bind
will only be allowed over a secure transport (SSL/TLS or a
SASL privacy layer). An attempt to do a simple bind over
an insecure transport will return a LDAP result of
LDAP_CONFIDENTIALITY_REQUIRED. This new setting will not
affect anonymous or unauthenticated binds.
The default setting is to have this option disabled.
commit a7e5f917111426c70b0cf24ec82ea47f669f71c5
Author: Noriko Hosoi <nhosoi(a)kiki.usersys.redhat.com>
Date: Thu May 28 09:55:06 2009 -0700
Use thread aware library for complex regex searches
For more details, see the design doc at http://directory.fedoraproject.org/wiki/Thread_Aware_Regex
Additional 2 unrelated changes are being made:
1) dbgen.pl.in: secretary and manager are having a dn format value "cn=...".
2) slapi_counter_sunos_sparcv9.S: adding "#define _ASM 1" to force to set an assembler code macro _ASM.
commit 52090b3e4d6b03c46578178d5fb80147a28e23e0
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue May 26 08:57:29 2009 -0600
Added full text of GPLv2 license
Added the file LICENSE.GPLv2 which contains the full text
of the GPLv2 license - the file LICENSE refers to this
file.
commit 6426db64794d194069778df801a54779879a3e5d
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue May 19 14:45:58 2009 -0600
Resolves: bug 501490 - Error creating view on FDS 1.2
Reviewed by: nhosoi (Thanks!)
The problem is when the views code calls views_cache_discover_children()
and there are no children. The code should check to see if the child_count
is 0, and only attempt to alloc space for the pChildren array if the
child_count is greater than 0.
Platforms tested: RHEL5 x86_64
commit 3b3232f3e3282314f5fa19d4dd8c90632c1242b1
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Tue May 19 13:17:11 2009 -0600
Fix various compiler warnings
1) Make sure we use "const" consistently
2) Make sure we use "unsigned char" consistently
for some reason (unsigned char)*p did not compare to '\xHH' literals unless the literal was also cast to (unsigned char)
3) added some missing function prototypes
4) removed some unused variables/functions, or commented out for use when debugging
5) various other compiler warnings
With all of these, the code compiles cleanly on RHEL5 x86_64 using
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)
and
CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic"
The only warning now is the spurious message about %llu or %lld having the wrong format argument.
Reviewed by: nhosoi (Thanks!)
commit 32b570d995453f7fe21ce0a664f6dae159e92613
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Sun May 17 10:02:54 2009 -0600
fix rpmlint issues - config files and perl modules should not be executable
commit 745768189b54e6752ac8bdac0b96bf3b8bee603a
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Sun May 17 08:56:41 2009 -0600
bump version to 1.2.1 - added .gitignore
commit b6e1db6567e4244878667898968727b5742f1e13
Author: Noriko Hosoi <nhosoi(a)kiki.usersys.redhat.com>
Date: Fri May 15 16:10:32 2009 -0700
Add Simple Paged Results
For more details, see the design doc at http://directory.fedoraproject.org/wiki/Simple_Paged_Results_Design
commit febb239923efa4b0f7ce79e0920e5e4ae03cba1b
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Wed May 13 11:12:11 2009 -0700
Add strict DN syntax enforcement option.
The DN syntax has become more restrictive over time, and the
current rules are quite strict. Strict adherence to the rules
defined in RFC 4514, section 3, would likely cause some pain to
client applications. Things such as spaces between the RDN
components are not allowed, yet many people use them still since
they were allowed in the previous specification outlined in RFC
1779.
To deal with the special circumstances around validation of the DN
syntax, a configuration attribute is provided named
nsslapd-dn-validate-strict. This configuration attribute will
ensure that the value strictly adheres to the rules defined in RFC
4514, section 3 if it is set to on. If it is set to off, the server
will normalize the value before checking it for syntax violations.
Our current normalization function was designed to handle DN values
adhering to RFC 1779 or RFC 2253
commit df4dea7f6f7b6ee132a0424ba11d3ea6ab6466fa
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed May 13 10:28:55 2009 -0600
Rename to 389
changed brand and capbrand to 389
changed vendor to "389 Project"
I had to redo my earlier patch - I should have used the newer
automake and autoconf to reduce the size of the patch
This commit uses automake 1.10.1 and autoconf 2.63 from F10
Reviewed by nkinder (Thanks!)
commit 26abe453789d613a4b6737c4d1502ef06d5ceda5
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon May 11 16:07:42 2009 -0700
Auto-generate SLAPI docs - first pass.
This starts the effort to be able to use Doxygen to
auto-generate the SLAPI documentation.
I started documenting everything in slapi-plugin.h
from the top down. There is a TODO comment indicating
where the effort needs to be picked up from in the
header file.
To build the SLAPI docs, run "doxygen slapi.doxy" in
the top of the source tree. The resulting doc files
will be in a subdirectory named "docs". The build of
the docs still needs to be integrated with the rest of
the build.
commit 9082ce15439ca9bd8457385ac8c8896de766b8dc
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Mon May 11 10:23:34 2009 -0700
Generated autotools files for syntax validation feature.
A change was also made to Makefile.am to avoid library versioning
for our C++ plug-in libraries. This change should allow us to use
autogen.sh on recent platforms without running into issues during
build-time.
commit c224355f2fd45ce3067fbabefb0b3289e75d9654
Author: Nathan Kinder <nkinder(a)redhat.com>
Date: Fri May 8 09:14:42 2009 -0700
Added capability to validate syntax of values being added to the database. Also added numericstring syntax support.
For more details, see the design doc at http://directory.fedoraproject.org/wiki/Syntax_Validation_Design
14 years, 2 months
ldap/servers
by Noriko Hosoi
ldap/servers/slapd/back-ldbm/dblayer.c | 8 ++++++-
ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c | 28 ++++++++++++++++++++++++-
ldap/servers/slapd/back-ldbm/proto-back-ldbm.h | 1
3 files changed, 35 insertions(+), 2 deletions(-)
New commits:
commit 571f580206b38cc92b87c7458a42f2b1a4789830
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Mon Feb 8 08:49:51 2010 -0800
548535 - memory leak in attrcrypt
https://bugzilla.redhat.com/show_bug.cgi?id=548535
Description:
The attrcrypt module maintains the inst_attrcrypt_state_private
field in the instance structure (ldbm_instance) to store the private
keys. The area and the space for the private keys are allocated in
attrcrypt_init which is called from dblayer_instance_start.
A backend instance could be closed and restarted multiple times
(for instance, in the bulk_import, which is used by the replica
initialization), but the area had no chance to be freed.
This patch is adding the clean-up code.
diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c
index e6d13fa..b99d7e9 100644
--- a/ldap/servers/slapd/back-ldbm/dblayer.c
+++ b/ldap/servers/slapd/back-ldbm/dblayer.c
@@ -1783,7 +1783,7 @@ autosize_import_cache(struct ldbminfo *li)
size_t pagesize, pages, procpages, availpages;
dblayer_sys_pages(&pagesize, &pages, &procpages, &availpages);
- LDAPDebug(LDAP_DEBUG_ANY, "dblayer_instance_start: "
+ LDAPDebug(LDAP_DEBUG_ANY, "autosize_import_cache: "
"pagesize: %d, pages: %d, procpages: %d\n",
pagesize, pages, procpages);
if (pagesize) {
@@ -2470,6 +2470,12 @@ int dblayer_instance_close(backend *be)
if (NULL == inst)
return -1;
+ if (attrcrypt_cleanup_private(inst)) {
+ LDAPDebug(LDAP_DEBUG_ANY,
+ "Error: failed to clean up attrcrypt system for %s\n",
+ inst->inst_name, 0, 0);
+ }
+
return_value = dblayer_close_indexes(be);
/* Now close id2entry if it's open */
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
index d281506..985b690 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
@@ -461,7 +461,10 @@ attrcrypt_init(ldbm_instance *li)
SECKEYPublicKey *public_key = NULL;
LDAPDebug(LDAP_DEBUG_TRACE,"-> attrcrypt_init\n", 0, 0, 0);
if (slapd_security_library_is_initialized()) {
- li->inst_attrcrypt_state_private = NULL;
+ /* In case the backend instance is restarted,
+ * inst_attrcrypt_state_private in li could have memory containing
+ * private keys. The private data should be cleaned up first. */
+ attrcrypt_cleanup_private(li);
/* Get the server's private key, which is used to unwrap the stored symmetric keys */
ret = attrcrypt_fetch_private_key(&private_key);
if (!ret) {
@@ -515,6 +518,29 @@ int attrcrypt_check_enable_cipher(attrcrypt_cipher_entry *ace)
return ret;
}
+/*
+ * This function cleans up the inst_attrcrypt_state_private in each backend
+ * instance.
+ */
+int
+attrcrypt_cleanup_private(ldbm_instance *li)
+{
+ int i = 0;
+ attrcrypt_cipher_state **current = NULL;
+
+ LDAPDebug(LDAP_DEBUG_TRACE, "-> attrcrypt_cleanup_private\n", 0, 0, 0);
+ if (li && li->inst_attrcrypt_state_private) {
+ for (current = &(li->inst_attrcrypt_state_private->acs_array[0]);
+ *current; current++) {
+ attrcrypt_cleanup(*current);
+ slapi_ch_free((void **)current);
+ }
+ slapi_ch_free((void **)&li->inst_attrcrypt_state_private);
+ }
+ LDAPDebug(LDAP_DEBUG_TRACE, "<- attrcrypt_cleanup_private\n", 0, 0, 0);
+ return 0;
+}
+
int
attrcrypt_cleanup(attrcrypt_cipher_state *acs)
{
diff --git a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
index 008a949..a64919c 100644
--- a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
+++ b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
@@ -645,6 +645,7 @@ int attrcrypt_encrypt_entry(backend *be, const struct backentry *in, struct back
int attrcrypt_encrypt_index_key(backend *be, struct attrinfo *ai, const struct berval *in, struct berval **out);
int attrcrypt_decrypt_index_key(backend *be, struct attrinfo *ai, const struct berval *in, struct berval **out);
int attrcrypt_init(ldbm_instance *li);
+int attrcrypt_cleanup_private(ldbm_instance *li);
/*
* ldbm_usn.c
14 years, 2 months
admserv/newinst admserv/schema
by Noriko Hosoi
admserv/newinst/src/dirserver.map.in | 1
admserv/newinst/src/register_param.map.in | 1
admserv/schema/ldif/00nsroot_backend.ldif.tmpl | 5 -
admserv/schema/ldif/01nsroot.ldif.tmpl | 26 +++----
admserv/schema/ldif/02globalpreferences.ldif.tmpl | 46 ++++++------
admserv/schema/ldif/10dsdata.ldif.tmpl | 64 +++++++++---------
admserv/schema/ldif/10rm_dsdata.ldif.tmpl | 10 +-
admserv/schema/ldif/11dstasks.ldif.tmpl | 68 +++++++++----------
admserv/schema/ldif/12dsconfig.mod.tmpl | 6 -
admserv/schema/ldif/13dsschema.mod.tmpl | 6 -
admserv/schema/ldif/16dssuffixadmin.mod.tmpl | 6 -
admserv/schema/ldif/20asdata.ldif.tmpl | 54 +++++++--------
admserv/schema/ldif/21astasks.ldif.tmpl | 78 +++++++++++-----------
admserv/schema/ldif/22ascommands.ldif.tmpl | 8 +-
admserv/schema/ldif/asmigrate.ldif.tmpl | 10 +-
15 files changed, 195 insertions(+), 194 deletions(-)
New commits:
commit d7b1055cbc70228341358272fafd7c98e8561f46
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Wed Feb 3 13:04:12 2010 -0800
560827 - Admin Server templates: DistinguishName validation fails
https://bugzilla.redhat.com/show_bug.cgi?id=560827
Description:
admserv/newinst/src/dirserver.map.in
/register_param.map.in
--- added escapedrootdn key, which is an escaped rootdn compliant
with RFC4514
admserv/schema/ldif/*.tmpl
--- removed unescaped '"' from dn strings, which violates RFC4514.
escaped special characters ('=' and ',') which used to be a
value surrounded in the double quotes '"'.
removed spaces around ','
diff --git a/admserv/newinst/src/dirserver.map.in b/admserv/newinst/src/dirserver.map.in
index 5aa4f01..f1b2c6f 100644
--- a/admserv/newinst/src/dirserver.map.in
+++ b/admserv/newinst/src/dirserver.map.in
@@ -55,6 +55,7 @@ ds_user = SuiteSpotUserID
ds_port = ServerPort
ds_secure_port = SecureServerPort:"636"
rootdn = RootDN
+escapedrootdn = `$returnvalue = dnEscape($mapper->{rootdn});`
ds_suffix = Suffix
ds_buildnum = BuildNumber
ds_console_jar ="%normbrand%-ds-%ds_baseversion%.jar"
diff --git a/admserv/newinst/src/register_param.map.in b/admserv/newinst/src/register_param.map.in
index 259065b..cd13c61 100644
--- a/admserv/newinst/src/register_param.map.in
+++ b/admserv/newinst/src/register_param.map.in
@@ -71,6 +71,7 @@ ds_user = SuiteSpotUserID
ds_port = ServerPort
ds_secure_port = SecureServerPort:"636"
rootdn = RootDN
+escapedrootdn = `$returnvalue = dnEscape($mapper->{rootdn});`
ds_suffix = Suffix
ds_buildnum = BuildNumber
ds_passwd = RootDNPwd
diff --git a/admserv/schema/ldif/00nsroot_backend.ldif.tmpl b/admserv/schema/ldif/00nsroot_backend.ldif.tmpl
index 45bc89c..51a2e19 100644
--- a/admserv/schema/ldif/00nsroot_backend.ldif.tmpl
+++ b/admserv/schema/ldif/00nsroot_backend.ldif.tmpl
@@ -17,7 +17,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
-dn: cn=NetscapeRoot, cn=ldbm database, cn=plugins, cn=config
+dn: cn=NetscapeRoot,cn=ldbm database,cn=plugins,cn=config
objectClass: top
objectClass: extensibleObject
objectClass: nsBackendInstance
@@ -27,11 +27,10 @@ nsslapd-cachesize: -1
nsslapd-cachememsize: 10485760
nsslapd-directory: NetscapeRoot
-dn: cn="o=NetscapeRoot",cn=mapping tree,cn=config
+dn: cn=o\=NetscapeRoot,cn=mapping tree,cn=config
objectClass: top
objectClass: extensibleObject
objectClass: nsMappingTree
-cn: "o=NetscapeRoot"
cn: o=NetscapeRoot
nsslapd-state: backend
nsslapd-backend: NetscapeRoot
diff --git a/admserv/schema/ldif/01nsroot.ldif.tmpl b/admserv/schema/ldif/01nsroot.ldif.tmpl
index e0aebac..b655981 100644
--- a/admserv/schema/ldif/01nsroot.ldif.tmpl
+++ b/admserv/schema/ldif/01nsroot.ldif.tmpl
@@ -21,36 +21,36 @@ dn: o=NetscapeRoot
objectClass: top
objectClass: organization
o: NetscapeRoot
-aci: (targetattr="*")(version 3.0; acl "Enable Configuration Administrator Group modification"; allow (all) groupdn="ldap:///cn=Configuration Administrators, ou=Groups, ou=TopologyManagement, o=NetscapeRoot";)
+aci: (targetattr="*")(version 3.0; acl "Enable Configuration Administrator Group modification"; allow (all) groupdn="ldap:///cn=Configuration Administrators,ou=Groups,ou=TopologyManagement,o=NetscapeRoot";)
aci: (targetattr="*")(targetfilter=(o=NetscapeRoot))(version 3.0; acl "Default anonymous access"; allow (read, search) userdn="ldap:///anyone";)
aci: (targetattr="*")(version 3.0; acl "Enable Group Expansion"; allow (read, search, compare) groupdnattr="uniquemember";)
-dn: ou=TopologyManagement, o=NetscapeRoot
+dn: ou=TopologyManagement,o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: TopologyManagement
description: Branch for Configuration Administration users and groups
aci: (targetattr!="userPassword")(version 3.0; acl "Enable anonymous access"; allow (read, search, compare)userdn="ldap:///anyone";)
-dn: ou=Groups, ou=TopologyManagement, o=NetscapeRoot
+dn: ou=Groups,ou=TopologyManagement,o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: Groups
description: Standard Branch for group entries
-dn: ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
+dn: ou=Administrators,ou=TopologyManagement,o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: Administrators
description: Standard branch for Configuration Administrator (uid) entries
-dn: cn=Configuration Administrators, ou=Groups, ou=TopologyManagement, o=NetscapeRoot
+dn: cn=Configuration Administrators,ou=Groups,ou=TopologyManagement,o=NetscapeRoot
objectClass: top
objectClass: groupofuniquenames
cn: Configuration Administrators
-uniqueMember: uid=%as_uid%,ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
+uniqueMember: uid=%as_uid%,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot
-dn: uid=%as_uid%, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
+dn: uid=%as_uid%,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot
objectClass: top
objectClass: person
objectClass: organizationalperson
@@ -61,7 +61,7 @@ givenName: Configuration
uid: %as_uid%
userPassword: %as_passwd%
-dn: ou=%domain%, o=NetscapeRoot
+dn: ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
objectClass: nsadmindomain
@@ -69,25 +69,25 @@ ou: %domain%
description: Standard branch for configuration information
nsAdminDomainName: %domain%
-dn: ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: Global Preferences
aci: (targetattr=*)(version 3.0; acl "Enable anonymous access"; allow(read,search) userdn="ldap:///anyone";)
-dn: ou=Host Preferences, ou=%domain%, o=NetscapeRoot
+dn: ou=Host Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: Host Preferences
-dn: ou=UserPreferences, ou=%domain%, o=NetscapeRoot
+dn: ou=UserPreferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
ou: UserPreferences
aci: (targetattr = "*")(version 3.0; acl "Allow saving of User Preferences"; allow (add) userdn = "ldap:///all";)
-dn: ou="uid=%as_uid%, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot",ou=UserPreferences, ou=%domain%, o=NetscapeRoot
+dn: ou=uid\=%as_uid%\,ou\=Administrators\,ou\=TopologyManagement\,o\=NetscapeRoot,ou=UserPreferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
aci: (targetattr=*)(version 3.0; acl "UserDNControl"; allow (all) userdnattr="creatorsname";)
-ou: uid=%as_uid%, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
+ou: uid=%as_uid%,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot
diff --git a/admserv/schema/ldif/02globalpreferences.ldif.tmpl b/admserv/schema/ldif/02globalpreferences.ldif.tmpl
index 1397afc..941906b 100644
--- a/admserv/schema/ldif/02globalpreferences.ldif.tmpl
+++ b/admserv/schema/ldif/02globalpreferences.ldif.tmpl
@@ -17,35 +17,35 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
-dn: ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
objectClass: extensibleObject
ou: admin
nsmerge: ADD_IF_EMPTY
-dn: ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
objectClass: extensibleObject
ou: %as_baseversion%
nsmerge: ADD_IF_EMPTY
-dn: cn=ResourceEditorExtension, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=ResourceEditorExtension,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: extensibleObject
cn: ResourceEditorExtension
nsmerge: ADD_IF_EMPTY
-dn: cn=nsroledefinition, cn=ResourceEditorExtension, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=nsroledefinition,cn=ResourceEditorExtension,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.roledit.ResEditorRoleInfo@%ds_console_jar%
nsClassname: com.netscape.admin.dirserv.roledit.ResEditorRoleMembers@%ds_console_jar%
nsClassname: com.netscape.admin.dirserv.roledit.ResEditorRoleAccountPage@%ds_console_jar%
-dn: cn=nsroledefinition, cn=ResourceEditorExtension, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=nsroledefinition,cn=ResourceEditorExtension,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
cn: nsroledefinition
objectClass: top
objectClass: extensibleObject
@@ -57,14 +57,14 @@ nsClassname: com.netscape.admin.dirserv.roledit.ResEditorRoleMembers@%ds_console
nsClassname: com.netscape.admin.dirserv.roledit.ResEditorRoleAccountPage@%ds_console_jar%
nsmerge: {nsclassname}MULTI_MERGE
-dn: cn=cossuperdefinition, cn=ResourceEditorExtension, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=cossuperdefinition,cn=ResourceEditorExtension,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.cosedit.ResEditorCosInfo@%ds_console_jar%
nsClassname: com.netscape.admin.dirserv.cosedit.ResEditorCosAttributes@%ds_console_jar%
nsClassname: com.netscape.admin.dirserv.cosedit.ResEditorCosTemplate@%ds_console_jar%
-dn: cn=cossuperdefinition, cn=ResourceEditorExtension, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=cossuperdefinition,cn=ResourceEditorExtension,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
cn: cossuperdefinition
objectClass: top
objectClass: extensibleObject
@@ -76,14 +76,14 @@ nsClassname: com.netscape.admin.dirserv.cosedit.ResEditorCosAttributes@%ds_conso
nsClassname: com.netscape.admin.dirserv.cosedit.ResEditorCosTemplate@%ds_console_jar%
nsmerge: {nsclassname}MULTI_MERGE
-dn: cn=UserDirectory, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=UserDirectory,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsDirectoryInfo
cn: UserDirectory
nsDirectoryURL: ldap://%fqdn%:%ds_port%/%ds_suffix%
nsDirectoryFailoverList:
-dn: cn=Common, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=Common,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsGlobalParameters
@@ -98,7 +98,7 @@ nsmerge: {nsuseridformat}ADD_IF_EMPTY
nsmerge: {nsuserrdncomponent}ADD_IF_EMPTY
nsmerge: {nsgrouprdncomponent}ADD_IF_EMPTY
-dn: cn=Client, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=Client,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsAdminGlobalParameters
@@ -111,18 +111,18 @@ nsNickName: cert,cert,%brand% Certificate Server
nsmerge: {nsadminenduserhtmlindex}MULTI_MERGE
nsmerge: {nsnickname}MULTI_MERGE
-dn: cn=PublicViews, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=PublicViews,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsAdminConsoleUser
cn: PublicViews
aci: (targetattr = "*")(version 3.0; acl "Allow Authenticated Users to Save Public Views"; allow (all) userdn = "ldap:///all";)
-dn: cn=CustomView, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=CustomView,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
cn: CustomView
-dn: cn=inetorgPerson, cn=ResourceEditorExtension, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=inetorgPerson,cn=ResourceEditorExtension,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
cn: inetorgPerson
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
@@ -136,7 +136,7 @@ nsClassname: com.netscape.management.client.ug.ResEditorNTUser
nsClassname: com.netscape.management.client.ug.ResEditorPosixUser
nsmerge: {nsclassname}MULTI_MERGE
-dn: cn=organizationalPerson, cn=ResourceEditorExtension, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=organizationalPerson,cn=ResourceEditorExtension,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
cn: organizationalPerson
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
@@ -148,7 +148,7 @@ nsClassname: com.netscape.management.client.ug.ResEditorAccountPage
nsClassname: com.netscape.management.client.ug.LanguagePage
nsmerge: {nsclassname}MULTI_MERGE
-dn: cn=groupofuniquenames, cn=ResourceEditorExtension, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=groupofuniquenames,cn=ResourceEditorExtension,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
cn: groupofuniquenames
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
@@ -161,7 +161,7 @@ nsClassname: com.netscape.management.client.ug.ResEditorAccountPage
nsClassname: com.netscape.management.client.ug.LanguagePage
nsmerge: {nsclassname}MULTI_MERGE
-dn: cn=organizationalunit, cn=ResourceEditorExtension, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=organizationalunit,cn=ResourceEditorExtension,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
cn: organizationalunit
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
@@ -172,12 +172,12 @@ nsClassname: com.netscape.management.client.ug.OUPage
nsClassname: com.netscape.management.client.ug.LanguagePage
nsmerge: {nsclassname}MULTI_MERGE
-dn: cn=defaultObjectClassesContainer, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=defaultObjectClassesContainer,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
cn: DefaultObjectClassesContainer
-dn: cn=user, cn=defaultObjectClassesContainer, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=user,cn=defaultObjectClassesContainer,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsdefaultObjectClasses
@@ -187,7 +187,7 @@ nsDefaultObjectClass: person
nsDefaultObjectClass: organizationalPerson
nsDefaultObjectClass: inetorgperson
-dn: cn=group, cn=defaultObjectClassesContainer, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=group,cn=defaultObjectClassesContainer,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsdefaultObjectClasses
@@ -195,7 +195,7 @@ cn: group
nsDefaultObjectClass: top
nsDefaultObjectClass: groupofuniquenames
-dn: cn=ou, cn=defaultObjectClassesContainer, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=ou,cn=defaultObjectClassesContainer,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsdefaultObjectClasses
@@ -203,14 +203,14 @@ cn: ou
nsDefaultObjectClass: top
nsDefaultObjectClass: organizationalunit
-dn: cn=topologyplugin, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=topologyplugin,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: extensibleObject
cn: topologyplugin
nsmerge: ADD_IF_EMPTY
-dn: cn=defaultplugin, cn=topologyplugin, ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=defaultplugin,cn=topologyplugin,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nstopologyplugin
objectClass: extensibleObject
@@ -219,7 +219,7 @@ cn: defaultplugin
nsClassname: com.netscape.management.client.topology.DefaultTopologyPlugin
nsmerge: {nsclassname}MULTI_MERGE
-dn: cn=UI,ou=%console_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+dn: cn=UI,ou=%console_version%,ou=Admin,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
cn: UI
objectClass: top
objectClass: nsAdminConsoleUser
diff --git a/admserv/schema/ldif/10dsdata.ldif.tmpl b/admserv/schema/ldif/10dsdata.ldif.tmpl
index 3a03c0b..23a891b 100644
--- a/admserv/schema/ldif/10dsdata.ldif.tmpl
+++ b/admserv/schema/ldif/10dsdata.ldif.tmpl
@@ -20,16 +20,16 @@
dn: o=NetscapeRoot
changetype: modify
add: aci
-aci: (targetattr = "*")(version 3.0; acl "SIE Group (%dsid%)"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+aci: (targetattr = "*")(version 3.0; acl "SIE Group (%dsid%)"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
-dn: cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsOsVersion
replace: nsHardwarePlatform
nsOsVersion: %uname_a%
nsHardwarePlatform: %uname_m%
-dn: cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsHost
objectClass: groupOfUniqueNames
@@ -37,25 +37,25 @@ cn: %fqdn%
serverHostName: %fqdn%
nsOsVersion: %uname_a%
nsHardwarePlatform: %uname_m%
-uniqueMember: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+uniqueMember: cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
add: uniqueMember
-uniqueMember: cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+uniqueMember: cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: nsAdminGroup
objectClass: groupOfUniqueNames
objectClass: nsDirectoryInfo
objectClass: top
nsAdminGroupName: Server Group
-nsAdminSIEDN: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-nsDirectoryInfoRef: cn=UserDirectory, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
+nsAdminSIEDN: cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+nsDirectoryInfoRef: cn=UserDirectory,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
cn: Server Group
-uniqueMember: cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+uniqueMember: cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsProductVersion
replace: nsBuildNumber
@@ -63,10 +63,10 @@ replace: nsServerMigrationClassname
replace: nsServerCreationClassname
nsProductVersion: %ds_version%
nsBuildNumber: %ds_buildnum%
-nsServerMigrationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-nsServerCreationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+nsServerMigrationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+nsServerCreationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: nsApplication
objectClass: groupOfUniqueNames
objectClass: top
@@ -79,11 +79,11 @@ nsVendor: %vendor%
installationTimeStamp: %timestamp%
nsExpirationDate: 0
nsBuildSecurity: domestic
-uniqueMember: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-nsServerMigrationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-nsServerCreationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+uniqueMember: cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+nsServerMigrationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+nsServerCreationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: netscapeServer
objectClass: nsDirectoryServer
objectClass: nsResourceRef
@@ -102,41 +102,41 @@ installationTimeStamp: %timestamp%
nsSuiteSpotUser: %ds_user%
serverHostName: %fqdn%
cn: slapd-%dsid%
-uniqueMember: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-uniqueMember: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-aci: (targetattr=*)(version 3.0; acl "Enable delegated access"; allow (read, search, compare) groupdn="ldap:///cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
-aci: (targetattr="uniquemember || serverProductName || userpassword || description")(targetfilter=(objectclass=netscapeServer))(version 3.0; acl "Enable access delegation"; allow (write) groupdn="ldap:///cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+uniqueMember: cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+uniqueMember: cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+aci: (targetattr=*)(version 3.0; acl "Enable delegated access"; allow (read, search, compare) groupdn="ldap:///cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
+aci: (targetattr="uniquemember || serverProductName || userpassword || description")(targetfilter=(objectclass=netscapeServer))(version 3.0; acl "Enable access delegation"; allow (write) groupdn="ldap:///cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
-dn: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: serverVersionNumber
serverVersionNumber: %ds_version%
-dn: cn=configuration,cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=configuration,cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsClassname
replace: nsJarfilename
-nsClassname: com.netscape.admin.dirserv.DSAdmin@%ds_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+nsClassname: com.netscape.admin.dirserv.DSAdmin@%ds_console_jar%@cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
nsJarfilename: %ds_console_jar%
-dn: cn=configuration,cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=configuration,cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: nsResourceRef
objectClass: nsAdminObject
objectClass: nsDirectoryInfo
objectClass: top
cn: configuration
-nsClassname: com.netscape.admin.dirserv.DSAdmin@%ds_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+nsClassname: com.netscape.admin.dirserv.DSAdmin@%ds_console_jar%@cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
nsJarfilename: %ds_console_jar%
-nsDirectoryInfoRef: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-aci: (targetattr=*)(version 3.0; acl "Enable Server configuration"; allow (all) groupdn="ldap:///cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+nsDirectoryInfoRef: cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+aci: (targetattr=*)(version 3.0; acl "Enable Server configuration"; allow (all) groupdn="ldap:///cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
-dn: ou="cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot",ou=UserPreferences, ou=%domain%, o=NetscapeRoot
+dn: ou=cn\=slapd-%dsid%\,cn\=%brand% Directory Server\,cn\=Server Group\,cn\=%fqdn%\,ou\=%domain%\,o\=NetscapeRoot,ou=UserPreferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
aci: (targetattr=*)(version 3.0; acl "UserDNControl"; allow (all) userdnattr="creatorsname";)
-ou: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+ou: cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: ou="%rootdn%",ou=UserPreferences, ou=%domain%, o=NetscapeRoot
+dn: ou=%escapedrootdn%,ou=UserPreferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
aci: (targetattr=*)(version 3.0; acl "UserDNControl"; allow (all) userdnattr="creatorsname";)
diff --git a/admserv/schema/ldif/10rm_dsdata.ldif.tmpl b/admserv/schema/ldif/10rm_dsdata.ldif.tmpl
index d0ed815..832edc8 100644
--- a/admserv/schema/ldif/10rm_dsdata.ldif.tmpl
+++ b/admserv/schema/ldif/10rm_dsdata.ldif.tmpl
@@ -20,15 +20,15 @@
dn: o=NetscapeRoot
changetype: modify
delete: aci
-aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
-dn: cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
delete: uniqueMember
-uniqueMember: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+uniqueMember: cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: delete
-dn: ou="cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot",ou=UserPreferences, ou=%domain%, o=NetscapeRoot
+dn: ou=cn\=slapd-%dsid%\,cn\=%brand% Directory Server\,cn\=Server Group\,cn\=%fqdn%\,ou\=%domain%\,o\=NetscapeRoot,ou=UserPreferences,ou=%domain%,o=NetscapeRoot
changetype: delete
diff --git a/admserv/schema/ldif/11dstasks.ldif.tmpl b/admserv/schema/ldif/11dstasks.ldif.tmpl
index d473ab9..bdabefe 100644
--- a/admserv/schema/ldif/11dstasks.ldif.tmpl
+++ b/admserv/schema/ldif/11dstasks.ldif.tmpl
@@ -17,35 +17,35 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
-dn: cn=Tasks, %ds_sie%
+dn: cn=Tasks,%ds_sie%
objectClass: top
objectClass: nsResourceRef
cn: Tasks
-dn: cn=Operation, cn=Tasks, %ds_sie%
+dn: cn=Operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstaskgroup
nsTaskLabel: Operation Tasks Group
cn: Operation
# change description so that it always lists the correct tasks
-dn: cn=task summary, cn=Operation, cn=Tasks, %ds_sie%
+dn: cn=task summary,cn=Operation,cn=Tasks,%ds_sie%
changetype: modify
replace: description
description: start stop restart Backup Restore KeyCert Authenticate CompleteImport CompleteExport
-dn: cn=task summary, cn=Operation, cn=Tasks, %ds_sie%
+dn: cn=task summary,cn=Operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nsConfig
description: start stop restart Backup Restore KeyCert Authenticate CompleteImport CompleteExport
cn: task summary
-dn: cn=start, cn=Operation, cn=Tasks, %ds_sie%
+dn: cn=start,cn=Operation,cn=Tasks,%ds_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.task.Start@%ds_console_jar%@%as_sie%
-dn: cn=start, cn=Operation, cn=Tasks, %ds_sie%
+dn: cn=start,cn=Operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -53,12 +53,12 @@ nsClassname: com.netscape.admin.dirserv.task.Start@%ds_console_jar%@%as_sie%
nsExecRef: ds_start
cn: start
-dn: cn=stop, cn=Operation, cn=Tasks, %ds_sie%
+dn: cn=stop,cn=Operation,cn=Tasks,%ds_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.task.Stop@%ds_console_jar%@%as_sie%
-dn: cn=stop, cn=Operation, cn=Tasks, %ds_sie%
+dn: cn=stop,cn=Operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -66,12 +66,12 @@ nsClassname: com.netscape.admin.dirserv.task.Stop@%ds_console_jar%@%as_sie%
nsExecRef: ds_shutdown
cn: stop
-dn: cn=restart, cn=Operation, cn=Tasks, %ds_sie%
+dn: cn=restart,cn=Operation,cn=Tasks,%ds_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.task.Restart@%ds_console_jar%@%as_sie%
-dn: cn=restart, cn=Operation, cn=Tasks, %ds_sie%
+dn: cn=restart,cn=Operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -79,151 +79,151 @@ nsClassname: com.netscape.admin.dirserv.task.Restart@%ds_console_jar%@%as_sie%
nsExecRef: ds_restart
cn: restart
-dn: cn=Backup, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=Backup,cn=operation,cn=Tasks,%ds_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.task.Backup@%ds_console_jar%@%as_sie%
-dn: cn=Backup, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=Backup,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.Backup@%ds_console_jar%@%as_sie%
cn: Backup
-dn: cn=Restore, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=Restore,cn=operation,cn=Tasks,%ds_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.task.Restore@%ds_console_jar%@%as_sie%
-dn: cn=Restore, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=Restore,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.Restore@%ds_console_jar%@%as_sie%
cn: Restore
-dn: cn=KeyCert, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=KeyCert,cn=operation,cn=Tasks,%ds_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.task.KeyCert@%ds_console_jar%@%as_sie%
-dn: cn=KeyCert, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=KeyCert,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.KeyCert@%ds_console_jar%@%as_sie%
cn: KeyCert
-dn: cn=Authenticate, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=Authenticate,cn=operation,cn=Tasks,%ds_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.task.Authenticate@%ds_console_jar%@%as_sie%
-dn: cn=Authenticate, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=Authenticate,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.Authenticate@%ds_console_jar%@%as_sie%
cn: Authenticate
-dn: cn=CompleteImport, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=CompleteImport,cn=operation,cn=Tasks,%ds_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.task.CompleteImport@%ds_console_jar%@%as_sie%
-dn: cn=CompleteImport, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=CompleteImport,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.CompleteImport@%ds_console_jar%@%as_sie%
cn: CompleteImport
-dn: cn=CompleteExport, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=CompleteExport,cn=operation,cn=Tasks,%ds_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.admin.dirserv.task.CompleteExport@%ds_console_jar%@%as_sie%
-dn: cn=CompleteExport, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=CompleteExport,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.CompleteExport@%ds_console_jar%@%as_sie%
cn: CompleteExport
-dn: cn=ViewLog, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=ViewLog,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: viewlog
cn: ViewLog
-dn: cn=ListBackups, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=ListBackups,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_listdb
cn: ListBackups
-dn: cn=Remove, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=Remove,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_remove
cn: Remove
-dn: cn=CreateVLVIndex, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=CreateVLVIndex,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
cn: CreateVLVIndex
-dn: cn=AddIndex, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=AddIndex,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
cn: AddIndex
-dn: cn=SNMPCtrl, cn=operation, cn=Tasks, %ds_sie%
+dn: cn=SNMPCtrl,cn=operation,cn=Tasks,%ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_snmpctrl
cn: SNMPCtrl
-dn: cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=Tasks,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
cn: Tasks
-dn: cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=Operation,cn=Tasks,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nstaskgroup
nsTaskLabel: Operation Tasks Group
cn: Operation
-dn: cn=Migrate, cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=Migrate,cn=Operation,cn=Tasks,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: perl?migrateInstance
cn: Migrate
-dn: cn=Create, cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=Create,cn=Operation,cn=Tasks,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_create
cn: Create
-dn: cn=GetConfigInfo, cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=GetConfigInfo,cn=Operation,cn=Tasks,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: perl?getConfigInfo
cn: GetConfigInfo
-dn: cn=MigrateLocalDB, cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=MigrateLocalDB,cn=Operation,cn=Tasks,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
diff --git a/admserv/schema/ldif/12dsconfig.mod.tmpl b/admserv/schema/ldif/12dsconfig.mod.tmpl
index 50f3456..14f482a 100644
--- a/admserv/schema/ldif/12dsconfig.mod.tmpl
+++ b/admserv/schema/ldif/12dsconfig.mod.tmpl
@@ -20,9 +20,9 @@
dn: cn=config
changetype: modify
add: aci
-aci: (targetattr="*")(version 3.0; acl "Configuration Administrators Group"; allow (all) groupdn="ldap:///cn=Configuration Administrators, ou=Groups, ou=TopologyManagement, o=NetscapeRoot";)
-aci: (targetattr="*")(version 3.0; acl "Configuration Administrator"; allow (all) userdn="ldap:///uid=%as_uid%, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot";)
-aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+aci: (targetattr="*")(version 3.0; acl "Configuration Administrators Group"; allow (all) groupdn="ldap:///cn=Configuration Administrators,ou=Groups,ou=TopologyManagement,o=NetscapeRoot";)
+aci: (targetattr="*")(version 3.0; acl "Configuration Administrator"; allow (all) userdn="ldap:///uid=%as_uid%,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot";)
+aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
dn: cn=SNMP,cn=config
changetype: modify
diff --git a/admserv/schema/ldif/13dsschema.mod.tmpl b/admserv/schema/ldif/13dsschema.mod.tmpl
index 3c176ae..2454d5e 100644
--- a/admserv/schema/ldif/13dsschema.mod.tmpl
+++ b/admserv/schema/ldif/13dsschema.mod.tmpl
@@ -21,6 +21,6 @@ dn: cn=schema
changetype: modify
add: aci
aci: (target="ldap:///cn=schema")(targetattr !="aci")(version 3.0;acl "anonymous, no acis"; allow (read, search, compare) userdn = "ldap:///anyone";)
-aci: (targetattr="*")(version 3.0; acl "Configuration Administrators Group"; allow (all) groupdn="ldap:///cn=Configuration Administrators, ou=Groups, ou=TopologyManagement, o=NetscapeRoot";)
-aci: (targetattr="*")(version 3.0; acl "Configuration Administrator"; allow (all) userdn="ldap:///uid=%as_uid%,ou=Administrators, ou=TopologyManagement, o=NetscapeRoot";)
-aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+aci: (targetattr="*")(version 3.0; acl "Configuration Administrators Group"; allow (all) groupdn="ldap:///cn=Configuration Administrators,ou=Groups,ou=TopologyManagement,o=NetscapeRoot";)
+aci: (targetattr="*")(version 3.0; acl "Configuration Administrator"; allow (all) userdn="ldap:///uid=%as_uid%,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot";)
+aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
diff --git a/admserv/schema/ldif/16dssuffixadmin.mod.tmpl b/admserv/schema/ldif/16dssuffixadmin.mod.tmpl
index eb14e8b..a3cb7f8 100644
--- a/admserv/schema/ldif/16dssuffixadmin.mod.tmpl
+++ b/admserv/schema/ldif/16dssuffixadmin.mod.tmpl
@@ -20,6 +20,6 @@
dn: %ds_suffix%
changetype: modify
add: aci
-aci: (targetattr="*")(version 3.0; acl "Configuration Administrators Group"; allow (all) groupdn="ldap:///cn=Configuration Administrators, ou=Groups, ou=TopologyManagement, o=NetscapeRoot";)
-aci: (targetattr="*")(version 3.0; acl "Configuration Administrator"; allow (all) userdn="ldap:///uid=%as_uid%,ou=Administrators, ou=TopologyManagement, o=NetscapeRoot";)
-aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+aci: (targetattr="*")(version 3.0; acl "Configuration Administrators Group"; allow (all) groupdn="ldap:///cn=Configuration Administrators,ou=Groups,ou=TopologyManagement,o=NetscapeRoot";)
+aci: (targetattr="*")(version 3.0; acl "Configuration Administrator"; allow (all) userdn="ldap:///uid=%as_uid%,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot";)
+aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "ldap:///cn=slapd-%dsid%,cn=%brand% Directory Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
diff --git a/admserv/schema/ldif/20asdata.ldif.tmpl b/admserv/schema/ldif/20asdata.ldif.tmpl
index 8129f7f..5a462b9 100644
--- a/admserv/schema/ldif/20asdata.ldif.tmpl
+++ b/admserv/schema/ldif/20asdata.ldif.tmpl
@@ -17,14 +17,14 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
-dn: cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsOsVersion
replace: nsHardwarePlatform
nsOsVersion: %uname_a%
nsHardwarePlatform: %uname_m%
-dn: cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsHost
objectClass: groupOfUniqueNames
@@ -32,27 +32,27 @@ cn: %fqdn%
serverHostName: %fqdn%
nsOsVersion: %uname_a%
nsHardwarePlatform: %uname_m%
-uniqueMember: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+uniqueMember: cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
add: aci
add: uniqueMember
-aci: (targetattr=*)(version 3.0; acl "Enable delegated access"; allow (read, search, compare) userdn="ldap:///cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
-uniqueMember: cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+aci: (targetattr=*)(version 3.0; acl "Enable delegated access"; allow (read, search, compare) userdn="ldap:///cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
+uniqueMember: cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: nsAdminGroup
objectClass: groupOfUniqueNames
objectClass: nsDirectoryInfo
objectClass: top
nsAdminGroupName: Server Group
-nsDirectoryInfoRef: cn=UserDirectory, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
-nsAdminSIEDN: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+nsDirectoryInfoRef: cn=UserDirectory,ou=Global Preferences,ou=%domain%,o=NetscapeRoot
+nsAdminSIEDN: cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
cn: Server Group
-uniqueMember: cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+uniqueMember: cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsProductVersion
replace: nsBuildNumber
@@ -61,7 +61,7 @@ nsProductVersion: %as_version%
nsBuildNumber: %as_buildnum%
nsServerMigrationClassname: com.netscape.management.admserv.AdminServerProduct@%as_console_jar%
-dn: cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: nsApplication
objectClass: groupOfUniqueNames
@@ -74,10 +74,10 @@ nsBuildNumber: %as_buildnum%
installationTimeStamp: %timestamp%
nsBuildSecurity: domestic
nsServerMigrationClassname: com.netscape.management.admserv.AdminServerProduct@%as_console_jar%
-uniqueMember: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-aci: (targetattr=*)(targetfilter=(nsNickName=*))(version 3.0; acl "Enable delegated access"; allow (read, search, compare) groupdn="ldap:///cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+uniqueMember: cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+aci: (targetattr=*)(targetfilter=(nsNickName=*))(version 3.0; acl "Enable delegated access"; allow (read, search, compare) groupdn="ldap:///cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
-dn: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: netscapeServer
objectClass: nsAdminServer
@@ -88,16 +88,16 @@ nsServerID: admin-serv
serverProductName: Administration Server
serverHostName: %fqdn%
installationTimeStamp: %timestamp%
-uniqueMember: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-aci: (targetattr=*)(version 3.0; acl "Enable delegated access"; allow (read, search, compare) groupdn="ldap:///cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
-aci: (targetattr="uniquemember || serverProductName || userpassword || description")(targetfilter=(objectclass=netscapeServer))(version 3.0; acl "Enable access delegation"; allow (write) groupdn="ldap:///cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+uniqueMember: cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+aci: (targetattr=*)(version 3.0; acl "Enable delegated access"; allow (read, search, compare) groupdn="ldap:///cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
+aci: (targetattr="uniquemember || serverProductName || userpassword || description")(targetfilter=(objectclass=netscapeServer))(version 3.0; acl "Enable access delegation"; allow (write) groupdn="ldap:///cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
-dn: cn=configuration, cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=configuration,cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsClassname
-nsClassname: com.netscape.management.admserv.AdminServer@%as_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+nsClassname: com.netscape.management.admserv.AdminServer@%as_console_jar%@cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=configuration, cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=configuration,cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
objectClass: nsConfig
objectClass: nsAdminConfig
objectClass: nsAdminObject
@@ -109,7 +109,7 @@ nsSuiteSpotUser: %as_user%
nsServerAddress: %as_addr%
nsAdminEnableEnduser: on
nsAdminEnableDSGW: on
-nsDirectoryInfoRef: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+nsDirectoryInfoRef: cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
nsAdminUsers: %admpw%
nsErrorLog: %as_error%
nsPidLog: %as_pid%
@@ -119,12 +119,12 @@ nsAdminAccessHosts: *.%domain%
nsAdminAccessAddresses: *
nsAdminOneACLDir: adminacl
nsDefaultAcceptLanguage: en
-nsClassname: com.netscape.management.admserv.AdminServer@%as_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
-aci: (targetattr=*)(version 3.0; acl "Enable delegated admin to access configuration"; allow (read, search) groupdn="ldap:///cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
-aci: (targetattr=*)(version 3.0; acl "Enable Server configuration"; allow (all) groupdn="ldap:///cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot";)
+nsClassname: com.netscape.management.admserv.AdminServer@%as_console_jar%@cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
+aci: (targetattr=*)(version 3.0; acl "Enable delegated admin to access configuration"; allow (read, search) groupdn="ldap:///cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
+aci: (targetattr=*)(version 3.0; acl "Enable Server configuration"; allow (all) groupdn="ldap:///cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot";)
-dn: ou="cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot",ou=UserPreferences, ou=%domain%, o=NetscapeRoot
+dn: ou=cn\=admin-serv-%asid%\,cn\=%brand% Administration Server\,cn\=Server Group\,cn\=%fqdn%\,ou\=%domain%\,o\=NetscapeRoot,ou=UserPreferences,ou=%domain%,o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
aci: (targetattr=*)(version 3.0; acl "UserDNControl"; allow (all) userdnattr="creatorsname";)
-ou: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=netscaperoot
+ou: cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=netscaperoot
diff --git a/admserv/schema/ldif/21astasks.ldif.tmpl b/admserv/schema/ldif/21astasks.ldif.tmpl
index d0e3857..ea45a1e 100644
--- a/admserv/schema/ldif/21astasks.ldif.tmpl
+++ b/admserv/schema/ldif/21astasks.ldif.tmpl
@@ -17,25 +17,25 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
-dn: cn=Tasks, %as_sie%
+dn: cn=Tasks,%as_sie%
objectClass: top
objectClass: nsResourceRef
cn: Tasks
-dn: cn=Operation, cn=Tasks, %as_sie%
+dn: cn=Operation,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstaskgroup
nsTaskLabel: Operation Tasks Group
cn: Operation
-dn: cn=Stop, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=Stop,cn=Operation,cn=Tasks,%as_sie%
changetype: modify
replace: nsClassname
replace: nsHelpRef
nsClassname: com.netscape.management.admserv.task.Stop@%as_console_jar%@%as_sie%
nsHelpRef: %as_help_path%/stopadm.html
-dn: cn=Stop, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=Stop,cn=Operation,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -44,14 +44,14 @@ nsExecRef: stopsrv
nsClassname: com.netscape.management.admserv.task.Stop@%as_console_jar%@%as_sie%
cn: Stop
-dn: cn=Restart, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=Restart,cn=Operation,cn=Tasks,%as_sie%
changetype: modify
replace: nsClassname
replace: nsHelpRef
nsClassname: com.netscape.management.admserv.task.Restart@%as_console_jar%@%as_sie%
nsHelpRef: %as_help_path%/restartadm.html
-dn: cn=Restart, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=Restart,cn=Operation,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -60,39 +60,39 @@ nsExecRef: restartsrv
nsClassname: com.netscape.management.admserv.task.Restart@%as_console_jar%@%as_sie%
cn: Restart
-dn: cn=Authenticate, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=Authenticate,cn=Operation,cn=Tasks,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/userauth.html
-dn: cn=Authenticate, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=Authenticate,cn=Operation,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
nsHelpRef: %as_help_path%/userauth.html
nsExecRef: userauth
cn: Authenticate
-dn: cn=ListOldServers, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=ListOldServers,cn=Operation,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: listOldSrvs
cn: ListOldServers
-dn: cn=StartConfigDS, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=StartConfigDS,cn=Operation,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
nsExecRef: start_config_ds
cn: StartConfigDS
-dn: cn=MigrateConfig, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=MigrateConfig,cn=Operation,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: migrateConfig
cn: MigrateConfig
-dn: cn=StatusPing, cn=Operation, cn=Tasks, %as_sie%
+dn: cn=StatusPing,cn=Operation,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -100,18 +100,18 @@ nsExecRef: statusping
nsLogSuppress: true
cn: StatusPing
-dn: cn=Configuration, cn=Tasks, %as_sie%
+dn: cn=Configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstaskgroup
nsTaskLabel: Configuration Tasks Group
cn: Configuration
-dn: cn=ServerSetup, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=ServerSetup,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsClassname
nsClassname: com.netscape.management.admserv.task.ServerSetup@%as_console_jar%@%as_sie%
-dn: cn=ServerSetup, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=ServerSetup,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -119,35 +119,35 @@ nsExecRef: config
nsClassname: com.netscape.management.admserv.task.ServerSetup@%as_console_jar%@%as_sie%
cn: ServerSetup
-dn: cn=DirectorySetup, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=DirectorySetup,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: dsconfig
cn: DirectorySetup
-dn: cn=UGDirectorySetup, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=UGDirectorySetup,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ugdsconfig
cn: UGDirectorySetup
-dn: cn=AccessSetup, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=AccessSetup,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: admpw
cn: AccessSetup
-dn: cn=Logging, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=Logging,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsClassname
replace: nsHelpRef
nsClassname: com.netscape.management.admserv.task.Logging@%as_console_jar%@%as_sie%
nsHelpRef: %as_help_path%/logging.html
-dn: cn=Logging, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=Logging,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -156,21 +156,21 @@ nsExecRef: config
nsClassname: com.netscape.management.admserv.task.Logging@%as_console_jar%@%as_sie%
cn: Logging
-dn: cn=SecurityOp, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=SecurityOp,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: security
cn: SecurityOp
-dn: cn=CertSetup, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=CertSetup,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsClassname
replace: nsHelpRef
nsClassname: com.netscape.management.admserv.task.CertSetup@%as_console_jar%@%as_sie%
nsHelpRef: %as_help_path%/certrequest.html
-dn: cn=CertSetup, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=CertSetup,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -178,12 +178,12 @@ nsHelpRef: %as_help_path%/certrequest.html
nsClassname: com.netscape.management.admserv.task.CertSetup@%as_console_jar%@%as_sie%
cn: CertSetup
-dn: cn=SSLActivate, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=SSLActivate,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/ssl_activate.html
-dn: cn=SSLActivate, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=SSLActivate,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -191,12 +191,12 @@ nsHelpRef: %as_help_path%/ssl_activate.html
nsExecRef: sec-activate
cn: SSLActivate
-dn: cn=ReadLog, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=ReadLog,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/logging.html
-dn: cn=ReadLog, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=ReadLog,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -204,12 +204,12 @@ nsHelpRef: %as_help_path%/logging.html
nsExecRef: ReadLog
cn: ReadLog
-dn: cn=HTMLAdmin, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=HTMLAdmin,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/htmladmin.html
-dn: cn=HTMLAdmin, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=HTMLAdmin,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -217,12 +217,12 @@ nsHelpRef: %as_help_path%/htmladmin.html
nsExecRef: htmladmin
cn: HTMLAdmin
-dn: cn=StatPingServ, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=StatPingServ,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/statpingserv.html
-dn: cn=StatPingServ, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=StatPingServ,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -230,12 +230,12 @@ nsHelpRef: %as_help_path%/statpingserv.html
nsExecRef: statpingserv
cn: StatPingServ
-dn: cn=ViewData, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=ViewData,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/viewdata.html
-dn: cn=ViewData, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=ViewData,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -243,12 +243,12 @@ nsHelpRef: %as_help_path%/viewdata.html
nsExecRef: viewdata
cn: ViewData
-dn: cn=ViewLog, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=ViewLog,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/viewlog.html
-dn: cn=ViewLog, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=ViewLog,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -256,12 +256,12 @@ nsHelpRef: %as_help_path%/viewlog.html
nsExecRef: viewlog
cn: ViewLog
-dn: cn=MonReplication, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=MonReplication,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/monreplication.html
-dn: cn=MonReplication, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=MonReplication,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
@@ -269,12 +269,12 @@ nsHelpRef: %as_help_path%/monreplication.html
nsExecRef: monreplication
cn: MonReplication
-dn: cn=repl-monitor-cgi.pl, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=repl-monitor-cgi.pl,cn=configuration,cn=Tasks,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/monreplication.html
-dn: cn=repl-monitor-cgi.pl, cn=configuration, cn=Tasks, %as_sie%
+dn: cn=repl-monitor-cgi.pl,cn=configuration,cn=Tasks,%as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
diff --git a/admserv/schema/ldif/22ascommands.ldif.tmpl b/admserv/schema/ldif/22ascommands.ldif.tmpl
index 930b334..fcfde8b 100644
--- a/admserv/schema/ldif/22ascommands.ldif.tmpl
+++ b/admserv/schema/ldif/22ascommands.ldif.tmpl
@@ -17,24 +17,24 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
-dn: cn=Commands, %as_sie%
+dn: cn=Commands,%as_sie%
objectClass: top
objectClass: nsResourceRef
cn: Commands
-dn: cn=sync-task-sie-data, cn=Commands, %as_sie%
+dn: cn=sync-task-sie-data,cn=Commands,%as_sie%
changetype: modify
replace: nsHelpRef
nsHelpRef: %as_help_path%/sync-task-sie-data.html
-dn: cn=sync-task-sie-data, cn=Commands, %as_sie%
+dn: cn=sync-task-sie-data,cn=Commands,%as_sie%
objectClass: top
objectClass: nstask
nsHelpRef: %as_help_path%/sync-task-sie-data.html
nsExecRef: runtime
cn: sync-task-sie-data
-dn: cn=change-sie-password, cn=Commands, %as_sie%
+dn: cn=change-sie-password,cn=Commands,%as_sie%
objectClass: top
objectClass: nstask
nsExecRef: runtime
diff --git a/admserv/schema/ldif/asmigrate.ldif.tmpl b/admserv/schema/ldif/asmigrate.ldif.tmpl
index dbe4e4c..35c4294 100644
--- a/admserv/schema/ldif/asmigrate.ldif.tmpl
+++ b/admserv/schema/ldif/asmigrate.ldif.tmpl
@@ -24,7 +24,7 @@
# away values that are not adjacent - so you must have all of the replace:
# lines next to each other, all of the add: lines, delete: lines, etc.
-dn: cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsVendor
replace: nsProductVersion
@@ -38,14 +38,14 @@ installationTimeStamp: %timestamp%
nsServerMigrationClassname: com.netscape.management.admserv.AdminServerProduct@%as_console_jar%
delete: nsInstalledLocation
-dn: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: installationTimeStamp
installationTimeStamp: %timestamp%
delete: userPassword
delete: serverRoot
-dn: cn=configuration, cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=configuration,cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
replace: nsSuiteSpotUser
replace: nsAdminUsers
@@ -58,9 +58,9 @@ nsAdminUsers: %admpw%
nsErrorLog: %as_error%
nsPidLog: %as_pid%
nsAccessLog: %as_access%
-nsClassname: com.netscape.management.admserv.AdminServer@%as_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+nsClassname: com.netscape.management.admserv.AdminServer@%as_console_jar%@cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
-dn: cn=encryption, cn=configuration, cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
+dn: cn=encryption,cn=configuration,cn=admin-serv-%asid%,cn=%brand% Administration Server,cn=Server Group,cn=%fqdn%,ou=%domain%,o=NetscapeRoot
changetype: modify
delete: nsCertFile
delete: nsKeyFile
14 years, 2 months
ldap/admin
by Noriko Hosoi
ldap/admin/src/scripts/DSUtil.pm.in | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
New commits:
commit 5c859f5b94527d30f6991a856840222216395b6d
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Wed Feb 3 14:16:29 2010 -0800
560827 - Admin Server templates: DistinguishName validation fails
https://bugzilla.redhat.com/show_bug.cgi?id=560827
Description: adding a perl subroutine dnEscape to escape special
characters and eliminate spaces around ',', which is to make
the given dn compliant with RFC4514.
diff --git a/ldap/admin/src/scripts/DSUtil.pm.in b/ldap/admin/src/scripts/DSUtil.pm.in
index b92efa4..7e846d7 100644
--- a/ldap/admin/src/scripts/DSUtil.pm.in
+++ b/ldap/admin/src/scripts/DSUtil.pm.in
@@ -693,6 +693,37 @@ sub shellEscape {
return $val;
}
+# given a string, escape the special characters in the string.
+# the characters are defined in RFC 4514.
+# special = escaped / SPACE / SHARP / EQUALS
+# escaped = DQUOTE / PLUS / COMMA / SEMI / LANGLE / RANGLE
+# hex string "# HEX HEX" is unlikely appearing in the installation.
+# thus, it won't be supported for now.
+my %dnspecial = (
+ '"' => '\\"', # '\\22'
+ '\+' => '\\+', # '\\2B'
+ ',' => '\\,', # '\\2C'
+ ';' => '\\;', # '\\3B'
+ '<' => '\\<', # '\\3C'
+ '>' => '\\>', # '\\3E'
+ '=' => '\\=' # '\\3D'
+);
+
+sub dnEscape {
+ my $val = shift;
+ # first, remove spaces surrounding ',' and leading/trailing spaces
+ $val =~ s/^\s*//;
+ $val =~ s/\s*$//;
+ $val =~ s/\s*,\s*/,/g;
+ # next, replace the special characters
+ foreach my $idx (keys %dnspecial) {
+ $val =~ s/$idx/$dnspecial{$idx}/g;
+ }
+ $val =~ s/\s*,\s*/,/g;
+
+ return $val;
+}
+
sub getHashedPassword {
my $pwd = shift;
my $alg = shift;
14 years, 2 months
ldapserver/ldap/servers/slapd/back-ldbm index.c, 1.5.2.4, 1.5.2.4.2.1
by Noriko Hosoi
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv8554
Modified Files:
Tag: Directory71Sp7RtmRhelHpuxSolaris_branch
index.c
Log Message:
Back porting revision 1.18 for CS71 release.
Resolves: #484157
Summary: timelimit not honored in some cases
Description: Range search operations could take longer time than the time limit
depending upon the data size, but there was no chance to check the time limit
in the code (index_range_read). Thus, once the range search operation has
started, it could have lasted far exceeding the specified time limit.
I introduced the time check in the range search function.
Index: index.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/index.c,v
retrieving revision 1.5.2.4
retrieving revision 1.5.2.4.2.1
diff -u -r1.5.2.4 -r1.5.2.4.2.1
--- index.c 28 Aug 2008 16:21:50 -0000 1.5.2.4
+++ index.c 2 Feb 2010 22:04:55 -0000 1.5.2.4.2.1
@@ -1012,6 +1012,8 @@
int retry_count = 0;
int is_and = 0;
int sizelimit = 0;
+ time_t curtime, stoptime, optime;
+ int timelimit = -1;
*err = 0;
plen = strlen( prefix = index2prefix( indextype ));
@@ -1020,6 +1022,9 @@
{
slapi_pblock_get(pb, SLAPI_SEARCH_SIZELIMIT, &sizelimit);
}
+ slapi_pblock_get( pb, SLAPI_OPINITIATED_TIME, &optime );
+ slapi_pblock_get(pb, SLAPI_SEARCH_TIMELIMIT, &timelimit);
+ stoptime = optime + timelimit;
/*
* Determine the lookthrough_limit from the PBlock.
@@ -1264,6 +1269,14 @@
0, 0, 0);
break;
}
+ /* check time limit */
+ curtime = current_time();
+ if ( timelimit != -1 && curtime >= stoptime )
+ {
+ LDAPDebug(LDAP_DEBUG_TRACE, "index_range_read timelimit exceeded\n",
+ 0, 0, 0);
+ break;
+ }
/* Check to see if the operation has been abandoned (also happens
* when the connection is closed by the client).
14 years, 2 months
ldap/servers
by Noriko Hosoi
ldap/servers/slapd/back-ldbm/ldbm_add.c | 13 +++++--------
ldap/servers/slapd/back-ldbm/ldbm_delete.c | 13 +++++--------
ldap/servers/slapd/back-ldbm/ldbm_modify.c | 13 +++++--------
ldap/servers/slapd/back-ldbm/ldbm_modrdn.c | 26 ++++++++++----------------
4 files changed, 25 insertions(+), 40 deletions(-)
New commits:
commit 0544378b347be0aa9b5ded0abd75d841bfcfe9d3
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Mon Feb 1 13:59:53 2010 -0800
Undo - 555577 - Syntax validation fails for "ou=NetscapeRoot" tree
https://bugzilla.redhat.com/show_bug.cgi?id=555577
Undoing the previous checkin.
The parameter "strict" is for the trength of the DN validation.
It should be confusing to use it for turning on/off the validation
itself.
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_add.c b/ldap/servers/slapd/back-ldbm/ldbm_add.c
index 6f51aea..75c64c3 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_add.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_add.c
@@ -193,15 +193,12 @@ ldbm_back_add( Slapi_PBlock *pb )
{
goto error_return;
}
- if (config_get_dn_validate_strict())
+ ldap_result_code = slapi_dn_syntax_check(pb, dn, 1);
+ if (ldap_result_code)
{
- ldap_result_code = slapi_dn_syntax_check(pb, dn, 1);
- if (ldap_result_code)
- {
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
- }
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
}
slapi_sdn_set_dn_byref(&sdn, dn);
slapi_sdn_get_backend_parent(&sdn,&parentsdn,pb->pb_backend);
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
index f993305..9787300 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
@@ -103,15 +103,12 @@ ldbm_back_delete( Slapi_PBlock *pb )
{
goto error_return;
}
- if (config_get_dn_validate_strict())
+ ldap_result_code = slapi_dn_syntax_check(pb, addr->dn, 1);
+ if (ldap_result_code)
{
- ldap_result_code = slapi_dn_syntax_check(pb, addr->dn, 1);
- if (ldap_result_code)
- {
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
- }
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
}
is_fixup_operation = operation_is_flag_set(operation, OP_FLAG_REPL_FIXUP);
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modify.c b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
index 165e655..9a0bea0 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_modify.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
@@ -224,15 +224,12 @@ ldbm_back_modify( Slapi_PBlock *pb )
{
goto error_return;
}
- if (config_get_dn_validate_strict())
+ ldap_result_code = slapi_dn_syntax_check(pb, addr->dn, 1);
+ if (ldap_result_code)
{
- ldap_result_code = slapi_dn_syntax_check(pb, addr->dn, 1);
- if (ldap_result_code)
- {
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
- }
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
}
dblayer_txn_init(li,&txn);
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
index 40a5888..7af8432 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
@@ -204,15 +204,12 @@ ldbm_back_modrdn( Slapi_PBlock *pb )
slapi_sdn_set_dn_passin(&dn_newdn,newdn);
new_addr.dn = (char*)slapi_sdn_get_ndn (&dn_newdn);
/* check dn syntax on newdn */
- if (config_get_dn_validate_strict())
+ ldap_result_code = slapi_dn_syntax_check(pb, new_addr.dn, 1);
+ if (ldap_result_code)
{
- ldap_result_code = slapi_dn_syntax_check(pb, new_addr.dn, 1);
- if (ldap_result_code)
- {
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
- }
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
}
new_addr.uniqueid = NULL;
ldap_result_code= get_copy_of_entry(pb, &new_addr, &txn, SLAPI_MODRDN_EXISTING_ENTRY, 0);
@@ -272,15 +269,12 @@ ldbm_back_modrdn( Slapi_PBlock *pb )
/* find and lock the entry we are about to modify */
done_with_pblock_entry(pb,SLAPI_MODRDN_TARGET_ENTRY); /* Could be through this multiple times */
slapi_pblock_get (pb, SLAPI_TARGET_ADDRESS, &old_addr);
- if (config_get_dn_validate_strict())
+ ldap_result_code = slapi_dn_syntax_check(pb, old_addr->dn, 1);
+ if (ldap_result_code)
{
- ldap_result_code = slapi_dn_syntax_check(pb, old_addr->dn, 1);
- if (ldap_result_code)
- {
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
- }
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
}
ldap_result_code= get_copy_of_entry(pb, old_addr, &txn, SLAPI_MODRDN_TARGET_ENTRY, !is_replicated_operation);
if(ldap_result_code==LDAP_OPERATIONS_ERROR ||
14 years, 2 months
ldap/servers
by Noriko Hosoi
ldap/servers/slapd/back-ldbm/ldbm_add.c | 13 ++++++++-----
ldap/servers/slapd/back-ldbm/ldbm_delete.c | 13 ++++++++-----
ldap/servers/slapd/back-ldbm/ldbm_modify.c | 13 ++++++++-----
ldap/servers/slapd/back-ldbm/ldbm_modrdn.c | 26 ++++++++++++++++----------
4 files changed, 40 insertions(+), 25 deletions(-)
New commits:
commit c9c424c34c703082d7da3e4b2f3c366f81185a58
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Mon Feb 1 13:22:02 2010 -0800
555577 - Syntax validation fails for "ou=NetscapeRoot" tree
https://bugzilla.redhat.com/show_bug.cgi?id=555577
[See comment 7 of the bug]
DistinguishName validation slapi_dn_syntax_check should be
called only when nsslapd-dn-validate-strict is on.
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_add.c b/ldap/servers/slapd/back-ldbm/ldbm_add.c
index 75c64c3..6f51aea 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_add.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_add.c
@@ -193,12 +193,15 @@ ldbm_back_add( Slapi_PBlock *pb )
{
goto error_return;
}
- ldap_result_code = slapi_dn_syntax_check(pb, dn, 1);
- if (ldap_result_code)
+ if (config_get_dn_validate_strict())
{
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
+ ldap_result_code = slapi_dn_syntax_check(pb, dn, 1);
+ if (ldap_result_code)
+ {
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
+ }
}
slapi_sdn_set_dn_byref(&sdn, dn);
slapi_sdn_get_backend_parent(&sdn,&parentsdn,pb->pb_backend);
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
index 9787300..f993305 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
@@ -103,12 +103,15 @@ ldbm_back_delete( Slapi_PBlock *pb )
{
goto error_return;
}
- ldap_result_code = slapi_dn_syntax_check(pb, addr->dn, 1);
- if (ldap_result_code)
+ if (config_get_dn_validate_strict())
{
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
+ ldap_result_code = slapi_dn_syntax_check(pb, addr->dn, 1);
+ if (ldap_result_code)
+ {
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
+ }
}
is_fixup_operation = operation_is_flag_set(operation, OP_FLAG_REPL_FIXUP);
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modify.c b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
index 9a0bea0..165e655 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_modify.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
@@ -224,12 +224,15 @@ ldbm_back_modify( Slapi_PBlock *pb )
{
goto error_return;
}
- ldap_result_code = slapi_dn_syntax_check(pb, addr->dn, 1);
- if (ldap_result_code)
+ if (config_get_dn_validate_strict())
{
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
+ ldap_result_code = slapi_dn_syntax_check(pb, addr->dn, 1);
+ if (ldap_result_code)
+ {
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
+ }
}
dblayer_txn_init(li,&txn);
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
index d713a81..40a5888 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
@@ -204,12 +204,15 @@ ldbm_back_modrdn( Slapi_PBlock *pb )
slapi_sdn_set_dn_passin(&dn_newdn,newdn);
new_addr.dn = (char*)slapi_sdn_get_ndn (&dn_newdn);
/* check dn syntax on newdn */
- ldap_result_code = slapi_dn_syntax_check(pb, new_addr.dn, 1);
- if (ldap_result_code)
+ if (config_get_dn_validate_strict())
{
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
+ ldap_result_code = slapi_dn_syntax_check(pb, new_addr.dn, 1);
+ if (ldap_result_code)
+ {
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
+ }
}
new_addr.uniqueid = NULL;
ldap_result_code= get_copy_of_entry(pb, &new_addr, &txn, SLAPI_MODRDN_EXISTING_ENTRY, 0);
@@ -269,12 +272,15 @@ ldbm_back_modrdn( Slapi_PBlock *pb )
/* find and lock the entry we are about to modify */
done_with_pblock_entry(pb,SLAPI_MODRDN_TARGET_ENTRY); /* Could be through this multiple times */
slapi_pblock_get (pb, SLAPI_TARGET_ADDRESS, &old_addr);
- ldap_result_code = slapi_dn_syntax_check(pb, old_addr->dn, 1);
- if (ldap_result_code)
+ if (config_get_dn_validate_strict())
{
- ldap_result_code = LDAP_INVALID_DN_SYNTAX;
- slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
- goto error_return;
+ ldap_result_code = slapi_dn_syntax_check(pb, old_addr->dn, 1);
+ if (ldap_result_code)
+ {
+ ldap_result_code = LDAP_INVALID_DN_SYNTAX;
+ slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
+ goto error_return;
+ }
}
ldap_result_code= get_copy_of_entry(pb, old_addr, &txn, SLAPI_MODRDN_TARGET_ENTRY, !is_replicated_operation);
if(ldap_result_code==LDAP_OPERATIONS_ERROR ||
14 years, 2 months