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