e3ff43f
#! /bin/bash
e3ff43f
e3ff43f
cd /etc/sysconfig/network-scripts
e3ff43f
. ./network-functions
e3ff43f
e3ff43f
CONFIG=$1
e3ff43f
source_config
e3ff43f
e3ff43f
if [ "$TYPE" = "xDSL" ] && [ -x /usr/sbin/adsl-stop ] ; then
e3ff43f
    adsl-stop /etc/sysconfig/network-scripts/$CONFIG
e3ff43f
    exit $?
e3ff43f
fi
e3ff43f
e3ff43f
CONFIG=${CONFIG##ifcfg-}
e3ff43f
e3ff43f
if [ "${DEMAND}" = "yes" ] && [ -f /var/run/ppp-${CONFIG}.pid ] ; then
e3ff43f
    PID=$(head -1 /var/run/ppp-${CONFIG}.pid)
e3ff43f
    kill -TERM ${PID}
e3ff43f
    sleep 2
e3ff43f
    [ ! -d /proc/${PID} ] && exit 0
e3ff43f
    sleep 5
e3ff43f
    [ ! -d /proc/${PID} ] && exit 0
e3ff43f
    kill -TERM ${PID}
e3ff43f
    [ ! -d /proc/${PID} ] && exit 0
e3ff43f
    exit 1
e3ff43f
fi
e3ff43f
e3ff43f
file=/var/run/pppwatch-${DEVICE}.pid
e3ff43f
e3ff43f
if [ ! -f $file ]; then
e3ff43f
    # ppp isn't running, or we didn't start it
e3ff43f
    exit 0
e3ff43f
fi
e3ff43f
e3ff43f
PID=$(cat $file)
e3ff43f
[ -n "${PID}" ] || exit 1
e3ff43f
e3ff43f
kill -TERM ${PID} > /dev/null 2>&1
e3ff43f
[ ! -d /proc/${PID} ] && exit 0
e3ff43f
sleep 2
e3ff43f
[ ! -d /proc/${PID} ] && exit 0
e3ff43f
sleep 5
e3ff43f
[ ! -d /proc/${PID} ] && exit 0
e3ff43f
sleep 10
e3ff43f
[ ! -d /proc/${PID} ] && exit 0
e3ff43f
e3ff43f
# killing ppp-watch twice in a row causes it to send a SIGKILL to pppd pgrp
e3ff43f
kill -TERM ${PID} > /dev/null 2>&1
e3ff43f
[ ! -d /proc/${PID} ] && exit 0
e3ff43f
e3ff43f
exit 1