1#!/bin/sh 2 3# Script for loading, unloading, etc. ppp modules. 4 5moddir=/usr/local/etc 6etcppp=/etc/ppp 7 8PATH=/usr/etc:/usr/bin 9 10# Check that we're superuser 11touch /tmp/su$$ 12if chown root /tmp/su$$ >/dev/null; then : 13else 14 echo "$0: must be root." 15 rm -f /tmp/su$$ 16 exit 1 17fi 18rm -f /tmp/su$$ 19 20case "$0" in 21*ppp.INSTALL) 22 if [ ! -f ppp.INSTALL ]; then 23 echo "ppp.INSTALL: not found" 24 exit 1 25 fi 26 for n in INSTALL LOAD UNLOAD MKDEV RMDEV; do 27 if [ -h /dev/ppp.$n -o -f /dev/ppp.$n ]; then 28 rm /dev/ppp.$n 29 fi 30 done 31 cp ppp.INSTALL /dev 32 for n in LOAD UNLOAD MKDEV RMDEV; do 33 ln -s ppp.INSTALL /dev/ppp.$n 34 done 35 ;; 36 37*ppp.LOAD) 38 if modstat | grep -w ppp >/dev/null; then 39 echo "ppp driver is already loaded." 40 exit 1 41 fi 42 if modstat | grep -w if_ppp >/dev/null; then 43 echo "if_ppp module already loaded: not reloading." 44 else 45 echo -n "if_ppp: " 46 modload $moddir/if_ppp_mod.o -sym -entry _if_ppp_vdcmd \ 47 -o $etcppp/if_ppp_mod 48 fi 49 echo -n "ppp: " 50 modload $moddir/ppp_mod.o -sym -entry _ppp_vdcmd -exec /dev/ppp.MKDEV \ 51 -o $etcppp/ppp_mod 52 echo -n "ppp_comp: " 53 modload $moddir/ppp_comp_mod.o -sym -entry _ppp_comp_vdcmd \ 54 -o $etcppp/ppp_comp 55 echo -n "ppp_ahdl: " 56 modload $moddir/ppp_ahdl_mod.o -sym -entry _ppp_ahdlc_vdcmd \ 57 -o $etcppp/ppp_ahdl 58 exit 0 59 ;; 60 61*ppp.MKDEV) 62 # args: module number, type, b-major, c-major 63 if [ $# -ne 4 ]; then 64 echo "Usage: $0 module-id module-type b-major c-major" 65 exit 1 66 fi 67 if [ "$2" -ne "12345607" -a "$2" -ne "12345600" ]; then 68 echo "$0: $2: bad module type" 69 exit 1 70 fi 71 rm -f /dev/ppp 72 # we "just know" that 37 is the major number of the clone driver 73 mknod /dev/ppp c 37 $4 74 chmod 644 /dev/ppp 75 exit 0 76 ;; 77 78*ppp.UNLOAD) 79 stat=0 80 if modstat | grep -w if_ppp >/dev/null; then 81 echo "$0: not unloading if_ppp module." 82 fi 83 for mod in ppp ppp_comp ppp_ahdl; do 84 id=`modstat | grep -w $mod | awk '{print $1}'` 85 if [ x$id = x ]; then 86 echo "$mod is not loaded." 87 stat=1 88 else 89 modunload -id $id 90 fi 91 done 92 exit $stat 93 ;; 94 95*ppp.RMDEV) 96 rm -f /dev/ppp 97 exit 0 98 ;; 99 100*) 101 echo "Invocation names: ppp.INSTALL ppp.LOAD ppp.UNLOAD ppp.MKDEV ppp.RMDEV" 102 exit 1 103 ;; 104esac 105