mirror of
https://github.com/paulusmack/ppp.git
synced 2024-12-12 21:19:19 +08:00
105 lines
2.2 KiB
Bash
Executable File
105 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Script for loading, unloading, etc. ppp modules.
|
|
|
|
moddir=/usr/local/etc
|
|
etcppp=/etc/ppp
|
|
|
|
PATH=/usr/etc:/usr/bin
|
|
|
|
# Check that we're superuser
|
|
touch /tmp/su$$
|
|
if chown root /tmp/su$$ >/dev/null; then :
|
|
else
|
|
echo "$0: must be root."
|
|
rm -f /tmp/su$$
|
|
exit 1
|
|
fi
|
|
rm -f /tmp/su$$
|
|
|
|
case "$0" in
|
|
*ppp.INSTALL)
|
|
if [ ! -f ppp.INSTALL ]; then
|
|
echo "ppp.INSTALL: not found"
|
|
exit 1
|
|
fi
|
|
for n in INSTALL LOAD UNLOAD MKDEV RMDEV; do
|
|
if [ -h /dev/ppp.$n -o -f /dev/ppp.$n ]; then
|
|
rm /dev/ppp.$n
|
|
fi
|
|
done
|
|
cp ppp.INSTALL /dev
|
|
for n in LOAD UNLOAD MKDEV RMDEV; do
|
|
ln -s ppp.INSTALL /dev/ppp.$n
|
|
done
|
|
;;
|
|
|
|
*ppp.LOAD)
|
|
if modstat | grep -w ppp >/dev/null; then
|
|
echo "ppp driver is already loaded."
|
|
exit 1
|
|
fi
|
|
if modstat | grep -w if_ppp >/dev/null; then
|
|
echo "if_ppp module already loaded: not reloading."
|
|
else
|
|
echo -n "if_ppp: "
|
|
modload $moddir/if_ppp_mod.o -sym -entry _if_ppp_vdcmd \
|
|
-o $etcppp/if_ppp_mod
|
|
fi
|
|
echo -n "ppp: "
|
|
modload $moddir/ppp_mod.o -sym -entry _ppp_vdcmd -exec /dev/ppp.MKDEV \
|
|
-o $etcppp/ppp_mod
|
|
echo -n "ppp_comp: "
|
|
modload $moddir/ppp_comp_mod.o -sym -entry _ppp_comp_vdcmd \
|
|
-o $etcppp/ppp_comp
|
|
echo -n "ppp_ahdl: "
|
|
modload $moddir/ppp_ahdl_mod.o -sym -entry _ppp_ahdlc_vdcmd \
|
|
-o $etcppp/ppp_ahdl
|
|
exit 0
|
|
;;
|
|
|
|
*ppp.MKDEV)
|
|
# args: module number, type, b-major, c-major
|
|
if [ $# -ne 4 ]; then
|
|
echo "Usage: $0 module-id module-type b-major c-major"
|
|
exit 1
|
|
fi
|
|
if [ "$2" -ne "12345607" ]; then
|
|
echo "$0: $2: bad module type"
|
|
exit 1
|
|
fi
|
|
rm -f /dev/ppp
|
|
# we "just know" that 37 is the major number of the clone driver
|
|
mknod /dev/ppp c 37 $4
|
|
chmod 644 /dev/ppp
|
|
exit 0
|
|
;;
|
|
|
|
*ppp.UNLOAD)
|
|
stat=0
|
|
if modstat | grep -w if_ppp >/dev/null; then
|
|
echo "$0: not unloading if_ppp module."
|
|
fi
|
|
for mod in ppp ppp_comp ppp_ahdl; do
|
|
id=`modstat | grep -w $mod | awk '{print $1}'`
|
|
if [ x$id = x ]; then
|
|
echo "$mod is not loaded."
|
|
stat = 1
|
|
else
|
|
modunload -id $id
|
|
fi
|
|
done
|
|
exit $stat
|
|
;;
|
|
|
|
*ppp.RMDEV)
|
|
rm -f /dev/ppp
|
|
exit 0
|
|
;;
|
|
|
|
*)
|
|
echo "Invocation names: ppp.INSTALL ppp.LOAD ppp.UNLOAD ppp.MKDEV ppp.RMDEV"
|
|
exit 1
|
|
;;
|
|
esac
|