#! /bin/sh
#
# Baseado no simples botcheck que acompanha uma eggdrop
#
# NSI - Manuel Severiano 9/11/01
# CIIST - João Poupino 25/5/04
# CIIST - José Calhariz 19/10/2004

LIBDIR=/usr/share/cal-scripts
source ${LIBDIR}/slapdenv

if [ "`eval slapd_started`" != YES ] ; then
    echo "WARNING ... slapd was not started, backing out"
    exit 1
fi

/usr/sbin/slapdtimeout localhost

if [ -r "$SLAPD_PIDFILE" ] ; then
  # there is a pid file -- is it current?
  slapdpid=`cat $SLAPD_PIDFILE`
  if `kill -CHLD $slapdpid >/dev/null 2>&1`
  then
    # it's still going -- back out quietly
    #echo "COOL... DIRECTORY IN $HOSTNAME IS ALIVE"
   exit 0
  fi
  echo ""
  echo "Stale slapd pid file, erasing..."
  rm -f $SLAPD_PIDFILE
fi
  
# Lets start slapd
date -R
if [ -x /etc/init.d/slapd ] ; then
    /etc/init.d/slapd stop
else 
    if [ -x /etc/init.d/sdir ] ; then
	/etc/init.d/sdir stop    #>/dev/null 2>&1
    fi
fi

# Lets recover db files
if [ -x /usr/bin/db_recover ] ; then
    # I think I am in Red Hat
    /usr/bin/db_recover -h /var/lib/ldap
    chown -R ldap:ldap /var/lib/ldap
    /etc/init.d/sdir start
    sleep 5
else 
    if [ -x /usr/bin/db4.2_recover ] ; then
        # I think I am in Debian
	/usr/bin/db4.2_recover
	/etc/init.d/slapd start
	sleep 5
    fi
fi

if test -r $SLAPD_PIDFILE
then
  slapdpid=`cat $SLAPD_PIDFILE`
  if `kill -CHLD $slapdpid >/dev/null 2>&1`
  then
    # it's going -- back out quietly      
   echo "WARNING DIRECTORY IN $HOSTNAME WAS DOWN"            
   exit 0
  fi
fi

echo "ALERT.. ALERT DIRECTORY IN $HOSTNAME IS DOWN"

exit 0


