Modify ntop.init to WRLinux 5.0 style.

Fix a small problem that when ntop not running,
/etc/init.d/ntop stop will return 1

Upstream-Status: Inappropriate [embedded specific]

Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
---
 packages/RedHat/ntop.init |  102 +++++++++-----------------------------------
 1 files changed, 21 insertions(+), 81 deletions(-)

diff --git a/packages/RedHat/ntop.init b/packages/RedHat/ntop.init
index 40d49f1..a189c59 100755
--- a/packages/RedHat/ntop.init
+++ b/packages/RedHat/ntop.init
@@ -10,19 +10,9 @@
 #           You have set the admin password - read docs/1STRUN.txt
 #           You have created /etc/ntop.conf with appropriate parameters.
 
-#  To identify an interface to ntop, use the following flags 
-#  in /etc/sysconfig/network-scripts/ifcfg-ethx
-
-#   NTOP="yes"      <--- means for ntop to use this interface
-#   NTOPCONFIG="yes"  <--- means for ntop to configure this interface
-
 # Note that if you give a -i parameter in either /etc/ntop.conf or
 # the command line, the scan is NOT performed.  
 
-# However, when it comes to the configuration step, with NTOPCONFIG="yes"
-# the interface is configured regardless of how the interface list was
-# specified.
-
 #
 #  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 # 
@@ -107,11 +97,7 @@ ntopusesyslog="local3"
 invoked=$0
 
 # Source function library.
-. /etc/rc.d/init.d/functions
-
-# Source networking configuration.
-. /etc/sysconfig/network
-
+. /etc/init.d/functions
 
 # Basic sanity checks...
 if ! [ -x $prog ]; then
@@ -124,16 +110,6 @@ if ! [ -x $prog ]; then
   exit 1
 fi
 
-if [ ${NETWORKING} = "no" ]; then
-  echo ""
-  echo "ERROR -"
-  echo "        Networking is not up!"
-  echo ""
-  echo "Aborting..."
-  echo ""
-  exit 1
-fi
-
 if ! [ -f ${conf} ]; then
   echo ""
   echo "ERROR -"
@@ -180,8 +156,8 @@ fi
 if [ "${debug}" = "y" ]; then echo "DEBUG: parm file temp is ${parmfile}"; fi
  
 cmd=`echo \
-    @${conf} \
     -i tbd \
+    @${conf} \
     $extra $@`
 
 echo ${cmd} | awk ' \
@@ -305,42 +281,6 @@ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD -      Configuration
 
 # Build list of interfaces, e.g  eth0 eth1 eth1:1
 # (Yeah, we'll have to convert that to eth0,eth1,eth1:1 later
