#! /bin/sh # $OpenLDAP$ SRCDIR="." if test $# -ge 1 ; then SRCDIR=$1; shift fi BACKEND=bdb if test $# -ge 1 ; then BACKEND=$1; shift fi MONITORDB=no if test $# -ge 1 ; then MONITORDB=$1; shift fi WAIT=0 if test $# -ge 1 ; then WAIT=1; shift fi echo "running defines.sh" . $SRCDIR/scripts/defines.sh echo "Cleaning up in $DBDIR..." rm -f $DBDIR/[!C]* echo "Starting slapd on TCP/IP port $PORT..." . $CONFFILTER $BACKEND $MONITORDB < $PWCONF > $DBCONF $SLAPD -f $DBCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 & PID=$! if test $WAIT != 0 ; then echo PID $PID read foo fi echo "Using ldapsearch to check that slapd is running..." for i in 0 1 2 3 4 5; do $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT \ 'objectclass=*' > /dev/null 2>&1 RC=$? if test $RC = 0 ; then break fi echo "Waiting 5 seconds for slapd to start..." sleep 5 done echo "Testing ldapwhoami as anonymous..." $LDAPWHOAMI -h $LOCALHOST -p $PORT RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" kill -HUP $PID exit $RC fi echo "Testing ldapwhoami as ${MANAGERDN}..." $LDAPWHOAMI -h $LOCALHOST -p $PORT -D "$MANAGERDN" -w $PASSWD RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" kill -HUP $PID exit $RC fi echo "Testing ldapwhoami as ${MANAGERDN} for anonymous..." $LDAPWHOAMI -h $LOCALHOST -p $PORT -D "$MANAGERDN" -w $PASSWD \ -e \!authzid="" RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" kill -HUP $PID exit $RC fi echo "Testing ldapwhoami as ${MANAGERDN} for dn:$BABSDN..." $LDAPWHOAMI -h $LOCALHOST -p $PORT -D "$MANAGERDN" -w $PASSWD \ -e \!authzid="dn:$BABSDN" RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" # kill -HUP $PID # exit $RC fi echo "Testing ldapwhoami as ${MANAGERDN} for u:ursula..." $LDAPWHOAMI -h $LOCALHOST -p $PORT -D "$MANAGERDN" -w $PASSWD \ -e \!authzid="u:ursula" RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" # kill -HUP $PID # exit $RC fi kill -HUP $PID echo ">>>>> Test succeeded" exit 0