NetBSD/etc/rc.d/isdnd

70 lines
1.4 KiB
Plaintext
Raw Normal View History

2001-01-07 20:04:49 +03:00
#!/bin/sh
#
# $NetBSD: isdnd,v 1.4 2001/04/26 03:54:38 lukem Exp $
2001-01-07 20:04:49 +03:00
#
# PROVIDE: isdnd
# REQUIRE: NETWORK syslogd mountcritremote
#
# Note that this means that syslogd will not be listening on
# any isdn addresses. This is considered a feature.
#
2001-01-07 20:04:49 +03:00
. /etc/rc.subr
name="isdnd"
rcvar=$name
required_files="/etc/isdn/${name}.rc"
command="/usr/sbin/${name}"
pidfile="/var/run/${name}.pid"
load_rc_config $name
run_rc_command "$1"
if checkyesno isdnd && checkyesno isdn_autoupdown; then
# The isdn network interfaces could not be marked UP in the
# ifconfig.* files, since the daemon wasn't available then.
# If we are doing start: now it's running, so figure which
# interfaces these applies to and UP them. If doing stop:
# down them (for symetry, and effectively they are down).
case "$_arg" in
start)
ifflag="-d"
ifcmd="up"
;;
stop)
ifflag="-u"
ifcmd="down"
;;
*)
exit 0
;;
esac
if [ -z "$isdn_interfaces" ]; then
# the user has not specified a list of interface
# to track isdnd - try to figure ourselfs
tmp=`ifconfig -l $ifflag`
for int in $tmp; do
# Check if the interface has been configured at all
# XXX - does this work with IPv6 ?
if ifconfig $int | fgrep inet >/dev/null; then
case $int in
isp*)
isdn_interfaces="$isdn_interfaces $int"
;;
ipr*)
isdn_interfaces="$isdn_interfaces $int"
;;
esac
fi
done
fi
for int in $isdn_interfaces; do
ifconfig $int $ifcmd
done
fi