#!/bin/sh # # $NetBSD: isdnd,v 1.8 2002/03/22 04:33:58 thorpej Exp $ # # PROVIDE: isdnd # REQUIRE: NETWORKING syslogd mountcritremote # BEFORE: SERVERS # # Note that this means that syslogd will not be listening on # any isdn addresses. This is considered a feature. # . /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 "$rc_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 ippp*) isdn_interfaces="$isdn_interfaces $int" ;; irip*) isdn_interfaces="$isdn_interfaces $int" ;; esac fi done fi for int in $isdn_interfaces; do ifconfig $int $ifcmd done fi