-if [ ".${ntopinterface}" = ".tbd" ]; then
-
-    ntopinterface=""
-    iflist=`ip link show | \
-        awk '/^[0-9]*:\ eth/ { printf("%s ", substr($2, 1, length($2)-1)) }'`
-    logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Scanning all interfaces $iflist"
-    if [ "${debug}" = "y" ]; then echo "DEBUG: Interface candidates are ${iflist}"; fi
-
-    for eth in $iflist; do
-
-       if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp]=['\"]?[Yy][Ee][Ss]['\"]?" \
-                /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then
-            logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntop=yes, skipping"
-            if [ "${debug}" = "y" ]; then echo "DEBUG: $eth not ntop=yes"; fi
-            continue
-       fi
-
-       ntopinterface="${ntopinterface} $eth"
-  
-       ip=`ip addr show $eth | \
-           awk '/inet/ { printf("%s", substr($2, 1, index($2, "/")-1)) }'`
-
-       if [ ".$ip" = "." ]; then
-           is="is unnumbered interface"
-       else
-           is="has IP address $ip"
-       fi
-       logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is ntop=yes, ${is}"
-       if [ "${debug}" = "y" ]; then echo "DEBUG: $eth ntop=yes, ${is}"; fi
-
-    done
-
-else
-    logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Skipping interface scan - list in parms"
-fi
-
 if [ "x${ntopinterface}" = "x" ]; then
   ntopinterface="none"
 fi
@@ -462,12 +402,6 @@ config_interfaces () {
           if="${if},${eth}"
       fi
 
-       if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp][Cc].*=['\"]?[Yy][Ee][Ss]['\"]?" \
-                /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then
-            logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntopconfigure=yes, skipping"
-            continue
-       fi
-
       logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Configuring $eth"
       if [ "${debug}" = "y" ]; then echo "DEBUG: Configuring $eth"; fi
 
@@ -527,7 +461,7 @@ start () {
   show_extra
   config_interfaces
 
-  cmd=`echo $prog \
+  cmd=`echo \
                @${conf} \
                -i $if \
                $extra $@`
@@ -541,7 +475,7 @@ start () {
   if [ ".${ldlibpath}" != "." ]; then
     export LD_LIBRARY_PATH="${ldlibpath}"
   fi
-  daemon ${cmd}
+  start-stop-daemon --start --quiet --exec $prog -- ${cmd}
   RETVAL=$?
 
   [ $RETVAL = 0 ] && touch /var/lock/subsys/${name}${instance}
@@ -551,6 +485,7 @@ start () {
 stop () {
   # stop daemon
 
+  NOT_RUNNING=1
   RETVAL=1
   echo -n $"Stopping ${name}${instance}: "
   logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Stopping: ${name}${instance}"
@@ -563,13 +498,14 @@ stop () {
     if [ $rc = 0 ]; then
       logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Sending SIGTERM to ${pid}"
       if [ "${debug}" = "y" ]; then echo "Sending SIGTERM to ${pid}"; fi
-      kill -s SIGTERM ${pid}
+      kill -TERM ${pid} 2>&1 > /dev/null
       RETVAL=$?
       rm -f ${ntopdbfilepath}/ntop.pid
     else 
       logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unable to find process ${pid} ... will kill by name"
       if [ "${debug}" = "y" ]; then echo "Unable to find process ${pid} ... will kill by name"; fi
     fi
+    NOT_RUNNING=0
   else
 
     logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unable to find ${ntopdbfilepath}/ntop.pid file ... will kill by name"
@@ -577,15 +513,16 @@ stop () {
 
   fi
 
-  echo 
-
   if [ $RETVAL != 0 ]; then
     pids=`ps axf | grep '\/usr\/bin\/ntop' | awk '{ printf(" %s", $1) }; END { print "" }'`
-    if [ "${pids}" != " " ]; then
+    if [ "${pids}" != "" ]; then
       logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Sending SIGTERM to ${prog}...${pids}"
       if [ "${debug}" = "y" ]; then echo "Sending SIGTERM to ${prog}...${pids}"; fi
-      kill -INT ${pids}
+      kill -TERM ${pids} > /dev/null 2>&1
       RETVAL=$?
+      NOT_RUNNING=0
+    else
+      NOT_RUNNING=1
     fi
   fi
 
@@ -597,13 +534,9 @@ stop () {
       if [ "${debug}" = "y" ]; then echo "DEBUG: Unconfiguring interfaces"; fi
 
       for eth in ${ntopinterface}; do
-          if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp][Cc].*=['\"]?[Yy][Ee][Ss]['\"]?" \
-                   /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then
-              logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntopconfigure=yes, skipping"
-              if [ "${debug}" = "y" ]; then echo "DEBUG: $eth is not ntopconfigure=yes"; fi
-              continue
+          if [ "$eth" = "none" ]; then
+               continue
           fi
-
           logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unconfiguring $eth"
           if [ "${debug}" = "y" ]; then echo "DEBUG: Unconfiguring $eth"; fi
     
@@ -623,6 +556,13 @@ stop () {
       if [ "${debug}" = "y" ]; then echo "DEBUG: Interfaces are unconfigured"; fi
   fi
 
+  if [ $NOT_RUNNING -eq 1 -o $RETVAL -eq 0 ]; then
+    echo " [ OK ]"
+    RETVAL=0
+  else
+    echo " [ FAILED ]"
+  fi
+
   return $RETVAL
 }
 
-- 
1.7.5.4

