ifup-ppp nastepna wersja
Grzegorz Stanislawski
stangrze w open.net.pl
Pon, 18 Sty 1999, 01:18:19 CET
Witam.
Podsylam kolejne wydanie mojego skryptu dla initscripts do ppp.
Tak jak juz bylo w poprzedniej wersji, skrypt ma "wsparcie" dla opcji
persist w pppd-2.3.5 i w zwiazku z tym, jak lacze jest zwalone przez jakis
czas to nie wali tak bardzo po logach. Rozwiazany jest problem ifdown ppp
tzn. to chodzi (w oryginalnym skrypcie nie dzialalo to wogole, kilowanie
pppd nie dzialalo, bo ifup ktory ciagle chodzil uruchamial go za chwile
znowu)
Nowa rzecza jest to, ze plik ze skryptem do chata (chat-ppp?) jest teraz
parsowany przez shell'a zwiazku z czym mozna w nim zamieszczac odwolania
do zmiennych. Wada, mam nadzieje ze nie wielka, takiego rozwiazania jest
koniecznosc escapowania backslashem tych znakow na ktore shell jest
wrazliwy, czyli np &$()|:; i tak dalej.
W todo do nastepnej wersji na pierwszym miejscu jest opcja demand.
Prosze o pobawienie sie tym skrypcikiem i jesli nie bedzie z nim problemow
(u mnie chodzil ok) o wlaczenie go do nastepnego wydania initscriptsow.
Grzegorz Stanislawski
Open-Net / PKFL
-------------- następna część ---------
'' atz
ABORT BUSY
ABORT NO\\sDIAL
ABORT NO\\sCARRIER
TIMEOUT 60
OK atdT$PHONE
CONNECT \\c
\)? $CBPASSWORD
umber $CBPHONE
HANGUP OFF
CLR_ABORT NO\\sCARRIER
NO\\sCARRIER \\c
TIMEOUT 120
RING ATA
ABORT NO\\sCARRIER
CONNECT \\c
HANGUP ON
ogin: $USER
assword: $PASSWORD
-------------- następna część ---------
#!/bin/sh
# ifup-ppp script for pppd-2.3.5 (with persist & demand options) ver 0.2
# Grzegorz Stanislawski <stangrze w open.net.pl>
# Features:
# - since persist option is included to pppd it''s no need to do werid loops
# ifup-ppp script. This also makes your logfile grow slower when Your link
# is down.
# - chat-ppp? file with script for chat is now parsed by shell, so You can
# include in it shell variables (for example $PHONE, $USERNAME)
# You can define any variable in ifcfg-ppp? file and use it in chat-ppp?
# You only have to add it's name into DATAFORCHAT variable
# Note, that chat-ppp file is now parsed by shell, so you have to escape
# with "\" all shell special characters like \$;:)(& etc.
PATH=/sbin:/usr/sbin:/bin:/usr/bin
# ifup-post for PPP is handled through /etc/ppp/ip-up
if [ "$1" != daemon ] ; then
# disconnect stdin, out, err to disassociate from controlling tty
# so that no HUPs will get through.
$0 daemon $*& </dev/null >/dev/null 2>/dev/null
exit 0
fi
shift
CONFIG=$1
cd /etc/sysconfig/network-scripts
. network-functions
source_config
if [ -z "$HOLDOFF" ]; then
HOLDOFF=30
fi
if [ "$2" = "boot" -a "${ONBOOT}" = "no" ]; then
exit
fi
[ -x /usr/sbin/pppd ] || {
echo "/usr/sbin/pppd does not exist or is not executable"
echo "ifup-ppp for $DEVICE exiting"
logger -p daemon.info -t ifup-ppp \
"/usr/sbin/pppd does not exist or is not executable for $DEVICE"
exit 1
}
#[ -f /etc/sysconfig/network-scripts/chat-$DEVICE ] || {
# echo "/etc/sysconfig/network-scripts/chat-$DEVICE does not exist"
# echo "ifup-ppp for $DEVICE exiting"
# logger -p daemon.info -t ifup-ppp \
# "/etc/sysconfig/network-scripts/chat-$DEVICE does not exist for $DEVICE"
# exit 1
#}
opts="lock"
if [ "${PERSIST}" = "yes" ]; then
opts="$opts persist holdoff $HOLDOFF"
fi
if [ "${DEMAND}" = "yes" ]; then
#opts="$opts demand active-filter $ACTIVEFILTER idle $IDLE"
opts="$opts demand "
fi
if [ "${HARDFLOWCTL}" = yes ] ; then
opts="$opts modem crtscts"
fi
if [ "${ESCAPECHARS}" = yes ] ; then
opts="$opts asyncmap 00000000"
fi
if [ "${DEFROUTE}" = yes ] ; then
opts="$opts defaultroute"
fi
if [ -n "${MRU}" ] ; then
opts="$opts mru ${MRU}"
fi
if [ -n "${MTU}" ] ; then
opts="$opts mtu ${MTU}"
fi
if [ -n "${IPADDR}${REMIP}" ] ; then
# if either IP address is set, the following will work.
opts="$opts ${IPADDR}:${REMIP}"
fi
if [ -n "${PAPNAME}" ] ; then
opts="$opts name ${PAPNAME}"
fi
if [ "${DEBUG}" = yes ] ; then
opts="$opts debug"
chatdbg="-v"
fi
if [ -n "${REPORTFILE}" ] ; then
chatrpt="-r ${REPORTFILE}"
fi
#CHATSCRIPT=/etc/sysconfig/network-scripts/chat-$DEVNAMR
#[ -f $CHATSCRIPT ] || {
# CHATSCRIPT=/etc/sysconfig/network-scripts/chat-$PARENTDEVNAME
#}
> /var/run/ppp-$DEVICE.dev
(logger -p daemon.info -t ifup-ppp \
"pppd started for $DEVICE on $MODEMPORT at $LINESPEED" &)&
if [ -n "${CHATSCRIPT}" ] ; then
export chatdbg chatrpt CHATSCRIPT
export $DATAFORCHAT
/usr/sbin/pppd -detach $opts $MODEMPORT $LINESPEED \
connect 'eval /usr/sbin/chat $chatdbg $chatrpt `cat ${CHATSCRIPT}`' \
remotename $DEVICE ipparam $DEVICE \
${PPPOPTIONS} &
# connect 'eval /usr/sbin/chat -v `cat $CHATSCRIPT`'
else
/usr/sbin/pppd -detach $opts $MODEMPORT $LINESPEED \
remotename $DEVICE ipparam $DEVICE \
${PPPOPTIONS} &
fi
echo "$!" > /var/run/ppp-$DEVICE.pid
-------------- następna część ---------
DEVICE=ppp0
CHATSCRIPT=chat-ppp0
ONBOOT=no
HARDFLOWCTL=yes
MODEMPORT=/dev/cua1
LINESPEED=115200
DEBUG=yes
PERSIST=no
HOLDOFF=10
#demand option not finished yet ;-(
DEMAND=no
#ACTIVEFILTER=
#IDLE=
PHONE=phone
#CBPASSWORD and CBPHONE is ysed (by me) in callback.
#see included chat-ppp0 for example of
#"modem level" callback (on USRobotics Courier)
CBPASSWORD=cbpassword
CBPHONE=myphone
USER=user
PASSWORD=password
DATAFORCHAT="CBPASSWORD CBPHONE PHONE USER PASSWORD"
REPORTFILE=/var/log/ppp0.log
Więcej informacji o liście dyskusyjnej pld-devel-pl