1#!/sbin/sh 2# 3# CDDL HEADER START 4# 5# The contents of this file are subject to the terms of the 6# Common Development and Distribution License (the "License"). 7# You may not use this file except in compliance with the License. 8# 9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10# or http://www.opensolaris.org/os/licensing. 11# See the License for the specific language governing permissions 12# and limitations under the License. 13# 14# When distributing Covered Code, include this CDDL HEADER in each 15# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16# If applicable, add the following below this CDDL HEADER, with the 17# fields enclosed by brackets "[]" replaced with your own identifying 18# information: Portions Copyright [yyyy] [name of copyright owner] 19# 20# CDDL HEADER END 21# 22# 23# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24# Use is subject to license terms. 25# 26 27PATH=/sbin:/usr/bin:/usr/sbin; export PATH 28PPPDIR=/etc/ppp; export PPPDIR 29 30case "$1" in 31'start') 32 if [ ! -x /usr/bin/pppd -o ! -c /dev/sppp ]; then 33 echo "$0: Solaris PPP has not been correctly installed on" 34 echo "$0: this system. Required files are missing." 35 exit 1 36 fi 37 if [ -f $PPPDIR/ifconfig ]; then 38 . $PPPDIR/ifconfig 39 fi 40 if [ -f $PPPDIR/demand ]; then 41 . $PPPDIR/demand 42 fi 43 if [ -f $PPPDIR/pppoe.if ] && [ -x /usr/sbin/sppptun ]; then 44 sed -e 's/^#.*//;s/\([^\\]\)#.*/\1/;s/[ ]*$//;s/^[ ]*//' \ 45 $PPPDIR/pppoe.if | \ 46 while read intf; do 47 if [ "$intf" ]; then 48 /usr/sbin/sppptun plumb pppoe $intf 49 /usr/sbin/sppptun plumb pppoed $intf 50 fi 51 done 52 fi 53 if [ -f $PPPDIR/pppoe ] && [ -x /usr/lib/inet/pppoed ]; then 54 /usr/lib/inet/pppoed >/dev/null 55 fi 56 ;; 57 58'stop') 59 /usr/bin/pkill -z `/sbin/zonename` -x pppd && sleep 1 60 /usr/bin/pkill -z `/sbin/zonename` -x pppoed 61 62 # Use ifconfig to make the interfaces down just in case 63 if [ -f $PPPDIR/ifconfig ]; then 64 nawk '/ifconfig[ ]*sppp/ { \ 65 system("ifconfig " $2 " down"); \ 66 system("ifconfig " $2 " unplumb"); \ 67 next; \ 68 } \ 69 /ifconfig/ { \ 70 $3 = "removeif"; \ 71 NF = 4; \ 72 system($0); \ 73 }' < $PPPDIR/ifconfig 74 fi 75 76 if [ -f $PPPDIR/pppoe.if ] && [ -x /usr/sbin/sppptun ]; then 77 sed -e 's/^#.*//;s/\([^\\]\)#.*/\1/;s/[ ]*$//;s/^[ ]*//' \ 78 $PPPDIR/pppoe.if | \ 79 while read intf; do 80 if [ "$intf" ]; then 81 /usr/sbin/sppptun unplumb ${intf}:pppoe 82 /usr/sbin/sppptun unplumb ${intf}:pppoed 83 fi 84 done 85 fi 86 ;; 87 88*) 89 echo "Usage: $0 { start | stop }" 90 exit 1 91 ;; 92esac 93exit 0 94