home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / etc / sysconfig / network / scripts / ifup-ppp < prev    next >
Text File  |  2006-11-29  |  4KB  |  141 lines

  1. #!/bin/bash
  2. #
  3. # Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.
  4. # All rights reserved.
  5. #
  6. # This program is free software; you can redistribute it and/or modify it under
  7. # the terms of the GNU General Public License as published by the Free Software
  8. # Foundation; either version 2 of the License, or (at your option) any later
  9. # version.
  10. #
  11. # This program is distributed in the hope that it will be useful, but WITHOUT
  12. # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  13. # FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  14. # details.
  15. #
  16. # You should have received a copy of the GNU General Public License along with
  17. # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
  18. # Place, Suite 330, Boston, MA 02111-1307 USA
  19. #
  20. # Authors: Arvin Schnell <arvin@suse.de>, 2002
  21. #          Christian Zoz <zoz@suse.de>, 2002
  22. #
  23. # $Id: ifup-ppp 1344 2006-01-13 15:12:41Z zoz $
  24. #
  25.  
  26. function usage()
  27. {
  28.     echo $@
  29.     echo "Usage: if{up,down,status}-ppp [<config>] <hwdesc> [-o <options>]"
  30.     echo "  hwdesc may be the interface name or any valid description"
  31.     echo "  of the corresponding device, for details see ifup(8)."
  32.     echo "Options are: prov=name : specify provider (only for ifup)"
  33.     echo "             debug     : be verbose"
  34.     echo "             rc        : indicates that we are called from rcnetwork"
  35.     echo "All other or wrong options are silently ignored."
  36.     exit $R_USAGE
  37. }
  38.  
  39. ######################################################################
  40. # change the working direcory and source some common files
  41. #
  42. R_INTERNAL=1      # internal error, e.g. no config or missing scripts
  43. cd /etc/sysconfig/network || exit $R_INTERNAL
  44. test -f ./config && . ./config
  45. test -f scripts/functions && . scripts/functions || exit $R_INTERNAL
  46.  
  47. ######################################################################
  48. # check arguments and how we are called (in case of links)
  49. #
  50. SCRIPTNAME=${0##*/}
  51. debug $*
  52. case "${SCRIPTNAME}" in
  53.     ifup-*) ACTION=up ;;
  54.     ifdown-*) ACTION=down ;;
  55.     ifstatus-*) ACTION=status ;;
  56.     *) usage
  57. esac
  58.  
  59. INTERFACE=$1
  60. case "$INTERFACE" in ""|-h|*help*) usage; esac
  61. shift
  62. if [ -n "$1" -a "$1" != "-o" ] ; then
  63.     CONFIG=$INTERFACE
  64.     INTERFACE=$1
  65. fi
  66. shift
  67. test "$1" = "-o" && shift
  68. OPTIONS="$@"
  69. MODE=manual
  70. while [ $# -gt 0 ] ; do
  71.     case $1 in
  72.         boot|onboot) MODE=onboot ;;
  73.         hotplug)     MODE=hotplug ;;
  74.         rc)          RUN_FROM_RC=yes
  75.                      SMPPPD_OPTIONS="--rc" ;;
  76.         quiet)       be_quiet_has_gone ;;
  77.         debug)       DEBUG=yes ;;
  78.         prov=*)      PROVIDER=${1##*=} ;;
  79.         *)           debug "unknown option $1 ignored" ;;
  80.     esac
  81.     shift
  82. done
  83.  
  84. SMPPPD_OPTIONS="$SMPPPD_OPTIONS -i ifcfg-$CONFIG"
  85.  
  86. case "$ACTION" in
  87.  
  88.     up)
  89.  
  90.         if [ -n "$PROVIDER" ] ; then
  91.             SMPPPD_OPTIONS="$SMPPPD_OPTIONS -p $PROVIDER"
  92.         fi
  93.  
  94.         if [ "$DEBUG" == "yes" ] ; then
  95.             SMPPPD_OPTIONS="$SMPPPD_OPTIONS -d"
  96.         fi
  97.  
  98.         if /usr/sbin/smpppd-ifcfg --up $SMPPPD_OPTIONS ; then
  99.             message_if_not_run_from_rc "interface $INTERFACE is up"
  100.             exit $R_SUCCESS
  101.         fi
  102.  
  103.         logerror "failed to bring interface $INTERFACE up"
  104.         exit $R_ERROR
  105.  
  106.         ;;
  107.  
  108.     down)
  109.  
  110.         if /usr/sbin/smpppd-ifcfg --down $SMPPPD_OPTIONS ; then
  111.             message_if_not_run_from_rc "interface $INTERFACE is down"
  112.             exit $R_SUCCESS
  113.         fi
  114.  
  115.         logerror "failed to bring interface $INTERFACE down"
  116.         exit $R_ERROR
  117.  
  118.         ;;
  119.  
  120.     status)
  121.  
  122.         if /usr/sbin/smpppd-ifcfg --status $SMPPPD_OPTIONS ; then
  123.             message_if_not_run_from_rc "interface $INTERFACE is up"
  124.             INFOFILE="/var/lib/smpppd/ifcfg-$CONFIG.info"
  125.             ( while read a b ; do
  126.                 case $a in
  127.                     status:|provider-file:|demand:)
  128.                         message_if_not_run_from_rc $a $b
  129.                         ;;
  130.                 esac
  131.             done < $INFOFILE ) 2> /dev/null
  132.             exit $R_SUCCESS
  133.         fi
  134.  
  135.         message_if_not_run_from_rc "interface $INTERFACE is down"
  136.         exit $R_INACTIVE
  137.  
  138.         ;;
  139.  
  140. esac
  141.