#! /bin/sh
# $Id: rbldnsd.init,v 1.3 2003/04/05 00:57:31 mjt Exp $
# rbldnsd	startup script.

PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME=rbldnsd
DESC=$NAME
DAEMON=/usr/sbin/$NAME
CONFFILE=/etc/default/$NAME

test -f $DAEMON -a -f $CONFFILE || exit 0

set -e

RBLDNSD=

. $CONFFILE

test -n "$RBLDNSD" || exit 0

function forall() {
  echo "$RBLDNSD" |
    while read name args; do
      case "$name" in
        ""|\#*) continue;;
	-) name=rbldnsd; pidfile=/var/run/$name.pid;;
	*) pidfile=/var/run/rbldnsd-$name.pid;;
      esac
      pid=
      if [ -f $pidfile ]; then
        if read p < $pidfile; then
          if [ -d /proc/$p ]; then
            if [ "`readlink /proc/$p/exe`" = $DAEMON ]; then
              pid=$p
            fi
          fi
        fi
      fi
      $1
    done
}

function report() {
  echo "$1 $DESC: $name"
}

function runit() {
  $DAEMON -p $pidfile $args
}

function start() {
  if [ ! "$pid" ]; then
    report Starting
    runit
  fi
}

stop() {
  if [ "$pid" ]; then
    report Stopping
    kill $pid
    rm -f $pidfile
  fi
}

function restart() {
  if [ "$pid" ]; then
    report Restarting 
    kill $pid
    sleep .5
    runit
  else
    start
  fi
}

function reload() {
  if [ "$pid" ]; then
    report Reloading
    kill -HUP $pid
  fi
}

case "$1" in
  start|stop|reload|restart)
	forall $1
	;;
  force-reload)
	forall reload
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	exit 1
	;;
esac

exit 0
