diff options
author | Guillaume Cottenceau <gc@mandriva.com> | 2001-06-11 13:49:39 +0000 |
---|---|---|
committer | Guillaume Cottenceau <gc@mandriva.com> | 2001-06-11 13:49:39 +0000 |
commit | 0a121a8ecd6de894c14d60daf9da2022ec47405c (patch) | |
tree | 3705a0c51f96ffdd2a0594ef43a5677c926eb0cc /mdk-stage1/rp-pppoe/scripts/adsl-status | |
parent | ab5559aaabd1167a18ac882e64d97c5adc0e7d03 (diff) | |
download | drakx-0a121a8ecd6de894c14d60daf9da2022ec47405c.tar drakx-0a121a8ecd6de894c14d60daf9da2022ec47405c.tar.gz drakx-0a121a8ecd6de894c14d60daf9da2022ec47405c.tar.bz2 drakx-0a121a8ecd6de894c14d60daf9da2022ec47405c.tar.xz drakx-0a121a8ecd6de894c14d60daf9da2022ec47405c.zip |
Initial revision
Diffstat (limited to 'mdk-stage1/rp-pppoe/scripts/adsl-status')
-rwxr-xr-x | mdk-stage1/rp-pppoe/scripts/adsl-status | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-status b/mdk-stage1/rp-pppoe/scripts/adsl-status new file mode 100755 index 000000000..18b100ab2 --- /dev/null +++ b/mdk-stage1/rp-pppoe/scripts/adsl-status @@ -0,0 +1,82 @@ +#!/bin/sh +#*********************************************************************** +# +# adsl-status +# +# Shell script to report on status of ADSL connection +# +# Copyright (C) 2000-2001 Roaring Penguin Software Inc. +# +# $Id$ +# +# This file may be distributed under the terms of the GNU General +# Public License. +# +# Usage: adsl-status [config_file] +# If config_file is omitted, defaults to /etc/ppp/pppoe.conf +# +#*********************************************************************** + +# Defaults +CONFIG=/etc/ppp/pppoe.conf + +case "$#" in + 1) + CONFIG="$1" + ;; +esac + +if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then + echo "$0: Cannot read configuration file '$CONFIG'" >& 2 + exit 1 +fi + +. $CONFIG + +PPPOE_PIDFILE="$PIDFILE.pppoe" +PPPD_PIDFILE="$PIDFILE.pppd" + +if [ "$DEMAND" != "no" ] ; then + echo "Note: You have enabled demand-connection; adsl-status may be inaccurate." +fi + +# If no PPPOE_PIDFILE, connection is down, unless we're using the Linux plugin +if [ "$LINUX_PLUGIN" = "" ] ; then + if [ ! -r "$PPPOE_PIDFILE" ] ; then + echo "adsl-status: Link is down (can't read pppoe PID file $PPPOE_PIDFILE)" + exit 1 + fi +fi + +# If no PPPD_PIDFILE, something fishy! +if [ ! -r "$PPPD_PIDFILE" ] ; then + echo "adsl-status: Link is down (can't read pppd PID file $PPPD_PIDFILE)" + exit 1 +fi + +PPPD_PID=`cat "$PPPD_PIDFILE"` + +# Sigh. Some versions of pppd put PID files in /var/run; others put them +# in /etc/ppp. Since it's too messy to figure out what pppd does, we +# try both locations. +for i in /etc/ppp/ppp*.pid /var/run/ppp*.pid ; do + if [ -r $i ] ; then + PID=`cat $i` + if [ "$PID" = "$PPPD_PID" ] ; then + IF=`basename $i .pid` + netstat -rn | grep " ${IF}\$" > /dev/null + # /sbin/ifconfig $IF | grep "UP.*POINTOPOINT" > /dev/null + if [ "$?" != "0" ] ; then + echo "adsl-status: Link is attached to $IF, but $IF is down" + exit 1 + fi + echo "adsl-status: Link is up and running on interface $IF" + /sbin/ifconfig $IF + exit 0 + fi + fi +done + +echo "adsl-status: Link is down -- could not find interface corresponding to" +echo "pppd pid $PPPD_PID" +exit 1
\ No newline at end of file |