X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=arpwatch.init;h=f50694b7f3471a1adc38729b8fba3e30eef9de8f;hb=1ee5465f01609f191e6eb8decd8e5219791c37b5;hp=f0e4f7d334dbb6713cd0d1ea45c969ac9c2c27b1;hpb=66c05417fed5133a3780b2504e5a3bed65183c92;p=packages%2Farpwatch.git diff --git a/arpwatch.init b/arpwatch.init index f0e4f7d..f50694b 100644 --- a/arpwatch.init +++ b/arpwatch.init @@ -1,6 +1,6 @@ #!/bin/sh # -# chkconfig: 345 55 45 +# chkconfig: 345 55 45 # description: The arpwatch daemon attempts to keep track of ethernet/ip \ # address pairings. # processname: arpwatch @@ -11,16 +11,33 @@ # Get network config . /etc/sysconfig/network +# Initial values +GLOBAL_OPTIONS="" + # Get service config [ -f /etc/sysconfig/arpwatch ] && . /etc/sysconfig/arpwatch # Check that networking is up. -if [ "${NETWORKING}" = "no" ]; then - msg_network_down "arpwatch" - exit 1 +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then + msg_network_down "arpwatch" + exit 1 + fi +else + exit 0 fi +if is_yes "${NO_BOGON}"; then + GLOBAL_OPTIONS="$GLOBAL_OPTIONS -N" +else + if [ -n "${LOCAL_NETWORKS}" ]; then + for i in ${LOCAL_NETWORKS}; do + GLOBAL_OPTIONS="$GLOBAL_OPTIONS -n $i" + done + fi +fi +RETVAL=0 # See how we were called. case "$1" in start) @@ -31,10 +48,21 @@ case "$1" in | egrep '^[^ ].*' |egrep -v "NOARP|LOOPBACK" \ |sed 's/[0-9]*: \([a-zA-Z0-9]*\)[@:].*/\1/'|xargs`" fi + [ ! -z "$NETWORKS" ] && NETWORKS="-n $NETWORKS" for IFC in $INTERFACES; do msg_starting "arpwatch ($IFC)" touch /var/lib/arpwatch/$IFC.dat - daemon arpwatch -i $IFC -f /var/lib/arpwatch/$IFC.dat -u daemon + chown 2:2 /var/lib/arpwatch/$IFC.dat + OPTIONS="$GLOBAL_OPTIONS" + if ! is_yes "${NO_BOGON}"; then + eval IF_LOCAL_NETWORKS=\$${IFC}_LOCAL_NETWORKS + if [ -n "${IF_LOCAL_NETWORKS}" ]; then + for i in ${IF_LOCAL_NETWORKS}; do + OPTIONS="$OPTIONS -n $i" + done + fi + fi + daemon arpwatch $NETWORKS -i $IFC -f /var/lib/arpwatch/$IFC.dat -u daemon $OPTIONS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/arpwatch done @@ -49,19 +77,20 @@ case "$1" in rm -f /var/lock/subsys/arpwatch >/dev/null 2>&1 else msg_not_running "arpwatch" - exit 1 - fi + fi ;; status) status arpwatch + exit $? ;; - restart|reload) + restart|force-reload) $0 stop $0 start + exit $? ;; *) - msg_usage "$0 {start|stop|status|restart|reload}" - exit 1 + msg_usage "$0 {start|stop|restart|force-reload|status}" + exit 3 esac exit $RETVAL