#! /bin/bash
DEVICE=`basename $2`
test -z $DEVICE && DEVICE=$1
if [ "$1" = "ippp11" ]; then
	DEVICE=`cat /var/lock/slave`
fi
SYS=`cat /var/lock/$DEVICE`
IF=$1
SPEED=$3
MYIP=$4
THEIRIP=$5
MODUS=$6

debug=0
logging=1

function log {
	if [ `echo $1 | cut -d: -f2` = "1" ]; then
		if [ -n "$logging" ]; then
			/usr/bin/logger -i -p daemon.notice `echo "$1" | cut -d: -f3`
		fi
	fi
	if [ `echo $1 | cut -d: -f2` = "2" ]; then
		if [ -n "$debug" ]; then
			/usr/bin/logger -i -p local0.debug "("`basename $0`") "`echo "$1" | cut -d: -f3`
		fi
	fi
}

log ":2:called $1, $2, $3, $4, $5, $6"

if [ "$1" = "ippp11" ] ; then
    IF=`cat /var/lock/slave`
fi

PATH=/usr/lib/ods-server/bin:$PATH

# Damit zunaechst manuelles ip-off arbeitet, muessen die Locks
# stehenbleiben. Ansonsten findet ip-off nicht durch.
cd /var/lock

if [  ${SYS##*Dialin*} ]; then 
	echo -e "Verbindung zu $SYS abgebaut: `date`\n" >>/var/log/log.ppp 
        echo "`date`" >> /var/log/connect.time 
	case $MODUS in
	1 | 2 )
		if ! [ -e /var/lock/ppp-off.$SYS ]; then
			log ":2:isdn-ppp-link (type $MODUS) on $SYS died calling ppp-off"
			/etc/ppp/ppp-off $SYS $MODUS
		  else
			log ":2:isdn-ppp-link on $SYS terminated normally"
		fi
		/usr/sbin/pppkosten $MODUS nomail
		;;
	5 )
		set > /root/pppset.txt
		/usr/sbin/pppkosten $MODUS nomail
		;;
	3 | 4 )
		/sbin/isdnctrl dialmode $DEVICE manual
		/sbin/ifconfig $DEVICE 192.168.99.1 pointopoint 192.168.99.2
		/usr/sbin/pppkosten $MODUS nomail &
		if ! [ -e /var/lock/ppp-off.$SYS ]; then
			/sbin/route add -host 192.168.99.2 dev $DEVICE
			/sbin/route add default gw 192.168.99.2
			/sbin/isdnctrl dialmode $DEVICE auto
			echo $IF > /var/lock/$SYS.standby
		fi
		;;
	*)
		log ":1:Kein gueltiger Modus!"
	esac
else  
	NUTZER=`cat /var/lock/$IF`
        rm -f /var/lock/*@Dialin${SYS##*Dialin}
        rm -f /var/lock/$IF
	if [ ${SYS##*Dialin} = "-ISDN1" ]; then 
           	echo "auto@Dialin-ISDN1"> /var/lock/ippp0
                chmod 644 /var/lock/ippp0
        else
            	rm -f /var/lock/$DEVICE
	fi
        /sbin/route del -host $THEIRIP dev $IF
	echo -e "Verbindung zu $NUTZER abgebaut: `date`\n" >>/var/log/log.ppp.in 
fi

log ":2:terminated normally"
