#!/bin/sh
#
# chkconfig: 2345 93 83
#
# description: This shell script takes care of starting and stopping ntop.
# Source function library.
. /etc/rc.d/init.d/functions

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

prog="/usr/bin/ntop"
name=ntop

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

! [ -x $prog ] && echo $prog not found, aborting && exit 1

extra=" "
tracelevel="3"

start () {
  # start daemon

  shift
  echo $"In start, parameters are $@"

  echo $"Extra parameter(s) are: $extra"

  echo -n $"Starting $name: "

  if=`ip link show | \
      awk '/^[0-9]*:\ eth/ { printf("%s%s", (count++ > 0 ? "," : ""), substr($2, 1, length($2)-1)) }'`
  ip0=`ip addr show eth0 | \
       awk '/inet/ { printf("%s", substr($2, 1, index($2, "/")-1)) }'`

  logger -p info -t ntop -- Configuring eth1

  ifconfig eth1 0.0.0.0
  ifconfig eth1 promisc 
  ifconfig eth1 up

  ip addr show eth1 | logger -p info -t ntop 

  ip1=`ip addr show eth1 | \
       awk '/inet/ { printf("%s", substr($2, 1, index($2, "/")-1)) }'`
  if [ "x"$ip1 != "x" ]; then
      logger -p warning -t ntop -- "DANGER - eth1 has IP address ($ip1)"
  fi

  logger -p info -t ntop -- "Starting: -i $if -p /usr/share/ntop/protocol.list -P /usr/share/ntop -w $ip0:3000 -W $ip0:3001 -u ntop --throughput-bar-chart --trace-level $tracelevel -d -S 2 -L " $extra $@ 

  daemon $prog -i $if \
	       -p /usr/share/ntop/protocol.list \
               -P /usr/share/ntop \
               -w $ip0:3000 \
               -W $ip0:3001 \
               -u ntop \
               --throughput-bar-chart \
               --trace-level $tracelevel \
               -d \
               -S 2 -L $extra $@

  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && touch /var/lock/subsys/ntop
  return $RETVAL
}

stop () {
  # stop daemon
  echo -n $"Stopping $name: "
  killproc ntop
  RETVAL=$?
  echo 
  [ $RETVAL = 0 ] && rm -f /var/lock/subsys/ntop

  logger -p info -t ntop -- Shutting down eth1

  [ $RETVAL = 0 ] && ifconfig eth1 -promisc
  [ $RETVAL = 0 ] && ifconfig eth1 down 

  return $RETVAL
}

restart () {
  echo $"In restart, parameters are $@"
  stop
  start $@
}

case "$1" in
  startdebug)
    start $@ " -K "
  ;;

  start)
    start $@
  ;;

  stop)
    stop
  ;;

  restart)
    restart $@
  ;;

  condrestart)
    [ -f /var/lock/subsys/ntop ] && restart || :
  ;;

  status)
    status ntop 
  ;;
  *)
    echo $"Usage: $0 {start|stop|restart|condrestart|status}"
    exit 1
esac

exit $RETVAL
