#!/bin/sh
#
# ldap TCP/AXFR server
#
# chkconfig: - 55 45
#
# description: ldapaxfr is part of the ldapdns nameserver kit
#
### BEGIN INIT INFO
# Provides:		ldapaxfr
# Required-Start:	$network $syslog
# Required-Stop:	$network $syslog
# Default-Start:	3 5
# Default-Stop:		0 1 2 4 6
# Description:		LDAPAXFR is part of the LDAPDNS nameserver kit
### END INIT INTO

# bugfix for some systems that don't supply /sbin for the PATH
PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH
export PATH

daemon() {
	prog=$1
	env UID=$RUN_UID GID=$RUN_GID SUPERVISE=/var/run/$prog.pid $prog
	RETVAL=$?
	echo 'ok'
	return $RETVAL
}
killproc() {
	prog=$1
	kill `cat /var/run/$prog.pid 2>&1` >/dev/null 2>&1
	RETVAL=$?
	echo 'ok'
	return $RETVAL
}
status() {
	prog=$1
	if [ -f /var/run/$prog.pid ]; then
		if kill -0 `cat /var/run/$prog.pid` >/dev/null 2>&1; then
			echo "$prog is running..."
			return 0
		else
			echo "$prog dead but pidfile exists"
			return 1
		fi
	else
		echo "$prog is stopped"
		return 3
	fi
}

if [ -f /etc/sysconfig/ldapdns ]; then
	# redhat-centric
	. /etc/sysconfig/network
	. /etc/sysconfig/ldapdns
	if [ -f /etc/sysconfig/ldapaxfr ]; then
		. /etc/sysconfig/ldapaxfr
	fi
elif [ -f /etc/ldapdns.conf ]; then
	# everyone else
	. /etc/ldapdns.conf
	if [ -f /etc/ldapaxfr.conf ]; then
		. /etc/ldapaxfr.conf
	fi
	NETWORKING="yes"
else
	exit 0
fi

[ "${NETWORKING}" = "no" ] && exit 0
[ "${CONFIGURED}" = "no" ] && exit 0

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

start() {
	echo -n "Starting ldapaxfr: "
	daemon ldapaxfr
}
stop() {
	echo -n "Shutting down ldapaxfr: "
	killproc ldapaxfr
}
restart() {
	stop
	start
}
reload() {
	stop
	start
}

case "$1" in
start)		start
		;;
stop)		stop
		;;
restart)	restart
		;;
reload)		reload
		;;
force-reload)	reload
		;;
status) 	status ldapaxfr
		;;
condrestart)	restart
		;;
*)		echo "Usage: $0 {start|stop|restart|status|condrestart}"
		exit 1
esac

exit $?
