#!/bin/bash
#
# chkconfig: 345 55 45
# description: ldapdns is a fast DNS server that uses your LDAP directory \
# for configuration
#
# pidfile: /var/run/ldapdns.pid
# pidfile: /var/run/ldapaxfr.pid
# config: /etc/ldapdns.conf
# config: /etc/sysconfig/ldapdns
# probe: true

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0

# check if the config files are present
if [ -f /etc/ldapdns.conf ]; then
  . /etc/ldapdns.conf
else
  exit 0
fi

# Source service configuration.
if [ -f /etc/sysconfig/ldapdns ]; then
  . /etc/sysconfig/ldapdns
else
  echo "ldapdns: configfile /etc/sysconfig/ldapdns does NOT exist !"
  exit 1
fi

export CACHE HANDLERS THREADS HOSTMASTER LDAP_SUFFIX LDAP_HOST LDAP_HOSTS
export IP ROOT LDAP_BINDDN LDAP_SASL LDAP_AUTH_NAME RFC1279 DNSRECORD
export ACCELERATE_CACHE RELATIVE_NAMES IP PORT

start() {
  echo -n "Starting ldapdns: "
  daemon env UID=$RUN_UID GID=$RUN_GID SUPERVISE=/var/run/ldapdns.pid ldapdns
  RETVAL=$?
  echo
  if [ $START_AXFR -ne 0 ]; then
    echo -n "Starting ldapaxfr: "
    daemon env UID=$RUN_UID GID=$RUN_GID SUPERVISE=/var/run/ldapaxfr.pid ldapaxfr
    RETVAL2=$?
    echo
  else
    RETVAL2=0
  fi
  [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/ldapdns || \
    RETVAL=1
  return $RETVAL
}

stop() {
  if [ $START_AXFR -ne 0 ]; then
    echo -n "Shutting down ldapaxfr: "
    killproc ldapaxfr
    RETVAL2=$?
    echo
  else
    RETVAL2=0
  fi
  echo -n "Shutting down ldapdns: "
  killproc ldapdns
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/ldapdns
  return $RETVAL
}
 
restart() {
  stop
  start
}
 
condrestart() {
  [ -e /var/lock/subsys/ldapdns ] && restart || :
}
 
rhstatus() {
  status ldapdns
  status ldapaxfr
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  reload)
    restart
    ;;
  condrestart)
    condrestart
    ;;
  status)
    rhstatus
    ;;
  *)
    echo "Usage: ldapdns {start|stop|restart|reload|condrestart|status}"
    RETVAL=1
esac
 
exit $RETVAL
