summaryrefslogtreecommitdiff
path: root/net-mgmt/arpwatch/files/arpwatch.sh
blob: 259a9cbdac1fae36d64751aa8ca647444c91acb5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/sh

if [ -r /etc/defaults/rc.conf ]; then
	. /etc/defaults/rc.conf
	source_rc_confs
elif [ -r /etc/rc.conf ]; then
	. /etc/rc.conf
fi

prog=$(realpath $0) || exit 1
dir=${prog%/*}
PREFIX=${dir%/etc/rc.d}

if [ ."$dir" = ."$prog" -o ."$PREFIX" = ."$dir" ]
then
	echo "$0: Cannot determine the PREFIX" >&2
	exit 1
fi

case $1 in
start)
	if [ ! -e "$PREFIX"/arpwatch/arp.dat ]; then
		if [ -e "$PREFIX"/arpwatch/arp.dat- ]; then
			cp "$PREFIX"/arpwatch/arp.dat- "$PREFIX"/arpwatch/arp.dat	
		else
			touch "$PREFIX"/arpwatch/arp.dat
		fi
	fi

	case ${arpwatch_interfaces} in
	'')
		if [ -x "$PREFIX"/sbin/arpwatch -a -d "$PREFIX"/arpwatch ]; then
			"$PREFIX"/sbin/arpwatch && echo -n ' arpwatch'
		fi
		;;
	*)
		for interface in ${arpwatch_interfaces}; do
			"$PREFIX"/sbin/arpwatch -i "${interface}" && echo -n " arpwatch(${interface})"
		done
		;;
	esac
	;;
stop)
	killall arpwatch && echo -n ' arpwatch'
	;;
*)
	echo "Usage: `basename $0` {start|stop}" >&2
	exit 64
	;;
esac

exit 0