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